Added USB HID keyboard mapping data

This commit is contained in:
mame82 2018-05-28 21:47:56 +00:00
parent 72abf19252
commit 69ee0c4769
2 changed files with 866 additions and 321 deletions

View File

@ -1,321 +0,0 @@
package hid
/*
Keyboard descriptor used
USAGE_PAGE (Generic Desktop) 05 01
USAGE (Keyboard) 09 06
COLLECTION (Application) A1 01
USAGE_PAGE (Keyboard) 05 07
USAGE_MINIMUM (Keyboard LeftControl) 19 E0
USAGE_MAXIMUM (Keyboard Right GUI) 29 E7
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_SIZE (1) 75 01
REPORT_COUNT (8) 95 08
INPUT (Data,Var,Abs) 81 02
REPORT_COUNT (1) 95 01
REPORT_SIZE (8) 75 08
INPUT (Cnst,Var,Abs) 81 03
REPORT_COUNT (5) 95 05
REPORT_SIZE (1) 75 01
USAGE_PAGE (LEDs) 05 08
USAGE_MINIMUM (Num Lock) 19 01
USAGE_MAXIMUM (Kana) 29 05
OUTPUT (Data,Var,Abs) 91 02
REPORT_COUNT (1) 95 01
REPORT_SIZE (3) 75 03
OUTPUT (Cnst,Var,Abs) 91 03
REPORT_COUNT (6) 95 06
REPORT_SIZE (8) 75 08
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (101) 25 65
USAGE_PAGE (Keyboard) 05 07
USAGE_MINIMUM (Reserved (no event indicated)) 19 00
USAGE_MAXIMUM (Keyboard Application) 29 65
INPUT (Data,Ary,Abs) 81 00
END_COLLECTION C0
--> Report format INPUT
Byte 0: INPUT - Modifier BitMask
Bit 0: Keyboard LeftControl
Bit 7: Keyboard Right GUI
Byte 1: INPUT - Constant field
Byte 2: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 3: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 4: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 5: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 6: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 7: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
see: http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
--> Report format OUTPUT
Byte 0: OUTPUT - LED BitMask //Only present in output reports
Bit 0: Num Lock
Bit 4: Kana
Bit 5 .. 7: Constant
*/
const (
HID_MOD_KEY_LEFT_CONTROL = 0x01
HID_MOD_KEY_LEFT_SHIFT = 0x02
HID_MOD_KEY_LEFT_ALT = 0x04
HID_MOD_KEY_LEFT_GUI = 0x08
HID_MOD_KEY_RIGHT_CONTROL = 0x10
HID_MOD_KEY_RIGHT_SHIFT = 0x20
HID_MOD_KEY_RIGHT_ALT = 0x40
HID_MOD_KEY_RIGHT_GUI = 0x80
HID_KEY_RESERVED = 0x00
HID_KEY_ERROR_ROLLOVER = 0x01
HID_KEY_POST_FAIL = 0x02
HID_KEY_ERROR_UNDEFINED = 0x03
HID_KEY_A= 0x04
HID_KEY_B= 0x05
HID_KEY_C= 0x06
HID_KEY_D = 0x07 // Keyboard d and D
HID_KEY_E = 0x08 // Keyboard e and E
HID_KEY_F = 0x09 // Keyboard f and F
HID_KEY_G = 0x0a // Keyboard g and G
HID_KEY_H = 0x0b // Keyboard h and H
HID_KEY_I = 0x0c // Keyboard i and I
HID_KEY_J = 0x0d // Keyboard j and J
HID_KEY_K = 0x0e // Keyboard k and K
HID_KEY_L = 0x0f // Keyboard l and L
HID_KEY_M = 0x10 // Keyboard m and M
HID_KEY_N = 0x11 // Keyboard n and N
HID_KEY_O = 0x12 // Keyboard o and O
HID_KEY_P = 0x13 // Keyboard p and P
HID_KEY_Q = 0x14 // Keyboard q and Q
HID_KEY_R = 0x15 // Keyboard r and R
HID_KEY_S = 0x16 // Keyboard s and S
HID_KEY_T = 0x17 // Keyboard t and T
HID_KEY_U = 0x18 // Keyboard u and U
HID_KEY_V = 0x19 // Keyboard v and V
HID_KEY_W = 0x1a // Keyboard w and W
HID_KEY_X = 0x1b // Keyboard x and X
HID_KEY_Y = 0x1c // Keyboard y and Y
HID_KEY_Z = 0x1d // Keyboard z and Z
HID_KEY_1 = 0x1e // Keyboard 1 and !
HID_KEY_2 = 0x1f // Keyboard 2 and @
HID_KEY_3 = 0x20 // Keyboard 3 and #
HID_KEY_4 = 0x21 // Keyboard 4 and $
HID_KEY_5 = 0x22 // Keyboard 5 and %
HID_KEY_6 = 0x23 // Keyboard 6 and ^
HID_KEY_7 = 0x24 // Keyboard 7 and &
HID_KEY_8 = 0x25 // Keyboard 8 and *
HID_KEY_9 = 0x26 // Keyboard 9 and (
HID_KEY_0 = 0x27 // Keyboard 0 and )
HID_KEY_ENTER = 0x28 // Keyboard Return (ENTER)
HID_KEY_ESC = 0x29 // Keyboard ESCAPE
HID_KEY_BACKSPACE = 0x2a // Keyboard DELETE (Backspace)
HID_KEY_TAB = 0x2b // Keyboard Tab
HID_KEY_SPACE = 0x2c // Keyboard Spacebar
HID_KEY_MINUS = 0x2d // Keyboard - and _
HID_KEY_EQUAL = 0x2e // Keyboard = and +
HID_KEY_LEFTBRACE = 0x2f // Keyboard [ and {
HID_KEY_RIGHTBRACE = 0x30 // Keyboard ] and }
HID_KEY_BACKSLASH = 0x31 // Keyboard \ and |
HID_KEY_HASHTILDE = 0x32 // Keyboard Non-US # and ~
HID_KEY_SEMICOLON = 0x33 // Keyboard ; and :
HID_KEY_APOSTROPHE = 0x34 // Keyboard ' and "
HID_KEY_GRAVE = 0x35 // Keyboard ` and ~
HID_KEY_COMMA = 0x36 // Keyboard , and <
HID_KEY_DOT = 0x37 // Keyboard . and >
HID_KEY_SLASH = 0x38 // Keyboard / and ?
HID_KEY_CAPSLOCK = 0x39 // Keyboard Caps Lock
HID_KEY_F1 = 0x3a // Keyboard F1
HID_KEY_F2 = 0x3b // Keyboard F2
HID_KEY_F3 = 0x3c // Keyboard F3
HID_KEY_F4 = 0x3d // Keyboard F4
HID_KEY_F5 = 0x3e // Keyboard F5
HID_KEY_F6 = 0x3f // Keyboard F6
HID_KEY_F7 = 0x40 // Keyboard F7
HID_KEY_F8 = 0x41 // Keyboard F8
HID_KEY_F9 = 0x42 // Keyboard F9
HID_KEY_F10 = 0x43 // Keyboard F10
HID_KEY_F11 = 0x44 // Keyboard F11
HID_KEY_F12 = 0x45 // Keyboard F12
HID_KEY_SYSRQ = 0x46 // Keyboard Print Screen
HID_KEY_SCROLLLOCK = 0x47 // Keyboard Scroll Lock
HID_KEY_PAUSE = 0x48 // Keyboard Pause
HID_KEY_INSERT = 0x49 // Keyboard Insert
HID_KEY_HOME = 0x4a // Keyboard Home
HID_KEY_PAGEUP = 0x4b // Keyboard Page Up
HID_KEY_DELETE = 0x4c // Keyboard Delete Forward
HID_KEY_END = 0x4d // Keyboard End
HID_KEY_PAGEDOWN = 0x4e // Keyboard Page Down
HID_KEY_RIGHT = 0x4f // Keyboard Right Arrow
HID_KEY_LEFT = 0x50 // Keyboard Left Arrow
HID_KEY_DOWN = 0x51 // Keyboard Down Arrow
HID_KEY_UP = 0x52 // Keyboard Up Arrow
HID_KEY_NUMLOCK = 0x53 // Keyboard Num Lock and Clear
HID_KEY_KPSLASH = 0x54 // Keypad /
HID_KEY_KPASTERISK = 0x55 // Keypad *
HID_KEY_KPMINUS = 0x56 // Keypad -
HID_KEY_KPPLUS = 0x57 // Keypad +
HID_KEY_KPENTER = 0x58 // Keypad ENTER
HID_KEY_KP1 = 0x59 // Keypad 1 and End
HID_KEY_KP2 = 0x5a // Keypad 2 and Down Arrow
HID_KEY_KP3 = 0x5b // Keypad 3 and PageDn
HID_KEY_KP4 = 0x5c // Keypad 4 and Left Arrow
HID_KEY_KP5 = 0x5d // Keypad 5
HID_KEY_KP6 = 0x5e // Keypad 6 and Right Arrow
HID_KEY_KP7 = 0x5f // Keypad 7 and Home
HID_KEY_KP8 = 0x60 // Keypad 8 and Up Arrow
HID_KEY_KP9 = 0x61 // Keypad 9 and Page Up
HID_KEY_KP0 = 0x62 // Keypad 0 and Insert
HID_KEY_KPDOT = 0x63 // Keypad . and Delete
HID_KEY_102ND = 0x64 // Keyboard Non-US \ and |
HID_KEY_COMPOSE = 0x65 // Keyboard Application
HID_KEY_POWER = 0x66 // Keyboard Power
HID_KEY_KPEQUAL = 0x67 // Keypad =
HID_KEY_F13 = 0x68 // Keyboard F13
HID_KEY_F14 = 0x69 // Keyboard F14
HID_KEY_F15 = 0x6a // Keyboard F15
HID_KEY_F16 = 0x6b // Keyboard F16
HID_KEY_F17 = 0x6c // Keyboard F17
HID_KEY_F18 = 0x6d // Keyboard F18
HID_KEY_F19 = 0x6e // Keyboard F19
HID_KEY_F20 = 0x6f // Keyboard F20
HID_KEY_F21 = 0x70 // Keyboard F21
HID_KEY_F22 = 0x71 // Keyboard F22
HID_KEY_F23 = 0x72 // Keyboard F23
HID_KEY_F24 = 0x73 // Keyboard F24
HID_KEY_OPEN = 0x74 // Keyboard Execute
HID_KEY_HELP = 0x75 // Keyboard Help
HID_KEY_PROPS = 0x76 // Keyboard Menu
HID_KEY_FRONT = 0x77 // Keyboard Select
HID_KEY_STOP = 0x78 // Keyboard Stop
HID_KEY_AGAIN = 0x79 // Keyboard Again
HID_KEY_UNDO = 0x7a // Keyboard Undo
HID_KEY_CUT = 0x7b // Keyboard Cut
HID_KEY_COPY = 0x7c // Keyboard Copy
HID_KEY_PASTE = 0x7d // Keyboard Paste
HID_KEY_FIND = 0x7e // Keyboard Find
HID_KEY_MUTE = 0x7f // Keyboard Mute
HID_KEY_VOLUMEUP = 0x80 // Keyboard Volume Up
HID_KEY_VOLUMEDOWN = 0x81 // Keyboard Volume Down
// = 0x82 Keyboard Locking Caps Lock
// = 0x83 Keyboard Locking Num Lock
// = 0x84 Keyboard Locking Scroll Lock
HID_KEY_KPCOMMA = 0x85 // Keypad Comma
// = 0x86 Keypad Equal Sign
HID_KEY_RO = 0x87 // Keyboard International1
HID_KEY_KATAKANAHIRAGANA = 0x88 // Keyboard International2
HID_KEY_YEN = 0x89 // Keyboard International3
HID_KEY_HENKAN = 0x8a // Keyboard International4
HID_KEY_MUHENKAN = 0x8b // Keyboard International5
HID_KEY_KPJPCOMMA = 0x8c // Keyboard International6
// = 0x8d Keyboard International7
// = 0x8e Keyboard International8
// = 0x8f Keyboard International9
HID_KEY_HANGEUL = 0x90 // Keyboard LANG1
HID_KEY_HANJA = 0x91 // Keyboard LANG2
HID_KEY_KATAKANA = 0x92 // Keyboard LANG3
HID_KEY_HIRAGANA = 0x93 // Keyboard LANG4
HID_KEY_ZENKAKUHANKAKU = 0x94 // Keyboard LANG5
// = 0x95 Keyboard LANG6
// = 0x96 Keyboard LANG7
// = 0x97 Keyboard LANG8
// = 0x98 Keyboard LANG9
// = 0x99 Keyboard Alternate Erase
// = 0x9a Keyboard SysReq/Attention
// = 0x9b Keyboard Cancel
// = 0x9c Keyboard Clear
// = 0x9d Keyboard Prior
// = 0x9e Keyboard Return
// = 0x9f Keyboard Separator
// = 0xa0 Keyboard Out
// = 0xa1 Keyboard Oper
// = 0xa2 Keyboard Clear/Again
// = 0xa3 Keyboard CrSel/Props
// = 0xa4 Keyboard ExSel
// = 0xb0 Keypad 00
// = 0xb1 Keypad 000
// = 0xb2 Thousands Separator
// = 0xb3 Decimal Separator
// = 0xb4 Currency Unit
// = 0xb5 Currency Sub-unit
HID_KEY_KPLEFTPAREN = 0xb6 // Keypad (
HID_KEY_KPRIGHTPAREN = 0xb7 // Keypad )
// = 0xb8 Keypad {
// = 0xb9 Keypad }
// = 0xba Keypad Tab
// = 0xbb Keypad Backspace
// = 0xbc Keypad A
// = 0xbd Keypad B
// = 0xbe Keypad C
// = 0xbf Keypad D
// = 0xc0 Keypad E
// = 0xc1 Keypad F
// = 0xc2 Keypad XOR
// = 0xc3 Keypad ^
// = 0xc4 Keypad %
// = 0xc5 Keypad <
// = 0xc6 Keypad >
// = 0xc7 Keypad &
// = 0xc8 Keypad &&
// = 0xc9 Keypad |
// = 0xca Keypad ||
// = 0xcb Keypad :
// = 0xcc Keypad #
// = 0xcd Keypad Space
// = 0xce Keypad @
// = 0xcf Keypad !
// = 0xd0 Keypad Memory Store
// = 0xd1 Keypad Memory Recall
// = 0xd2 Keypad Memory Clear
// = 0xd3 Keypad Memory Add
// = 0xd4 Keypad Memory Subtract
// = 0xd5 Keypad Memory Multiply
// = 0xd6 Keypad Memory Divide
// = 0xd7 Keypad +/-
// = 0xd8 Keypad Clear
// = 0xd9 Keypad Clear Entry
// = 0xda Keypad Binary
// = 0xdb Keypad Octal
// = 0xdc Keypad Decimal
// = 0xdd Keypad Hexadecimal
HID_KEY_LEFTCTRL = 0xe0 // Keyboard Left Control
HID_KEY_LEFTSHIFT = 0xe1 // Keyboard Left Shift
HID_KEY_LEFTALT = 0xe2 // Keyboard Left Alt
HID_KEY_LEFTMETA = 0xe3 // Keyboard Left GUI
HID_KEY_RIGHTCTRL = 0xe4 // Keyboard Right Control
HID_KEY_RIGHTSHIFT = 0xe5 // Keyboard Right Shift
HID_KEY_RIGHTALT = 0xe6 // Keyboard Right Alt
HID_KEY_RIGHTMETA = 0xe7 // Keyboard Right GUI
HID_KEY_MEDIA_PLAYPAUSE = 0xe8
HID_KEY_MEDIA_STOPCD = 0xe9
HID_KEY_MEDIA_PREVIOUSSONG = 0xea
HID_KEY_MEDIA_NEXTSONG = 0xeb
HID_KEY_MEDIA_EJECTCD = 0xec
HID_KEY_MEDIA_VOLUMEUP = 0xed
HID_KEY_MEDIA_VOLUMEDOWN = 0xee
HID_KEY_MEDIA_MUTE = 0xef
HID_KEY_MEDIA_WWW = 0xf0
HID_KEY_MEDIA_BACK = 0xf1
HID_KEY_MEDIA_FORWARD = 0xf2
HID_KEY_MEDIA_STOP = 0xf3
HID_KEY_MEDIA_FIND = 0xf4
HID_KEY_MEDIA_SCROLLUP = 0xf5
HID_KEY_MEDIA_SCROLLDOWN = 0xf6
HID_KEY_MEDIA_EDIT = 0xf7
HID_KEY_MEDIA_SLEEP = 0xf8
HID_KEY_MEDIA_COFFEE = 0xf9
HID_KEY_MEDIA_REFRESH = 0xfa
HID_KEY_MEDIA_CALC = 0xfb
)

866
hid/keyboard_globals.go Normal file
View File

@ -0,0 +1,866 @@
package hid
/*
Keyboard descriptor used
USAGE_PAGE (Generic Desktop) 05 01
USAGE (Keyboard) 09 06
COLLECTION (Application) A1 01
USAGE_PAGE (Keyboard) 05 07
USAGE_MINIMUM (Keyboard LeftControl) 19 E0
USAGE_MAXIMUM (Keyboard Right GUI) 29 E7
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_SIZE (1) 75 01
REPORT_COUNT (8) 95 08
INPUT (Data,Var,Abs) 81 02
REPORT_COUNT (1) 95 01
REPORT_SIZE (8) 75 08
INPUT (Cnst,Var,Abs) 81 03
REPORT_COUNT (5) 95 05
REPORT_SIZE (1) 75 01
USAGE_PAGE (LEDs) 05 08
USAGE_MINIMUM (Num Lock) 19 01
USAGE_MAXIMUM (Kana) 29 05
OUTPUT (Data,Var,Abs) 91 02
REPORT_COUNT (1) 95 01
REPORT_SIZE (3) 75 03
OUTPUT (Cnst,Var,Abs) 91 03
REPORT_COUNT (6) 95 06
REPORT_SIZE (8) 75 08
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (101) 25 65
USAGE_PAGE (Keyboard) 05 07
USAGE_MINIMUM (Reserved (no event indicated)) 19 00
USAGE_MAXIMUM (Keyboard Application) 29 65
INPUT (Data,Ary,Abs) 81 00
END_COLLECTION C0
--> Report format INPUT
Byte 0: INPUT - Modifier BitMask
Bit 0: Keyboard LeftControl
Bit 7: Keyboard Right GUI
Byte 1: INPUT - Constant field
Byte 2: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 3: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 4: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 5: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 6: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
Byte 7: INPUT Keyboard (Values between "reserved (no event)" (0x00) and "Keyboard Application" (0x65))
see: http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
--> Report format OUTPUT
Byte 0: OUTPUT - LED BitMask //Only present in output reports
Bit 0: Num Lock
Bit 4: Kana
Bit 5 .. 7: Constant
*/
const (
HID_MOD_KEY_LEFT_CONTROL = 0x01
HID_MOD_KEY_LEFT_SHIFT = 0x02
HID_MOD_KEY_LEFT_ALT = 0x04
HID_MOD_KEY_LEFT_GUI = 0x08
HID_MOD_KEY_RIGHT_CONTROL = 0x10
HID_MOD_KEY_RIGHT_SHIFT = 0x20
HID_MOD_KEY_RIGHT_ALT = 0x40
HID_MOD_KEY_RIGHT_GUI = 0x80
HID_KEY_RESERVED = 0x00
HID_KEY_ERROR_ROLLOVER = 0x01
HID_KEY_POST_FAIL = 0x02
HID_KEY_ERROR_UNDEFINED = 0x03
HID_KEY_A= 0x04
HID_KEY_B= 0x05
HID_KEY_C= 0x06
HID_KEY_D = 0x07 // Keyboard d and D
HID_KEY_E = 0x08 // Keyboard e and E
HID_KEY_F = 0x09 // Keyboard f and F
HID_KEY_G = 0x0a // Keyboard g and G
HID_KEY_H = 0x0b // Keyboard h and H
HID_KEY_I = 0x0c // Keyboard i and I
HID_KEY_J = 0x0d // Keyboard j and J
HID_KEY_K = 0x0e // Keyboard k and K
HID_KEY_L = 0x0f // Keyboard l and L
HID_KEY_M = 0x10 // Keyboard m and M
HID_KEY_N = 0x11 // Keyboard n and N
HID_KEY_O = 0x12 // Keyboard o and O
HID_KEY_P = 0x13 // Keyboard p and P
HID_KEY_Q = 0x14 // Keyboard q and Q
HID_KEY_R = 0x15 // Keyboard r and R
HID_KEY_S = 0x16 // Keyboard s and S
HID_KEY_T = 0x17 // Keyboard t and T
HID_KEY_U = 0x18 // Keyboard u and U
HID_KEY_V = 0x19 // Keyboard v and V
HID_KEY_W = 0x1a // Keyboard w and W
HID_KEY_X = 0x1b // Keyboard x and X
HID_KEY_Y = 0x1c // Keyboard y and Y
HID_KEY_Z = 0x1d // Keyboard z and Z
HID_KEY_1 = 0x1e // Keyboard 1 and !
HID_KEY_2 = 0x1f // Keyboard 2 and @
HID_KEY_3 = 0x20 // Keyboard 3 and #
HID_KEY_4 = 0x21 // Keyboard 4 and $
HID_KEY_5 = 0x22 // Keyboard 5 and %
HID_KEY_6 = 0x23 // Keyboard 6 and ^
HID_KEY_7 = 0x24 // Keyboard 7 and &
HID_KEY_8 = 0x25 // Keyboard 8 and *
HID_KEY_9 = 0x26 // Keyboard 9 and (
HID_KEY_0 = 0x27 // Keyboard 0 and )
HID_KEY_ENTER = 0x28 // Keyboard Return (ENTER)
HID_KEY_ESC = 0x29 // Keyboard ESCAPE
HID_KEY_BACKSPACE = 0x2a // Keyboard DELETE (Backspace)
HID_KEY_TAB = 0x2b // Keyboard Tab
HID_KEY_SPACE = 0x2c // Keyboard Spacebar
HID_KEY_MINUS = 0x2d // Keyboard - and _
HID_KEY_EQUAL = 0x2e // Keyboard = and +
HID_KEY_LEFTBRACE = 0x2f // Keyboard [ and {
HID_KEY_RIGHTBRACE = 0x30 // Keyboard ] and }
HID_KEY_BACKSLASH = 0x31 // Keyboard \ and |
HID_KEY_HASHTILDE = 0x32 // Keyboard Non-US # and ~
HID_KEY_SEMICOLON = 0x33 // Keyboard ; and :
HID_KEY_APOSTROPHE = 0x34 // Keyboard ' and "
HID_KEY_GRAVE = 0x35 // Keyboard ` and ~
HID_KEY_COMMA = 0x36 // Keyboard , and <
HID_KEY_DOT = 0x37 // Keyboard . and >
HID_KEY_SLASH = 0x38 // Keyboard / and ?
HID_KEY_CAPSLOCK = 0x39 // Keyboard Caps Lock
HID_KEY_F1 = 0x3a // Keyboard F1
HID_KEY_F2 = 0x3b // Keyboard F2
HID_KEY_F3 = 0x3c // Keyboard F3
HID_KEY_F4 = 0x3d // Keyboard F4
HID_KEY_F5 = 0x3e // Keyboard F5
HID_KEY_F6 = 0x3f // Keyboard F6
HID_KEY_F7 = 0x40 // Keyboard F7
HID_KEY_F8 = 0x41 // Keyboard F8
HID_KEY_F9 = 0x42 // Keyboard F9
HID_KEY_F10 = 0x43 // Keyboard F10
HID_KEY_F11 = 0x44 // Keyboard F11
HID_KEY_F12 = 0x45 // Keyboard F12
HID_KEY_SYSRQ = 0x46 // Keyboard Print Screen
HID_KEY_SCROLLLOCK = 0x47 // Keyboard Scroll Lock
HID_KEY_PAUSE = 0x48 // Keyboard Pause
HID_KEY_INSERT = 0x49 // Keyboard Insert
HID_KEY_HOME = 0x4a // Keyboard Home
HID_KEY_PAGEUP = 0x4b // Keyboard Page Up
HID_KEY_DELETE = 0x4c // Keyboard Delete Forward
HID_KEY_END = 0x4d // Keyboard End
HID_KEY_PAGEDOWN = 0x4e // Keyboard Page Down
HID_KEY_RIGHT = 0x4f // Keyboard Right Arrow
HID_KEY_LEFT = 0x50 // Keyboard Left Arrow
HID_KEY_DOWN = 0x51 // Keyboard Down Arrow
HID_KEY_UP = 0x52 // Keyboard Up Arrow
HID_KEY_NUMLOCK = 0x53 // Keyboard Num Lock and Clear
HID_KEY_KPSLASH = 0x54 // Keypad /
HID_KEY_KPASTERISK = 0x55 // Keypad *
HID_KEY_KPMINUS = 0x56 // Keypad -
HID_KEY_KPPLUS = 0x57 // Keypad +
HID_KEY_KPENTER = 0x58 // Keypad ENTER
HID_KEY_KP1 = 0x59 // Keypad 1 and End
HID_KEY_KP2 = 0x5a // Keypad 2 and Down Arrow
HID_KEY_KP3 = 0x5b // Keypad 3 and PageDn
HID_KEY_KP4 = 0x5c // Keypad 4 and Left Arrow
HID_KEY_KP5 = 0x5d // Keypad 5
HID_KEY_KP6 = 0x5e // Keypad 6 and Right Arrow
HID_KEY_KP7 = 0x5f // Keypad 7 and Home
HID_KEY_KP8 = 0x60 // Keypad 8 and Up Arrow
HID_KEY_KP9 = 0x61 // Keypad 9 and Page Up
HID_KEY_KP0 = 0x62 // Keypad 0 and Insert
HID_KEY_KPDOT = 0x63 // Keypad . and Delete
HID_KEY_102ND = 0x64 // Keyboard Non-US \ and |
HID_KEY_COMPOSE = 0x65 // Keyboard Application
HID_KEY_POWER = 0x66 // Keyboard Power
HID_KEY_KPEQUAL = 0x67 // Keypad =
HID_KEY_F13 = 0x68 // Keyboard F13
HID_KEY_F14 = 0x69 // Keyboard F14
HID_KEY_F15 = 0x6a // Keyboard F15
HID_KEY_F16 = 0x6b // Keyboard F16
HID_KEY_F17 = 0x6c // Keyboard F17
HID_KEY_F18 = 0x6d // Keyboard F18
HID_KEY_F19 = 0x6e // Keyboard F19
HID_KEY_F20 = 0x6f // Keyboard F20
HID_KEY_F21 = 0x70 // Keyboard F21
HID_KEY_F22 = 0x71 // Keyboard F22
HID_KEY_F23 = 0x72 // Keyboard F23
HID_KEY_F24 = 0x73 // Keyboard F24
HID_KEY_OPEN = 0x74 // Keyboard Execute
HID_KEY_HELP = 0x75 // Keyboard Help
HID_KEY_PROPS = 0x76 // Keyboard Menu
HID_KEY_FRONT = 0x77 // Keyboard Select
HID_KEY_STOP = 0x78 // Keyboard Stop
HID_KEY_AGAIN = 0x79 // Keyboard Again
HID_KEY_UNDO = 0x7a // Keyboard Undo
HID_KEY_CUT = 0x7b // Keyboard Cut
HID_KEY_COPY = 0x7c // Keyboard Copy
HID_KEY_PASTE = 0x7d // Keyboard Paste
HID_KEY_FIND = 0x7e // Keyboard Find
HID_KEY_MUTE = 0x7f // Keyboard Mute
HID_KEY_VOLUMEUP = 0x80 // Keyboard Volume Up
HID_KEY_VOLUMEDOWN = 0x81 // Keyboard Volume Down
// = 0x82 Keyboard Locking Caps Lock
// = 0x83 Keyboard Locking Num Lock
// = 0x84 Keyboard Locking Scroll Lock
HID_KEY_KPCOMMA = 0x85 // Keypad Comma
// = 0x86 Keypad Equal Sign
HID_KEY_RO = 0x87 // Keyboard International1
HID_KEY_KATAKANAHIRAGANA = 0x88 // Keyboard International2
HID_KEY_YEN = 0x89 // Keyboard International3
HID_KEY_HENKAN = 0x8a // Keyboard International4
HID_KEY_MUHENKAN = 0x8b // Keyboard International5
HID_KEY_KPJPCOMMA = 0x8c // Keyboard International6
// = 0x8d Keyboard International7
// = 0x8e Keyboard International8
// = 0x8f Keyboard International9
HID_KEY_HANGEUL = 0x90 // Keyboard LANG1
HID_KEY_HANJA = 0x91 // Keyboard LANG2
HID_KEY_KATAKANA = 0x92 // Keyboard LANG3
HID_KEY_HIRAGANA = 0x93 // Keyboard LANG4
HID_KEY_ZENKAKUHANKAKU = 0x94 // Keyboard LANG5
// = 0x95 Keyboard LANG6
// = 0x96 Keyboard LANG7
// = 0x97 Keyboard LANG8
// = 0x98 Keyboard LANG9
// = 0x99 Keyboard Alternate Erase
// = 0x9a Keyboard SysReq/Attention
// = 0x9b Keyboard Cancel
// = 0x9c Keyboard Clear
// = 0x9d Keyboard Prior
// = 0x9e Keyboard Return
// = 0x9f Keyboard Separator
// = 0xa0 Keyboard Out
// = 0xa1 Keyboard Oper
// = 0xa2 Keyboard Clear/Again
// = 0xa3 Keyboard CrSel/Props
// = 0xa4 Keyboard ExSel
// = 0xb0 Keypad 00
// = 0xb1 Keypad 000
// = 0xb2 Thousands Separator
// = 0xb3 Decimal Separator
// = 0xb4 Currency Unit
// = 0xb5 Currency Sub-unit
HID_KEY_KPLEFTPAREN = 0xb6 // Keypad (
HID_KEY_KPRIGHTPAREN = 0xb7 // Keypad )
// = 0xb8 Keypad {
// = 0xb9 Keypad }
// = 0xba Keypad Tab
// = 0xbb Keypad Backspace
// = 0xbc Keypad A
// = 0xbd Keypad B
// = 0xbe Keypad C
// = 0xbf Keypad D
// = 0xc0 Keypad E
// = 0xc1 Keypad F
// = 0xc2 Keypad XOR
// = 0xc3 Keypad ^
// = 0xc4 Keypad %
// = 0xc5 Keypad <
// = 0xc6 Keypad >
// = 0xc7 Keypad &
// = 0xc8 Keypad &&
// = 0xc9 Keypad |
// = 0xca Keypad ||
// = 0xcb Keypad :
// = 0xcc Keypad #
// = 0xcd Keypad Space
// = 0xce Keypad @
// = 0xcf Keypad !
// = 0xd0 Keypad Memory Store
// = 0xd1 Keypad Memory Recall
// = 0xd2 Keypad Memory Clear
// = 0xd3 Keypad Memory Add
// = 0xd4 Keypad Memory Subtract
// = 0xd5 Keypad Memory Multiply
// = 0xd6 Keypad Memory Divide
// = 0xd7 Keypad +/-
// = 0xd8 Keypad Clear
// = 0xd9 Keypad Clear Entry
// = 0xda Keypad Binary
// = 0xdb Keypad Octal
// = 0xdc Keypad Decimal
// = 0xdd Keypad Hexadecimal
HID_KEY_LEFTCTRL = 0xe0 // Keyboard Left Control
HID_KEY_LEFTSHIFT = 0xe1 // Keyboard Left Shift
HID_KEY_LEFTALT = 0xe2 // Keyboard Left Alt
HID_KEY_LEFTMETA = 0xe3 // Keyboard Left GUI
HID_KEY_RIGHTCTRL = 0xe4 // Keyboard Right Control
HID_KEY_RIGHTSHIFT = 0xe5 // Keyboard Right Shift
HID_KEY_RIGHTALT = 0xe6 // Keyboard Right Alt
HID_KEY_RIGHTMETA = 0xe7 // Keyboard Right GUI
HID_KEY_MEDIA_PLAYPAUSE = 0xe8
HID_KEY_MEDIA_STOPCD = 0xe9
HID_KEY_MEDIA_PREVIOUSSONG = 0xea
HID_KEY_MEDIA_NEXTSONG = 0xeb
HID_KEY_MEDIA_EJECTCD = 0xec
HID_KEY_MEDIA_VOLUMEUP = 0xed
HID_KEY_MEDIA_VOLUMEDOWN = 0xee
HID_KEY_MEDIA_MUTE = 0xef
HID_KEY_MEDIA_WWW = 0xf0
HID_KEY_MEDIA_BACK = 0xf1
HID_KEY_MEDIA_FORWARD = 0xf2
HID_KEY_MEDIA_STOP = 0xf3
HID_KEY_MEDIA_FIND = 0xf4
HID_KEY_MEDIA_SCROLLUP = 0xf5
HID_KEY_MEDIA_SCROLLDOWN = 0xf6
HID_KEY_MEDIA_EDIT = 0xf7
HID_KEY_MEDIA_SLEEP = 0xf8
HID_KEY_MEDIA_COFFEE = 0xf9
HID_KEY_MEDIA_REFRESH = 0xfa
HID_KEY_MEDIA_CALC = 0xfb
)
var (
UsbKeyToString = generateKey2Str()
String2UsbKey = generateStr2Key()
UsbModKeyToString = generateMod2Str()
String2UsbModKey = generateStr2Mod()
)
func generateMod2Str() (m2s map[uint8]string) {
m2s = make(map[uint8]string)
m2s[HID_MOD_KEY_LEFT_CONTROL] = "MOD_LEFT_CONTROL"
m2s[HID_MOD_KEY_LEFT_SHIFT] = "MOD_LEFT_SHIFT"
m2s[HID_MOD_KEY_LEFT_ALT] = "MOD_LEFT_ALT"
m2s[HID_MOD_KEY_LEFT_GUI] = "MOD_LEFT_GUI"
m2s[HID_MOD_KEY_RIGHT_CONTROL] = "MOD_RIGHT_CONTROL"
m2s[HID_MOD_KEY_RIGHT_SHIFT] = "MOD_RIGHT_SHIFT"
m2s[HID_MOD_KEY_RIGHT_ALT] = "MOD_RIGHT_ALT"
m2s[HID_MOD_KEY_RIGHT_GUI] = "MOD_RIGHT_GUI"
return
}
func generateStr2Mod() (s2m map[string]uint8) {
s2m = make(map[string]uint8)
s2m["MOD_LEFT_CONTROL"] = HID_MOD_KEY_LEFT_CONTROL
s2m["MOD_LEFT_SHIFT"] = HID_MOD_KEY_LEFT_SHIFT
s2m["MOD_LEFT_ALT"] = HID_MOD_KEY_LEFT_ALT
s2m["MOD_LEFT_GUI"] = HID_MOD_KEY_LEFT_GUI
s2m["MOD_RIGHT_CONTROL"] =HID_MOD_KEY_RIGHT_CONTROL
s2m["MOD_RIGHT_SHIFT"] = HID_MOD_KEY_RIGHT_SHIFT
s2m["MOD_RIGHT_ALT"] = HID_MOD_KEY_RIGHT_ALT
s2m["MOD_RIGHT_GUI"] = HID_MOD_KEY_RIGHT_GUI
return
}
func generateKey2Str() (k2s map[uint8]string) {
k2s = make(map[uint8]string)
k2s[HID_KEY_RESERVED] = "KEY_RESERVED"
k2s[HID_KEY_ERROR_ROLLOVER] = "KEY_ERROR_ROLLOVER"
k2s[HID_KEY_POST_FAIL] = "KEY_POST_FAIL"
k2s[HID_KEY_ERROR_UNDEFINED] = "KEY_ERROR_UNDEFINED"
k2s[HID_KEY_A] = "KEY_A" // Keyboard a and A
k2s[HID_KEY_B] = "KEY_B" // Keyboard b and B
k2s[HID_KEY_C] = "KEY_C" // Keyboard c and C
k2s[HID_KEY_D] = "KEY_D" // Keyboard d and D
k2s[HID_KEY_E] = "KEY_E" // Keyboard e and E
k2s[HID_KEY_F] = "KEY_F" // Keyboard f and F
k2s[HID_KEY_G] = "KEY_G" // Keyboard g and G
k2s[HID_KEY_H] = "KEY_H" // Keyboard h and H
k2s[HID_KEY_I] = "KEY_I" // Keyboard i and I
k2s[HID_KEY_J] = "KEY_J" //0x0d // Keyboard j and J
k2s[HID_KEY_K] = "KEY_K" //0x0e // Keyboard k and K
k2s[HID_KEY_L] = "KEY_L" //0x0f // Keyboard l and L
k2s[HID_KEY_M] = "KEY_M" //0x10 // Keyboard m and M
k2s[HID_KEY_N] = "KEY_N" //0x11 // Keyboard n and N
k2s[HID_KEY_O] = "KEY_O" //0x12 // Keyboard o and O
k2s[HID_KEY_P] = "KEY_P" //0x13 // Keyboard p and P
k2s[HID_KEY_Q] = "KEY_Q" //0x14 // Keyboard q and Q
k2s[HID_KEY_R] = "KEY_R" //0x15 // Keyboard r and R
k2s[HID_KEY_S] = "KEY_S" //0x16 // Keyboard s and S
k2s[HID_KEY_T] = "KEY_T" //0x17 // Keyboard t and T
k2s[HID_KEY_U] = "KEY_U" //0x18 // Keyboard u and U
k2s[HID_KEY_V] = "KEY_V" //0x19 // Keyboard v and V
k2s[HID_KEY_W] = "KEY_W" //0x1a // Keyboard w and W
k2s[HID_KEY_X] = "KEY_X" //0x1b // Keyboard x and X
k2s[HID_KEY_Y] = "KEY_Y" //0x1c // Keyboard y and Y
k2s[HID_KEY_Z] = "KEY_Z" //0x1d // Keyboard z and Z
k2s[HID_KEY_1] = "KEY_1" //0x1e // Keyboard 1 and !
k2s[HID_KEY_2] = "KEY_2" //0x1f // Keyboard 2 and @
k2s[HID_KEY_3] = "KEY_3" //0x20 // Keyboard 3 and #
k2s[HID_KEY_4] = "KEY_4" //0x21 // Keyboard 4 and $
k2s[HID_KEY_5] = "KEY_5" //0x22 // Keyboard 5 and %
k2s[HID_KEY_6] = "KEY_6" //0x23 // Keyboard 6 and ^
k2s[HID_KEY_7] = "KEY_7" //0x24 // Keyboard 7 and &
k2s[HID_KEY_8] = "KEY_8" //0x25 // Keyboard 8 and *
k2s[HID_KEY_9] = "KEY_9" //0x26 // Keyboard 9 and (
k2s[HID_KEY_0] = "KEY_0" //0x27 // Keyboard 0 and )
k2s[HID_KEY_ENTER] = "KEY_ENTER" //0x28 // Keyboard Return (ENTER)
k2s[HID_KEY_ESC] = "KEY_ESC" //0x29 // Keyboard ESCAPE
k2s[HID_KEY_BACKSPACE] = "KEY_BACKSPACE" //0x2a // Keyboard DELETE (Backspace)
k2s[HID_KEY_TAB] = "KEY_TAB" //0x2b // Keyboard Tab
k2s[HID_KEY_SPACE] = "KEY_SPACE" //0x2c // Keyboard Spacebar
k2s[HID_KEY_MINUS] = "KEY_MINUS" //0x2d // Keyboard - and _
k2s[HID_KEY_EQUAL] = "KEY_EQUAL" //0x2e // Keyboard = and +
k2s[HID_KEY_LEFTBRACE] = "KEY_LEFTBRACE" //0x2f // Keyboard [ and {
k2s[HID_KEY_RIGHTBRACE] = "KEY_RIGHTBRACE" //0x30 // Keyboard ] and }
k2s[HID_KEY_BACKSLASH] = "KEY_BACKSLASH" //0x31 // Keyboard \ and |
k2s[HID_KEY_HASHTILDE] = "KEY_HASHTILDE" //0x32 // Keyboard Non-US # and ~
k2s[HID_KEY_SEMICOLON] = "KEY_SEMICOLON" //0x33 // Keyboard ; and :
k2s[HID_KEY_APOSTROPHE] = "KEY_APOSTROPHE" //0x34 // Keyboard ' and "
k2s[HID_KEY_GRAVE] = "KEY_GRAVE" //0x35 // Keyboard ` and ~
k2s[HID_KEY_COMMA] = "KEY_COMMA" //0x36 // Keyboard , and <
k2s[HID_KEY_DOT] = "KEY_DOT" //0x37 // Keyboard . and >
k2s[HID_KEY_SLASH] = "KEY_SLASH" //0x38 // Keyboard / and ?
k2s[HID_KEY_CAPSLOCK] = "KEY_CAPSLOCK" //0x39 // Keyboard Caps Lock
k2s[HID_KEY_F1] = "KEY_F1" //0x3a // Keyboard F1
k2s[HID_KEY_F2] = "KEY_F2" //0x3b // Keyboard F2
k2s[HID_KEY_F3] = "KEY_F3" //0x3c // Keyboard F3
k2s[HID_KEY_F4] = "KEY_F4" //0x3d // Keyboard F4
k2s[HID_KEY_F5] = "KEY_F5" //0x3e // Keyboard F5
k2s[HID_KEY_F6] = "KEY_F6" //0x3f // Keyboard F6
k2s[HID_KEY_F7] = "KEY_F7" //0x40 // Keyboard F7
k2s[HID_KEY_F8] = "KEY_F8" //0x41 // Keyboard F8
k2s[HID_KEY_F9] = "KEY_F9" //0x42 // Keyboard F9
k2s[HID_KEY_F10] = "KEY_F10" //0x43 // Keyboard F10
k2s[HID_KEY_F11] = "KEY_F11" //0x44 // Keyboard F11
k2s[HID_KEY_F12] = "KEY_F12" //0x45 // Keyboard F12
k2s[HID_KEY_SYSRQ] = "KEY_SYSRQ" //0x46 // Keyboard Print Screen
k2s[HID_KEY_SCROLLLOCK] = "KEY_SCROLLLOCK" //0x47 // Keyboard Scroll Lock
k2s[HID_KEY_PAUSE] = "KEY_PAUSE" //0x48 // Keyboard Pause
k2s[HID_KEY_INSERT] = "KEY_INSERT" //0x49 // Keyboard Insert
k2s[HID_KEY_HOME] = "KEY_HOME" //0x4a // Keyboard Home
k2s[HID_KEY_PAGEUP] = "KEY_PAGEUP" //0x4b // Keyboard Page Up
k2s[HID_KEY_DELETE] = "KEY_DELETE" //0x4c // Keyboard Delete Forward
k2s[HID_KEY_END] = "KEY_END" //0x4d // Keyboard End
k2s[HID_KEY_PAGEDOWN] = "KEY_PAGEDOWN" //0x4e // Keyboard Page Down
k2s[HID_KEY_RIGHT] = "KEY_RIGHT" //0x4f // Keyboard Right Arrow
k2s[HID_KEY_LEFT] = "KEY_LEFT" //0x50 // Keyboard Left Arrow
k2s[HID_KEY_DOWN] = "KEY_DOWN" //0x51 // Keyboard Down Arrow
k2s[HID_KEY_UP] = "KEY_UP" //0x52 // Keyboard Up Arrow
k2s[HID_KEY_NUMLOCK] = "KEY_NUMLOCK" //0x53 // Keyboard Num Lock and Clear
k2s[HID_KEY_KPSLASH] = "KEY_KPSLASH" //0x54 // Keypad /
k2s[HID_KEY_KPASTERISK] = "KEY_KPASTERISK" //0x55 // Keypad *
k2s[HID_KEY_KPMINUS] = "KEY_KPMINUS" //0x56 // Keypad -
k2s[HID_KEY_KPPLUS] = "KEY_KPPLUS" //0x57 // Keypad +
k2s[HID_KEY_KPENTER] = "KEY_KPENTER" //0x58 // Keypad ENTER
k2s[HID_KEY_KP1] = "KEY_KP1" //0x59 // Keypad 1 and End
k2s[HID_KEY_KP2] = "KEY_KP2" //0x5a // Keypad 2 and Down Arrow
k2s[HID_KEY_KP3] = "KEY_KP3" //0x5b // Keypad 3 and PageDn
k2s[HID_KEY_KP4] = "KEY_KP4" //0x5c // Keypad 4 and Left Arrow
k2s[HID_KEY_KP5] = "KEY_KP5" //0x5d // Keypad 5
k2s[HID_KEY_KP6] = "KEY_KP6" //0x5e // Keypad 6 and Right Arrow
k2s[HID_KEY_KP7] = "KEY_KP7" //0x5f // Keypad 7 and Home
k2s[HID_KEY_KP8] = "KEY_KP8" //0x60 // Keypad 8 and Up Arrow
k2s[HID_KEY_KP9] = "KEY_KP9" //0x61 // Keypad 9 and Page Up
k2s[HID_KEY_KP0] = "KEY_KP0" //0x62 // Keypad 0 and Insert
k2s[HID_KEY_KPDOT] = "KEY_KPDOT" //0x63 // Keypad . and Delete
k2s[HID_KEY_102ND] = "KEY_102ND" //0x64 // Keyboard Non-US \ and |
k2s[HID_KEY_COMPOSE] = "KEY_COMPOSE" //0x65 // Keyboard Application
k2s[HID_KEY_POWER] = "KEY_POWER" //0x66 // Keyboard Power
k2s[HID_KEY_KPEQUAL] = "KEY_KPEQUAL" //0x67 // Keypad =
k2s[HID_KEY_F13] = "KEY_F13" //0x68 // Keyboard F13
k2s[HID_KEY_F14] = "KEY_F14" //0x69 // Keyboard F14
k2s[HID_KEY_F15] = "KEY_F15" //0x6a // Keyboard F15
k2s[HID_KEY_F16] = "KEY_F16" //0x6b // Keyboard F16
k2s[HID_KEY_F17] = "KEY_F17" //0x6c // Keyboard F17
k2s[HID_KEY_F18] = "KEY_F18" //0x6d // Keyboard F18
k2s[HID_KEY_F19] = "KEY_F19" //0x6e // Keyboard F19
k2s[HID_KEY_F20] = "KEY_F20" //0x6f // Keyboard F20
k2s[HID_KEY_F21] = "KEY_F21" //0x70 // Keyboard F21
k2s[HID_KEY_F22] = "KEY_F22" //0x71 // Keyboard F22
k2s[HID_KEY_F23] = "KEY_F23" //0x72 // Keyboard F23
k2s[HID_KEY_F24] = "KEY_F24" //0x73 // Keyboard F24
k2s[HID_KEY_OPEN] = "KEY_OPEN" //0x74 // Keyboard Execute
k2s[HID_KEY_HELP] = "KEY_HELP" //0x75 // Keyboard Help
k2s[HID_KEY_PROPS] = "KEY_PROPS" //0x76 // Keyboard Menu
k2s[HID_KEY_FRONT] = "KEY_FRONT" //0x77 // Keyboard Select
k2s[HID_KEY_STOP] = "KEY_STOP" //0x78 // Keyboard Stop
k2s[HID_KEY_AGAIN] = "KEY_AGAIN" //0x79 // Keyboard Again
k2s[HID_KEY_UNDO] = "KEY_UNDO" //0x7a // Keyboard Undo
k2s[HID_KEY_CUT] = "KEY_CUT" //0x7b // Keyboard Cut
k2s[HID_KEY_COPY] = "KEY_COPY" //0x7c // Keyboard Copy
k2s[HID_KEY_PASTE] = "KEY_PASTE" //0x7d // Keyboard Paste
k2s[HID_KEY_FIND] = "KEY_FIND" //0x7e // Keyboard Find
k2s[HID_KEY_MUTE] = "KEY_MUTE" //0x7f // Keyboard Mute
k2s[HID_KEY_VOLUMEUP] = "KEY_VOLUMEUP" //0x80 // Keyboard Volume Up
k2s[HID_KEY_VOLUMEDOWN] = "KEY_VOLUMEDOWN" //0x81 // Keyboard Volume Down
// = 0x82 Keyboard Locking Caps Lock
// = 0x83 Keyboard Locking Num Lock
// = 0x84 Keyboard Locking Scroll Lock
k2s[HID_KEY_KPCOMMA] = "KEY_KPCOMMA" //0x85 // Keypad Comma
// = 0x86 Keypad Equal Sign
k2s[HID_KEY_RO] = "KEY_RO" //0x87 // Keyboard International1
k2s[HID_KEY_KATAKANAHIRAGANA] = "KEY_KATAKANAHIRAGANA" //0x88 // Keyboard International2
k2s[HID_KEY_YEN] = "KEY_YEN" //0x89 // Keyboard International3
k2s[HID_KEY_HENKAN] = "KEY_HENKAN" //0x8a // Keyboard International4
k2s[HID_KEY_MUHENKAN] = "KEY_MUHENKAN" //0x8b // Keyboard International5
k2s[HID_KEY_KPJPCOMMA] = "KEY_KPJPCOMMA" //0x8c // Keyboard International6
// = 0x8d Keyboard International7
// = 0x8e Keyboard International8
// = 0x8f Keyboard International9
k2s[HID_KEY_HANGEUL] = "KEY_HANGEUL" //0x90 // Keyboard LANG1
k2s[HID_KEY_HANJA] = "KEY_HANJA" //0x91 // Keyboard LANG2
k2s[HID_KEY_KATAKANA] = "KEY_KATAKANA" //0x92 // Keyboard LANG3
k2s[HID_KEY_HIRAGANA] = "KEY_HIRAGANA" //0x93 // Keyboard LANG4
k2s[HID_KEY_ZENKAKUHANKAKU] = "KEY_ZENKAKUHANKAKU" //0x94 // Keyboard LANG5
// = 0x95 Keyboard LANG6
// = 0x96 Keyboard LANG7
// = 0x97 Keyboard LANG8
// = 0x98 Keyboard LANG9
// = 0x99 Keyboard Alternate Erase
// = 0x9a Keyboard SysReq/Attention
// = 0x9b Keyboard Cancel
// = 0x9c Keyboard Clear
// = 0x9d Keyboard Prior
// = 0x9e Keyboard Return
// = 0x9f Keyboard Separator
// = 0xa0 Keyboard Out
// = 0xa1 Keyboard Oper
// = 0xa2 Keyboard Clear/Again
// = 0xa3 Keyboard CrSel/Props
// = 0xa4 Keyboard ExSel
// = 0xb0 Keypad 00
// = 0xb1 Keypad 000
// = 0xb2 Thousands Separator
// = 0xb3 Decimal Separator
// = 0xb4 Currency Unit
// = 0xb5 Currency Sub-unit
k2s[HID_KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN" //0xb6 // Keypad (
k2s[HID_KEY_KPRIGHTPAREN] = "KEY_KPRIGHTPAREN" //0xb7 // Keypad )
// = 0xb8 Keypad {
// = 0xb9 Keypad }
// = 0xba Keypad Tab
// = 0xbb Keypad Backspace
// = 0xbc Keypad A
// = 0xbd Keypad B
// = 0xbe Keypad C
// = 0xbf Keypad D
// = 0xc0 Keypad E
// = 0xc1 Keypad F
// = 0xc2 Keypad XOR
// = 0xc3 Keypad ^
// = 0xc4 Keypad %
// = 0xc5 Keypad <
// = 0xc6 Keypad >
// = 0xc7 Keypad &
// = 0xc8 Keypad &&
// = 0xc9 Keypad |
// = 0xca Keypad ||
// = 0xcb Keypad :
// = 0xcc Keypad #
// = 0xcd Keypad Space
// = 0xce Keypad @
// = 0xcf Keypad !
// = 0xd0 Keypad Memory Store
// = 0xd1 Keypad Memory Recall
// = 0xd2 Keypad Memory Clear
// = 0xd3 Keypad Memory Add
// = 0xd4 Keypad Memory Subtract
// = 0xd5 Keypad Memory Multiply
// = 0xd6 Keypad Memory Divide
// = 0xd7 Keypad +/-
// = 0xd8 Keypad Clear
// = 0xd9 Keypad Clear Entry
// = 0xda Keypad Binary
// = 0xdb Keypad Octal
// = 0xdc Keypad Decimal
// = 0xdd Keypad Hexadecimal
k2s[HID_KEY_LEFTCTRL] = "KEY_LEFTCTRL" //0xe0 // Keyboard Left Control
k2s[HID_KEY_LEFTSHIFT] = "KEY_LEFTSHIFT" //0xe1 // Keyboard Left Shift
k2s[HID_KEY_LEFTALT] = "KEY_LEFTALT" //0xe2 // Keyboard Left Alt
k2s[HID_KEY_LEFTMETA] = "KEY_LEFTMETA" //0xe3 // Keyboard Left GUI
k2s[HID_KEY_RIGHTCTRL] = "KEY_RIGHTCTRL" //0xe4 // Keyboard Right Control
k2s[HID_KEY_RIGHTSHIFT] = "KEY_RIGHTSHIFT" //0xe5 // Keyboard Right Shift
k2s[HID_KEY_RIGHTALT] = "KEY_RIGHTALT" //0xe6 // Keyboard Right Alt
k2s[HID_KEY_RIGHTMETA] = "KEY_RIGHTMETA" //0xe7 // Keyboard Right GUI
k2s[HID_KEY_MEDIA_PLAYPAUSE] = "KEY_MEDIA_PLAYPAUSE" //0xe8
k2s[HID_KEY_MEDIA_STOPCD] = "KEY_MEDIA_STOPCD" //0xe9
k2s[HID_KEY_MEDIA_PREVIOUSSONG] = "KEY_MEDIA_PREVIOUSSONG" //0xea
k2s[HID_KEY_MEDIA_NEXTSONG] = "KEY_MEDIA_NEXTSONG" //0xeb
k2s[HID_KEY_MEDIA_EJECTCD] = "KEY_MEDIA_EJECTCD" //0xec
k2s[HID_KEY_MEDIA_VOLUMEUP] = "KEY_MEDIA_VOLUMEUP" //0xed
k2s[HID_KEY_MEDIA_VOLUMEDOWN] = "KEY_MEDIA_VOLUMEDOWN" //0xee
k2s[HID_KEY_MEDIA_MUTE] = "KEY_MEDIA_MUTE" //0xef
k2s[HID_KEY_MEDIA_WWW] = "KEY_MEDIA_WWW" //0xf0
k2s[HID_KEY_MEDIA_BACK] = "KEY_MEDIA_BACK" //0xf1
k2s[HID_KEY_MEDIA_FORWARD] = "KEY_MEDIA_FORWARD" //0xf2
k2s[HID_KEY_MEDIA_STOP] = "KEY_MEDIA_STOP" //0xf3
k2s[HID_KEY_MEDIA_FIND] = "KEY_MEDIA_FIND" //0xf4
k2s[HID_KEY_MEDIA_SCROLLUP] = "KEY_MEDIA_SCROLLUP" //0xf5
k2s[HID_KEY_MEDIA_SCROLLDOWN] = "KEY_MEDIA_SCROLLDOWN" //0xf6
k2s[HID_KEY_MEDIA_EDIT] = "KEY_MEDIA_EDIT" //0xf7
k2s[HID_KEY_MEDIA_SLEEP] = "KEY_MEDIA_SLEEP" //0xf8
k2s[HID_KEY_MEDIA_COFFEE] = "KEY_MEDIA_COFFEE" //0xf9
k2s[HID_KEY_MEDIA_REFRESH] = "KEY_MEDIA_REFRESH" //0xfa
k2s[HID_KEY_MEDIA_CALC] = "KEY_MEDIA_CALC" //0xfb
return
}
func generateStr2Key() (s2k map[string]uint8) {
s2k = make(map[string]uint8)
s2k["KEY_RESERVED"] = HID_KEY_RESERVED
s2k["KEY_ERROR_ROLLOVER"] = HID_KEY_ERROR_ROLLOVER
s2k["KEY_POST_FAIL"] = HID_KEY_POST_FAIL
s2k["KEY_ERROR_UNDEFINED"] = HID_KEY_ERROR_UNDEFINED
s2k["KEY_A"] = HID_KEY_A // Keyboard a and A
s2k["KEY_B"] = HID_KEY_B // Keyboard b and B
s2k["KEY_C"] = HID_KEY_C // Keyboard c and C
s2k["KEY_D"] = HID_KEY_D // Keyboard d and D
s2k["KEY_E"] = HID_KEY_E // Keyboard e and E
s2k["KEY_F"] = HID_KEY_F // Keyboard f and F
s2k["KEY_G"] = HID_KEY_G // Keyboard g and G
s2k["KEY_H"] = HID_KEY_H // Keyboard h and H
s2k["KEY_I"] = HID_KEY_I // Keyboard i and I
s2k["KEY_J"] = HID_KEY_J //0x0d // Keyboard j and J
s2k["KEY_K"] = HID_KEY_K //0x0e // Keyboard k and K
s2k["KEY_L"] = HID_KEY_L //0x0f // Keyboard l and L
s2k["KEY_M"] = HID_KEY_M //0x10 // Keyboard m and M
s2k["KEY_N"] = HID_KEY_N //0x11 // Keyboard n and N
s2k["KEY_O"] = HID_KEY_O //0x12 // Keyboard o and O
s2k["KEY_P"] = HID_KEY_P //0x13 // Keyboard p and P
s2k["KEY_Q"] = HID_KEY_Q //0x14 // Keyboard q and Q
s2k["KEY_R"] = HID_KEY_R //0x15 // Keyboard r and R
s2k["KEY_S"] = HID_KEY_S //0x16 // Keyboard s and S
s2k["KEY_T"] = HID_KEY_T //0x17 // Keyboard t and T
s2k["KEY_U"] = HID_KEY_U //0x18 // Keyboard u and U
s2k["KEY_V"] = HID_KEY_V //0x19 // Keyboard v and V
s2k["KEY_W"] = HID_KEY_W //0x1a // Keyboard w and W
s2k["KEY_X"] = HID_KEY_X //0x1b // Keyboard x and X
s2k["KEY_Y"] = HID_KEY_Y //0x1c // Keyboard y and Y
s2k["KEY_Z"] = HID_KEY_Z //0x1d // Keyboard z and Z
s2k["KEY_1"] = HID_KEY_1 //0x1e // Keyboard 1 and !
s2k["KEY_2"] = HID_KEY_2 //0x1f // Keyboard 2 and @
s2k["KEY_3"] = HID_KEY_3 //0x20 // Keyboard 3 and #
s2k["KEY_4"] = HID_KEY_4 //0x21 // Keyboard 4 and $
s2k["KEY_5"] = HID_KEY_5 //0x22 // Keyboard 5 and %
s2k["KEY_6"] = HID_KEY_6 //0x23 // Keyboard 6 and ^
s2k["KEY_7"] = HID_KEY_7 //0x24 // Keyboard 7 and &
s2k["KEY_8"] = HID_KEY_8 //0x25 // Keyboard 8 and *
s2k["KEY_9"] = HID_KEY_9 //0x26 // Keyboard 9 and (
s2k["KEY_0"] = HID_KEY_0 //0x27 // Keyboard 0 and )
s2k["KEY_ENTER"] = HID_KEY_ENTER //0x28 // Keyboard Return (ENTER)
s2k["KEY_ESC"] = HID_KEY_ESC //0x29 // Keyboard ESCAPE
s2k["KEY_BACKSPACE"] = HID_KEY_BACKSPACE //0x2a // Keyboard DELETE (Backspace)
s2k["KEY_TAB"] = HID_KEY_TAB //0x2b // Keyboard Tab
s2k["KEY_SPACE"] = HID_KEY_SPACE //0x2c // Keyboard Spacebar
s2k["KEY_MINUS"] = HID_KEY_MINUS //0x2d // Keyboard - and _
s2k["KEY_EQUAL"] = HID_KEY_EQUAL //0x2e // Keyboard = and +
s2k["KEY_LEFTBRACE"] = HID_KEY_LEFTBRACE //0x2f // Keyboard [ and {
s2k["KEY_RIGHTBRACE"] = HID_KEY_RIGHTBRACE //0x30 // Keyboard "] and }
s2k["KEY_BACKSLASH"] = HID_KEY_BACKSLASH //0x31 // Keyboard \ and |
s2k["KEY_HASHTILDE"] = HID_KEY_HASHTILDE //0x32 // Keyboard Non-US # and ~
s2k["KEY_SEMICOLON"] = HID_KEY_SEMICOLON //0x33 // Keyboard ; and :
s2k["KEY_APOSTROPHE"] = HID_KEY_APOSTROPHE //0x34 // Keyboard ' and "
s2k["KEY_GRAVE"] = HID_KEY_GRAVE //0x35 // Keyboard ` and ~
s2k["KEY_COMMA"] = HID_KEY_COMMA //0x36 // Keyboard , and <
s2k["KEY_DOT"] = HID_KEY_DOT //0x37 // Keyboard . and >
s2k["KEY_SLASH"] = HID_KEY_SLASH //0x38 // Keyboard / and ?
s2k["KEY_CAPSLOCK"] = HID_KEY_CAPSLOCK //0x39 // Keyboard Caps Lock
s2k["KEY_F1"] = HID_KEY_F1 //0x3a // Keyboard F1
s2k["KEY_F2"] = HID_KEY_F2 //0x3b // Keyboard F2
s2k["KEY_F3"] = HID_KEY_F3 //0x3c // Keyboard F3
s2k["KEY_F4"] = HID_KEY_F4 //0x3d // Keyboard F4
s2k["KEY_F5"] = HID_KEY_F5 //0x3e // Keyboard F5
s2k["KEY_F6"] = HID_KEY_F6 //0x3f // Keyboard F6
s2k["KEY_F7"] = HID_KEY_F7 //0x40 // Keyboard F7
s2k["KEY_F8"] = HID_KEY_F8 //0x41 // Keyboard F8
s2k["KEY_F9"] = HID_KEY_F9 //0x42 // Keyboard F9
s2k["KEY_F10"] = HID_KEY_F10 //0x43 // Keyboard F10
s2k["KEY_F11"] = HID_KEY_F11 //0x44 // Keyboard F11
s2k["KEY_F12"] = HID_KEY_F12 //0x45 // Keyboard F12
s2k["KEY_SYSRQ"] = HID_KEY_SYSRQ //0x46 // Keyboard Print Screen
s2k["KEY_SCROLLLOCK"] = HID_KEY_SCROLLLOCK //0x47 // Keyboard Scroll Lock
s2k["KEY_PAUSE"] = HID_KEY_PAUSE //0x48 // Keyboard Pause
s2k["KEY_INSERT"] = HID_KEY_INSERT //0x49 // Keyboard Insert
s2k["KEY_HOME"] = HID_KEY_HOME //0x4a // Keyboard Home
s2k["KEY_PAGEUP"] = HID_KEY_PAGEUP //0x4b // Keyboard Page Up
s2k["KEY_DELETE"] = HID_KEY_DELETE //0x4c // Keyboard Delete Forward
s2k["KEY_END"] = HID_KEY_END //0x4d // Keyboard End
s2k["KEY_PAGEDOWN"] = HID_KEY_PAGEDOWN //0x4e // Keyboard Page Down
s2k["KEY_RIGHT"] = HID_KEY_RIGHT //0x4f // Keyboard Right Arrow
s2k["KEY_LEFT"] = HID_KEY_LEFT //0x50 // Keyboard Left Arrow
s2k["KEY_DOWN"] = HID_KEY_DOWN //0x51 // Keyboard Down Arrow
s2k["KEY_UP"] = HID_KEY_UP //0x52 // Keyboard Up Arrow
s2k["KEY_NUMLOCK"] = HID_KEY_NUMLOCK //0x53 // Keyboard Num Lock and Clear
s2k["KEY_KPSLASH"] = HID_KEY_KPSLASH //0x54 // Keypad /
s2k["KEY_KPASTERISK"] = HID_KEY_KPASTERISK //0x55 // Keypad *
s2k["KEY_KPMINUS"] = HID_KEY_KPMINUS //0x56 // Keypad -
s2k["KEY_KPPLUS"] = HID_KEY_KPPLUS //0x57 // Keypad +
s2k["KEY_KPENTER"] = HID_KEY_KPENTER //0x58 // Keypad ENTER
s2k["KEY_KP1"] = HID_KEY_KP1 //0x59 // Keypad 1 and End
s2k["KEY_KP2"] = HID_KEY_KP2 //0x5a // Keypad 2 and Down Arrow
s2k["KEY_KP3"] = HID_KEY_KP3 //0x5b // Keypad 3 and PageDn
s2k["KEY_KP4"] = HID_KEY_KP4 //0x5c // Keypad 4 and Left Arrow
s2k["KEY_KP5"] = HID_KEY_KP5 //0x5d // Keypad 5
s2k["KEY_KP6"] = HID_KEY_KP6 //0x5e // Keypad 6 and Right Arrow
s2k["KEY_KP7"] = HID_KEY_KP7 //0x5f // Keypad 7 and Home
s2k["KEY_KP8"] = HID_KEY_KP8 //0x60 // Keypad 8 and Up Arrow
s2k["KEY_KP9"] = HID_KEY_KP9 //0x61 // Keypad 9 and Page Up
s2k["KEY_KP0"] = HID_KEY_KP0 //0x62 // Keypad 0 and Insert
s2k["KEY_KPDOT"] = HID_KEY_KPDOT //0x63 // Keypad . and Delete
s2k["KEY_102ND"] = HID_KEY_102ND //0x64 // Keyboard Non-US \ and |
s2k["KEY_COMPOSE"] = HID_KEY_COMPOSE //0x65 // Keyboard Application
s2k["KEY_POWER"] = HID_KEY_POWER //0x66 // Keyboard Power
s2k["KEY_KPEQUAL"] = HID_KEY_KPEQUAL //0x67 // Keypad =
s2k["KEY_F13"] = HID_KEY_F13 //0x68 // Keyboard F13
s2k["KEY_F14"] = HID_KEY_F14 //0x69 // Keyboard F14
s2k["KEY_F15"] = HID_KEY_F15 //0x6a // Keyboard F15
s2k["KEY_F16"] = HID_KEY_F16 //0x6b // Keyboard F16
s2k["KEY_F17"] = HID_KEY_F17 //0x6c // Keyboard F17
s2k["KEY_F18"] = HID_KEY_F18 //0x6d // Keyboard F18
s2k["KEY_F19"] = HID_KEY_F19 //0x6e // Keyboard F19
s2k["KEY_F20"] = HID_KEY_F20 //0x6f // Keyboard F20
s2k["KEY_F21"] = HID_KEY_F21 //0x70 // Keyboard F21
s2k["KEY_F22"] = HID_KEY_F22 //0x71 // Keyboard F22
s2k["KEY_F23"] = HID_KEY_F23 //0x72 // Keyboard F23
s2k["KEY_F24"] = HID_KEY_F24 //0x73 // Keyboard F24
s2k["KEY_OPEN"] = HID_KEY_OPEN //0x74 // Keyboard Execute
s2k["KEY_HELP"] = HID_KEY_HELP //0x75 // Keyboard Help
s2k["KEY_PROPS"] = HID_KEY_PROPS //0x76 // Keyboard Menu
s2k["KEY_FRONT"] = HID_KEY_FRONT //0x77 // Keyboard Select
s2k["KEY_STOP"] = HID_KEY_STOP //0x78 // Keyboard Stop
s2k["KEY_AGAIN"] = HID_KEY_AGAIN //0x79 // Keyboard Again
s2k["KEY_UNDO"] = HID_KEY_UNDO //0x7a // Keyboard Undo
s2k["KEY_CUT"] = HID_KEY_CUT //0x7b // Keyboard Cut
s2k["KEY_COPY"] = HID_KEY_COPY //0x7c // Keyboard Copy
s2k["KEY_PASTE"] = HID_KEY_PASTE //0x7d // Keyboard Paste
s2k["KEY_FIND"] = HID_KEY_FIND //0x7e // Keyboard Find
s2k["KEY_MUTE"] = HID_KEY_MUTE //0x7f // Keyboard Mute
s2k["KEY_VOLUMEUP"] = HID_KEY_VOLUMEUP //0x80 // Keyboard Volume Up
s2k["KEY_VOLUMEDOWN"] = HID_KEY_VOLUMEDOWN //0x81 // Keyboard Volume Down
// = 0x82 Keyboard Locking Caps Lock
// = 0x83 Keyboard Locking Num Lock
// = 0x84 Keyboard Locking Scroll Lock
s2k["KEY_KPCOMMA"] = HID_KEY_KPCOMMA //0x85 // Keypad Comma
// = 0x86 Keypad Equal Sign
s2k["KEY_RO"] = HID_KEY_RO //0x87 // Keyboard International1
s2k["KEY_KATAKANAHIRAGANA"] = HID_KEY_KATAKANAHIRAGANA //0x88 // Keyboard International2
s2k["KEY_YEN"] = HID_KEY_YEN //0x89 // Keyboard International3
s2k["KEY_HENKAN"] = HID_KEY_HENKAN //0x8a // Keyboard International4
s2k["KEY_MUHENKAN"] = HID_KEY_MUHENKAN //0x8b // Keyboard International5
s2k["KEY_KPJPCOMMA"] = HID_KEY_KPJPCOMMA //0x8c // Keyboard International6
// = 0x8d Keyboard International7
// = 0x8e Keyboard International8
// = 0x8f Keyboard International9
s2k["KEY_HANGEUL"] = HID_KEY_HANGEUL //0x90 // Keyboard LANG1
s2k["KEY_HANJA"] = HID_KEY_HANJA //0x91 // Keyboard LANG2
s2k["KEY_KATAKANA"] = HID_KEY_KATAKANA //0x92 // Keyboard LANG3
s2k["KEY_HIRAGANA"] = HID_KEY_HIRAGANA //0x93 // Keyboard LANG4
s2k["KEY_ZENKAKUHANKAKU"] = HID_KEY_ZENKAKUHANKAKU //0x94 // Keyboard LANG5
// = 0x95 Keyboard LANG6
// = 0x96 Keyboard LANG7
// = 0x97 Keyboard LANG8
// = 0x98 Keyboard LANG9
// = 0x99 Keyboard Alternate Erase
// = 0x9a Keyboard SysReq/Attention
// = 0x9b Keyboard Cancel
// = 0x9c Keyboard Clear
// = 0x9d Keyboard Prior
// = 0x9e Keyboard Return
// = 0x9f Keyboard Separator
// = 0xa0 Keyboard Out
// = 0xa1 Keyboard Oper
// = 0xa2 Keyboard Clear/Again
// = 0xa3 Keyboard CrSel/Props
// = 0xa4 Keyboard ExSel
// = 0xb0 Keypad 00
// = 0xb1 Keypad 000
// = 0xb2 Thousands Separator
// = 0xb3 Decimal Separator
// = 0xb4 Currency Unit
// = 0xb5 Currency Sub-unit
s2k["KEY_KPLEFTPAREN"] = HID_KEY_KPLEFTPAREN //0xb6 // Keypad (
s2k["KEY_KPRIGHTPAREN"] = HID_KEY_KPRIGHTPAREN //0xb7 // Keypad )
// = 0xb8 Keypad {
// = 0xb9 Keypad }
// = 0xba Keypad Tab
// = 0xbb Keypad Backspace
// = 0xbc Keypad A
// = 0xbd Keypad B
// = 0xbe Keypad C
// = 0xbf Keypad D
// = 0xc0 Keypad E
// = 0xc1 Keypad F
// = 0xc2 Keypad XOR
// = 0xc3 Keypad ^
// = 0xc4 Keypad %
// = 0xc5 Keypad <
// = 0xc6 Keypad >
// = 0xc7 Keypad &
// = 0xc8 Keypad &&
// = 0xc9 Keypad |
// = 0xca Keypad ||
// = 0xcb Keypad :
// = 0xcc Keypad #
// = 0xcd Keypad Space
// = 0xce Keypad @
// = 0xcf Keypad !
// = 0xd0 Keypad Memory Store
// = 0xd1 Keypad Memory Recall
// = 0xd2 Keypad Memory Clear
// = 0xd3 Keypad Memory Add
// = 0xd4 Keypad Memory Subtract
// = 0xd5 Keypad Memory Multiply
// = 0xd6 Keypad Memory Divide
// = 0xd7 Keypad +/-
// = 0xd8 Keypad Clear
// = 0xd9 Keypad Clear Entry
// = 0xda Keypad Binary
// = 0xdb Keypad Octal
// = 0xdc Keypad Decimal
// = 0xdd Keypad Hexadecimal
s2k["KEY_LEFTCTRL"] = HID_KEY_LEFTCTRL //0xe0 // Keyboard Left Control
s2k["KEY_LEFTSHIFT"] = HID_KEY_LEFTSHIFT //0xe1 // Keyboard Left Shift
s2k["KEY_LEFTALT"] = HID_KEY_LEFTALT //0xe2 // Keyboard Left Alt
s2k["KEY_LEFTMETA"] = HID_KEY_LEFTMETA //0xe3 // Keyboard Left GUI
s2k["KEY_RIGHTCTRL"] = HID_KEY_RIGHTCTRL //0xe4 // Keyboard Right Control
s2k["KEY_RIGHTSHIFT"] = HID_KEY_RIGHTSHIFT //0xe5 // Keyboard Right Shift
s2k["KEY_RIGHTALT"] = HID_KEY_RIGHTALT //0xe6 // Keyboard Right Alt
s2k["KEY_RIGHTMETA"] = HID_KEY_RIGHTMETA //0xe7 // Keyboard Right GUI
s2k["KEY_MEDIA_PLAYPAUSE"] = HID_KEY_MEDIA_PLAYPAUSE //0xe8
s2k["KEY_MEDIA_STOPCD"] = HID_KEY_MEDIA_STOPCD //0xe9
s2k["KEY_MEDIA_PREVIOUSSONG"] = HID_KEY_MEDIA_PREVIOUSSONG //0xea
s2k["KEY_MEDIA_NEXTSONG"] = HID_KEY_MEDIA_NEXTSONG //0xeb
s2k["KEY_MEDIA_EJECTCD"] = HID_KEY_MEDIA_EJECTCD //0xec
s2k["KEY_MEDIA_VOLUMEUP"] = HID_KEY_MEDIA_VOLUMEUP //0xed
s2k["KEY_MEDIA_VOLUMEDOWN"] = HID_KEY_MEDIA_VOLUMEDOWN //0xee
s2k["KEY_MEDIA_MUTE"] = HID_KEY_MEDIA_MUTE //0xef
s2k["KEY_MEDIA_WWW"] = HID_KEY_MEDIA_WWW //0xf0
s2k["KEY_MEDIA_BACK"] = HID_KEY_MEDIA_BACK //0xf1
s2k["KEY_MEDIA_FORWARD"] = HID_KEY_MEDIA_FORWARD //0xf2
s2k["KEY_MEDIA_STOP"] = HID_KEY_MEDIA_STOP //0xf3
s2k["KEY_MEDIA_FIND"] = HID_KEY_MEDIA_FIND //0xf4
s2k["KEY_MEDIA_SCROLLUP"] = HID_KEY_MEDIA_SCROLLUP //0xf5
s2k["KEY_MEDIA_SCROLLDOWN"] = HID_KEY_MEDIA_SCROLLDOWN //0xf6
s2k["KEY_MEDIA_EDIT"] = HID_KEY_MEDIA_EDIT //0xf7
s2k["KEY_MEDIA_SLEEP"] = HID_KEY_MEDIA_SLEEP //0xf8
s2k["KEY_MEDIA_COFFEE"] = HID_KEY_MEDIA_COFFEE //0xf9
s2k["KEY_MEDIA_REFRESH"] = HID_KEY_MEDIA_REFRESH //0xfa
s2k["KEY_MEDIA_CALC"] = HID_KEY_MEDIA_CALC //0xfb
return
}