aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 7011e679..6250d6e3 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -934,7 +934,7 @@ var LibrarySDL = {
// Convert the path to relative
filename = filename.substr(1);
}
- var raw = preloadedImages[filename];
+ var raw = Module["preloadedImages"][filename];
if (!raw) {
Runtime.warnOnce('Cannot find preloaded image ' + filename);
return 0;
@@ -1058,7 +1058,7 @@ var LibrarySDL = {
Mix_LoadWAV_RW: function(filename, freesrc) {
filename = FS.standardizePath(Pointer_stringify(filename));
- var raw = preloadedAudios[filename];
+ var raw = Module["preloadedAudios"][filename];
if (!raw) {
Runtime.warnOnce('Cannot find preloaded audio ' + filename);
return 0;
@@ -1117,8 +1117,12 @@ var LibrarySDL = {
return 0;
},
+ Mix_HookMusicFinished__deps: ['Mix_HaltMusic'],
Mix_HookMusicFinished: function(func) {
SDL.hookMusicFinished = func;
+ if (SDL.music) { // ensure the callback will be called, if a music is already playing
+ SDL.music['onended'] = _Mix_HaltMusic;
+ }
},
Mix_VolumeMusic: function(func) {
@@ -1129,12 +1133,14 @@ var LibrarySDL = {
Mix_FreeMusic: 'Mix_FreeChunk',
+ Mix_PlayMusic__deps: ['Mix_HaltMusic'],
Mix_PlayMusic: function(id, loops) {
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.play();
+ audio['onended'] = _Mix_HaltMusic; // will send callback
SDL.music = audio;
return 0;
},
@@ -1169,6 +1175,14 @@ var LibrarySDL = {
Mix_FadeOutMusic: 'Mix_HaltMusic', // XXX ignore fading out effect
+ Mix_PlayingMusic: function() {
+ return (SDL.music && !SDL.music.paused) ? 1 : 0;
+ },
+
+ Mix_PausedMusic: function() {
+ return (SDL.music && SDL.music.paused) ? 1 : 0;
+ },
+
// SDL TTF
TTF_Init: function() { return 0 },