2025-08-18 17:28:06 +01:00
|
|
|
(() => {
|
|
|
|
|
globalThis.handleSDLInputEvents = () => {
|
|
|
|
|
internals.handleSDLInputEvents();
|
|
|
|
|
return new Promise(resolve => {
|
|
|
|
|
setTimeout(() => resolve(), 0);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
globalThis.getStringifiedGamepads = () => {
|
|
|
|
|
const gamepads = navigator.getGamepads().map(gamepad => ({
|
|
|
|
|
id: gamepad.id,
|
|
|
|
|
index: gamepad.index,
|
|
|
|
|
connected: gamepad.connected,
|
|
|
|
|
mapping: gamepad.mapping,
|
|
|
|
|
axes: gamepad.axes,
|
|
|
|
|
buttons: gamepad.buttons.map(button => ({
|
|
|
|
|
pressed: button.pressed,
|
|
|
|
|
touched: button.touched,
|
|
|
|
|
value: button.value,
|
|
|
|
|
})),
|
|
|
|
|
vibrationActuator: {
|
|
|
|
|
effects: gamepad.vibrationActuator.effects,
|
|
|
|
|
},
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
return JSON.stringify(gamepads);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
globalThis.listenForGamepadConnected = () => {
|
|
|
|
|
window.addEventListener("gamepadconnected", ({ gamepad }) => {
|
2025-10-31 11:50:48 -04:00
|
|
|
println(`Received gamepadconnected event for '${gamepad.id}' at index ${gamepad.index}`);
|
2025-08-18 17:28:06 +01:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
globalThis.listenForGamepadDisconnected = () => {
|
|
|
|
|
window.addEventListener("gamepaddisconnected", ({ gamepad }) => {
|
2025-10-31 11:50:48 -04:00
|
|
|
println(`Received gamepaddisconnected event for '${gamepad.id}' at index ${gamepad.index}`);
|
2025-08-18 17:28:06 +01:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
})();
|