From 52a34383cc549327283a61bf1e8d9c49c239e731 Mon Sep 17 00:00:00 2001 From: Marc Riera Date: Fri, 18 Nov 2022 20:09:49 +0100 Subject: [PATCH] Sync before processing power/brake data --- ddgo-converter/gamepads/physical.py | 69 +++++++++++++++-------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/ddgo-converter/gamepads/physical.py b/ddgo-converter/gamepads/physical.py index 73b6f7a..7002f93 100755 --- a/ddgo-converter/gamepads/physical.py +++ b/ddgo-converter/gamepads/physical.py @@ -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)]