Commit Graph

35517 Commits

Author SHA1 Message Date
SaxonDruce bbedddbf08 Fix bugs with music not resuming when iOS app is reactivated (#16178)
* Pause instead of stopping music on resign

The [audioSource stop] causes the music to be stopped, and therefore it fails to resume later on a call to [audioSource resume], due to the addition of the if (!stopped) check in resume added in 26a04b38f2

* Don't re-pause music that has already been paused

In this situation:

1. Start game, music plays
2. Switch to Music app, game music paused, start other music
3. Switch to game, game music not resumed due to other music playing
4. Switch to Music app, stop other music
5. Switch back to game, game music should resume due to no other music playing

At step 5 the game music doesn't currently resume. This is because at step 4 when switching to the Music app, the game music gets re-paused (actually isPlaying is false, so systemPaused is set to NO, even though the music *is* still paused). This causes the music to not be resumed at step 5.

This change fixes this, by skipping the pause logic if systemPaused is already true.

Note that this is dependent on https://github.com/cocos2d/cocos2d-x/pull/16178

* Fix typo in previous fix.
2016-07-21 17:41:24 +08:00
James Chen 233f2111b9 fixed #16170: Random crash in alGenBuffers(AudioCache::readDataTask) at startup. (#16182)
* fixed #16170: Random crash in alGenBuffers(AudioCache::readDataTask) at startup.

* Minor fix: should -> may

* Minor fix: updates comments.

* Update comment.

* Comment fix again.
2016-07-21 16:51:04 +08:00
minggo bb25bed6f2 Merge pull request #16164 from dumganhar/fix/iss16046-fps-clock
Uses std::chrono::steay_clock for calculating dt.
2016-07-21 16:01:58 +08:00
minggo 35cea378a9 Merge pull request #16172 from cezheng/fix/label_text_formatter_right_alignment
fix label text formatter right alignment
2016-07-21 15:21:12 +08:00
James Chen bb004c5e22 [audio] Fixes some issues while stop/uncache right after play/preload on OSX/iOS platform. (#16147)
* [audio] Fixes some issues while stop/uncache right after play/preload on OSX/iOS platform.

* Better state control in AudioCache.

* Adds State enum class which contains INITIAL, LOADING, READY, FAILED states.
* AudioPlayer::destroy should check AudioCache::_isAudioLoaded flag, otherwise, app will freeze in cpp-tests/NewAudioEngineTest/6:Test invalid audio file.

* Should check whether state is INITIAL in the destructor of AudioCache.

* Adds test case for switching play state frequently.

* Skips invoking reading data callback if cache's state is INITIAL.

* Variables initialization for AudioCache class and fixes protential missing delete AL buffers.
2016-07-21 14:57:59 +08:00
minggo b8f8ff0d25 Merge pull request #16177 from mogemimi/fix-constant-spelling
Fix typo in constant name
2016-07-21 14:41:35 +08:00
minggo 9dd03c94f3 update 3rd party library version 2016-07-21 14:38:32 +08:00
Saxon Druce de091cd3d9 Implement willPlayBackgroundMusic() on Android, to return false if there is other music already playing in another app. 2016-07-21 14:29:13 +08:00
minggo 26dd7b2698 remove curl link for Android 2016-07-21 11:56:56 +08:00
Ricardo Quesada aff6e7852b test case for issue #16113 2016-07-20 19:45:52 -07:00
CocosRobot 708dab448d [ci skip][AUTO]: updating luabinding & jsbinding automatically (#16175) 2016-07-21 10:11:14 +08:00
CocosRobot 235e65b835 [AUTO][ci skip]: updating cocos2dx_files.json (#16174) 2016-07-21 10:09:27 +08:00
mogemimi 17dfd03fa7 Fix typo in constant name 2016-07-21 00:49:19 +09:00
Ricardo Quesada 62f1762ea9 Merge pull request #16165 from ricardoquesada/issue_16105_bis
fix: stagger tilemaps hexa works as expected
2016-07-20 05:06:31 -07:00
Ce Zheng 35b848e842 fix label text formatter right alignment 2016-07-20 18:08:15 +09:00
minggo 6314daeebb Merge pull request #16167 from dumganhar/fix/remove-unused-openal
Remove unused code in cocos/audio/openal
2016-07-20 17:07:22 +08:00
James Chen 2e5626236b Remove unused code in cocos/audio/openal 2016-07-20 14:49:39 +08:00
minggo e19393fa23 Merge pull request #16123 from ricardoquesada/issue_15805
Fix: not cransh on android when mapBuffer() is not present
2016-07-20 14:10:04 +08:00
Ricardo Quesada b3218c1e58 fix: stagger tilemaps hexa works as expected
Github issue #16105
2016-07-19 22:55:05 -07:00
James Chen ddb25ca563 Uses std::chrono::steay_clock for calculating dt. 2016-07-20 12:43:40 +08:00
Ricardo Quesada cd495f68ba Fix: not cransh on android when mapBuffer() is not present
more info:
https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt

add methods to check whether or not glMapBuffer exists
2016-07-19 21:00:50 -07:00
Ricardo Quesada cc947737dd Merge pull request #16160 from ricardoquesada/issue_16139
fix: display FPS again on GLFW platforms
2016-07-19 19:19:31 -07:00
minggo 66e29ba82d Merge pull request #16151 from mogemimi/fix-function-spelling
Fix spelling for `getPolygonCenter` function
2016-07-20 09:56:51 +08:00
minggo 129a06b9b3 Merge pull request #16148 from mogemimi/fix-misspelled-enum
Fix misspelled enum: POLYGEN -> POLYGON
2016-07-20 09:54:42 +08:00
Ricardo Quesada 5f0c0163b3 fix: display FPS again on GLFW platforms
Apparently GLFW stop emitting some events that creation time.
2016-07-19 18:26:14 -07:00
mogemimi 5bd2d74078 Fix spelling for `getPolygonCenter` function 2016-07-19 08:24:22 +09:00
mogemimi 60dbbde3eb Fix misspelled enum: POLYGEN -> POLYGON 2016-07-18 19:10:07 +09:00
minggo b5de8ba0ea Merge pull request #16145 from CocosRobot/update_cocosfiles_1468822622
[AUTO][ci skip]: updating cocos2dx_files.json
2016-07-18 15:01:10 +08:00
minggo 9943c8316f Merge pull request #16146 from CocosRobot/update_lua_bindings_1468822691
[ci skip][AUTO]: updating luabinding & jsbinding automatically
2016-07-18 15:00:50 +08:00
CocosRobot cbcbeb96b3 [ci skip][AUTO]: updating luabinding & jsbinding automatically 2016-07-18 06:20:59 +00:00
CocosRobot 9c35dedb75 [AUTO][ci skip]: updating cocos2dx_files.json 2016-07-18 06:17:04 +00:00
minggo 04ebd952a0 Merge pull request #16137 from yalab/cocosstudio_with_texturepacker
Fixed to use cocosstudio LoadingBarReader with TexturePacker.
2016-07-18 14:14:49 +08:00
James Chen 15ef80e27d [big refactoring] Audio latency fix for Android. Support to preload effects on Android now. (#15875)
* Audio latency fix for Android. Support preload effects on Android now.

Squashed commits:
[b6d80fe] log fix
[a0a918e] Fixes assetFd didn't be released while PcmData is returned from cache.
[4b956ba] Potential crash fix for PcmAudioPlayer while pause / resume.
[398ab8c] Updates LOG_TAG position in AudioEngine-inl.cpp
[e3634e7] include stdlib.h for posix_memalign
[9004074] fixes setVolume logical error.
[c96df46] Don't use another thread for mixing, enqueue is in a seperated thread, therefore doing mixing in another thread will waste more time.
[0a4c1a8] Adds setLoop, setVolume, setPostion support for Track
[c35fb20] Fixed include.
[cdd9d32] Do mixing by ourself. (TO BE POLISHED)
[6447025] µ -> u since µ could not be shown on some android devices.
[97be0c6] Don't send a silence clip.
[c1607ed] Make linter.py happy.
[0898b54] Puts enqueue & SetPlayState in PcmAudioPlayer::play to thread pool.
[b79fc01] Adds getDuration, getPosition support for PcmAudioPlayer
[80fa2ab] minor fix of the code position of resetting state to State::INITIALIZED
[d9c62f1] underrun fix for PcmAudioPlayer.
[9c2212a] UrlAudioPlayer, playOverMutex should be static, and should be used in update method.
[1519d2e] static variables
[19da936] _pcmAudioPlayer Null pointer check in AudioPlayerProvider.
[e6b0d14] Updates audio performance test.
[fc01dd4] Registers foreground & background event in AudioEngine-inl.cpp(android), the callback should invoke `provider`'s pause & resume method.
[e00a886] TBD: Pause & resume support for PcmAudioPlayerPool.
Since OpenSLES audio resources are expensive and device shared, we should delete all unused PcmAudioPlayers in pool while pause and re-create them while resume.
But this commit isn't finished yet, I don't find a better way to register pause&resume event in AudioEngine module.
[9e42ea3] Interleave mono audio to stereo audio. PcmAudioPlayerPool only contains PcmAudioPlayers with 2 channels.
[3f18d05] Adds a strategy for checking small size of different file formats.
[753ff49] Adds performance test for AudioEngine.
[09d3045] Releases an extra PcmAudioPlayer for UrlAudioPlayer while allocating PcmAudioPlayer fails.
[9dd4477] Using std::move for PcmData move constructor & move assignment.
[6ca3bcb] some fixes:
1) new -> new (std::nothrow)
2) break if allocate PcmAudioPlayer fails
3) renames 'initForPlayPcmData' to 'init'
4) PcmAudioPlayer destructor deadlock if 'init' failed
[54675b6] include path fix.
[a1903ca] More refactorings.
[19b9498] Makes linter.py happy. :)
[923c530] Fixes:
1) Avoid getFileInfo to be invoked twice
2) A critical bug fix for UrlAudioPlayer and adds detailed comments
3) __clang__ compiler option fix for AudioResamplerSinc.cpp.
[5ec4faf] minor fix.
[faaa0f3] output a log in the destructor of UrlAudioPlayer.
[9c20355] NewAudioEngineTest,TestControll crash fix.
[f114464] fixes an unused import.
[1dc5dab] Better algorithm for allocating PcmAudioPlayer.
[331a213] minor fix.
[e54084a] null -> nullptr
[f9a0389] Support uncache.
[89a364f] Removes unused update, and TODO uncache functionality.
[1732bf9] Supports AudioEngineImpl::setFinishCallback for android.
[43d1596] UrlAudioPlayer::stop fix.
[e2ee941] Test case fix in NewAudioEngineTest/AudioIssue11143Test
[5c5ba01] More fixes for making cpp-tests/New Audio Engine Test happy.
[8b554a3] Adds log while remove player from map.
[ed71322] If original file is larger than 30k bytes, consider it's a large audio file.
[fb1845a] Updates project.properties
[6f3839f] minor log output fix in AudioEngine-inl.cpp
[c68bc6c] Don't resample if the sample rate of the decoded pcm data matchs the device's.
[43ca45f] PcmAudioPlayers also need to be removed while they play over, but should not be deleted since their lifecycle is managed by PcmAudioPlayerPool.
[f5e63c9] Audio latency fix for Android. Support preload effects on Android now.

* Supports to loading audio files asynchronously.

* Crash fix for stop audio right after play2d.

* Minor fix for logic in AudioMixerController.cpp

* Adds missing files (CCThreadPool.h/.cpp).

* Minor fix for including.

* Minor fix for missing include <functional> in Track.h

* update license information in audio.h

* Don't use std::future/std::promise anymore since ndk counldn't support it well in armeabi arch.

* isSmallFile postion updated, fixes large audio file goto the checking logic of cache.

* std::atomic<int> isn't supported by ndk-r10e while compiling with `armeabi` arch, using a int with a mutex instead.

* fixes __isnanf & posix_memalign doesn't exist on low api (<=16) devices.

* namespace updated: cocos2d -> cocos2d::experimental

* Removes commented code in AudioMixerController.h/.cpp

* Removes unused code again, and fixes a memory leak of `Track` instance.

* Oops, namespace changed.

* Only outputs log in debug mode.

* Uses ALOGV for outputing logs in AudioEngine-inl.cpp

* const PcmData& ->  PcmData for Track

* Fixes a protential crash in NewAudioEngineTest

* Adds `COCOS` prefix in header #ifndef COCOS_BALABALA #define COCOS_BALABALA

* Uses _ prefix for cocos code style instead of `m` prefix.

* Deletes AudioResamplerSinc related files.

* Bug fix from @minggo's reply on github.

* Don't need to invoke pause after in UrlAudioPlayer::prepare.

* Updates ThreadPool class, uses enum class and adds const keyword.
2016-07-18 10:22:40 +08:00
minggo 06dcb2f183 Merge pull request #16133 from mogemimi/fix-documentation-typos
Fix typos in documentation comments
2016-07-18 10:18:44 +08:00
minggo 1f5d162d70 Merge pull request #16136 from mogemimi/fix-doxygen-config
Fix minor typo in Doxygen configs
2016-07-18 10:17:50 +08:00
yalab ef21e44d9c Fixed to use cocosstudio LoadingBarReader with TexturePacker. 2016-07-17 16:30:17 +09:00
mogemimi b8e483bdd1 Fix minor typo in Doxygen configs 2016-07-17 05:07:59 +09:00
mogemimi d931c62649 Fix typos in documentation comments 2016-07-16 04:18:40 +09:00
minggo 1544b8eed0 Merge pull request #16127 from mogemimi/add-missing-fclose
Add missing fclose() to fix a possible bug caused by PR #16114
2016-07-15 18:32:33 +08:00
minggo 8b289d2385 fix bug that virtual button is not hidden after keyboard dismissed
* fix compiling error with --android-studio

* hide virtual button after keyboard dismiss

* remove unneeded log
2016-07-15 18:25:48 +08:00
mogemimi 07d0b4412f Add missing fclose() to fix a possible bug caused by PR #16114 2016-07-15 17:04:14 +09:00
minggo 38b3ab6853 Merge pull request #16114 from mogemimi/use-fstat-instead
Use fstat instead of fseek and ftell for performance and portability
2016-07-15 15:39:22 +08:00
Ricardo Quesada 9166c28e75 Merge pull request #16101 from mtak-/glprogram_buffer_overflow_fix
fix buffer over-read in CCGLProgram.cpp in memcmp call (Address Sanitizer...
2016-07-14 17:12:17 -07:00
Ricardo Quesada f8841beeee Merge pull request #16119 from moljac024/v3
Fix browserVersion detection
2016-07-14 16:58:33 -07:00
Ricardo Quesada 2998ed23f8 Merge pull request #16121 from ricardoquesada/issue_16105_squashed
Fixes issue #16105
2016-07-14 12:59:40 -07:00
Ricardo Quesada 1563d14447 Squashed commit of the following:
commit c8349caeca6ff5ebacf497eaa986e71d5f1c2c0d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Jul 14 11:19:50 2016 -0700

    fix: works with odd sized maps

commit da4cf8bc19c9cdab148d60e03a25ee9cc4292b66
Author: zhangbin <zhangbin@cocos2d-x.org>
Date:   Wed Jul 13 13:45:57 2016 +0800

    Add test case.
2016-07-14 11:21:24 -07:00
minggo 774108bbc3 Merge pull request #16120 from minggo/update-webengine
[ci skip]update web engine to v3.12
2016-07-14 16:00:43 +08:00
minggo 1bb1e9b792 update web engine to v3.12 2016-07-14 16:00:37 +08:00
Bojan Matić 727138b800 Fix browserVersion detection
Due to typo, the code meant for browser versions below 6.2 would
never run.
2016-07-14 08:24:12 +02:00
halx99 9e80526251 #Use std::string reference instead of char* for utils::findChild (#16117)
* #Optimize, Use std::string reference instead of char* for utils::findChild

* Check Node::INVALID_TAG

* revert submodules
2016-07-14 13:52:30 +08:00