mirror of
https://github.com/dekuNukem/USB4VC.git
synced 2025-10-31 11:26:46 -07:00
602 lines
17 KiB
Python
602 lines
17 KiB
Python
import os
|
|
|
|
this_app_dir_path = "/home/pi/usb4vc/rpi_app"
|
|
config_dir_path = "/home/pi/usb4vc/config"
|
|
firmware_dir_path = "/home/pi/usb4vc/firmware"
|
|
temp_dir_path = "/home/pi/usb4vc/temp"
|
|
|
|
i2c_bootloader_pbid = [1]
|
|
usb_bootloader_pbid = [2]
|
|
|
|
def ensure_dir(dir_path):
|
|
print('ensure_dir', dir_path)
|
|
if not os.path.exists(dir_path):
|
|
os.makedirs(dir_path)
|
|
|
|
RPI_APP_VERSION_TUPLE = (0, 2, 1)
|
|
|
|
code_name_to_value_lookup = {
|
|
'KEY_RESERVED':(0, 'kb_key'),
|
|
'KEY_ESC':(1, 'kb_key'),
|
|
'KEY_1':(2, 'kb_key'),
|
|
'KEY_2':(3, 'kb_key'),
|
|
'KEY_3':(4, 'kb_key'),
|
|
'KEY_4':(5, 'kb_key'),
|
|
'KEY_5':(6, 'kb_key'),
|
|
'KEY_6':(7, 'kb_key'),
|
|
'KEY_7':(8, 'kb_key'),
|
|
'KEY_8':(9, 'kb_key'),
|
|
'KEY_9':(10, 'kb_key'),
|
|
'KEY_0':(11, 'kb_key'),
|
|
'KEY_MINUS':(12, 'kb_key'),
|
|
'KEY_EQUAL':(13, 'kb_key'),
|
|
'KEY_BACKSPACE':(14, 'kb_key'),
|
|
'KEY_TAB':(15, 'kb_key'),
|
|
'KEY_Q':(16, 'kb_key'),
|
|
'KEY_W':(17, 'kb_key'),
|
|
'KEY_E':(18, 'kb_key'),
|
|
'KEY_R':(19, 'kb_key'),
|
|
'KEY_T':(20, 'kb_key'),
|
|
'KEY_Y':(21, 'kb_key'),
|
|
'KEY_U':(22, 'kb_key'),
|
|
'KEY_I':(23, 'kb_key'),
|
|
'KEY_O':(24, 'kb_key'),
|
|
'KEY_P':(25, 'kb_key'),
|
|
'KEY_LEFTBRACE':(26, 'kb_key'),
|
|
'KEY_RIGHTBRACE':(27, 'kb_key'),
|
|
'KEY_ENTER':(28, 'kb_key'),
|
|
'KEY_LEFTCTRL':(29, 'kb_key'),
|
|
'KEY_A':(30, 'kb_key'),
|
|
'KEY_S':(31, 'kb_key'),
|
|
'KEY_D':(32, 'kb_key'),
|
|
'KEY_F':(33, 'kb_key'),
|
|
'KEY_G':(34, 'kb_key'),
|
|
'KEY_H':(35, 'kb_key'),
|
|
'KEY_J':(36, 'kb_key'),
|
|
'KEY_K':(37, 'kb_key'),
|
|
'KEY_L':(38, 'kb_key'),
|
|
'KEY_SEMICOLON':(39, 'kb_key'),
|
|
'KEY_APOSTROPHE':(40, 'kb_key'),
|
|
'KEY_GRAVE':(41, 'kb_key'),
|
|
'KEY_LEFTSHIFT':(42, 'kb_key'),
|
|
'KEY_BACKSLASH':(43, 'kb_key'),
|
|
'KEY_Z':(44, 'kb_key'),
|
|
'KEY_X':(45, 'kb_key'),
|
|
'KEY_C':(46, 'kb_key'),
|
|
'KEY_V':(47, 'kb_key'),
|
|
'KEY_B':(48, 'kb_key'),
|
|
'KEY_N':(49, 'kb_key'),
|
|
'KEY_M':(50, 'kb_key'),
|
|
'KEY_COMMA':(51, 'kb_key'),
|
|
'KEY_DOT':(52, 'kb_key'),
|
|
'KEY_SLASH':(53, 'kb_key'),
|
|
'KEY_RIGHTSHIFT':(54, 'kb_key'),
|
|
'KEY_KPASTERISK':(55, 'kb_key'),
|
|
'KEY_LEFTALT':(56, 'kb_key'),
|
|
'KEY_SPACE':(57, 'kb_key'),
|
|
'KEY_CAPSLOCK':(58, 'kb_key'),
|
|
'KEY_F1':(59, 'kb_key'),
|
|
'KEY_F2':(60, 'kb_key'),
|
|
'KEY_F3':(61, 'kb_key'),
|
|
'KEY_F4':(62, 'kb_key'),
|
|
'KEY_F5':(63, 'kb_key'),
|
|
'KEY_F6':(64, 'kb_key'),
|
|
'KEY_F7':(65, 'kb_key'),
|
|
'KEY_F8':(66, 'kb_key'),
|
|
'KEY_F9':(67, 'kb_key'),
|
|
'KEY_F10':(68, 'kb_key'),
|
|
'KEY_NUMLOCK':(69, 'kb_key'),
|
|
'KEY_SCROLLLOCK':(70, 'kb_key'),
|
|
'KEY_KP7':(71, 'kb_key'),
|
|
'KEY_KP8':(72, 'kb_key'),
|
|
'KEY_KP9':(73, 'kb_key'),
|
|
'KEY_KPMINUS':(74, 'kb_key'),
|
|
'KEY_KP4':(75, 'kb_key'),
|
|
'KEY_KP5':(76, 'kb_key'),
|
|
'KEY_KP6':(77, 'kb_key'),
|
|
'KEY_KPPLUS':(78, 'kb_key'),
|
|
'KEY_KP1':(79, 'kb_key'),
|
|
'KEY_KP2':(80, 'kb_key'),
|
|
'KEY_KP3':(81, 'kb_key'),
|
|
'KEY_KP0':(82, 'kb_key'),
|
|
'KEY_KPDOT':(83, 'kb_key'),
|
|
'KEY_ZENKAKUHANKAKU':(85, 'kb_key'),
|
|
'KEY_102ND':(86, 'kb_key'),
|
|
'KEY_F11':(87, 'kb_key'),
|
|
'KEY_F12':(88, 'kb_key'),
|
|
'KEY_RO':(89, 'kb_key'),
|
|
'KEY_KATAKANA':(90, 'kb_key'),
|
|
'KEY_HIRAGANA':(91, 'kb_key'),
|
|
'KEY_HENKAN':(92, 'kb_key'),
|
|
'KEY_KATAKANAHIRAGANA':(93, 'kb_key'),
|
|
'KEY_MUHENKAN':(94, 'kb_key'),
|
|
'KEY_KPJPCOMMA':(95, 'kb_key'),
|
|
'KEY_KPENTER':(96, 'kb_key'),
|
|
'KEY_RIGHTCTRL':(97, 'kb_key'),
|
|
'KEY_KPSLASH':(98, 'kb_key'),
|
|
'KEY_SYSRQ':(99, 'kb_key'),
|
|
'KEY_RIGHTALT':(100, 'kb_key'),
|
|
'KEY_LINEFEED':(101, 'kb_key'),
|
|
'KEY_HOME':(102, 'kb_key'),
|
|
'KEY_UP':(103, 'kb_key'),
|
|
'KEY_PAGEUP':(104, 'kb_key'),
|
|
'KEY_LEFT':(105, 'kb_key'),
|
|
'KEY_RIGHT':(106, 'kb_key'),
|
|
'KEY_END':(107, 'kb_key'),
|
|
'KEY_DOWN':(108, 'kb_key'),
|
|
'KEY_PAGEDOWN':(109, 'kb_key'),
|
|
'KEY_INSERT':(110, 'kb_key'),
|
|
'KEY_DELETE':(111, 'kb_key'),
|
|
'KEY_MACRO':(112, 'kb_key'),
|
|
'KEY_MUTE':(113, 'kb_key'),
|
|
'KEY_VOLUMEDOWN':(114, 'kb_key'),
|
|
'KEY_VOLUMEUP':(115, 'kb_key'),
|
|
'KEY_POWER':(116, 'kb_key'),
|
|
'KEY_KPEQUAL':(117, 'kb_key'),
|
|
'KEY_KPPLUSMINUS':(118, 'kb_key'),
|
|
'KEY_PAUSE':(119, 'kb_key'),
|
|
'KEY_SCALE':(120, 'kb_key'),
|
|
'KEY_KPCOMMA':(121, 'kb_key'),
|
|
'KEY_HANGEUL':(122, 'kb_key'),
|
|
'KEY_HANGUEL':(122, 'kb_key'),
|
|
'KEY_HANJA':(123, 'kb_key'),
|
|
'KEY_YEN':(124, 'kb_key'),
|
|
'KEY_LEFTMETA':(125, 'kb_key'),
|
|
'KEY_RIGHTMETA':(126, 'kb_key'),
|
|
'KEY_COMPOSE':(127, 'kb_key'),
|
|
'KEY_STOP':(128, 'kb_key'),
|
|
'KEY_AGAIN':(129, 'kb_key'),
|
|
'KEY_PROPS':(130, 'kb_key'),
|
|
'KEY_UNDO':(131, 'kb_key'),
|
|
'KEY_FRONT':(132, 'kb_key'),
|
|
'KEY_COPY':(133, 'kb_key'),
|
|
'KEY_OPEN':(134, 'kb_key'),
|
|
'KEY_PASTE':(135, 'kb_key'),
|
|
'KEY_FIND':(136, 'kb_key'),
|
|
'KEY_CUT':(137, 'kb_key'),
|
|
'KEY_HELP':(138, 'kb_key'),
|
|
'KEY_MENU':(139, 'kb_key'),
|
|
'KEY_CALC':(140, 'kb_key'),
|
|
'KEY_SETUP':(141, 'kb_key'),
|
|
'KEY_SLEEP':(142, 'kb_key'),
|
|
'KEY_WAKEUP':(143, 'kb_key'),
|
|
'KEY_FILE':(144, 'kb_key'),
|
|
'KEY_SENDFILE':(145, 'kb_key'),
|
|
'KEY_DELETEFILE':(146, 'kb_key'),
|
|
'KEY_XFER':(147, 'kb_key'),
|
|
'KEY_PROG1':(148, 'kb_key'),
|
|
'KEY_PROG2':(149, 'kb_key'),
|
|
'KEY_WWW':(150, 'kb_key'),
|
|
'KEY_MSDOS':(151, 'kb_key'),
|
|
'KEY_COFFEE':(152, 'kb_key'),
|
|
'KEY_SCREENLOCK':(152, 'kb_key'),
|
|
'KEY_ROTATE_DISPLAY':(153, 'kb_key'),
|
|
'KEY_DIRECTION':(153, 'kb_key'),
|
|
'KEY_CYCLEWINDOWS':(154, 'kb_key'),
|
|
'KEY_MAIL':(155, 'kb_key'),
|
|
'KEY_BOOKMARKS':(156, 'kb_key'),
|
|
'KEY_COMPUTER':(157, 'kb_key'),
|
|
'KEY_BACK':(158, 'kb_key'),
|
|
'KEY_FORWARD':(159, 'kb_key'),
|
|
'KEY_CLOSECD':(160, 'kb_key'),
|
|
'KEY_EJECTCD':(161, 'kb_key'),
|
|
'KEY_EJECTCLOSECD':(162, 'kb_key'),
|
|
'KEY_NEXTSONG':(163, 'kb_key'),
|
|
'KEY_PLAYPAUSE':(164, 'kb_key'),
|
|
'KEY_PREVIOUSSONG':(165, 'kb_key'),
|
|
'KEY_STOPCD':(166, 'kb_key'),
|
|
'KEY_RECORD':(167, 'kb_key'),
|
|
'KEY_REWIND':(168, 'kb_key'),
|
|
'KEY_PHONE':(169, 'kb_key'),
|
|
'KEY_ISO':(170, 'kb_key'),
|
|
'KEY_CONFIG':(171, 'kb_key'),
|
|
'KEY_HOMEPAGE':(172, 'kb_key'),
|
|
'KEY_REFRESH':(173, 'kb_key'),
|
|
'KEY_EXIT':(174, 'kb_key'),
|
|
'KEY_MOVE':(175, 'kb_key'),
|
|
'KEY_EDIT':(176, 'kb_key'),
|
|
'KEY_SCROLLUP':(177, 'kb_key'),
|
|
'KEY_SCROLLDOWN':(178, 'kb_key'),
|
|
'KEY_KPLEFTPAREN':(179, 'kb_key'),
|
|
'KEY_KPRIGHTPAREN':(180, 'kb_key'),
|
|
'KEY_NEW':(181, 'kb_key'),
|
|
'KEY_REDO':(182, 'kb_key'),
|
|
'KEY_F13':(183, 'kb_key'),
|
|
'KEY_F14':(184, 'kb_key'),
|
|
'KEY_F15':(185, 'kb_key'),
|
|
'KEY_F16':(186, 'kb_key'),
|
|
'KEY_F17':(187, 'kb_key'),
|
|
'KEY_F18':(188, 'kb_key'),
|
|
'KEY_F19':(189, 'kb_key'),
|
|
'KEY_F20':(190, 'kb_key'),
|
|
'KEY_F21':(191, 'kb_key'),
|
|
'KEY_F22':(192, 'kb_key'),
|
|
'KEY_F23':(193, 'kb_key'),
|
|
'KEY_F24':(194, 'kb_key'),
|
|
# --------------------
|
|
'BTN_MISC': (0x100, 'usb_gp_btn'),
|
|
'BTN_0': (0x100, 'usb_gp_btn'),
|
|
'BTN_1': (0x101, 'usb_gp_btn'),
|
|
'BTN_2': (0x102, 'usb_gp_btn'),
|
|
'BTN_3': (0x103, 'usb_gp_btn'),
|
|
'BTN_4': (0x104, 'usb_gp_btn'),
|
|
'BTN_5': (0x105, 'usb_gp_btn'),
|
|
'BTN_6': (0x106, 'usb_gp_btn'),
|
|
'BTN_7': (0x107, 'usb_gp_btn'),
|
|
'BTN_8': (0x108, 'usb_gp_btn'),
|
|
'BTN_9': (0x109, 'usb_gp_btn'),
|
|
'BTN_JOYSTICK': (0x120, 'usb_gp_btn'),
|
|
'BTN_TRIGGER': (0x120, 'usb_gp_btn'),
|
|
'BTN_THUMB': (0x121, 'usb_gp_btn'),
|
|
'BTN_THUMB2': (0x122, 'usb_gp_btn'),
|
|
'BTN_TOP': (0x123, 'usb_gp_btn'),
|
|
'BTN_TOP2': (0x124, 'usb_gp_btn'),
|
|
'BTN_PINKIE': (0x125, 'usb_gp_btn'),
|
|
'BTN_BASE': (0x126, 'usb_gp_btn'),
|
|
'BTN_BASE2': (0x127, 'usb_gp_btn'),
|
|
'BTN_BASE3': (0x128, 'usb_gp_btn'),
|
|
'BTN_BASE4': (0x129, 'usb_gp_btn'),
|
|
'BTN_BASE5': (0x12a, 'usb_gp_btn'),
|
|
'BTN_BASE6': (0x12b, 'usb_gp_btn'),
|
|
'BTN_DEAD': (0x12f, 'usb_gp_btn'),
|
|
'BTN_GAMEPAD': (0x130, 'usb_gp_btn'),
|
|
'BTN_SOUTH': (0x130, 'usb_gp_btn'),
|
|
'BTN_A': (0x130, 'usb_gp_btn'),
|
|
'BTN_EAST': (0x131, 'usb_gp_btn'),
|
|
'BTN_B': (0x131, 'usb_gp_btn'),
|
|
'BTN_C': (0x132, 'usb_gp_btn'),
|
|
'BTN_NORTH': (0x133, 'usb_gp_btn'),
|
|
'BTN_X': (0x133, 'usb_gp_btn'),
|
|
'BTN_WEST': (0x134, 'usb_gp_btn'),
|
|
'BTN_Y': (0x134, 'usb_gp_btn'),
|
|
'BTN_Z': (0x135, 'usb_gp_btn'),
|
|
'BTN_TL': (0x136, 'usb_gp_btn'),
|
|
'BTN_TR': (0x137, 'usb_gp_btn'),
|
|
'BTN_TL2': (0x138, 'usb_gp_btn'),
|
|
'BTN_TR2': (0x139, 'usb_gp_btn'),
|
|
'BTN_SELECT': (0x13a, 'usb_gp_btn'),
|
|
'BTN_START': (0x13b, 'usb_gp_btn'),
|
|
'BTN_MODE': (0x13c, 'usb_gp_btn'),
|
|
'BTN_THUMBL': (0x13d, 'usb_gp_btn'),
|
|
'BTN_THUMBR': (0x13e, 'usb_gp_btn'),
|
|
'BTN_WHEEL': (0x150, 'usb_gp_btn'),
|
|
'BTN_GEAR_DOWN': (0x150, 'usb_gp_btn'),
|
|
'BTN_GEAR_UP': (0x151, 'usb_gp_btn'),
|
|
'BTN_DPAD_UP': (0x220, 'usb_gp_btn'),
|
|
'BTN_DPAD_DOWN': (0x221, 'usb_gp_btn'),
|
|
'BTN_DPAD_LEFT': (0x222, 'usb_gp_btn'),
|
|
'BTN_DPAD_RIGHT': (0x223, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY': (0x2c0, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY1': (0x2c0, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY2': (0x2c1, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY3': (0x2c2, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY4': (0x2c3, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY5': (0x2c4, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY6': (0x2c5, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY7': (0x2c6, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY8': (0x2c7, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY9': (0x2c8, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY10': (0x2c9, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY11': (0x2ca, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY12': (0x2cb, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY13': (0x2cc, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY14': (0x2cd, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY15': (0x2ce, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY16': (0x2cf, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY17': (0x2d0, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY18': (0x2d1, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY19': (0x2d2, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY20': (0x2d3, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY21': (0x2d4, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY22': (0x2d5, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY23': (0x2d6, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY24': (0x2d7, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY25': (0x2d8, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY26': (0x2d9, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY27': (0x2da, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY28': (0x2db, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY29': (0x2dc, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY30': (0x2dd, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY31': (0x2de, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY32': (0x2df, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY33': (0x2e0, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY34': (0x2e1, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY35': (0x2e2, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY36': (0x2e3, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY37': (0x2e4, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY38': (0x2e5, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY39': (0x2e6, 'usb_gp_btn'),
|
|
'BTN_TRIGGER_HAPPY40': (0x2e7, 'usb_gp_btn'),
|
|
# --------------------
|
|
'ABS_X':(0x00, 'usb_abs_axis'),
|
|
'ABS_Y':(0x01, 'usb_abs_axis'),
|
|
'ABS_Z':(0x02, 'usb_abs_axis'),
|
|
'ABS_RX':(0x03, 'usb_abs_axis'),
|
|
'ABS_RY':(0x04, 'usb_abs_axis'),
|
|
'ABS_RZ':(0x05, 'usb_abs_axis'),
|
|
'ABS_THROTTLE':(0x06, 'usb_abs_axis'),
|
|
'ABS_RUDDER':(0x07, 'usb_abs_axis'),
|
|
'ABS_WHEEL':(0x08, 'usb_abs_axis'),
|
|
'ABS_GAS':(0x09, 'usb_abs_axis'),
|
|
'ABS_BRAKE':(0x0a, 'usb_abs_axis'),
|
|
'ABS_HAT0X':(0x10, 'usb_abs_axis'),
|
|
'ABS_HAT0Y':(0x11, 'usb_abs_axis'),
|
|
'ABS_HAT1X':(0x12, 'usb_abs_axis'),
|
|
'ABS_HAT1Y':(0x13, 'usb_abs_axis'),
|
|
'ABS_HAT2X':(0x14, 'usb_abs_axis'),
|
|
'ABS_HAT2Y':(0x15, 'usb_abs_axis'),
|
|
'ABS_HAT3X':(0x16, 'usb_abs_axis'),
|
|
'ABS_HAT3Y':(0x17, 'usb_abs_axis'),
|
|
# --------------------
|
|
'BTN_MOUSE':(0x110, 'mouse_btn'),
|
|
'BTN_LEFT':(0x110, 'mouse_btn'),
|
|
'BTN_RIGHT':(0x111, 'mouse_btn'),
|
|
'BTN_MIDDLE':(0x112, 'mouse_btn'),
|
|
'BTN_SIDE':(0x113, 'mouse_btn'),
|
|
'BTN_EXTRA':(0x114, 'mouse_btn'),
|
|
'BTN_FORWARD':(0x115, 'mouse_btn'),
|
|
'BTN_BACK':(0x116, 'mouse_btn'),
|
|
'BTN_TASK':(0x117, 'mouse_btn'),
|
|
# --------------------
|
|
'REL_X':(0x00, 'usb_rel_axis'),
|
|
'REL_Y':(0x01, 'usb_rel_axis'),
|
|
'REL_Z':(0x02, 'usb_rel_axis'),
|
|
'REL_RX':(0x03, 'usb_rel_axis'),
|
|
'REL_RY':(0x04, 'usb_rel_axis'),
|
|
'REL_RZ':(0x05, 'usb_rel_axis'),
|
|
'REL_HWHEEL':(0x06, 'usb_rel_axis'),
|
|
'REL_DIAL':(0x07, 'usb_rel_axis'),
|
|
'REL_WHEEL':(0x08, 'usb_rel_axis'),
|
|
'REL_MISC':(0x09, 'usb_rel_axis'),
|
|
# --------------------
|
|
'IBM_GGP_BTN_1':('IBM_GGP_BTN_1', 'ibm_ggp_btn'),
|
|
'IBM_GGP_BTN_2':('IBM_GGP_BTN_2', 'ibm_ggp_btn'),
|
|
'IBM_GGP_BTN_3':('IBM_GGP_BTN_3', 'ibm_ggp_btn'),
|
|
'IBM_GGP_BTN_4':('IBM_GGP_BTN_4', 'ibm_ggp_btn'),
|
|
# --------------------
|
|
'IBM_GGP_JS1_X':('IBM_GGP_JS1_X', 'ibm_ggp_axis'),
|
|
'IBM_GGP_JS1_Y':('IBM_GGP_JS1_Y', 'ibm_ggp_axis'),
|
|
'IBM_GGP_JS2_X':('IBM_GGP_JS2_X', 'ibm_ggp_axis'),
|
|
'IBM_GGP_JS2_Y':('IBM_GGP_JS2_Y', 'ibm_ggp_axis'),
|
|
# --------------------
|
|
'IBM_GGP_JS1_XP':('IBM_GGP_JS1_XP', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS1_XN':('IBM_GGP_JS1_XN', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS1_YP':('IBM_GGP_JS1_YP', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS1_YN':('IBM_GGP_JS1_YN', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS2_XP':('IBM_GGP_JS2_XP', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS2_XN':('IBM_GGP_JS2_XN', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS2_YP':('IBM_GGP_JS2_YP', 'ibm_ggp_half_axis'),
|
|
'IBM_GGP_JS2_YN':('IBM_GGP_JS2_YN', 'ibm_ggp_half_axis'),
|
|
}
|
|
|
|
code_value_to_name_lookup = {
|
|
0x100:{'BTN_MISC', 'BTN_0'},
|
|
0x101:{'BTN_1'},
|
|
0x102:{'BTN_2'},
|
|
0x103:{'BTN_3'},
|
|
0x104:{'BTN_4'},
|
|
0x105:{'BTN_5'},
|
|
0x106:{'BTN_6'},
|
|
0x107:{'BTN_7'},
|
|
0x108:{'BTN_8'},
|
|
0x109:{'BTN_9'},
|
|
0x110:{'BTN_MOUSE'},
|
|
0x110:{'BTN_LEFT'},
|
|
0x111:{'BTN_RIGHT'},
|
|
0x112:{'BTN_MIDDLE'},
|
|
0x113:{'BTN_SIDE'},
|
|
0x114:{'BTN_EXTRA'},
|
|
0x115:{'BTN_FORWARD'},
|
|
0x116:{'BTN_BACK'},
|
|
0x117:{'BTN_TASK'},
|
|
0x120:{'BTN_JOYSTICK'},
|
|
0x120:{'BTN_TRIGGER'},
|
|
0x121:{'BTN_THUMB'},
|
|
0x122:{'BTN_THUMB2'},
|
|
0x123:{'BTN_TOP'},
|
|
0x124:{'BTN_TOP2'},
|
|
0x125:{'BTN_PINKIE'},
|
|
0x126:{'BTN_BASE'},
|
|
0x127:{'BTN_BASE2'},
|
|
0x128:{'BTN_BASE3'},
|
|
0x129:{'BTN_BASE4'},
|
|
0x12a:{'BTN_BASE5'},
|
|
0x12b:{'BTN_BASE6'},
|
|
0x12f:{'BTN_DEAD'},
|
|
0x130:{'BTN_GAMEPAD', 'BTN_SOUTH', 'BTN_A'},
|
|
0x131:{'BTN_EAST', 'BTN_B'},
|
|
0x132:{'BTN_C'},
|
|
0x133:{'BTN_NORTH', 'BTN_X'},
|
|
0x134:{'BTN_WEST', 'BTN_Y'},
|
|
0x135:{'BTN_Z'},
|
|
0x136:{'BTN_TL'},
|
|
0x137:{'BTN_TR'},
|
|
0x138:{'BTN_TL2'},
|
|
0x139:{'BTN_TR2'},
|
|
0x13a:{'BTN_SELECT'},
|
|
0x13b:{'BTN_START'},
|
|
0x13c:{'BTN_MODE'},
|
|
0x13d:{'BTN_THUMBL'},
|
|
0x13e:{'BTN_THUMBR'},
|
|
0x150:{'BTN_WHEEL', 'BTN_GEAR_DOWN'},
|
|
0x151:{'BTN_GEAR_UP'},
|
|
0x220:{'BTN_DPAD_UP'},
|
|
0x221:{'BTN_DPAD_DOWN'},
|
|
0x222:{'BTN_DPAD_LEFT'},
|
|
0x223:{'BTN_DPAD_RIGHT'},
|
|
0x2c0:{'BTN_TRIGGER_HAPPY', 'BTN_TRIGGER_HAPPY1'},
|
|
0x2c1:{'BTN_TRIGGER_HAPPY2'},
|
|
0x2c2:{'BTN_TRIGGER_HAPPY3'},
|
|
0x2c3:{'BTN_TRIGGER_HAPPY4'},
|
|
0x2c4:{'BTN_TRIGGER_HAPPY5'},
|
|
0x2c5:{'BTN_TRIGGER_HAPPY6'},
|
|
0x2c6:{'BTN_TRIGGER_HAPPY7'},
|
|
0x2c7:{'BTN_TRIGGER_HAPPY8'},
|
|
0x2c8:{'BTN_TRIGGER_HAPPY9'},
|
|
0x2c9:{'BTN_TRIGGER_HAPPY10'},
|
|
0x2ca:{'BTN_TRIGGER_HAPPY11'},
|
|
0x2cb:{'BTN_TRIGGER_HAPPY12'},
|
|
0x2cc:{'BTN_TRIGGER_HAPPY13'},
|
|
0x2cd:{'BTN_TRIGGER_HAPPY14'},
|
|
0x2ce:{'BTN_TRIGGER_HAPPY15'},
|
|
0x2cf:{'BTN_TRIGGER_HAPPY16'},
|
|
0x2d0:{'BTN_TRIGGER_HAPPY17'},
|
|
0x2d1:{'BTN_TRIGGER_HAPPY18'},
|
|
0x2d2:{'BTN_TRIGGER_HAPPY19'},
|
|
0x2d3:{'BTN_TRIGGER_HAPPY20'},
|
|
0x2d4:{'BTN_TRIGGER_HAPPY21'},
|
|
0x2d5:{'BTN_TRIGGER_HAPPY22'},
|
|
0x2d6:{'BTN_TRIGGER_HAPPY23'},
|
|
0x2d7:{'BTN_TRIGGER_HAPPY24'},
|
|
0x2d8:{'BTN_TRIGGER_HAPPY25'},
|
|
0x2d9:{'BTN_TRIGGER_HAPPY26'},
|
|
0x2da:{'BTN_TRIGGER_HAPPY27'},
|
|
0x2db:{'BTN_TRIGGER_HAPPY28'},
|
|
0x2dc:{'BTN_TRIGGER_HAPPY29'},
|
|
0x2dd:{'BTN_TRIGGER_HAPPY30'},
|
|
0x2de:{'BTN_TRIGGER_HAPPY31'},
|
|
0x2df:{'BTN_TRIGGER_HAPPY32'},
|
|
0x2e0:{'BTN_TRIGGER_HAPPY33'},
|
|
0x2e1:{'BTN_TRIGGER_HAPPY34'},
|
|
0x2e2:{'BTN_TRIGGER_HAPPY35'},
|
|
0x2e3:{'BTN_TRIGGER_HAPPY36'},
|
|
0x2e4:{'BTN_TRIGGER_HAPPY37'},
|
|
0x2e5:{'BTN_TRIGGER_HAPPY38'},
|
|
0x2e6:{'BTN_TRIGGER_HAPPY39'},
|
|
0x2e7:{'BTN_TRIGGER_HAPPY40'},
|
|
0x00:{'ABS_X'},
|
|
0x01:{'ABS_Y'},
|
|
0x02:{'ABS_Z'},
|
|
0x03:{'ABS_RX'},
|
|
0x04:{'ABS_RY'},
|
|
0x05:{'ABS_RZ'},
|
|
0x06:{'ABS_THROTTLE'},
|
|
0x07:{'ABS_RUDDER'},
|
|
0x08:{'ABS_WHEEL'},
|
|
0x09:{'ABS_GAS'},
|
|
0x0a:{'ABS_BRAKE'},
|
|
0x10:{'ABS_HAT0X'},
|
|
0x11:{'ABS_HAT0Y'},
|
|
0x12:{'ABS_HAT1X'},
|
|
0x13:{'ABS_HAT1Y'},
|
|
0x14:{'ABS_HAT2X'},
|
|
0x15:{'ABS_HAT2Y'},
|
|
0x16:{'ABS_HAT3X'},
|
|
0x17:{'ABS_HAT3Y'},
|
|
373:{'BTN_MODE'},
|
|
}
|
|
|
|
board_id_lookup = {
|
|
'Unknown':0,
|
|
'IBMPC':1,
|
|
'ADB':2,
|
|
}
|
|
|
|
protocol_id_lookup = {
|
|
'OFF':0,
|
|
'AT_PS2_KB':1,
|
|
'XT_KB':2,
|
|
'ADB_KB':3,
|
|
'PS2_MOUSE':4,
|
|
'MICROSOFT_SERIAL_MOUSE':5,
|
|
'ADB_MOUSE':6,
|
|
'GAMEPORT_15PIN_GAMEPAD':7,
|
|
'GAMEPORT_GRAVIS_GAMEPAD':8,
|
|
'GAMEPORT_MICROSOFT_SIDEWINDER':9,
|
|
'RAW_KEYBOARD':125,
|
|
'RAW_MOUSE':126,
|
|
'RAW_GAMEPAD':127,
|
|
}
|
|
|
|
gamepad_event_code_name_list = [
|
|
'BTN_1',
|
|
'BTN_2',
|
|
'BTN_3',
|
|
'BTN_4',
|
|
'BTN_5',
|
|
'BTN_6',
|
|
'BTN_7',
|
|
'BTN_8',
|
|
'BTN_9',
|
|
'BTN_JOYSTICK',
|
|
'BTN_TRIGGER',
|
|
'BTN_THUMB',
|
|
'BTN_THUMB2',
|
|
'BTN_TOP',
|
|
'BTN_TOP2',
|
|
'BTN_PINKIE',
|
|
'BTN_BASE',
|
|
'BTN_BASE2',
|
|
'BTN_BASE3',
|
|
'BTN_BASE4',
|
|
'BTN_BASE5',
|
|
'BTN_BASE6',
|
|
'BTN_DEAD',
|
|
'BTN_GAMEPAD',
|
|
'BTN_SOUTH',
|
|
'BTN_A',
|
|
'BTN_EAST',
|
|
'BTN_B',
|
|
'BTN_C',
|
|
'BTN_NORTH',
|
|
'BTN_X',
|
|
'BTN_WEST',
|
|
'BTN_Y',
|
|
'BTN_Z',
|
|
'BTN_TL',
|
|
'BTN_TR',
|
|
'BTN_TL2',
|
|
'BTN_TR2',
|
|
'BTN_SELECT',
|
|
'BTN_START',
|
|
'BTN_MODE',
|
|
'BTN_THUMBL',
|
|
'BTN_THUMBR',
|
|
'BTN_WHEEL',
|
|
'BTN_GEAR_DOWN',
|
|
'BTN_GEAR_UP',
|
|
'BTN_DPAD_UP',
|
|
'BTN_DPAD_DOWN',
|
|
'BTN_DPAD_LEFT',
|
|
'BTN_DPAD_RIGHT',
|
|
'BTN_TRIGGER_HAPPY',
|
|
'BTN_TRIGGER_HAPPY1',
|
|
'BTN_TRIGGER_HAPPY2',
|
|
'BTN_TRIGGER_HAPPY3',
|
|
'BTN_TRIGGER_HAPPY4',
|
|
'BTN_TRIGGER_HAPPY5',
|
|
'BTN_TRIGGER_HAPPY6',
|
|
'BTN_TRIGGER_HAPPY7',
|
|
'BTN_TRIGGER_HAPPY8',
|
|
'BTN_TRIGGER_HAPPY9',
|
|
'BTN_TRIGGER_HAPPY10',
|
|
'BTN_TRIGGER_HAPPY11',
|
|
'BTN_TRIGGER_HAPPY12',
|
|
'BTN_TRIGGER_HAPPY13',
|
|
'BTN_TRIGGER_HAPPY14',
|
|
'BTN_TRIGGER_HAPPY15',
|
|
'BTN_TRIGGER_HAPPY16',
|
|
'BTN_TRIGGER_HAPPY17',
|
|
'BTN_TRIGGER_HAPPY18',
|
|
'BTN_TRIGGER_HAPPY19',
|
|
'BTN_TRIGGER_HAPPY20',
|
|
'BTN_TRIGGER_HAPPY21',
|
|
'BTN_TRIGGER_HAPPY22',
|
|
'BTN_TRIGGER_HAPPY23',
|
|
'BTN_TRIGGER_HAPPY24',
|
|
'BTN_TRIGGER_HAPPY25',
|
|
'BTN_TRIGGER_HAPPY26',
|
|
'BTN_TRIGGER_HAPPY27',
|
|
'BTN_TRIGGER_HAPPY28',
|
|
'BTN_TRIGGER_HAPPY29',
|
|
'BTN_TRIGGER_HAPPY30',
|
|
'BTN_TRIGGER_HAPPY31',
|
|
'BTN_TRIGGER_HAPPY32',
|
|
'BTN_TRIGGER_HAPPY33',
|
|
'BTN_TRIGGER_HAPPY34',
|
|
'BTN_TRIGGER_HAPPY35',
|
|
'BTN_TRIGGER_HAPPY36',
|
|
'BTN_TRIGGER_HAPPY37',
|
|
'BTN_TRIGGER_HAPPY38',
|
|
'BTN_TRIGGER_HAPPY39',
|
|
'BTN_TRIGGER_HAPPY40',] |