blob: 9f5718b2688da8b2d9f4e0b4a08e342efac6813a [file] [edit]
/**
* Constants
*/
const SIZE_I32 = Uint32Array.BYTES_PER_ELEMENT;
const DEFAULT_ARGS = [];
Module["SIZE_I32"] = SIZE_I32;
Module["DEFAULT_ARGS"] = DEFAULT_ARGS;
Module["logger"] = () => {};
Module["noInitialRun"] = true;
Module["noExitRuntime"] = true;
/**
* Functions
*/
function stringToPtr(str) {
const len = Module["lengthBytesUTF8"](str) + 1;
const ptr = Module["_malloc"](len);
Module["stringToUTF8"](str, ptr, len);
return ptr;
}
function stringsToPtr(strs) {
const len = strs.length;
const ptr = Module["_malloc"](len * SIZE_I32);
for (let i = 0; i < len; i++) {
Module["setValue"](ptr + SIZE_I32 * i, stringToPtr(strs[i]), "i32");
}
return ptr;
}
function print(message) {
Module["logger"]({ type: "stdout", message });
}
function printErr(message) {
Module["logger"]({ type: "stderr", message });
}
function exec(tool, ..._args) {
const args = [tool, ...Module["DEFAULT_ARGS"], ..._args];
try {
Module["_main"](args.length, stringsToPtr(args));
} catch (e) {
if (e !== "unwind") {
throw e;
}
}
}
function _locateFile(path, prefix) {
const hashedWasmBinaryFile = Module["hashedWasmBinaryFile"];
if (hashedWasmBinaryFile && path.endsWith(".wasm")) {
return hashedWasmBinaryFile;
}
return prefix + path;
}
function setLogger(logger) {
Module["logger"] = logger;
}
Module["stringToPtr"] = stringToPtr;
Module["stringsToPtr"] = stringsToPtr;
Module["locateFile"] = _locateFile;
Module["exec"] = exec;
if (libgpac.use_logger) {
Module["print"] = print;
Module["printErr"] = printErr;
Module["setLogger"] = setLogger;
}