From d3f1bfa9bab8d96efed44558ae0b5402d039bfd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20SAILLANT?= Date: Thu, 27 Mar 2025 19:50:36 +0100 Subject: [PATCH] update to compaibility for other hid data table make conflict --- ADB.cpp | 7 +- ADB.h | 2 +- ADBKeymap.cpp | 223 ++++++++++++++++--------------- ADBKeymap.h | 33 +++-- HIDTables.h | 361 +++++++++++++++++++++++++------------------------- 5 files changed, 325 insertions(+), 301 deletions(-) diff --git a/ADB.cpp b/ADB.cpp index 1e7728c..7f2d5fe 100644 --- a/ADB.cpp +++ b/ADB.cpp @@ -210,13 +210,14 @@ adb_data ADBDevices::keyboardReadKeyPress(bool* error) { return keyPress; } -void ADBDevices::keyboardWriteLEDs(bool scroll, bool caps, bool num) { +void ADBDevices::keyboardWriteLEDs(bool num, bool caps, bool scroll) { adb_data modifiers = {0}; // Configuration des LEDs (la logique est inversée dans le protocole) - modifiers.data.led_scroll = !scroll; - modifiers.data.led_caps = !caps; modifiers.data.led_num = !num; + modifiers.data.led_caps = !caps; + modifiers.data.led_scroll = !scroll; + // Envoi d'une commande Listen au registre 2 du clavier adb.writeCommand(ADBProtocol::CMD_LISTEN | ADBProtocol::ADDRESS(ADBKey::Address::KEYBOARD) | ADBProtocol::REGISTER(2)); diff --git a/ADB.h b/ADB.h index f30a974..9901132 100644 --- a/ADB.h +++ b/ADB.h @@ -187,7 +187,7 @@ public: * @param caps État de la LED de verrouillage majuscule * @param num État de la LED de verrouillage numérique */ - void keyboardWriteLEDs(bool scroll, bool caps, bool num); + void keyboardWriteLEDs(bool num, bool caps, bool scrool); /** * @brief Lecture des données de la souris diff --git a/ADBKeymap.cpp b/ADBKeymap.cpp index 7b746a6..ab41ea1 100644 --- a/ADBKeymap.cpp +++ b/ADBKeymap.cpp @@ -3,132 +3,139 @@ // Définition du tableau de conversion ADB vers HID const uint8_t ADBKeymap::keyCodeTable[128] = { - /* 0x00 = */ KEY_A, - /* 0x01 = */ KEY_S, - /* 0x02 = */ KEY_D, - /* 0x03 = */ KEY_F, - /* 0x04 = */ KEY_H, - /* 0x05 = */ KEY_G, - /* 0x06 = */ KEY_Z, - /* 0x07 = */ KEY_X, - /* 0x08 = */ KEY_C, - /* 0x09 = */ KEY_V, - /* 0x0a = */ KEY_102ND, - /* 0x0b = */ KEY_B, - /* 0x0c = */ KEY_Q, - /* 0x0d = */ KEY_W, - /* 0x0e = */ KEY_E, - /* 0x0f = */ KEY_R, - /* 0x10 = */ KEY_Y, - /* 0x11 = */ KEY_T, - /* 0x12 = */ KEY_1, - /* 0x13 = */ KEY_2, - /* 0x14 = */ KEY_3, - /* 0x15 = */ KEY_4, - /* 0x16 = */ KEY_6, - /* 0x17 = */ KEY_5, - /* 0x18 = */ KEY_EQUAL, - /* 0x19 = */ KEY_9, - /* 0x1a = */ KEY_7, - /* 0x1b = */ KEY_MINUS, - /* 0x1c = */ KEY_8, - /* 0x1d = */ KEY_0, - /* 0x1e = */ KEY_RIGHTBRACE, - /* 0x1f = */ KEY_O, - /* 0x20 = */ KEY_U, - /* 0x21 = */ KEY_LEFTBRACE, - /* 0x22 = */ KEY_I, - /* 0x23 = */ KEY_P, - /* 0x24 = */ KEY_ENTER, - /* 0x25 = */ KEY_L, - /* 0x26 = */ KEY_J, - /* 0x27 = */ KEY_APOSTROPHE, - /* 0x28 = */ KEY_K, - /* 0x29 = */ KEY_SEMICOLON, - /* 0x2a = */ KEY_HASHTILDE, - /* 0x2b = */ KEY_COMMA, - /* 0x2c = */ KEY_SLASH, - /* 0x2d = */ KEY_N, - /* 0x2e = */ KEY_M, - /* 0x2f = */ KEY_DOT, - /* 0x30 = */ KEY_TAB, - /* 0x31 = */ KEY_SPACE, - /* 0x32 = */ KEY_GRAVE, - /* 0x33 = */ KEY_BACKSPACE, + /* 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 = */ KEY_ESC, - /* 0x36 = */ KEY_LEFTCTRL, - /* 0x37 = */ KEY_LEFTMETA, - /* 0x38 = */ KEY_LEFTSHIFT, - /* 0x39 = */ KEY_CAPSLOCK, - /* 0x3a = */ KEY_LEFTALT, - /* 0x3b = */ KEY_LEFT, - /* 0x3c = */ KEY_RIGHT, - /* 0x3d = */ KEY_DOWN, - /* 0x3e = */ KEY_UP, + /* 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 = */ KEY_KPDOT, + /* 0x41 = */ ADB_KEY_KPDOT, /* 0x42 = */ 0, - /* 0x43 = */ KEY_KPASTERISK, + /* 0x43 = */ ADB_KEY_KPASTERISK, /* 0x44 = */ 0, - /* 0x45 = */ KEY_KPPLUS, + /* 0x45 = */ ADB_KEY_KPPLUS, /* 0x46 = */ 0, - /* 0x47 = */ KEY_NUMLOCK, + /* 0x47 = */ ADB_KEY_NUMLOCK, /* 0x48 = */ 0, /* 0x49 = */ 0, /* 0x4a = */ 0, - /* 0x4b = */ KEY_KPSLASH, - /* 0x4c = */ KEY_KPENTER, + /* 0x4b = */ ADB_KEY_KPSLASH, + /* 0x4c = */ ADB_KEY_KPENTER, /* 0x4d = */ 0, - /* 0x4e = */ KEY_KPMINUS, + /* 0x4e = */ ADB_KEY_KPMINUS, /* 0x4f = */ 0, /* 0x50 = */ 0, - /* 0x51 = */ KEY_KPEQUAL, - /* 0x52 = */ KEY_KP0, - /* 0x53 = */ KEY_KP1, - /* 0x54 = */ KEY_KP2, - /* 0x55 = */ KEY_KP3, - /* 0x56 = */ KEY_KP4, - /* 0x57 = */ KEY_KP5, - /* 0x58 = */ KEY_KP6, - /* 0x59 = */ KEY_KP7, + /* 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 = */ KEY_KP8, - /* 0x5c = */ KEY_KP9, - /* 0x5d = */ KEY_KPDOT, - /* 0x5e = */ KEY_KPENTER, - /* 0x5f = */ KEY_KPEQUAL, - /* 0x60 = */ KEY_F5, - /* 0x61 = */ KEY_F6, - /* 0x62 = */ KEY_F7, - /* 0x63 = */ KEY_F3, - /* 0x64 = */ KEY_F8, - /* 0x65 = */ KEY_F9, + /* 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 = */ KEY_VOLUMEDOWN, //KEY_F11, + /* 0x67 = */ ADB_KEY_VOLUMEDOWN, //ADB_KEY_F11, /* 0x68 = */ 0, - /* 0x69 = */ KEY_F13, + /* 0x69 = */ ADB_KEY_F13, /* 0x6a = */ 0, - /* 0x6b = */ KEY_F14, + /* 0x6b = */ ADB_KEY_F14, /* 0x6c = */ 0, - /* 0x6d = */ KEY_MUTE, //KEY_F10, + /* 0x6d = */ ADB_KEY_MUTE, //ADB_KEY_F10, /* 0x6e = */ 0, - /* 0x6f = */ KEY_VOLUMEUP, //KEY_F12, + /* 0x6f = */ ADB_KEY_VOLUMEUP, //ADB_KEY_F12, /* 0x70 = */ 0, - /* 0x71 = */ KEY_F15, - /* 0x72 = */ KEY_HELP, // or KEY_INSERT - /* 0x73 = */ KEY_HOME, - /* 0x74 = */ KEY_PAGEUP, - /* 0x75 = */ KEY_DELETE, - /* 0x76 = */ KEY_F4, - /* 0x77 = */ KEY_END, - /* 0x78 = */ KEY_F2, - /* 0x79 = */ KEY_PAGEDOWN, - /* 0x7a = */ KEY_F1, - /* 0x7b = */ KEY_RIGHTSHIFT, - /* 0x7c = */ KEY_RIGHTALT, - /* 0x7d = */ KEY_RIGHTCTRL, + /* 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 = */ KEY_POWER, // Special key, repeated in both bytes of the register + /* 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); + +} diff --git a/ADBKeymap.h b/ADBKeymap.h index c17557f..d27164f 100644 --- a/ADBKeymap.h +++ b/ADBKeymap.h @@ -30,25 +30,40 @@ public: // Obtient le masque du modificateur correspondant à une touche ADB static uint8_t getModifierMask(uint8_t adbKeycode) { using namespace ADBKey::KeyCode; - if (adbKeycode == LEFT_SHIFT) return KEY_MOD_LSHIFT; - if (adbKeycode == RIGHT_SHIFT) return KEY_MOD_RSHIFT; - if (adbKeycode == LEFT_CONTROL) return KEY_MOD_LCTRL; - if (adbKeycode == RIGHT_CONTROL) return KEY_MOD_RCTRL; - if (adbKeycode == LEFT_OPTION) return KEY_MOD_LALT; - if (adbKeycode == RIGHT_OPTION) return KEY_MOD_RALT; - if (adbKeycode == LEFT_COMMAND) return KEY_MOD_LMETA; - if (adbKeycode == RIGHT_COMMAND) return KEY_MOD_RMETA; + if (adbKeycode == LEFT_SHIFT) return ADB_KEY_MOD_LSHIFT; + if (adbKeycode == RIGHT_SHIFT) return ADB_KEY_MOD_RSHIFT; + if (adbKeycode == LEFT_CONTROL) return ADB_KEY_MOD_LCTRL; + if (adbKeycode == RIGHT_CONTROL) return ADB_KEY_MOD_RCTRL; + if (adbKeycode == LEFT_OPTION) return ADB_KEY_MOD_LALT; + if (adbKeycode == RIGHT_OPTION) return ADB_KEY_MOD_RALT; + if (adbKeycode == LEFT_COMMAND) return ADB_KEY_MOD_LMETA; + if (adbKeycode == RIGHT_COMMAND) return ADB_KEY_MOD_RMETA; return 0; } // Convertit un code ADB en code HID static uint8_t toHID(uint8_t adbKeycode) { - if (adbKeycode >= 128) return KEY_NONE; + if (adbKeycode >= 128) return ADB_KEY_NONE; return keyCodeTable[adbKeycode]; } + /** + * @brief Vérifie si une touche appartient au pavé numérique. + * @param hid_keycode Code HID de la touche. + * @return true si la touche appartient au pavé numérique, false sinon. + */ + static bool isNumericKeypadKey(uint8_t hid_keycode); + + /** + * @brief Vérifie si une touche est une touche fonction (F1 à F15). + * @param hid_keycode Code HID de la touche. + * @return true si la touche est une touche fonction, false sinon. + */ + static bool isFunctionKey(uint8_t hid_keycode); + // Tableau de conversion ADB vers HID static const uint8_t keyCodeTable[128]; + }; #endif // ADB_KEYMAP_h diff --git a/HIDTables.h b/HIDTables.h index 0b5e915..360a9e1 100644 --- a/HIDTables.h +++ b/HIDTables.h @@ -4,179 +4,180 @@ #ifndef HID_TABLES_h #define HID_TABLES_h -#define KEY_MOD_LCTRL 0x01 -#define KEY_MOD_LSHIFT 0x02 -#define KEY_MOD_LALT 0x04 -#define KEY_MOD_LMETA 0x08 -#define KEY_MOD_RCTRL 0x10 -#define KEY_MOD_RSHIFT 0x20 -#define KEY_MOD_RALT 0x40 -#define KEY_MOD_RMETA 0x80 +#define ADB_KEY_MOD_LCTRL 0x01 +#define ADB_KEY_MOD_LSHIFT 0x02 +#define ADB_KEY_MOD_LALT 0x04 +#define ADB_KEY_MOD_LMETA 0x08 +#define ADB_KEY_MOD_RCTRL 0x10 +#define ADB_KEY_MOD_RSHIFT 0x20 +#define ADB_KEY_MOD_RALT 0x40 +#define ADB_KEY_MOD_RMETA 0x80 + /** * 0x00 if no key pressed. * * If more than N keys are pressed, the HID reports - * KEY_ERR_OVF in all slots to indicate this condition. + * ADB_KEY_ERR_OVF in all slots to indicate this condition. */ -#define KEY_NONE 0x00 // No key pressed -#define KEY_ERR_OVF 0x01 // Keyboard Error Roll Over - used for all slots if too many keys are pressed ("Phantom key") +#define ADB_KEY_NONE 0x00 // No key pressed +#define ADB_KEY_ERR_OVF 0x01 // Keyboard Error Roll Over - used for all slots if too many keys are pressed ("Phantom key") // 0x02 // Keyboard POST Fail // 0x03 // Keyboard Error Undefined -#define KEY_A 0x04 // Keyboard a and A -#define KEY_B 0x05 // Keyboard b and B -#define KEY_C 0x06 // Keyboard c and C -#define KEY_D 0x07 // Keyboard d and D -#define KEY_E 0x08 // Keyboard e and E -#define KEY_F 0x09 // Keyboard f and F -#define KEY_G 0x0a // Keyboard g and G -#define KEY_H 0x0b // Keyboard h and H -#define KEY_I 0x0c // Keyboard i and I -#define KEY_J 0x0d // Keyboard j and J -#define KEY_K 0x0e // Keyboard k and K -#define KEY_L 0x0f // Keyboard l and L -#define KEY_M 0x10 // Keyboard m and M -#define KEY_N 0x11 // Keyboard n and N -#define KEY_O 0x12 // Keyboard o and O -#define KEY_P 0x13 // Keyboard p and P -#define KEY_Q 0x14 // Keyboard q and Q -#define KEY_R 0x15 // Keyboard r and R -#define KEY_S 0x16 // Keyboard s and S -#define KEY_T 0x17 // Keyboard t and T -#define KEY_U 0x18 // Keyboard u and U -#define KEY_V 0x19 // Keyboard v and V -#define KEY_W 0x1a // Keyboard w and W -#define KEY_X 0x1b // Keyboard x and X -#define KEY_Y 0x1c // Keyboard y and Y -#define KEY_Z 0x1d // Keyboard z and Z +#define ADB_KEY_A 0x04 // Keyboard a and A +#define ADB_KEY_B 0x05 // Keyboard b and B +#define ADB_KEY_C 0x06 // Keyboard c and C +#define ADB_KEY_D 0x07 // Keyboard d and D +#define ADB_KEY_E 0x08 // Keyboard e and E +#define ADB_KEY_F 0x09 // Keyboard f and F +#define ADB_KEY_G 0x0a // Keyboard g and G +#define ADB_KEY_H 0x0b // Keyboard h and H +#define ADB_KEY_I 0x0c // Keyboard i and I +#define ADB_KEY_J 0x0d // Keyboard j and J +#define ADB_KEY_K 0x0e // Keyboard k and K +#define ADB_KEY_L 0x0f // Keyboard l and L +#define ADB_KEY_M 0x10 // Keyboard m and M +#define ADB_KEY_N 0x11 // Keyboard n and N +#define ADB_KEY_O 0x12 // Keyboard o and O +#define ADB_KEY_P 0x13 // Keyboard p and P +#define ADB_KEY_Q 0x14 // Keyboard q and Q +#define ADB_KEY_R 0x15 // Keyboard r and R +#define ADB_KEY_S 0x16 // Keyboard s and S +#define ADB_KEY_T 0x17 // Keyboard t and T +#define ADB_KEY_U 0x18 // Keyboard u and U +#define ADB_KEY_V 0x19 // Keyboard v and V +#define ADB_KEY_W 0x1a // Keyboard w and W +#define ADB_KEY_X 0x1b // Keyboard x and X +#define ADB_KEY_Y 0x1c // Keyboard y and Y +#define ADB_KEY_Z 0x1d // Keyboard z and Z -#define KEY_1 0x1e // Keyboard 1 and ! -#define KEY_2 0x1f // Keyboard 2 and @ -#define KEY_3 0x20 // Keyboard 3 and # -#define KEY_4 0x21 // Keyboard 4 and $ -#define KEY_5 0x22 // Keyboard 5 and % -#define KEY_6 0x23 // Keyboard 6 and ^ -#define KEY_7 0x24 // Keyboard 7 and & -#define KEY_8 0x25 // Keyboard 8 and * -#define KEY_9 0x26 // Keyboard 9 and ( -#define KEY_0 0x27 // Keyboard 0 and ) +#define ADB_KEY_1 0x1e // Keyboard 1 and ! +#define ADB_KEY_2 0x1f // Keyboard 2 and @ +#define ADB_KEY_3 0x20 // Keyboard 3 and # +#define ADB_KEY_4 0x21 // Keyboard 4 and $ +#define ADB_KEY_5 0x22 // Keyboard 5 and % +#define ADB_KEY_6 0x23 // Keyboard 6 and ^ +#define ADB_KEY_7 0x24 // Keyboard 7 and & +#define ADB_KEY_8 0x25 // Keyboard 8 and * +#define ADB_KEY_9 0x26 // Keyboard 9 and ( +#define ADB_KEY_0 0x27 // Keyboard 0 and ) -#define KEY_ENTER 0x28 // Keyboard Return (ENTER) -#define KEY_ESC 0x29 // Keyboard ESCAPE -#define KEY_BACKSPACE 0x2a // Keyboard DELETE (Backspace) -#define KEY_TAB 0x2b // Keyboard Tab -#define KEY_SPACE 0x2c // Keyboard Spacebar -#define KEY_MINUS 0x2d // Keyboard - and _ -#define KEY_EQUAL 0x2e // Keyboard = and + -#define KEY_LEFTBRACE 0x2f // Keyboard [ and { -#define KEY_RIGHTBRACE 0x30 // Keyboard ] and } -#define KEY_BACKSLASH 0x31 // Keyboard \ and | -#define KEY_HASHTILDE 0x32 // Keyboard Non-US # and ~ -#define KEY_SEMICOLON 0x33 // Keyboard ; and : -#define KEY_APOSTROPHE 0x34 // Keyboard ' and " -#define KEY_GRAVE 0x35 // Keyboard ` and ~ -#define KEY_COMMA 0x36 // Keyboard , and < -#define KEY_DOT 0x37 // Keyboard . and > -#define KEY_SLASH 0x38 // Keyboard / and ? -#define KEY_CAPSLOCK 0x39 // Keyboard Caps Lock +#define ADB_KEY_ENTER 0x28 // Keyboard Return (ENTER) +#define ADB_KEY_ESC 0x29 // Keyboard ESCAPE +#define ADB_KEY_BACKSPACE 0x2a // Keyboard DELETE (Backspace) +#define ADB_KEY_TAB 0x2b // Keyboard Tab +#define ADB_KEY_SPACE 0x2c // Keyboard Spacebar +#define ADB_KEY_MINUS 0x2d // Keyboard - and _ +#define ADB_KEY_EQUAL 0x2e // Keyboard = and + +#define ADB_KEY_LEFTBRACE 0x2f // Keyboard [ and { +#define ADB_KEY_RIGHTBRACE 0x30 // Keyboard ] and } +#define ADB_KEY_BACKSLASH 0x31 // Keyboard \ and | +#define ADB_KEY_HASHTILDE 0x32 // Keyboard Non-US # and ~ +#define ADB_KEY_SEMICOLON 0x33 // Keyboard ; and : +#define ADB_KEY_APOSTROPHE 0x34 // Keyboard ' and " +#define ADB_KEY_GRAVE 0x35 // Keyboard ` and ~ +#define ADB_KEY_COMMA 0x36 // Keyboard , and < +#define ADB_KEY_DOT 0x37 // Keyboard . and > +#define ADB_KEY_SLASH 0x38 // Keyboard / and ? +#define ADB_KEY_CAPSLOCK 0x39 // Keyboard Caps Lock -#define KEY_F1 0x3a // Keyboard F1 -#define KEY_F2 0x3b // Keyboard F2 -#define KEY_F3 0x3c // Keyboard F3 -#define KEY_F4 0x3d // Keyboard F4 -#define KEY_F5 0x3e // Keyboard F5 -#define KEY_F6 0x3f // Keyboard F6 -#define KEY_F7 0x40 // Keyboard F7 -#define KEY_F8 0x41 // Keyboard F8 -#define KEY_F9 0x42 // Keyboard F9 -#define KEY_F10 0x43 // Keyboard F10 -#define KEY_F11 0x44 // Keyboard F11 -#define KEY_F12 0x45 // Keyboard F12 +#define ADB_KEY_F1 0x3a // Keyboard F1 +#define ADB_KEY_F2 0x3b // Keyboard F2 +#define ADB_KEY_F3 0x3c // Keyboard F3 +#define ADB_KEY_F4 0x3d // Keyboard F4 +#define ADB_KEY_F5 0x3e // Keyboard F5 +#define ADB_KEY_F6 0x3f // Keyboard F6 +#define ADB_KEY_F7 0x40 // Keyboard F7 +#define ADB_KEY_F8 0x41 // Keyboard F8 +#define ADB_KEY_F9 0x42 // Keyboard F9 +#define ADB_KEY_F10 0x43 // Keyboard F10 +#define ADB_KEY_F11 0x44 // Keyboard F11 +#define ADB_KEY_F12 0x45 // Keyboard F12 -#define KEY_SYSRQ 0x46 // Keyboard Print Screen -#define KEY_SCROLLLOCK 0x47 // Keyboard Scroll Lock -#define KEY_PAUSE 0x48 // Keyboard Pause -#define KEY_INSERT 0x49 // Keyboard Insert -#define KEY_HOME 0x4a // Keyboard Home -#define KEY_PAGEUP 0x4b // Keyboard Page Up -#define KEY_DELETE 0x4c // Keyboard Delete Forward -#define KEY_END 0x4d // Keyboard End -#define KEY_PAGEDOWN 0x4e // Keyboard Page Down -#define KEY_RIGHT 0x4f // Keyboard Right Arrow -#define KEY_LEFT 0x50 // Keyboard Left Arrow -#define KEY_DOWN 0x51 // Keyboard Down Arrow -#define KEY_UP 0x52 // Keyboard Up Arrow +#define ADB_KEY_SYSRQ 0x46 // Keyboard Print Screen +#define ADB_KEY_SCROLLLOCK 0x47 // Keyboard Scroll Lock +#define ADB_KEY_PAUSE 0x48 // Keyboard Pause +#define ADB_KEY_INSERT 0x49 // Keyboard Insert +#define ADB_KEY_HOME 0x4a // Keyboard Home +#define ADB_KEY_PAGEUP 0x4b // Keyboard Page Up +#define ADB_KEY_DELETE 0x4c // Keyboard Delete Forward +#define ADB_KEY_END 0x4d // Keyboard End +#define ADB_KEY_PAGEDOWN 0x4e // Keyboard Page Down +#define ADB_KEY_RIGHT 0x4f // Keyboard Right Arrow +#define ADB_KEY_LEFT 0x50 // Keyboard Left Arrow +#define ADB_KEY_DOWN 0x51 // Keyboard Down Arrow +#define ADB_KEY_UP 0x52 // Keyboard Up Arrow -#define KEY_NUMLOCK 0x53 // Keyboard Num Lock and Clear -#define KEY_KPSLASH 0x54 // Keypad / -#define KEY_KPASTERISK 0x55 // Keypad * -#define KEY_KPMINUS 0x56 // Keypad - -#define KEY_KPPLUS 0x57 // Keypad + -#define KEY_KPENTER 0x58 // Keypad ENTER -#define KEY_KP1 0x59 // Keypad 1 and End -#define KEY_KP2 0x5a // Keypad 2 and Down Arrow -#define KEY_KP3 0x5b // Keypad 3 and PageDn -#define KEY_KP4 0x5c // Keypad 4 and Left Arrow -#define KEY_KP5 0x5d // Keypad 5 -#define KEY_KP6 0x5e // Keypad 6 and Right Arrow -#define KEY_KP7 0x5f // Keypad 7 and Home -#define KEY_KP8 0x60 // Keypad 8 and Up Arrow -#define KEY_KP9 0x61 // Keypad 9 and Page Up -#define KEY_KP0 0x62 // Keypad 0 and Insert -#define KEY_KPDOT 0x63 // Keypad . and Delete +#define ADB_KEY_NUMLOCK 0x53 // Keyboard Num Lock and Clear +#define ADB_KEY_KPSLASH 0x54 // Keypad / +#define ADB_KEY_KPASTERISK 0x55 // Keypad * +#define ADB_KEY_KPMINUS 0x56 // Keypad - +#define ADB_KEY_KPPLUS 0x57 // Keypad + +#define ADB_KEY_KPENTER 0x58 // Keypad ENTER +#define ADB_KEY_KP1 0x59 // Keypad 1 and End +#define ADB_KEY_KP2 0x5a // Keypad 2 and Down Arrow +#define ADB_KEY_KP3 0x5b // Keypad 3 and PageDn +#define ADB_KEY_KP4 0x5c // Keypad 4 and Left Arrow +#define ADB_KEY_KP5 0x5d // Keypad 5 +#define ADB_KEY_KP6 0x5e // Keypad 6 and Right Arrow +#define ADB_KEY_KP7 0x5f // Keypad 7 and Home +#define ADB_KEY_KP8 0x60 // Keypad 8 and Up Arrow +#define ADB_KEY_KP9 0x61 // Keypad 9 and Page Up +#define ADB_KEY_KP0 0x62 // Keypad 0 and Insert +#define ADB_KEY_KPDOT 0x63 // Keypad . and Delete -#define KEY_102ND 0x64 // Keyboard Non-US \ and | -#define KEY_COMPOSE 0x65 // Keyboard Application -#define KEY_POWER 0x66 // Keyboard Power -#define KEY_KPEQUAL 0x67 // Keypad = +#define ADB_KEY_102ND 0x64 // Keyboard Non-US \ and | +#define ADB_KEY_COMPOSE 0x65 // Keyboard Application +#define ADB_KEY_POWER 0x66 // Keyboard Power +#define ADB_KEY_KPEQUAL 0x67 // Keypad = -#define KEY_F13 0x68 // Keyboard F13 -#define KEY_F14 0x69 // Keyboard F14 -#define KEY_F15 0x6a // Keyboard F15 -#define KEY_F16 0x6b // Keyboard F16 -#define KEY_F17 0x6c // Keyboard F17 -#define KEY_F18 0x6d // Keyboard F18 -#define KEY_F19 0x6e // Keyboard F19 -#define KEY_F20 0x6f // Keyboard F20 -#define KEY_F21 0x70 // Keyboard F21 -#define KEY_F22 0x71 // Keyboard F22 -#define KEY_F23 0x72 // Keyboard F23 -#define KEY_F24 0x73 // Keyboard F24 +#define ADB_KEY_F13 0x68 // Keyboard F13 +#define ADB_KEY_F14 0x69 // Keyboard F14 +#define ADB_KEY_F15 0x6a // Keyboard F15 +#define ADB_KEY_F16 0x6b // Keyboard F16 +#define ADB_KEY_F17 0x6c // Keyboard F17 +#define ADB_KEY_F18 0x6d // Keyboard F18 +#define ADB_KEY_F19 0x6e // Keyboard F19 +#define ADB_KEY_F20 0x6f // Keyboard F20 +#define ADB_KEY_F21 0x70 // Keyboard F21 +#define ADB_KEY_F22 0x71 // Keyboard F22 +#define ADB_KEY_F23 0x72 // Keyboard F23 +#define ADB_KEY_F24 0x73 // Keyboard F24 -#define KEY_OPEN 0x74 // Keyboard Execute -#define KEY_HELP 0x75 // Keyboard Help -#define KEY_PROPS 0x76 // Keyboard Menu -#define KEY_FRONT 0x77 // Keyboard Select -#define KEY_STOP 0x78 // Keyboard Stop -#define KEY_AGAIN 0x79 // Keyboard Again -#define KEY_UNDO 0x7a // Keyboard Undo -#define KEY_CUT 0x7b // Keyboard Cut -#define KEY_COPY 0x7c // Keyboard Copy -#define KEY_PASTE 0x7d // Keyboard Paste -#define KEY_FIND 0x7e // Keyboard Find -#define KEY_MUTE 0x7f // Keyboard Mute -#define KEY_VOLUMEUP 0x80 // Keyboard Volume Up -#define KEY_VOLUMEDOWN 0x81 // Keyboard Volume Down +#define ADB_KEY_OPEN 0x74 // Keyboard Execute +#define ADB_KEY_HELP 0x75 // Keyboard Help +#define ADB_KEY_PROPS 0x76 // Keyboard Menu +#define ADB_KEY_FRONT 0x77 // Keyboard Select +#define ADB_KEY_STOP 0x78 // Keyboard Stop +#define ADB_KEY_AGAIN 0x79 // Keyboard Again +#define ADB_KEY_UNDO 0x7a // Keyboard Undo +#define ADB_KEY_CUT 0x7b // Keyboard Cut +#define ADB_KEY_COPY 0x7c // Keyboard Copy +#define ADB_KEY_PASTE 0x7d // Keyboard Paste +#define ADB_KEY_FIND 0x7e // Keyboard Find +#define ADB_KEY_MUTE 0x7f // Keyboard Mute +#define ADB_KEY_VOLUMEUP 0x80 // Keyboard Volume Up +#define ADB_KEY_VOLUMEDOWN 0x81 // Keyboard Volume Down // 0x82 Keyboard Locking Caps Lock // 0x83 Keyboard Locking Num Lock // 0x84 Keyboard Locking Scroll Lock -#define KEY_KPCOMMA 0x85 // Keypad Comma +#define ADB_KEY_KPCOMMA 0x85 // Keypad Comma // 0x86 Keypad Equal Sign -#define KEY_RO 0x87 // Keyboard International1 -#define KEY_KATAKANAHIRAGANA 0x88 // Keyboard International2 -#define KEY_YEN 0x89 // Keyboard International3 -#define KEY_HENKAN 0x8a // Keyboard International4 -#define KEY_MUHENKAN 0x8b // Keyboard International5 -#define KEY_KPJPCOMMA 0x8c // Keyboard International6 +#define ADB_KEY_RO 0x87 // Keyboard International1 +#define ADB_KEY_KATAKANAHIRAGANA 0x88 // Keyboard International2 +#define ADB_KEY_YEN 0x89 // Keyboard International3 +#define ADB_KEY_HENKAN 0x8a // Keyboard International4 +#define ADB_KEY_MUHENKAN 0x8b // Keyboard International5 +#define ADB_KEY_KPJPCOMMA 0x8c // Keyboard International6 // 0x8d Keyboard International7 // 0x8e Keyboard International8 // 0x8f Keyboard International9 -#define KEY_HANGEUL 0x90 // Keyboard LANG1 -#define KEY_HANJA 0x91 // Keyboard LANG2 -#define KEY_KATAKANA 0x92 // Keyboard LANG3 -#define KEY_HIRAGANA 0x93 // Keyboard LANG4 -#define KEY_ZENKAKUHANKAKU 0x94 // Keyboard LANG5 +#define ADB_KEY_HANGEUL 0x90 // Keyboard LANG1 +#define ADB_KEY_HANJA 0x91 // Keyboard LANG2 +#define ADB_KEY_KATAKANA 0x92 // Keyboard LANG3 +#define ADB_KEY_HIRAGANA 0x93 // Keyboard LANG4 +#define ADB_KEY_ZENKAKUHANKAKU 0x94 // Keyboard LANG5 // 0x95 Keyboard LANG6 // 0x96 Keyboard LANG7 // 0x97 Keyboard LANG8 @@ -200,8 +201,8 @@ // 0xb3 Decimal Separator // 0xb4 Currency Unit // 0xb5 Currency Sub-unit -#define KEY_KPLEFTPAREN 0xb6 // Keypad ( -#define KEY_KPRIGHTPAREN 0xb7 // Keypad ) +#define ADB_KEY_KPLEFTPAREN 0xb6 // Keypad ( +#define ADB_KEY_KPRIGHTPAREN 0xb7 // Keypad ) // 0xb8 Keypad { // 0xb9 Keypad } // 0xba Keypad Tab @@ -241,34 +242,34 @@ // 0xdc Keypad Decimal // 0xdd Keypad Hexadecimal -#define KEY_LEFTCTRL 0xe0 // Keyboard Left Control -#define KEY_LEFTSHIFT 0xe1 // Keyboard Left Shift -#define KEY_LEFTALT 0xe2 // Keyboard Left Alt -#define KEY_LEFTMETA 0xe3 // Keyboard Left GUI -#define KEY_RIGHTCTRL 0xe4 // Keyboard Right Control -#define KEY_RIGHTSHIFT 0xe5 // Keyboard Right Shift -#define KEY_RIGHTALT 0xe6 // Keyboard Right Alt -#define KEY_RIGHTMETA 0xe7 // Keyboard Right GUI +#define ADB_KEY_LEFTCTRL 0xe0 // Keyboard Left Control +#define ADB_KEY_LEFTSHIFT 0xe1 // Keyboard Left Shift +#define ADB_KEY_LEFTALT 0xe2 // Keyboard Left Alt +#define ADB_KEY_LEFTMETA 0xe3 // Keyboard Left GUI +#define ADB_KEY_RIGHTCTRL 0xe4 // Keyboard Right Control +#define ADB_KEY_RIGHTSHIFT 0xe5 // Keyboard Right Shift +#define ADB_KEY_RIGHTALT 0xe6 // Keyboard Right Alt +#define ADB_KEY_RIGHTMETA 0xe7 // Keyboard Right GUI -#define KEY_MEDIA_PLAYPAUSE 0xe8 -#define KEY_MEDIA_STOPCD 0xe9 -#define KEY_MEDIA_PREVIOUSSONG 0xea -#define KEY_MEDIA_NEXTSONG 0xeb -#define KEY_MEDIA_EJECTCD 0xec -#define KEY_MEDIA_VOLUMEUP 0xed -#define KEY_MEDIA_VOLUMEDOWN 0xee -#define KEY_MEDIA_MUTE 0xef -#define KEY_MEDIA_WWW 0xf0 -#define KEY_MEDIA_BACK 0xf1 -#define KEY_MEDIA_FORWARD 0xf2 -#define KEY_MEDIA_STOP 0xf3 -#define KEY_MEDIA_FIND 0xf4 -#define KEY_MEDIA_SCROLLUP 0xf5 -#define KEY_MEDIA_SCROLLDOWN 0xf6 -#define KEY_MEDIA_EDIT 0xf7 -#define KEY_MEDIA_SLEEP 0xf8 -#define KEY_MEDIA_COFFEE 0xf9 -#define KEY_MEDIA_REFRESH 0xfa -#define KEY_MEDIA_CALC 0xfb +#define ADB_KEY_MEDIA_PLAYPAUSE 0xe8 +#define ADB_KEY_MEDIA_STOPCD 0xe9 +#define ADB_KEY_MEDIA_PREVIOUSSONG 0xea +#define ADB_KEY_MEDIA_NEXTSONG 0xeb +#define ADB_KEY_MEDIA_EJECTCD 0xec +#define ADB_KEY_MEDIA_VOLUMEUP 0xed +#define ADB_KEY_MEDIA_VOLUMEDOWN 0xee +#define ADB_KEY_MEDIA_MUTE 0xef +#define ADB_KEY_MEDIA_WWW 0xf0 +#define ADB_KEY_MEDIA_BACK 0xf1 +#define ADB_KEY_MEDIA_FORWARD 0xf2 +#define ADB_KEY_MEDIA_STOP 0xf3 +#define ADB_KEY_MEDIA_FIND 0xf4 +#define ADB_KEY_MEDIA_SCROLLUP 0xf5 +#define ADB_KEY_MEDIA_SCROLLDOWN 0xf6 +#define ADB_KEY_MEDIA_EDIT 0xf7 +#define ADB_KEY_MEDIA_SLEEP 0xf8 +#define ADB_KEY_MEDIA_COFFEE 0xf9 +#define ADB_KEY_MEDIA_REFRESH 0xfa +#define ADB_KEY_MEDIA_CALC 0xfb -#endif \ No newline at end of file +#endif