aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-27 17:15:02 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-03-27 17:15:02 -0700
commit802ec1c46dc987139e47999ac86950034c91cf62 (patch)
tree7f253af199706a465d6aa2db76638b5e1423b694 /src/library_sdl.js
parentf0afec555ecd538f92068495d64ddc027e237a77 (diff)
SDL music stuff
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js17
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