61 lines
2.1 KiB
Rust
61 lines
2.1 KiB
Rust
use gilrs::{Axis, Button, Gilrs};
|
|
use uuid::Uuid;
|
|
|
|
fn main() {
|
|
let gilrs = Gilrs::new().unwrap();
|
|
for (id, gamepad) in gilrs.gamepads() {
|
|
println!(
|
|
r#"Gamepad {id} ({name}):
|
|
Map name: {map_name:?}
|
|
Os name: {os_name}
|
|
UUID: {uuid}
|
|
Is connected: {is_connected}
|
|
Power info: {power_info:?}
|
|
Mapping source: {mapping_source:?}
|
|
Is ff supported: {ff}
|
|
Deadzone Left X: {dlx:?}
|
|
Deadzone Left Y: {dly:?}
|
|
Deadzone Right X: {drx:?}
|
|
Deadzone Right Y: {dry:?}
|
|
Deadzone Left Trigger: {dlt:?}
|
|
Deadzone Right Trigger: {drt:?}
|
|
Deadzone Left Trigger 2: {dlt2:?}
|
|
Deadzone Right Trigger 2: {drt2:?}
|
|
"#,
|
|
id = id,
|
|
name = gamepad.name(),
|
|
map_name = gamepad.map_name(),
|
|
os_name = gamepad.os_name(),
|
|
uuid = Uuid::from_bytes(gamepad.uuid()).as_hyphenated(),
|
|
is_connected = gamepad.is_connected(),
|
|
power_info = gamepad.power_info(),
|
|
mapping_source = gamepad.mapping_source(),
|
|
ff = gamepad.is_ff_supported(),
|
|
dlx = gamepad
|
|
.axis_code(Axis::LeftStickX)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
dly = gamepad
|
|
.axis_code(Axis::LeftStickY)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
drx = gamepad
|
|
.axis_code(Axis::RightStickX)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
dry = gamepad
|
|
.axis_code(Axis::RightStickY)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
dlt = gamepad
|
|
.button_code(Button::LeftTrigger)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
drt = gamepad
|
|
.button_code(Button::RightTrigger)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
dlt2 = gamepad
|
|
.button_code(Button::LeftTrigger2)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
drt2 = gamepad
|
|
.button_code(Button::RightTrigger2)
|
|
.and_then(|code| gamepad.deadzone(code)),
|
|
);
|
|
}
|
|
}
|