disruption

This commit is contained in:
2026-02-18 16:47:33 -06:00
parent 91b73f923a
commit c0cd6a61a6
33 changed files with 889 additions and 948 deletions

View File

@@ -9,24 +9,24 @@
// --- Lua API Functions ---
JSC_CCALL(lua_stop,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->stop();
return JS_NULL;
)
JSC_CCALL(lua_start,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->start();
return JS_NULL;
)
JSC_CCALL(lua_getArgCount,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
return JS_NewInt32(js, pd_lua->getArgCount());
)
JSC_CCALL(lua_getArgType,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
int pos = (int)js2number(js, argv[0]);
const char *outClass = NULL;
enum LuaType type = pd_lua->getArgType(pos, &outClass);
@@ -37,33 +37,33 @@ JSC_CCALL(lua_getArgType,
)
JSC_CCALL(lua_argIsNil,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
return JS_NewBool(js, pd_lua->argIsNil((int)js2number(js, argv[0])));
)
JSC_CCALL(lua_getArgBool,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
return JS_NewBool(js, pd_lua->getArgBool((int)js2number(js, argv[0])));
)
JSC_CCALL(lua_getArgInt,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
return JS_NewInt32(js, pd_lua->getArgInt((int)js2number(js, argv[0])));
)
JSC_CCALL(lua_getArgFloat,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
return JS_NewFloat64(js, pd_lua->getArgFloat((int)js2number(js, argv[0])));
)
JSC_CCALL(lua_getArgString,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
const char *str = pd_lua->getArgString((int)js2number(js, argv[0]));
return str ? JS_NewString(js, str) : JS_NULL;
)
JSC_CCALL(lua_getArgBytes,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
size_t len;
const char *bytes = pd_lua->getArgBytes((int)js2number(js, argv[0]), &len);
if (!bytes) return JS_NULL;
@@ -71,36 +71,36 @@ JSC_CCALL(lua_getArgBytes,
)
JSC_CCALL(lua_pushNil,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->pushNil();
return JS_NULL;
)
JSC_CCALL(lua_pushBool,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->pushBool(JS_ToBool(js, argv[0]));
return JS_NULL;
)
JSC_CCALL(lua_pushInt,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->pushInt((int)js2number(js, argv[0]));
return JS_NULL;
)
JSC_CCALL(lua_pushFloat,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->pushFloat((float)js2number(js, argv[0]));
return JS_NULL;
)
JSC_SCALL(lua_pushString,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
pd_lua->pushString(str);
)
JSC_CCALL(lua_pushBytes,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
size_t len;
const char *data = js_get_blob_data(js, &len, argv[0]);
if (data == (void*)-1) return JS_EXCEPTION;
@@ -109,12 +109,12 @@ JSC_CCALL(lua_pushBytes,
)
JSC_SCALL(lua_callFunction,
if (!pd_lua) return JS_ThrowInternalError(js, "lua not initialized");
if (!pd_lua) return JS_RaiseDisrupt(js, "lua not initialized");
int nargs = argc > 1 ? (int)js2number(js, argv[1]) : 0;
const char *outerr = NULL;
int result = pd_lua->callFunction(str, nargs, &outerr);
if (result == 0 && outerr) {
ret = JS_ThrowInternalError(js, "Lua error: %s", outerr);
ret = JS_RaiseDisrupt(js, "Lua error: %s", outerr);
} else {
ret = JS_NewBool(js, result);
}