aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-06-11 21:18:43 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-06-11 21:20:33 -0700
commitfeef3ca3c5bc76d2bad1a739966a2143876847cf (patch)
treec7de193a8dbb007d05de73438ef77c67c3ef1a84
parentc5285905e1a24a26f0a3977a9732efb6803893d2 (diff)
call hookMusicFinished when music completes by itself
-rw-r--r--src/library_sdl.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 00f6e74c..b812fba7 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -1024,8 +1024,12 @@ var LibrarySDL = {
return 0;
},
+ Mix_HookMusicFinished__deps: ['Mix_HaltMusic'],
Mix_HookMusicFinished: function(func) {
SDL.hookMusicFinished = func;
+ if (SDL.music) { // ensure the callback will be called, if a music is already playing
+ SDL.music['onended'] = _Mix_HaltMusic;
+ }
},
Mix_VolumeMusic: function(func) {
@@ -1036,12 +1040,14 @@ var LibrarySDL = {
Mix_FreeMusic: 'Mix_FreeChunk',
+ Mix_PlayMusic__deps: ['Mix_HaltMusic'],
Mix_PlayMusic: function(id, loops) {
loops = Math.max(loops, 1);
var audio = SDL.audios[id].audio;
if (!audio) return 0;
audio.loop = loops != 1; // TODO: handle N loops for finite N
audio.play();
+ audio['onended'] = _Mix_HaltMusic; // will send callback
SDL.music = audio;
return 0;
},