Mercurial > hg > js-dsp-test
comparison 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 |
comparison
equal
deleted
inserted
replaced
4:fcb64e4b8393 | 5:b4ab69bdb4c8 |
---|---|
1 | |
2 document.write("<p>start</p>"); | |
3 | |
4 fftCross = Module.cwrap( | |
5 'fftCross', 'void', ['number', 'number', 'number', 'number', 'number', 'number' ] | |
6 ); | |
7 | |
8 var data = new Float64Array([1,1,1,1,1,1,1,1]); | |
9 var n = data.length * data.BYTES_PER_ELEMENT; | |
10 var ptr = Module._malloc(n * 4); | |
11 var h1 = new Uint8Array(Module.HEAPU8.buffer, ptr, n); | |
12 var h2 = new Uint8Array(Module.HEAPU8.buffer, ptr + n, n); | |
13 document.write("ptr = " + ptr + ", h1 = " + h1 + "<br>"); | |
14 h1.set(new Uint8Array(data.buffer)); | |
15 h2.set(new Uint8Array(data.buffer)); | |
16 var result = fftCross(8, 0, ptr, ptr + n, ptr + 2*n, ptr + 3*n); | |
17 var real = new Float64Array(Module.HEAPU8.buffer, ptr + 2*n, 8); | |
18 var imag = new Float64Array(Module.HEAPU8.buffer, ptr + 3*n, 8); | |
19 document.write("result: " + result + "<br>"); | |
20 document.write("output: "); | |
21 for (var i = 0; i < 8; ++i) { | |
22 document.write(real[i] + "," + imag[i] + " "); | |
23 } | |
24 Module._free(ptr); | |
25 | |
26 | |
27 document.write("<p>end</p>"); |