diff options
author | ZoRo <dos21h@gmail.com> | 2021-08-26 09:48:17 +0100 |
---|---|---|
committer | ZoRo <dos21h@gmail.com> | 2021-08-26 09:48:17 +0100 |
commit | feb72389aa4e1070fcbc888280ea65b178176460 (patch) | |
tree | 4e8f0561958fb51842a13adec237184a70de276a /Build/index.html | |
parent | 3834bc793857aae02198d8f4c8a8373957269678 (diff) | |
download | NaiveFFT-feb72389aa4e1070fcbc888280ea65b178176460.tar.gz NaiveFFT-feb72389aa4e1070fcbc888280ea65b178176460.zip |
Update source to be compatible with emscripten
Diffstat (limited to 'Build/index.html')
-rw-r--r-- | Build/index.html | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/Build/index.html b/Build/index.html new file mode 100644 index 0000000..8f510ac --- /dev/null +++ b/Build/index.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>WebAssembly Example</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> + </head> + <body> + + + <!-- Include the JavaScript glue code. --> + <!-- This will load the WebAssembly module and run its main. --> + <script src="index.js"></script> + <script type='text/javascript'> + var Module = {}; + fetch('index.wasm') + .then(response => + response.arrayBuffer() + ).then(buffer => { + Module.canvas = document.getElementById("canvas"); + Module.wasmBinary = buffer; + var script = document.createElement('script'); + script.src = "index.js"; + script.onload = function() { + console.log("Emscripten boilerplate loaded."); + run_dft = Module.cwrap("dft", [],[['float'],['float'],'number','number']); + run_fft= Module.cwrap( "fft_1",[],[['float'],['float'],'number','number']); + + + + var inputData = document.querySelector('.inputData'); + + document.querySelector("#calcButton").onclick = function() { + console.log("calc FFT"); + + function cArray(size) { + var offset = Module._malloc(size * 8); + Module.HEAPF64.set(new Float64Array(size), offset / 8); + return { + "data": Module.HEAPF64.subarray(offset / 8, offset / 8 + size), + "offset": offset + } + } + + var strArr = inputData.value; + strArr = strArr.replace(/ +(?= )/g,''); + var splArr = strArr.split(" "); + if (splArr.some(i => i != parseFloat(i))) { + throw i + " is not integer" + } + //max size 8 values, as thats enought for a demo + //https://stackoverflow.com/questions/17883799/how-to-handle-passing-returning-array-pointers-to-emscripten-compiled-code + + + myArray = cArray(8).fill(0.0); + + + } + + } //end onload + document.body.appendChild(script); + }); + + + </script> + + FFT demo + <textarea class="inputData">12 12 12</textarea> + <button id="calcButton" type="button">Cals</button> + + <script> + function calcFFT() { + console.log("Calculate FFT") + var arrStr = inputData.value; + console.log(arrStr) + } + </script> + + </body> +</html>
\ No newline at end of file |