diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-03-21 15:23:00 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-03-21 15:23:00 -0700 |
commit | f3ec1907dab69c066fb47618fa076b0779194e85 (patch) | |
tree | 13ddcdfc6c8be3cbf215834b5f091a14ec3363a0 /src | |
parent | 44e1d4a267d1ab7786ec0191e6e9a1ca648b77db (diff) |
some SDL audio stuff
Diffstat (limited to 'src')
-rw-r--r-- | src/library_sdl.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js index cd86fb93..5188da23 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -86,6 +86,7 @@ mergeInto(LibraryManager.library, { surfaces: {}, events: [], + musics: [null], keyCodes: { 38: 273, // up arrow @@ -574,6 +575,47 @@ mergeInto(LibraryManager.library, { return 0; // TODO }, + Mix_LoadMUS: function(filename) { + filename = Pointer_stringify(filename); + var id = SDL.musics.length; + SDL.musics.push({ + audio: new Audio(filename) + }); + return id; + }, + + Mix_FreeMusic: function(id) { + SDL.musics[id].audio.pause(); + SDL.musics[id] = null; + return 0; + }, + + Mix_PlayMusic: function(id, loops) { + if (loops == 0) return; + var audio = SDL.musics[id].audio; + audio.loop = loop != 1; // TODO: handle N loops for finite N + audio.play(); + return 0; + }, + + Mix_PauseMusic: function(id) { + var audio = SDL.musics[id].audio; + audio.pause(); + return 0; + }, + + Mix_ResumeMusic: function(id) { + var audio = SDL.musics[id].audio; + audio.play(); + return 0; + }, + + Mix_HaltMusic: function(id) { + var audio = SDL.musics[id].audio; + audio.pause(); // TODO: actually rewind to the beginning + return 0; + }, + // SDL TTF TTF_Init: function() { return 0 }, |