#include "ADBKeymap.h" #include "HIDTables.h" // Définition du tableau de conversion ADB vers HID const uint8_t ADBKeymap::keyCodeTable[128] = { /* 0x00 = */ ADB_KEY_A, /* 0x01 = */ ADB_KEY_S, /* 0x02 = */ ADB_KEY_D, /* 0x03 = */ ADB_KEY_F, /* 0x04 = */ ADB_KEY_H, /* 0x05 = */ ADB_KEY_G, /* 0x06 = */ ADB_KEY_Z, /* 0x07 = */ ADB_KEY_X, /* 0x08 = */ ADB_KEY_C, /* 0x09 = */ ADB_KEY_V, /* 0x0a = */ ADB_KEY_102ND, /* 0x0b = */ ADB_KEY_B, /* 0x0c = */ ADB_KEY_Q, /* 0x0d = */ ADB_KEY_W, /* 0x0e = */ ADB_KEY_E, /* 0x0f = */ ADB_KEY_R, /* 0x10 = */ ADB_KEY_Y, /* 0x11 = */ ADB_KEY_T, /* 0x12 = */ ADB_KEY_1, /* 0x13 = */ ADB_KEY_2, /* 0x14 = */ ADB_KEY_3, /* 0x15 = */ ADB_KEY_4, /* 0x16 = */ ADB_KEY_6, /* 0x17 = */ ADB_KEY_5, /* 0x18 = */ ADB_KEY_EQUAL, /* 0x19 = */ ADB_KEY_9, /* 0x1a = */ ADB_KEY_7, /* 0x1b = */ ADB_KEY_MINUS, /* 0x1c = */ ADB_KEY_8, /* 0x1d = */ ADB_KEY_0, /* 0x1e = */ ADB_KEY_RIGHTBRACE, /* 0x1f = */ ADB_KEY_O, /* 0x20 = */ ADB_KEY_U, /* 0x21 = */ ADB_KEY_LEFTBRACE, /* 0x22 = */ ADB_KEY_I, /* 0x23 = */ ADB_KEY_P, /* 0x24 = */ ADB_KEY_ENTER, /* 0x25 = */ ADB_KEY_L, /* 0x26 = */ ADB_KEY_J, /* 0x27 = */ ADB_KEY_APOSTROPHE, /* 0x28 = */ ADB_KEY_K, /* 0x29 = */ ADB_KEY_SEMICOLON, /* 0x2a = */ ADB_KEY_HASHTILDE, /* 0x2b = */ ADB_KEY_COMMA, /* 0x2c = */ ADB_KEY_SLASH, /* 0x2d = */ ADB_KEY_N, /* 0x2e = */ ADB_KEY_M, /* 0x2f = */ ADB_KEY_DOT, /* 0x30 = */ ADB_KEY_TAB, /* 0x31 = */ ADB_KEY_SPACE, /* 0x32 = */ ADB_KEY_GRAVE, /* 0x33 = */ ADB_KEY_BACKSPACE, /* 0x34 = */ 0, /* 0x35 = */ ADB_KEY_ESC, /* 0x36 = */ ADB_KEY_LEFTCTRL, /* 0x37 = */ ADB_KEY_LEFTMETA, /* 0x38 = */ ADB_KEY_LEFTSHIFT, /* 0x39 = */ ADB_KEY_CAPSLOCK, /* 0x3a = */ ADB_KEY_LEFTALT, /* 0x3b = */ ADB_KEY_LEFT, /* 0x3c = */ ADB_KEY_RIGHT, /* 0x3d = */ ADB_KEY_DOWN, /* 0x3e = */ ADB_KEY_UP, /* 0x3f = */ 0, /* 0x40 = */ 0, /* 0x41 = */ ADB_KEY_KPDOT, /* 0x42 = */ 0, /* 0x43 = */ ADB_KEY_KPASTERISK, /* 0x44 = */ 0, /* 0x45 = */ ADB_KEY_KPPLUS, /* 0x46 = */ 0, /* 0x47 = */ ADB_KEY_NUMLOCK, /* 0x48 = */ 0, /* 0x49 = */ 0, /* 0x4a = */ 0, /* 0x4b = */ ADB_KEY_KPSLASH, /* 0x4c = */ ADB_KEY_KPENTER, /* 0x4d = */ 0, /* 0x4e = */ ADB_KEY_KPMINUS, /* 0x4f = */ 0, /* 0x50 = */ 0, /* 0x51 = */ ADB_KEY_KPEQUAL, /* 0x52 = */ ADB_KEY_KP0, /* 0x53 = */ ADB_KEY_KP1, /* 0x54 = */ ADB_KEY_KP2, /* 0x55 = */ ADB_KEY_KP3, /* 0x56 = */ ADB_KEY_KP4, /* 0x57 = */ ADB_KEY_KP5, /* 0x58 = */ ADB_KEY_KP6, /* 0x59 = */ ADB_KEY_KP7, /* 0x5a = */ 0, /* 0x5b = */ ADB_KEY_KP8, /* 0x5c = */ ADB_KEY_KP9, /* 0x5d = */ ADB_KEY_KPDOT, /* 0x5e = */ ADB_KEY_KPENTER, /* 0x5f = */ ADB_KEY_KPEQUAL, /* 0x60 = */ ADB_KEY_F5, /* 0x61 = */ ADB_KEY_F6, /* 0x62 = */ ADB_KEY_F7, /* 0x63 = */ ADB_KEY_F3, /* 0x64 = */ ADB_KEY_F8, /* 0x65 = */ ADB_KEY_F9, /* 0x66 = */ 0, /* 0x67 = */ ADB_KEY_VOLUMEDOWN, //ADB_KEY_F11, /* 0x68 = */ 0, /* 0x69 = */ ADB_KEY_F13, /* 0x6a = */ 0, /* 0x6b = */ ADB_KEY_F14, /* 0x6c = */ 0, /* 0x6d = */ ADB_KEY_MUTE, //ADB_KEY_F10, /* 0x6e = */ 0, /* 0x6f = */ ADB_KEY_VOLUMEUP, //ADB_KEY_F12, /* 0x70 = */ 0, /* 0x71 = */ ADB_KEY_F15, /* 0x72 = */ ADB_KEY_HELP, // or ADB_KEY_INSERT /* 0x73 = */ ADB_KEY_HOME, /* 0x74 = */ ADB_KEY_PAGEUP, /* 0x75 = */ ADB_KEY_DELETE, /* 0x76 = */ ADB_KEY_F4, /* 0x77 = */ ADB_KEY_END, /* 0x78 = */ ADB_KEY_F2, /* 0x79 = */ ADB_KEY_PAGEDOWN, /* 0x7a = */ ADB_KEY_F1, /* 0x7b = */ ADB_KEY_RIGHTSHIFT, /* 0x7c = */ ADB_KEY_RIGHTALT, /* 0x7d = */ ADB_KEY_RIGHTCTRL, /* 0x7e = */ 0, /* 0x7f = */ ADB_KEY_POWER, // Special key, repeated in both bytes of the register }; bool ADBKeymap::isNumericKeypadKey(uint8_t hid_keycode) { // Codes HID pour les touches du pavé numérique (0x52 à 0x63) return (hid_keycode >= ADB_KEY_KPSLASH && hid_keycode <= ADB_KEY_KPDOT) || (hid_keycode == ADB_KEY_KPEQUAL); }