diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-03-27 17:49:34 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-03-27 17:49:34 -0700 |
commit | b0fa1cad4ac08851fdfa6bb7594212d03af650d6 (patch) | |
tree | 62f0ae8f70d8300340da5527f6ec66e79c8dd3df | |
parent | 802ec1c46dc987139e47999ac86950034c91cf62 (diff) |
sdl music fixes
-rw-r--r-- | src/library_sdl.js | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js index c176fa68..d9cc16c9 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -728,7 +728,7 @@ mergeInto(LibraryManager.library, { }, Mix_HookMusicFinished: function(func) { - SDL.hookMusicFinished = func; // TODO: use this + SDL.hookMusicFinished = func; }, Mix_VolumeMusic: function(func) { @@ -765,8 +765,7 @@ mergeInto(LibraryManager.library, { Mix_FreeMusic: 'Mix_FreeChunk', Mix_PlayMusic: function(id, loops) { - loops = Math.min(1, loops); - if (loops == 0) return; + loops = Math.max(loops, 1); var audio = SDL.audios[id].audio; audio.loop = loops != 1; // TODO: handle N loops for finite N audio.play(); @@ -788,9 +787,13 @@ mergeInto(LibraryManager.library, { Mix_HaltMusic: function() { var audio = SDL.music; + if (!audio) return 0; audio.src = audio.src; // rewind audio.pause(); SDL.music = null; + if (SDL.hookMusicFinished) { + FUNCTION_TABLE[SDL.hookMusicFinished](); + } return 0; }, |