fix syntax

This commit is contained in:
2026-02-17 09:12:48 -06:00
parent 6f6f987649
commit d509f7cbb8
21 changed files with 503 additions and 453 deletions

View File

@@ -150,8 +150,9 @@ static const char *mouse_button_to_string(Uint8 button) {
// Convert SDL_Event to JS object
static JSValue event_to_js(JSContext *js, SDL_Event *event) {
JSValue obj = JS_NewObject(js);
JS_FRAME(js);
JS_LOCAL(obj, JS_NewObject(js));
JS_SetPropertyStr(js, obj, "type", JS_NewString(js, event_type_to_string(event->type)));
JS_SetPropertyStr(js, obj, "timestamp", JS_NewInt64(js, event->common.timestamp));
@@ -322,8 +323,10 @@ static JSValue event_to_js(JSContext *js, SDL_Event *event) {
JS_SetPropertyStr(js, obj, "sensor", JS_NewInt32(js, event->gsensor.sensor));
{
JSValue data = JS_NewArray(js);
JSLocalRef data__lr = {.ptr = &data};
JS_PushLocalRef(_js_ctx, &data__lr);
for (int i = 0; i < 3; i++) {
JS_SetPropertyUint32(js, data, i, JS_NewFloat64(js, event->gsensor.data[i]));
JS_SetPropertyNumber(js, data, i, JS_NewFloat64(js, event->gsensor.data[i]));
}
JS_SetPropertyStr(js, obj, "data", data);
}
@@ -375,8 +378,10 @@ static JSValue event_to_js(JSContext *js, SDL_Event *event) {
JS_SetPropertyStr(js, obj, "which", JS_NewUint32(js, event->sensor.which));
{
JSValue data = JS_NewArray(js);
JSLocalRef data__lr = {.ptr = &data};
JS_PushLocalRef(_js_ctx, &data__lr);
for (int i = 0; i < 6; i++) {
JS_SetPropertyUint32(js, data, i, JS_NewFloat64(js, event->sensor.data[i]));
JS_SetPropertyNumber(js, data, i, JS_NewFloat64(js, event->sensor.data[i]));
}
JS_SetPropertyStr(js, obj, "data", data);
}
@@ -438,8 +443,8 @@ static JSValue event_to_js(JSContext *js, SDL_Event *event) {
default:
break;
}
return obj;
JS_RETURN(obj);
}
// SDL_PumpEvents()
@@ -480,22 +485,24 @@ JSC_CCALL(events_wait,
JSC_CCALL(events_peep,
int count = 10;
if (argc > 0) JS_ToInt32(js, &count, argv[0]);
SDL_Event *events = malloc(count * sizeof(SDL_Event));
if (!events) return JS_ThrowOutOfMemory(js);
int num = SDL_PeepEvents(events, count, SDL_PEEKEVENT, SDL_EVENT_FIRST, SDL_EVENT_LAST);
if (num < 0) {
free(events);
return JS_NewArray(js);
}
JSValue arr = JS_NewArray(js);
JS_FRAME(js);
JS_LOCAL(arr, JS_NewArray(js));
for (int i = 0; i < num; i++) {
JS_SetPropertyUint32(js, arr, i, event_to_js(js, &events[i]));
JS_SetPropertyNumber(js, arr, i, event_to_js(js, &events[i]));
}
free(events);
return arr;
JS_RestoreFrame(_js_ctx, _js_gc_frame, _js_local_frame);
ret = arr;
)
// SDL_HasEvent(type) -> bool
@@ -524,13 +531,15 @@ JSC_CCALL(events_flush_range,
// Get all pending events as array
JSC_CCALL(events_get_all,
JSValue arr = JS_NewArray(js);
JS_FRAME(js);
JS_LOCAL(arr, JS_NewArray(js));
SDL_Event event;
int i = 0;
while (SDL_PollEvent(&event)) {
JS_SetPropertyUint32(js, arr, i++, event_to_js(js, &event));
JS_SetPropertyNumber(js, arr, i++, event_to_js(js, &event));
}
return arr;
JS_RestoreFrame(_js_ctx, _js_gc_frame, _js_local_frame);
ret = arr;
)
static const JSCFunctionListEntry js_events_funcs[] = {
@@ -544,4 +553,9 @@ static const JSCFunctionListEntry js_events_funcs[] = {
MIST_FUNC_DEF(events, get_all, 0),
};
CELL_USE_FUNCS(js_events_funcs)
CELL_USE_INIT(
JS_FRAME(js);
JS_LOCAL(mod, JS_NewObject(js));
JS_SetPropertyFunctionList(js, mod, js_events_funcs, countof(js_events_funcs));
JS_RETURN(mod);
)