mirror of
https://github.com/marcriera/ddgo-converter.git
synced 2025-04-19 18:39:29 +02:00
Basic ZKNS-001 support
This commit is contained in:
parent
9712d26508
commit
fd032173b8
3 changed files with 61 additions and 2 deletions
|
@ -23,7 +23,6 @@ class InputEvent:
|
||||||
BUTTON_LDOOR = 10
|
BUTTON_LDOOR = 10
|
||||||
BUTTON_RDOOR = 11
|
BUTTON_RDOOR = 11
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, type, data):
|
def __init__(self, type, data):
|
||||||
self.type = type
|
self.type = type
|
||||||
self.data = data
|
self.data = data
|
|
@ -74,6 +74,67 @@ class SwitchGamepad(PhysicalGamepad):
|
||||||
input_events.append(InputEvent(InputEvent.EventType(event.value), InputEvent.Button.BUTTON_SELECT))
|
input_events.append(InputEvent(InputEvent.EventType(event.value), InputEvent.Button.BUTTON_SELECT))
|
||||||
case 313: # PLUS
|
case 313: # PLUS
|
||||||
input_events.append(InputEvent(InputEvent.EventType(event.value), InputEvent.Button.BUTTON_START))
|
input_events.append(InputEvent(InputEvent.EventType(event.value), InputEvent.Button.BUTTON_START))
|
||||||
|
if event.type == evdev.ecodes.EV_ABS and event.code == evdev.ecodes.ABS_HAT0X:
|
||||||
|
match event.value:
|
||||||
|
case -1: # LEFT
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_SELECT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_LEFT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_RIGHT))
|
||||||
|
case 1: # RIGHT
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_SELECT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_LEFT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_RIGHT))
|
||||||
|
case _: # NONE
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_SELECT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_LEFT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_RIGHT))
|
||||||
|
if event.type == evdev.ecodes.EV_ABS and event.code == evdev.ecodes.ABS_HAT0Y:
|
||||||
|
match event.value:
|
||||||
|
case -1: # UP
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_SELECT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_UP))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_DOWN))
|
||||||
|
case 1: # DOWN
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_SELECT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_UP))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.PRESS_BUTTON, InputEvent.Button.BUTTON_DOWN))
|
||||||
|
case _: # NONE
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_SELECT))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_UP))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.RELEASE_BUTTON, InputEvent.Button.BUTTON_DOWN))
|
||||||
|
if event.type == evdev.ecodes.EV_ABS and event.code == evdev.ecodes.ABS_Y:
|
||||||
|
match event.value:
|
||||||
|
case 0x0: # EMG
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 9))
|
||||||
|
case 0x5:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 8))
|
||||||
|
case 0x13:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 7))
|
||||||
|
case 0x20:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 6))
|
||||||
|
case 0x2E:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 5))
|
||||||
|
case 0x3C:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 4))
|
||||||
|
case 0x49:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 3))
|
||||||
|
case 0x57:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 2))
|
||||||
|
case 0x65:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 1))
|
||||||
|
case 0x80: # N
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.BRAKE_NOTCH, 0))
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 0))
|
||||||
|
case 0x9F:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 1))
|
||||||
|
case 0xB7:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 2))
|
||||||
|
case 0xCE:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 3))
|
||||||
|
case 0xE6:
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 4))
|
||||||
|
case 0xFF: # P5
|
||||||
|
input_events.append(InputEvent(InputEvent.EventType.POWER_NOTCH, 5))
|
||||||
return input_events
|
return input_events
|
||||||
except OSError:
|
except OSError:
|
||||||
return [InputEvent(InputEvent.EventType.ERROR, None)]
|
return [InputEvent(InputEvent.EventType.ERROR, None)]
|
||||||
|
|
|
@ -13,7 +13,6 @@ class GamepadHandler:
|
||||||
devices = [InputDevice(path) for path in list_devices()]
|
devices = [InputDevice(path) for path in list_devices()]
|
||||||
for device in devices:
|
for device in devices:
|
||||||
gamepads.append(gamepad_physical.create_gamepad(device.info.vendor, device.info.product, device.name))
|
gamepads.append(gamepad_physical.create_gamepad(device.info.vendor, device.info.product, device.name))
|
||||||
gamepads.append(gamepad_physical.create_gamepad(0x0f0d, 0x00c1, "Test gamepad"))
|
|
||||||
return gamepads
|
return gamepads
|
||||||
|
|
||||||
def run_gamepad_emulator(gamepad, emulated_gamepad, stop_event):
|
def run_gamepad_emulator(gamepad, emulated_gamepad, stop_event):
|
||||||
|
|
Loading…
Add table
Reference in a new issue