Skip to content

Commit 41fc6c5

Browse files
committed
port: Gamepad
1 parent fb3eea3 commit 41fc6c5

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/Gamepad/main.js renamed to src/Gamepad/main.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import Gtk from "gi://Gtk?version=4.0";
12
import Manette from "gi://Manette";
23

3-
const stack = workbench.builder.get_object("stack");
4+
const stack = workbench.builder.get_object<Gtk.Stack>("stack");
45
const button_rumble = workbench.builder.get_object("button_rumble");
56

6-
const devices = new Set();
7+
const devices = new Set<Manette.Device>();
78

89
stack.visible_child_name = "connect";
910
button_rumble.connect("clicked", () => {
@@ -14,22 +15,26 @@ button_rumble.connect("clicked", () => {
1415
}
1516
});
1617

17-
function onDevice(device) {
18+
function onDevice(device: Manette.Device) {
1819
console.log("Device connected:", device.get_name());
1920

2021
// Face and Shoulder Buttons
2122
device.connect("button-press-event", (device, event) => {
2223
const [success, button] = event.get_button();
2324
console.log(
24-
`${device.get_name()}: press ${success ? button : event.get_hardware_code()}`,
25+
`${device.get_name()}: press ${
26+
success ? button : event.get_hardware_code()
27+
}`,
2528
);
2629
});
2730

2831
// Face and Shoulder Buttons
2932
device.connect("button-release-event", (device, event) => {
3033
const [success, button] = event.get_button();
3134
console.log(
32-
`${device.get_name()}: release ${success ? button : event.get_hardware_code()}`,
35+
`${device.get_name()}: release ${
36+
success ? button : event.get_hardware_code()
37+
}`,
3338
);
3439
});
3540

@@ -42,8 +47,9 @@ function onDevice(device) {
4247
// Analog Axis - Triggers and Joysticks
4348
device.connect("absolute-axis-event", (device, event) => {
4449
const [, axis, value] = event.get_absolute();
45-
if (Math.abs(value) > 0.2)
50+
if (Math.abs(value) > 0.2) {
4651
console.log(`${device.get_name()}: moved axis ${axis} to ${value}`);
52+
}
4753
});
4854

4955
devices.add(device);
@@ -60,14 +66,14 @@ function onDeviceDisconnected(device) {
6066
const monitor = new Manette.Monitor();
6167
const monitor_iter = monitor.iterate();
6268

63-
let has_next;
64-
let device;
69+
let has_next: boolean, device: Manette.Device | null;
6570
do {
6671
[has_next, device] = monitor_iter.next();
6772
if (device !== null) onDevice(device);
6873
} while (has_next);
6974

7075
monitor.connect("device-connected", (_self, device) => onDevice(device));
71-
monitor.connect("device-disconnected", (_self, device) =>
72-
onDeviceDisconnected(device),
76+
monitor.connect(
77+
"device-disconnected",
78+
(_self, device) => onDeviceDisconnected(device),
7379
);

0 commit comments

Comments
 (0)