gameflow-deck/src/bun/api/controls/gamepad.ts

32 lines
No EOL
634 B
TypeScript

// ./gamepad/index.ts
import { platform } from "os";
import { GamepadWindows } from "./windows";
import { GamepadLinux } from "./linux";
import type { IGamepadBackend, GamepadState } from "./types";
export class Gamepad
{
private backend: IGamepadBackend;
constructor(index = 0)
{
if (platform() === "win32")
{
this.backend = new GamepadWindows(index);
} else
{
this.backend = new GamepadLinux(index);
}
}
update (): GamepadState | null
{
return this.backend.update();
}
close ()
{
this.backend.close?.();
}
}