aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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 },