summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Oaks <daniel@danieloaks.net>2014-10-19 10:29:05 +1000
committerDaniel Oaks <daniel@danieloaks.net>2014-10-19 10:29:05 +1000
commit243e369b5e3bb3088ef54fba80f59cad0cf8e54c (patch)
treeeee8218241ae2f82e5098ec6b5e7649ecdacb3da
parent421b92974780627895a73d0a902f60f3f46e94c2 (diff)
downloadchiptune2.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.js19
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();