Commit Graph

290 Commits

Author SHA1 Message Date
Wilson E. Alvarez b672b94edc Removed unnecessary assignments (#17328) 2017-02-09 10:57:01 +08:00
Wilson E. Alvarez 5d748f941b Mitigate cppcheck message (#17323) 2017-02-08 15:32:01 +08:00
minggo 92704517bc remove unneeded assignment (#17320) 2017-02-08 13:58:11 +08:00
Dmitry 4bf1750cbd issue #17305 fix: cocos/audio/win32/AudioCache.h fixed include <AL/al.h> (#17306) 2017-02-08 10:22:05 +08:00
mogemimi 777a97e141 Fix typo in AudioState (#17258) 2017-02-04 10:34:34 +08:00
j-jorge c616d6d9ff Compilation fix (#17209)
* Fix various compilation issues.

Mostly errors on field initialization order but also missing files
in CMakeLists and missing include directives.

* Fix compilations issues with GCC 6.2

* Fix gitignore libs/ entry to not ignore the Android external libraries.
2017-02-04 09:46:32 +08:00
minggo f63fad3e27 Merge branch 'v3.14' into merge-v314 2017-01-04 09:49:22 +08:00
James Chen e4e872a065 fixed #16849: Preload many audios may cause crash on devices those use Samsung Exynos CPU. (#17049)
* fixed #16849: Preload many audios may cause crash on devices those use Samsung Exynos CPU.

* Adds comment for __SLPlayerMutex variable.

* Fixes wrong comments in AudioDecoder.cpp
2016-12-29 15:41:47 +08:00
James Chen 208d39151e Reverts create thread pool code, android doesn't need to create a thread pool in AudioEngine.cpp (#17081) 2016-12-29 10:22:45 +08:00
James Chen be43c4210f Fixes crash that playing long audio and then uncacheAll (#17079)
* Fixes crash of playing long audio then uncacheAll.

* update

* Updates comments in MciPlayer.h

* tab -> 4spaces

* include path fix.
2016-12-29 10:05:13 +08:00
James Chen effb6f077a [mac, ios] 'ExtAudioFileRead' may return 0 frame while it doesn’t reach the end of very short audio file. (#17011)
* [mac, ios] Adds AudioDecoder::readFixedFrames. And uses readFixedFrames to simply code.

* [mac, ios] ‘ExtAudioFileRead’ may return 0 frame while it doesn’t reach the end of very short audio file.

* [mac, ios] Adds test case for small file test.

* [mac, ios] Adds small audio file.

* [mac, ios] Macro ‘BREAK_IF’ logic fix.

* [mac, ios] Returns false of AudioDecoder::open if total frames is 0.
2016-12-15 09:58:47 +08:00
James Chen ed72691bc9 [ios/macOS] Fixed a compilation error after enabling ‘CD_USE_STATIC_BUFFERS’. (#16997) 2016-12-13 13:37:31 +08:00
James Chen b80e316150 fixed #16938: Audio could not be played entirely on iOS/macOS. And refactored some code of decoding. (#16946)
* fixed #16938: Audio could not be played entirely on iOS/macOS. And refactored some code of decoding.

* Adds license header, removes unused macros.

* issue #16938: Corrects remaining frame count calculation.

* Updates include path.

* Adds comments for AudioDecoder class.

* Adds const for getter functions in AudioDecoder.

* issue #16938: Adds test case.

* Updates license years.

* Deletes trailing white spaces.
2016-12-02 13:52:37 +08:00
Wilson E. Alvarez fd6e10f0f5 Let FMOD autodetect the best output mode for Linux (#16819)
Thanks to filippovdaniil for the suggestion
2016-11-10 11:30:30 +08:00
James Chen 609750ef58 fixed #16754: [android] Background music which is playing could not be paused while game enters background. (#16755)
* fixed #16754: [android] Background music which is playing could not be paused while game enters background.

* Updates a comment of cocos/audio/android/AudioEngine-inl.h
2016-10-28 10:12:52 +08:00
Wilson E. Alvarez c0e1e91373 Performance tweak: Use range-based for-loops and allocate std::vector size() and *end() on the stack where favorable. (#16716)
* Use range-based for-loops and allocate std::vector size(), end(), cend(), rend(), crend() on the stack where favorable.

Other minor trivial changes were applied.

* Fixed Android compilation error

* Fixed windows-universal compilation error
2016-10-27 15:10:24 +08:00
QingliWang 7c1f88423b Fix bug when app paused the music is still resumed to play after interruption completed. (#16679)
* Support audio interruption and resume callback when change earphone status.

* Refactor keyevent callback and add makecurrent for compatible with different binary.

* Enable Tizen indicator.

* Remove the unnecessary evasobject in the window and refactor the function for glview mode.

* Fix the compatible issue between Tizen 2.3 and 2.4.

* Fix the wrong directory of script resources for HellLua template project.

* Create performance-test project for Tizen platform.
2016-10-12 15:48:27 +08:00
Wilson E. Alvarez cdee1e11de Performance tweak: use range-based for-loops instead of iterator-based for-loops. (#16642)
* Use ++ prefix instead for non-primitive data types in CCAutoPolygon.cpp

* Use ++ prefix instead for non-primitive data types in SimpleAudioEngine.cpp

* Use ++ prefix instead for non-primitive data types in CCNodeLoaderLibrary.cpp

* Use ++ prefix instead for non-primitive data types in CCActionManagerEx.cpp

* Use ++ prefix instead for non-primitive data types in CCDataReaderHelper.cpp

* Use ++ prefix instead for non-primitive data types in HttpClient-android.cpp

* Use ++ prefix instead for non-primitive data types in CCDevice-linux.cpp

* Use ++ prefix instead for non-primitive data types in ScriptingCore.cpp

* Switched implementation to range-based for loops

* Added readability, fixed loop in CCDataReaderHelper.cpp

Thanks to Dimon4eg for the code review.
2016-10-11 10:59:44 -07:00
colajam93 1d3a40f8be Fix warning (#16591) 2016-09-20 14:50:47 +08:00
minggo 84a102edf8 merge v3.13.1 back to v3 2016-09-15 10:08:28 +08:00
minggo 3075108f1c get sdk version from java (#16546) 2016-09-12 09:49:39 +08:00
James Chen b8f127e601 fixed #16547: [ios, mac] Protencial memory leak in AudioPlayer.mm. (#16556)
If playing a large audio and its loop flag is set to false, after the audio is played over, there will be 4 or 8 bytes memory leak by _rotateBufferThread variable.

Resolution:

The `isDestroy` flag should not be set to true in rotate buffer thread, to exiting the thread, we need another varible for this purpose.

Thanks @nicolechen819 for the feedback.
2016-09-12 09:48:27 +08:00
minggo c51605971f fixed #16490: [android, audio] AudioEngine::stop() triggers 'finished' callback (#16491) (#16524) 2016-09-06 10:58:43 +08:00
minggo 9dc737901b fixed #16473: OpenSLES error while play background music in writable path or sdcard. (#16475) (#16521) 2016-09-06 09:41:53 +08:00
James Chen 64c62d37c2 fixed #16490: [android, audio] AudioEngine::stop() triggers 'finished' callback (#16491) 2016-09-01 16:06:29 +08:00
James Chen 6d27868918 fixed #16473: OpenSLES error while play background music in writable path or sdcard. (#16475) 2016-09-01 11:47:33 +08:00
James Chen 01e67f6203 fixed #16477: [android, audio] Deadlock if preload the same file more than 3 times in preload callback. (#16478)
And added test case.
2016-09-01 11:46:27 +08:00
James Chen 35f937cd40 AudioMixerController::initTrack should not setState for track. Otherwise, it may trigger Track state mess-up. (#16476)
* Warning fixes in AudioDecoder.cpp

* AudioPauseResumeAfterPlay test case should start in onEnter.
And add a loop to pause & resume many times.

* AudioMixerController::initTrack should not setState for track. Otherwise, it may trigger Track state mess-up.
2016-09-01 11:43:37 +08:00
minggo 04fd2b16b2 merge v3.13 back to v3 2016-08-29 11:57:13 +08:00
minggo 20a0798007 avoid to use __system_get_property__ (#16433)
* avoid to use __system_get_property__

* add utils

* revert console
2016-08-24 17:11:41 +08:00
James Chen 727c501285 Fixes crash while invoking pause&resume right after play2d. (#16406) 2016-08-22 09:43:06 +08:00
minggo 92ed162cbe replace replace __system_property_get() since it is deprecated in 64 bit android NDK (#16398) 2016-08-19 11:49:33 +08:00
James Chen 8af275c4a6 Fixes potential crash in AudioEngine::uncache(filePath). (#16345) 2016-08-11 16:06:59 +08:00
James Chen f44f253179 [Android] Notify waitup only while preloadEffect(info, cb) is invoked in play2d. (#16320)
Currently, if a audio isn't preloaded, then play2d will wait the preload operation to finish.
2016-08-05 14:07:19 +08:00
mogemimi a5f36e70a5 Add explicit type casts to suppress -Wformat warnings (#16306) 2016-08-05 09:46:50 +08:00
James Chen b135d512d2 Update copyright to 2016. (#16311) 2016-08-05 09:42:15 +08:00
mogemimi 3175316131 Fix format string warning when compiling for iOS armv7 (#16298) 2016-08-04 09:54:27 +08:00
James Chen cc9871b71d fixed #10482: New AudioEngine class can't play large ogg file on Win32. (#16303)
* fixed #10482: New AudioEngine class can't play large ogg file on Win32.

* [win32] Small logic fix in AudioPlayer::readPcmData.
2016-08-04 09:53:30 +08:00
mogemimi c03dd85c3f Remove redundant includes (#16285) 2016-08-01 10:22:35 +08:00
QingliWang bbfd2d334c Some bug-fix and quality assurance for Tizen support. (#16281)
* Support audio interruption and resume callback when change earphone status.

* Refactor keyevent callback and add makecurrent for compatible with different binary.

* Enable Tizen indicator.

* Remove the unnecessary evasobject in the window and refactor the function for glview mode.

* Fix the compatible issue between Tizen 2.3 and 2.4.

* Fix the wrong directory of script resources for HellLua template project.

* Create performance-test project for Tizen platform.
2016-07-31 22:32:59 +08:00
minggo a8ce513f6c Merge pull request #16228 from dumganhar/fix/iss14148-ios-no-sound
fixed #14148: Got an error while pressing home button at launch, after resuming from background, SimpileAudioEngine::playEffect will be mute.
2016-07-29 09:28:37 +08:00
James Chen 6efcf87b93 fixed #14148: Got an error while pressing home button at launch, after resuming from background, SimpileAudioEngine::playEffect will not be mute.
The error is: ERROR: [0x19e5fa000] >aurioc> 807: failed: '!pla' (enable 2, outf< 2 ch, 44100 Hz, Float32, non-inter> inf< 2 ch, 0 Hz, Float32, non-inter>)
2016-07-27 15:33:02 +08:00
James Chen bd1d630f93 fixed #16192: Crash while decoding small MP3 file on Android. 2016-07-27 13:54:39 +08:00
minggo 662a1636c3 replace __system_property_get (#16205)
* replace __system_property_get

* fix comment
2016-07-25 18:30:47 +08:00
mogemimi 15030ad4c3 Fix typos in log messages 2016-07-25 02:53:22 +09:00
minggo 8419cc2662 Merge pull request #16183 from SaxonDruce/android-willplaymusic
Implement willPlayBackgroundMusic() on Android
2016-07-22 10:57:26 +08:00
mogemimi 94d4971ddc Fix typos in documentation and comments 2016-07-22 02:05:19 +09:00
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
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