diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-03-27 17:15:02 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-03-27 17:15:02 -0700 |
commit | 802ec1c46dc987139e47999ac86950034c91cf62 (patch) | |
tree | 7f253af199706a465d6aa2db76638b5e1423b694 /src/library_sdl.js | |
parent | f0afec555ecd538f92068495d64ddc027e237a77 (diff) |
SDL music stuff
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r-- | src/library_sdl.js | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js index b72e239b..c176fa68 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -409,6 +409,9 @@ mergeInto(LibraryManager.library, { }, SDL_Quit: function() { + for (var i = 0; i < SDL.audios; i++) { + SDL.audios[i].pause(); + } Module.print('SDL_Quit called (and ignored)'); }, @@ -762,10 +765,12 @@ mergeInto(LibraryManager.library, { Mix_FreeMusic: 'Mix_FreeChunk', Mix_PlayMusic: function(id, loops) { + loops = Math.min(1, loops); if (loops == 0) return; var audio = SDL.audios[id].audio; - audio.loop = loop != 1; // TODO: handle N loops for finite N + audio.loop = loops != 1; // TODO: handle N loops for finite N audio.play(); + SDL.music = audio; return 0; }, @@ -781,15 +786,17 @@ mergeInto(LibraryManager.library, { return 0; }, - Mix_HaltMusic: function(id) { - var audio = SDL.audios[id].audio; - audio.pause(); // TODO: actually rewind to the beginning + Mix_HaltMusic: function() { + var audio = SDL.music; + audio.src = audio.src; // rewind + audio.pause(); + SDL.music = null; return 0; }, Mix_FadeInMusicPos: 'Mix_PlayMusic', // XXX ignore fading in effect - Mix_FadeOutMusic: function(id) {}, // TODO + Mix_FadeOutMusic: 'Mix_HaltMusic', // XXX ignore fading out effect // SDL TTF |