Sync before processing power/brake data

This commit is contained in:
Marc Riera 2022-11-18 20:09:49 +01:00
parent bed298ac99
commit 52a34383cc

View file

@ -240,40 +240,41 @@ class ClassicGamepad(PhysicalGamepad):
input_events.append(InputEvent(InputEvent.EventType(self.Buttons.BUTTON_C in self.buttons), InputEvent.Button.BUTTON_C))
input_events.append(InputEvent(InputEvent.EventType(self.Buttons.BUTTON_SELECT in self.buttons), InputEvent.Button.BUTTON_SELECT))
input_events.append(InputEvent(InputEvent.EventType(self.Buttons.BUTTON_START in self.buttons), InputEvent.Button.BUTTON_START))
match self.power:
case 6:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 0))
case 5:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 1))
case 4:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 2))
case 3:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 3))
case 2:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 4))
case 1:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 5))
match self.brake:
case 14:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 0))
case 13:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 1))
case 12:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 2))
case 11:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 3))
case 10:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 4))
case 9:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 5))
case 8:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 6))
case 7:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 7))
case 6:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 8))
case 0:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 9))
if event.type == evdev.ecodes.EV_SYN:
match self.power:
case 6:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 0))
case 5:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 1))
case 4:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 2))
case 3:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 3))
case 2:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 4))
case 1:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 5))
match self.brake:
case 14:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 0))
case 13:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 1))
case 12:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 2))
case 11:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 3))
case 10:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 4))
case 9:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 5))
case 8:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 6))
case 7:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 7))
case 6:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 8))
case 0:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 9))
return input_events
except OSError:
return [InputEvent(InputEvent.EventType.ERROR, None)]