diff options
author | Daniel Oaks <daniel@danieloaks.net> | 2014-10-19 10:29:05 +1000 |
---|---|---|
committer | Daniel Oaks <daniel@danieloaks.net> | 2014-10-19 10:29:05 +1000 |
commit | 243e369b5e3bb3088ef54fba80f59cad0cf8e54c (patch) | |
tree | eee8218241ae2f82e5098ec6b5e7649ecdacb3da | |
parent | 421b92974780627895a73d0a902f60f3f46e94c2 (diff) | |
download | chiptune2.js-243e369b5e3bb3088ef54fba80f59cad0cf8e54c.zip chiptune2.js-243e369b5e3bb3088ef54fba80f59cad0cf8e54c.tar.gz chiptune2.js-243e369b5e3bb3088ef54fba80f59cad0cf8e54c.tar.bz2 |
Add metadata and duration functions to player
-rw-r--r-- | js/chiptune2.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/js/chiptune2.js b/js/chiptune2.js index 4d5bf09..cc5af05 100644 --- a/js/chiptune2.js +++ b/js/chiptune2.js @@ -13,6 +13,25 @@ function ChiptuneJsPlayer(config) { this.currentPlayingNode = null; } +// metadata +ChiptuneJsPlayer.prototype.duration = function() { + return Module._openmpt_module_get_duration_seconds(this.currentPlayingNode.modulePtr); +} + +ChiptuneJsPlayer.prototype.metadata = function() { + var data = {}; + var keys = Module.Pointer_stringify(Module._openmpt_module_get_metadata_keys(this.currentPlayingNode.modulePtr)).split(';');; + var keyNameBuffer = 0; + for (i = 0; i < keys.length; i++) { + keyNameBuffer = Module._malloc(keys[i].length + 1); + Module.writeStringToMemory(keys[i], keyNameBuffer); + data[keys[i]] = Module.Pointer_stringify(Module._openmpt_module_get_metadata(player.currentPlayingNode.modulePtr, keyNameBuffer)); + Module._free(keyNameBuffer); + } + return data; +} + +// playing, etc ChiptuneJsPlayer.prototype.load = function(input, callback) { if (input instanceof File) { var reader = new FileReader(); |