Mercurial > hg > js-dsp-test
diff fft/cross/Crosswrap.js @ 5:b4ab69bdb4c8
Beginnings of an emscripten example
author | Chris Cannam |
---|---|
date | Mon, 05 Oct 2015 11:30:40 +0100 |
parents | |
children | 91d77df352fa |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fft/cross/Crosswrap.js Mon Oct 05 11:30:40 2015 +0100 @@ -0,0 +1,27 @@ + +document.write("<p>start</p>"); + +fftCross = Module.cwrap( + 'fftCross', 'void', ['number', 'number', 'number', 'number', 'number', 'number' ] +); + +var data = new Float64Array([1,1,1,1,1,1,1,1]); +var n = data.length * data.BYTES_PER_ELEMENT; +var ptr = Module._malloc(n * 4); +var h1 = new Uint8Array(Module.HEAPU8.buffer, ptr, n); +var h2 = new Uint8Array(Module.HEAPU8.buffer, ptr + n, n); +document.write("ptr = " + ptr + ", h1 = " + h1 + "<br>"); +h1.set(new Uint8Array(data.buffer)); +h2.set(new Uint8Array(data.buffer)); +var result = fftCross(8, 0, ptr, ptr + n, ptr + 2*n, ptr + 3*n); +var real = new Float64Array(Module.HEAPU8.buffer, ptr + 2*n, 8); +var imag = new Float64Array(Module.HEAPU8.buffer, ptr + 3*n, 8); +document.write("result: " + result + "<br>"); +document.write("output: "); +for (var i = 0; i < 8; ++i) { + document.write(real[i] + "," + imag[i] + " "); +} +Module._free(ptr); + + +document.write("<p>end</p>");