aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-05-21 15:38:59 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-05-21 15:38:59 -0700
commit7102046e02fdc97ce7197302b20d50497b3980f0 (patch)
tree30782c2071382adf96968d4ceb285ff00513c422 /src/library_sdl.js
parent5382cbaf1ebdc948f97533c8a2bfa6f9f23d875e (diff)
parent99dcf280fa60b1f81140cf3de91498729af5c677 (diff)
Merge pull request #1199 from j4m3z0r/sdl-fixes
Fix Mix_PlayMusic's handling of loop argument in SDL
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 75544765..a5080a99 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -1349,6 +1349,9 @@ var LibrarySDL = {
channelInfo.audio = audio = audio.cloneNode(true);
audio.numChannels = info.audio.numChannels;
audio.frequency = info.audio.frequency;
+
+ // TODO: handle N loops. Behavior matches Mix_PlayMusic
+ audio.loop = loops != 0;
if (SDL.channelFinished) {
audio['onended'] = function() { // TODO: cache these
Runtime.getFuncWrapper(SDL.channelFinished, 'vi')(channel);
@@ -1450,7 +1453,7 @@ var LibrarySDL = {
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.loop = loops != 0; // TODO: handle N loops for finite N
if (SDL.audios[id].buffer) {
audio["mozWriteAudio"](SDL.audios[id].buffer);
} else {