aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-21 15:23:00 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-03-21 15:23:00 -0700
commitf3ec1907dab69c066fb47618fa076b0779194e85 (patch)
tree13ddcdfc6c8be3cbf215834b5f091a14ec3363a0 /src
parent44e1d4a267d1ab7786ec0191e6e9a1ca648b77db (diff)
some SDL audio stuff
Diffstat (limited to 'src')
-rw-r--r--src/library_sdl.js42
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 },