import pych9329.hid_code_table as hid_code

HID_CODE_MAP = {
    "": (hid_code.KEY_NONE, False),
    # release alias
    "null": (hid_code.KEY_NONE, False),
    "none": (hid_code.KEY_NONE, False),
    "a": (hid_code.KEY_A, False),
    "b": (hid_code.KEY_B, False),
    "c": (hid_code.KEY_C, False),
    "d": (hid_code.KEY_D, False),
    "e": (hid_code.KEY_E, False),
    "f": (hid_code.KEY_F, False),
    "g": (hid_code.KEY_G, False),
    "h": (hid_code.KEY_H, False),
    "i": (hid_code.KEY_I, False),
    "j": (hid_code.KEY_J, False),
    "k": (hid_code.KEY_K, False),
    "l": (hid_code.KEY_L, False),
    "m": (hid_code.KEY_M, False),
    "n": (hid_code.KEY_N, False),
    "o": (hid_code.KEY_O, False),
    "p": (hid_code.KEY_P, False),
    "q": (hid_code.KEY_Q, False),
    "r": (hid_code.KEY_R, False),
    "s": (hid_code.KEY_S, False),
    "t": (hid_code.KEY_T, False),
    "u": (hid_code.KEY_U, False),
    "v": (hid_code.KEY_V, False),
    "w": (hid_code.KEY_W, False),
    "x": (hid_code.KEY_X, False),
    "y": (hid_code.KEY_Y, False),
    "z": (hid_code.KEY_Z, False),
    "1": (hid_code.KEY_1, False),
    "2": (hid_code.KEY_2, False),
    "3": (hid_code.KEY_3, False),
    "4": (hid_code.KEY_4, False),
    "5": (hid_code.KEY_5, False),
    "6": (hid_code.KEY_6, False),
    "7": (hid_code.KEY_7, False),
    "8": (hid_code.KEY_8, False),
    "9": (hid_code.KEY_9, False),
    "0": (hid_code.KEY_0, False),
    "enter": (hid_code.KEY_ENTER, False),
    "esc": (hid_code.KEY_ESCAPE, False),
    "escape": (hid_code.KEY_ESCAPE, False),
    "backspace": (hid_code.KEY_BACKSPACE, False),
    "tab": (hid_code.KEY_TAB, False),
    "space": (hid_code.KEY_SPACE, False),
    "bracket_left": (hid_code.KEY_BRACKET_LEFT, False),
    "bracket_right": (hid_code.KEY_BRACKET_RIGHT, False),
    "backslash": (hid_code.KEY_CODE_29, False),
    # 'europe_1': (hid_code.KEY_EUROPE_1, False),
    "semicolon": (hid_code.KEY_SEMICOLON, False),
    "apostrophe": (hid_code.KEY_APOSTROPHE, False),
    "grave": (hid_code.KEY_GRAVE, False),
    "comma": (hid_code.KEY_COMMA, False),
    "period": (hid_code.KEY_PERIOD, False),
    "slash": (hid_code.KEY_SLASH, False),
    "caps_lock": (hid_code.KEY_CAPS_LOCK, False),
    "f1": (hid_code.KEY_F1, False),
    "f2": (hid_code.KEY_F2, False),
    "f3": (hid_code.KEY_F3, False),
    "f4": (hid_code.KEY_F4, False),
    "f5": (hid_code.KEY_F5, False),
    "f6": (hid_code.KEY_F6, False),
    "f7": (hid_code.KEY_F7, False),
    "f8": (hid_code.KEY_F8, False),
    "f9": (hid_code.KEY_F9, False),
    "f10": (hid_code.KEY_F10, False),
    "f11": (hid_code.KEY_F11, False),
    "f12": (hid_code.KEY_F12, False),
    "print_screen": (hid_code.KEY_PRINT_SCREEN, False),
    "scroll_lock": (hid_code.KEY_SCROLL_LOCK, False),
    "pause": (hid_code.KEY_PAUSE, False),
    "insert": (hid_code.KEY_INSERT, False),
    "home": (hid_code.KEY_HOME, False),
    "page_up": (hid_code.KEY_PAGE_UP, False),
    "delete": (hid_code.KEY_DELETE, False),
    "del": (hid_code.KEY_DELETE, False),
    "end": (hid_code.KEY_END, False),
    "page_down": (hid_code.KEY_PAGE_DOWN, False),
    "arrow_right": (hid_code.KEY_ARROW_RIGHT, False),
    "arrow_left": (hid_code.KEY_ARROW_LEFT, False),
    "arrow_down": (hid_code.KEY_ARROW_DOWN, False),
    "arrow_up": (hid_code.KEY_ARROW_UP, False),
    "right": (hid_code.KEY_ARROW_RIGHT, False),
    "left": (hid_code.KEY_ARROW_LEFT, False),
    "down": (hid_code.KEY_ARROW_DOWN, False),
    "up": (hid_code.KEY_ARROW_UP, False),
    "num_lock": (hid_code.KEY_NUM_LOCK, False),
    "keypad_divide": (hid_code.KEY_KEYPAD_DIVIDE, False),
    "keypad_multiply": (hid_code.KEY_KEYPAD_MULTIPLY, False),
    "keypad_subtract": (hid_code.KEY_KEYPAD_SUBTRACT, False),
    "keypad_add": (hid_code.KEY_KEYPAD_ADD, False),
    "keypad_enter": (hid_code.KEY_KEYPAD_ENTER, False),
    "keypad_1": (hid_code.KEY_KEYPAD_1, False),
    "keypad_2": (hid_code.KEY_KEYPAD_2, False),
    "keypad_3": (hid_code.KEY_KEYPAD_3, False),
    "keypad_4": (hid_code.KEY_KEYPAD_4, False),
    "keypad_5": (hid_code.KEY_KEYPAD_5, False),
    "keypad_6": (hid_code.KEY_KEYPAD_6, False),
    "keypad_7": (hid_code.KEY_KEYPAD_7, False),
    "keypad_8": (hid_code.KEY_KEYPAD_8, False),
    "keypad_9": (hid_code.KEY_KEYPAD_9, False),
    "keypad_0": (hid_code.KEY_KEYPAD_0, False),
    "keypad_decimal": (hid_code.KEY_KEYPAD_DECIMAL, False),
    # modifiers
    "ctrl": (hid_code.KEY_CTRL_L, False),
    "ctrl_left": (hid_code.KEY_CTRL_L, False),
    "ctrl_right": (hid_code.KEY_CTRL_R, False),
    "shift": (hid_code.KEY_SHIFT_L, False),
    "shift_left": (hid_code.KEY_SHIFT_L, False),
    "shift_right": (hid_code.KEY_SHIFT_R, False),
    "alt": (hid_code.KEY_ALT_L, False),
    "alt_left": (hid_code.KEY_ALT_L, False),
    "alt_right": (hid_code.KEY_ALT_R, False),
    "win": (hid_code.KEY_WIN_L, False),
    "win_left": (hid_code.KEY_WIN_L, False),
    "win_right": (hid_code.KEY_WIN_R, False),
    "win_app": (hid_code.KEY_WIN_APP, False),
    "gui": (hid_code.KEY_WIN_L, False),
    "gui_left": (hid_code.KEY_WIN_L, False),
    "gui_right": (hid_code.KEY_WIN_R, False),
    # white spaces
    " ": (hid_code.KEY_SPACE, False),
    "\t": (hid_code.KEY_TAB, False),
    "\n": (hid_code.KEY_ENTER, False),
    # symbols
    "-": (hid_code.KEY_MINUS, False),
    "=": (hid_code.KEY_EQUAL, False),
    "[": (hid_code.KEY_BRACKET_LEFT, False),
    "]": (hid_code.KEY_BRACKET_RIGHT, False),
    "\\": (hid_code.KEY_CODE_29, False),
    ";": (hid_code.KEY_SEMICOLON, False),
    "'": (hid_code.KEY_APOSTROPHE, False),
    "`": (hid_code.KEY_GRAVE, False),
    ",": (hid_code.KEY_COMMA, False),
    ".": (hid_code.KEY_PERIOD, False),
    "/": (hid_code.KEY_SLASH, False),
    # symbols (shift)
    "^": (hid_code.KEY_6, True),
    "_": (hid_code.KEY_MINUS, True),
    "{": (hid_code.KEY_BRACKET_LEFT, True),
    "|": (hid_code.KEY_CODE_29, True),
    "}": (hid_code.KEY_BRACKET_RIGHT, True),
    "~": (hid_code.KEY_GRAVE, True),
    "!": (hid_code.KEY_1, True),
    '"': (hid_code.KEY_APOSTROPHE, True),
    "#": (hid_code.KEY_3, True),
    "$": (hid_code.KEY_4, True),
    "%": (hid_code.KEY_5, True),
    "&": (hid_code.KEY_7, True),
    "(": (hid_code.KEY_9, True),
    ")": (hid_code.KEY_0, True),
    "*": (hid_code.KEY_8, True),
    "+": (hid_code.KEY_EQUAL, True),
    ":": (hid_code.KEY_SEMICOLON, True),
    "<": (hid_code.KEY_COMMA, True),
    ">": (hid_code.KEY_PERIOD, True),
    "?": (hid_code.KEY_SLASH, True),
    "@": (hid_code.KEY_2, True),
    # shift keys
    "A": (hid_code.KEY_A, True),
    "B": (hid_code.KEY_B, True),
    "C": (hid_code.KEY_C, True),
    "D": (hid_code.KEY_D, True),
    "E": (hid_code.KEY_E, True),
    "F": (hid_code.KEY_F, True),
    "G": (hid_code.KEY_G, True),
    "H": (hid_code.KEY_H, True),
    "I": (hid_code.KEY_I, True),
    "J": (hid_code.KEY_J, True),
    "K": (hid_code.KEY_K, True),
    "L": (hid_code.KEY_L, True),
    "M": (hid_code.KEY_M, True),
    "N": (hid_code.KEY_N, True),
    "O": (hid_code.KEY_O, True),
    "P": (hid_code.KEY_P, True),
    "Q": (hid_code.KEY_Q, True),
    "R": (hid_code.KEY_R, True),
    "S": (hid_code.KEY_S, True),
    "T": (hid_code.KEY_T, True),
    "U": (hid_code.KEY_U, True),
    "V": (hid_code.KEY_V, True),
    "W": (hid_code.KEY_W, True),
    "X": (hid_code.KEY_X, True),
    "Y": (hid_code.KEY_Y, True),
    "Z": (hid_code.KEY_Z, True),
}
