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>");