Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions src/input/composite_device/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -728,14 +728,16 @@ impl CompositeDevice {
// Check if the event needs to be translated based on the
// capability map. Translated events will be re-enqueued, so this will
// return early.
log::trace!(
"Translatable capabilities: {:?}",
self.translatable_capabilities
);
if self.capability_map.is_some() && self.translatable_capabilities.contains(&cap) {
log::trace!("Capability mapping found for event");
self.translate_capability(&event).await?;
return Ok(());
if !self.translatable_capabilities.is_empty() {
log::trace!(
"Translatable capabilities: {:?}",
self.translatable_capabilities
);
if self.capability_map.is_some() && self.translatable_capabilities.contains(&cap) {
log::trace!("Capability mapping found for event");
self.translate_capability(&event).await?;
return Ok(());
}
}
self.handle_event(event).await?;

Expand Down
22 changes: 8 additions & 14 deletions src/input/target/horipad_steam.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,27 +122,21 @@ impl HoripadSteamDevice {
event.get_value(),
);
// triggers at 128 exactly
let trigv = if pressed { 0.5 } else { 0.0 };
let trigr = NativeEvent::new(
let trigger_value = if pressed { 0.5 } else { 0.0 };
let trigger = NativeEvent::new(
Capability::Gamepad(Gamepad::Trigger(GamepadTrigger::RightTrigger)),
InputValue::Float(trigv),
InputValue::Float(trigger_value),
);

let (guide, trigr) = if pressed {
let (guide, trigger) = {
let guide = ScheduledNativeEvent::new(guide, Duration::from_millis(0));
let trigr =
ScheduledNativeEvent::new(trigr, Duration::from_millis(160));
(guide, trigr)
} else {
let guide =
ScheduledNativeEvent::new(guide, Duration::from_millis(240));
let trigr =
ScheduledNativeEvent::new(trigr, Duration::from_millis(160));
(guide, trigr)
let trigger =
ScheduledNativeEvent::new(trigger, Duration::from_millis(8));
(guide, trigger)
};

self.queued_events.push(guide);
self.queued_events.push(trigr);
self.queued_events.push(trigger);
}
_ => (),
},
Expand Down
19 changes: 6 additions & 13 deletions src/input/target/steam_deck.rs
Original file line number Diff line number Diff line change
Expand Up @@ -548,31 +548,24 @@ impl SteamDeckDevice {
GamepadButton::RightStickTouch => self.state.r_stick_touch = event.pressed(),
// TODO: Remove this once we add target device profiles
GamepadButton::Screenshot => {
let pressed = event.pressed();
let guide = NativeEvent::new(
Capability::Gamepad(Gamepad::Button(GamepadButton::Guide)),
event.get_value(),
);
let bumpr = NativeEvent::new(
let bumper = NativeEvent::new(
Capability::Gamepad(Gamepad::Button(GamepadButton::RightBumper)),
event.get_value(),
);

let (guide, bumpr) = if pressed {
let (guide, bumper) = {
let guide = ScheduledNativeEvent::new(guide, Duration::from_millis(0));
let bumpr =
ScheduledNativeEvent::new(bumpr, Duration::from_millis(160));
(guide, bumpr)
} else {
let guide =
ScheduledNativeEvent::new(guide, Duration::from_millis(240));
let bumpr =
ScheduledNativeEvent::new(bumpr, Duration::from_millis(160));
(guide, bumpr)
let bumper =
ScheduledNativeEvent::new(bumper, Duration::from_millis(1));
(guide, bumper)
};

self.queued_events.push(guide);
self.queued_events.push(bumpr);
self.queued_events.push(bumper);
}
_ => (),
},
Expand Down
19 changes: 6 additions & 13 deletions src/input/target/steam_deck_uhid.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,31 +152,24 @@ impl SteamDeckUhidDevice {
GamepadButton::RightStickTouch => self.state.r_stick_touch = event.pressed(),
// TODO: Remove this once we add target device profiles
GamepadButton::Screenshot => {
let pressed = event.pressed();
let guide = NativeEvent::new(
Capability::Gamepad(Gamepad::Button(GamepadButton::Guide)),
event.get_value(),
);
let bumpr = NativeEvent::new(
let bumper = NativeEvent::new(
Capability::Gamepad(Gamepad::Button(GamepadButton::RightBumper)),
event.get_value(),
);

let (guide, bumpr) = if pressed {
let (guide, bumper) = {
let guide = ScheduledNativeEvent::new(guide, Duration::from_millis(0));
let bumpr =
ScheduledNativeEvent::new(bumpr, Duration::from_millis(160));
(guide, bumpr)
} else {
let guide =
ScheduledNativeEvent::new(guide, Duration::from_millis(240));
let bumpr =
ScheduledNativeEvent::new(bumpr, Duration::from_millis(160));
(guide, bumpr)
let bumper =
ScheduledNativeEvent::new(bumper, Duration::from_millis(8));
(guide, bumper)
};

self.queued_events.push(guide);
self.queued_events.push(bumpr);
self.queued_events.push(bumper);
}
_ => (),
},
Expand Down
19 changes: 6 additions & 13 deletions src/input/target/ulitmate_2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -303,33 +303,26 @@ impl TargetInputDevice for Ultimate2WirelessDevice {
return Ok(());
}

// Screenshot maps to Guide+RightTrigger combo (press: Guide@0ms RightTrigger@160ms,
// release: RightTrigger@160ms Guide@240ms), same timing as horipad target.
if event.as_capability() == Capability::Gamepad(Gamepad::Button(GamepadButton::Screenshot))
{
let pressed = event.pressed();
let guide = NativeEvent::new(
Capability::Gamepad(Gamepad::Button(GamepadButton::Guide)),
event.get_value(),
);
let trigv = if pressed { 0.5 } else { 0.0 };
let trigr = NativeEvent::new(
let trigger_value = if pressed { 0.5 } else { 0.0 };
let trigger = NativeEvent::new(
Capability::Gamepad(Gamepad::Trigger(GamepadTrigger::RightTrigger)),
InputValue::Float(trigv),
InputValue::Float(trigger_value),
);
let (guide, trigr) = if pressed {
let (guide, trigger) = {
(
ScheduledNativeEvent::new(guide, Duration::from_millis(0)),
ScheduledNativeEvent::new(trigr, Duration::from_millis(160)),
)
} else {
(
ScheduledNativeEvent::new(guide, Duration::from_millis(240)),
ScheduledNativeEvent::new(trigr, Duration::from_millis(160)),
ScheduledNativeEvent::new(trigger, Duration::from_millis(1)),
)
};
self.queued_events.push(guide);
self.queued_events.push(trigr);
self.queued_events.push(trigger);
return Ok(());
}

Expand Down
Loading