aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-27 17:49:34 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-03-27 17:49:34 -0700
commitb0fa1cad4ac08851fdfa6bb7594212d03af650d6 (patch)
tree62f0ae8f70d8300340da5527f6ec66e79c8dd3df
parent802ec1c46dc987139e47999ac86950034c91cf62 (diff)
sdl music fixes
-rw-r--r--src/library_sdl.js9
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;
},