update to compaibility for other hid data table make conflict

This commit is contained in:
Clément SAILLANT
2025-03-27 19:50:36 +01:00
parent 1b35d9ea54
commit d3f1bfa9ba
5 changed files with 325 additions and 301 deletions
+4 -3
View File
@@ -210,13 +210,14 @@ adb_data<adb_kb_keypress> 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<adb_kb_modifiers> 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));
+1 -1
View File
@@ -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
+115 -108
View File
@@ -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);
}
+24 -9
View File
@@ -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
+181 -180
View File
@@ -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
#endif