diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2017-10-15 21:22:25 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2017-10-15 21:22:25 +0200 |
commit | 44e8d9cee54a24367d25410f78aa10d479eda572 (patch) | |
tree | c437d8ee3ab88797c6c6cc1928e6b756fc4045c0 /web | |
parent | 8fd6dd041fddaedfadd2e5aa4b6072ef7e106393 (diff) |
Moved emscripten APIs to their own module and added stubs for other methods
Diffstat (limited to 'web')
-rw-r--r-- | web/main.js | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/web/main.js b/web/main.js index b01340d..2388be8 100644 --- a/web/main.js +++ b/web/main.js @@ -5,21 +5,30 @@ var Module = { onRuntimeInitialized: main }; -function jsArrayToF32ArrayPtr(jsArray) { +function jsArrayToF32ArrayPtr(jsArray, callback) { var data = new Float32Array(jsArray); var nDataBytes = data.length * data.BYTES_PER_ELEMENT; var dataPtr = Module._malloc(nDataBytes); var dataHeap = new Uint8Array(Module.HEAPU8.buffer, dataPtr, nDataBytes); dataHeap.set(new Uint8Array(data.buffer)); - return dataHeap.byteOffset; + + var result = callback(dataHeap.byteOffset, jsArray.length); + + Module._free(dataPtr); + + return result; +} + +function find_fundamental_frequency(data, samplingRate) { + return jsArrayToF32ArrayPtr(data, function(dataPtr, dataLength) { + return Module._find_fundamental_frequency(dataPtr, dataLength, samplingRate); + }); } function main() { var data = [1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0]; - var dataLength = data.length; - var ptr = jsArrayToF32ArrayPtr(data); - - var fundamental = _find_fundamental_frequency(ptr, data.length, 44100.0); + var fundamental = find_fundamental_frequency(data, 44100.0); + console.log("Javascript here. Our fundamental frequency according to Rust is " + fundamental + "Hz"); } |