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_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_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)) input_events.append(InputEvent(InputEvent.EventType(self.Buttons.BUTTON_START in self.buttons), InputEvent.Button.BUTTON_START))
match self.power: if event.type == evdev.ecodes.EV_SYN:
case 6: match self.power:
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 0)) case 6:
case 5: input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 0))
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 1)) case 5:
case 4: input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 1))
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 2)) case 4:
case 3: input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 2))
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 3)) case 3:
case 2: input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 3))
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 4)) case 2:
case 1: input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 4))
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 5)) case 1:
match self.brake: input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 5))
case 14: match self.brake:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 0)) case 14:
case 13: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 0))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 1)) case 13:
case 12: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 1))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 2)) case 12:
case 11: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 2))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 3)) case 11:
case 10: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 3))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 4)) case 10:
case 9: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 4))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 5)) case 9:
case 8: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 5))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 6)) case 8:
case 7: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 6))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 7)) case 7:
case 6: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 7))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 8)) case 6:
case 0: input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 8))
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 9)) case 0:
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 9))
return input_events return input_events
except OSError: except OSError:
return [InputEvent(InputEvent.EventType.ERROR, None)] return [InputEvent(InputEvent.EventType.ERROR, None)]