Add D-pad support

This commit is contained in:
Marc Riera 2022-10-02 23:58:45 +02:00
parent fc85bb3ae6
commit cc8a271883

View file

@ -31,6 +31,7 @@ if mascon_switch is None:
ui = UInput(cap, vendor=0x0AE4, product=0x0003, name='Emulated DGOC-44U') ui = UInput(cap, vendor=0x0AE4, product=0x0003, name='Emulated DGOC-44U')
mascon_switch.grab()
for event in mascon_switch.read_loop(): for event in mascon_switch.read_loop():
if event.type == e.EV_KEY: if event.type == e.EV_KEY:
match event.code: match event.code:
@ -49,9 +50,43 @@ for event in mascon_switch.read_loop():
case 312: # MINUS case 312: # MINUS
ui.write(e.EV_KEY, e.BTN_SELECT, event.value) ui.write(e.EV_KEY, e.BTN_SELECT, event.value)
ui.syn() ui.syn()
case 313: # START case 313: # PLUS
ui.write(e.EV_KEY, e.BTN_START, event.value) ui.write(e.EV_KEY, e.BTN_START, event.value)
ui.syn() ui.syn()
if event.type == e.EV_ABS and event.code == e.ABS_HAT0X:
match event.value:
case -1: # LEFT
ui.write(e.EV_KEY, e.BTN_SELECT, 1)
ui.write(e.EV_KEY, e.BTN_EAST, 1)
ui.write(e.EV_KEY, e.BTN_NORTH, 0)
ui.syn()
case 1: # RIGHT
ui.write(e.EV_KEY, e.BTN_SELECT, 1)
ui.write(e.EV_KEY, e.BTN_EAST, 0)
ui.write(e.EV_KEY, e.BTN_NORTH, 1)
ui.syn()
case _: # NONE
ui.write(e.EV_KEY, e.BTN_SELECT, 0)
ui.write(e.EV_KEY, e.BTN_EAST, 0)
ui.write(e.EV_KEY, e.BTN_NORTH, 0)
ui.syn()
if event.type == e.EV_ABS and event.code == e.ABS_HAT0Y:
match event.value:
case -1: # UP
ui.write(e.EV_KEY, e.BTN_SELECT, 1)
ui.write(e.EV_KEY, e.BTN_WEST, 1)
ui.write(e.EV_KEY, e.BTN_SOUTH, 0)
ui.syn()
case 1: # DOWN
ui.write(e.EV_KEY, e.BTN_SELECT, 1)
ui.write(e.EV_KEY, e.BTN_WEST, 0)
ui.write(e.EV_KEY, e.BTN_SOUTH, 1)
ui.syn()
case _: # NONE
ui.write(e.EV_KEY, e.BTN_SELECT, 0)
ui.write(e.EV_KEY, e.BTN_WEST, 0)
ui.write(e.EV_KEY, e.BTN_SOUTH, 0)
ui.syn()
if event.type == e.EV_ABS and event.code == e.ABS_Y: if event.type == e.EV_ABS and event.code == e.ABS_Y:
match event.value: match event.value:
case 0x0: # EMG case 0x0: # EMG