196 lines
9.4 KiB
C
196 lines
9.4 KiB
C
#ifndef __XID_KBD_H__
|
|
#define __XID_KBD_H__
|
|
|
|
//definitions used only internally
|
|
|
|
//
|
|
// HID Keyboard usages
|
|
//
|
|
#define HID_USAGE_INDEX_KEYBOARD_NOEVENT 0x00
|
|
#define HID_USAGE_INDEX_KEYBOARD_ROLLOVER 0x01
|
|
#define HID_USAGE_INDEX_KEYBOARD_POSTFAIL 0x02
|
|
#define HID_USAGE_INDEX_KEYBOARD_UNDEFINED 0x03
|
|
// Letters
|
|
#define HID_USAGE_INDEX_KEYBOARD_aA 0x04
|
|
#define HID_USAGE_INDEX_KEYBOARD_bB 0x05
|
|
#define HID_USAGE_INDEX_KEYBOARD_cC 0x06
|
|
#define HID_USAGE_INDEX_KEYBOARD_dD 0x07
|
|
#define HID_USAGE_INDEX_KEYBOARD_eE 0x08
|
|
#define HID_USAGE_INDEX_KEYBOARD_fF 0x09
|
|
#define HID_USAGE_INDEX_KEYBOARD_gG 0x0A
|
|
#define HID_USAGE_INDEX_KEYBOARD_hH 0x0B
|
|
#define HID_USAGE_INDEX_KEYBOARD_iI 0x0C
|
|
#define HID_USAGE_INDEX_KEYBOARD_jJ 0x0D
|
|
#define HID_USAGE_INDEX_KEYBOARD_kK 0x0E
|
|
#define HID_USAGE_INDEX_KEYBOARD_lL 0x0F
|
|
#define HID_USAGE_INDEX_KEYBOARD_mM 0x10
|
|
#define HID_USAGE_INDEX_KEYBOARD_nN 0x11
|
|
#define HID_USAGE_INDEX_KEYBOARD_oO 0x12
|
|
#define HID_USAGE_INDEX_KEYBOARD_pP 0x13
|
|
#define HID_USAGE_INDEX_KEYBOARD_qQ 0x14
|
|
#define HID_USAGE_INDEX_KEYBOARD_rR 0x15
|
|
#define HID_USAGE_INDEX_KEYBOARD_sS 0x16
|
|
#define HID_USAGE_INDEX_KEYBOARD_tT 0x17
|
|
#define HID_USAGE_INDEX_KEYBOARD_uU 0x18
|
|
#define HID_USAGE_INDEX_KEYBOARD_vV 0x19
|
|
#define HID_USAGE_INDEX_KEYBOARD_wW 0x1A
|
|
#define HID_USAGE_INDEX_KEYBOARD_xX 0x1B
|
|
#define HID_USAGE_INDEX_KEYBOARD_yY 0x1C
|
|
#define HID_USAGE_INDEX_KEYBOARD_zZ 0x1D
|
|
// Numbers
|
|
#define HID_USAGE_INDEX_KEYBOARD_ONE 0x1E
|
|
#define HID_USAGE_INDEX_KEYBOARD_TWO 0x1F
|
|
#define HID_USAGE_INDEX_KEYBOARD_THREE 0x20
|
|
#define HID_USAGE_INDEX_KEYBOARD_FOUR 0x21
|
|
#define HID_USAGE_INDEX_KEYBOARD_FIVE 0x22
|
|
#define HID_USAGE_INDEX_KEYBOARD_SIX 0x23
|
|
#define HID_USAGE_INDEX_KEYBOARD_SEVEN 0x24
|
|
#define HID_USAGE_INDEX_KEYBOARD_EIGHT 0x25
|
|
#define HID_USAGE_INDEX_KEYBOARD_NINE 0x26
|
|
#define HID_USAGE_INDEX_KEYBOARD_ZERO 0x27
|
|
//Editing Keys
|
|
#define HID_USAGE_INDEX_KEYBOARD_RETURN 0x28
|
|
#define HID_USAGE_INDEX_KEYBOARD_ESCAPE 0x29
|
|
#define HID_USAGE_INDEX_KEYBOARD_BACKSPACE 0x2A //HID spec calls this "delete(backspace)", what we later call delete HID calls "delete forward"
|
|
#define HID_USAGE_INDEX_KEYBOARD_TAB 0x2B
|
|
#define HID_USAGE_INDEX_KEYBOARD_SPACEBAR 0x2C
|
|
#define HID_USAGE_INDEX_KEYBOARD_MINUS 0x2D
|
|
#define HID_USAGE_INDEX_KEYBOARD_EQUALS 0x2E
|
|
#define HID_USAGE_INDEX_KEYBOARD_OPEN_BRACE 0x2F
|
|
#define HID_USAGE_INDEX_KEYBOARD_CLOSE_BRACE 0x30
|
|
#define HID_USAGE_INDEX_KEYBOARD_BACKSLASH 0x31
|
|
#define HID_USAGE_INDEX_KEYBOARD_NON_US_TILDE 0x32
|
|
#define HID_USAGE_INDEX_KEYBOARD_COLON 0x33
|
|
#define HID_USAGE_INDEX_KEYBOARD_QUOTE 0x34
|
|
#define HID_USAGE_INDEX_KEYBOARD_TILDE 0x35
|
|
#define HID_USAGE_INDEX_KEYBOARD_COMMA 0x36
|
|
#define HID_USAGE_INDEX_KEYBOARD_PERIOD 0x37
|
|
#define HID_USAGE_INDEX_KEYBOARD_QUESTION 0x38
|
|
#define HID_USAGE_INDEX_KEYBOARD_CAPS_LOCK 0x39
|
|
// Funtion keys
|
|
#define HID_USAGE_INDEX_KEYBOARD_F1 0x3A
|
|
#define HID_USAGE_INDEX_KEYBOARD_F2 0x3B
|
|
#define HID_USAGE_INDEX_KEYBOARD_F3 0x3C
|
|
#define HID_USAGE_INDEX_KEYBOARD_F4 0x3D
|
|
#define HID_USAGE_INDEX_KEYBOARD_F5 0x3E
|
|
#define HID_USAGE_INDEX_KEYBOARD_F6 0x3F
|
|
#define HID_USAGE_INDEX_KEYBOARD_F7 0x40
|
|
#define HID_USAGE_INDEX_KEYBOARD_F8 0x41
|
|
#define HID_USAGE_INDEX_KEYBOARD_F9 0x42
|
|
#define HID_USAGE_INDEX_KEYBOARD_F10 0x43
|
|
#define HID_USAGE_INDEX_KEYBOARD_F11 0x44
|
|
#define HID_USAGE_INDEX_KEYBOARD_F12 0x45
|
|
//More Edit Keys
|
|
#define HID_USAGE_INDEX_KEYBOARD_PRINT_SCREEN 0x46
|
|
#define HID_USAGE_INDEX_KEYBOARD_SCROLL_LOCK 0x47
|
|
#define HID_USAGE_INDEX_KEYBOARD_PAUSE 0x48
|
|
#define HID_USAGE_INDEX_KEYBOARD_INSERT 0x49
|
|
#define HID_USAGE_INDEX_KEYBOARD_HOME 0x4A
|
|
#define HID_USAGE_INDEX_KEYBOARD_PAGE_UP 0x4B
|
|
#define HID_USAGE_INDEX_KEYBOARD_DELETE 0x4C //HID spec, DELETE FORWARD, DELETE is used for backspace
|
|
#define HID_USAGE_INDEX_KEYBOARD_END 0x4D
|
|
#define HID_USAGE_INDEX_KEYBOARD_PAGE_DOWN 0x4E
|
|
#define HID_USAGE_INDEX_KEYBOARD_RIGHT_ARROW 0x4F
|
|
#define HID_USAGE_INDEX_KEYBOARD_LEFT_ARROW 0x50
|
|
#define HID_USAGE_INDEX_KEYBOARD_DOWN_ARROW 0x51
|
|
#define HID_USAGE_INDEX_KEYBOARD_UP_ARROW 0x52
|
|
#define HID_USAGE_INDEX_KEYPAD_NUM_LOCK 0x53
|
|
#define HID_USAGE_INDEX_KEYPAD_BACKSLASH 0x54
|
|
#define HID_USAGE_INDEX_KEYPAD_ASTERICK 0x55
|
|
#define HID_USAGE_INDEX_KEYPAD_MINUS 0x56
|
|
#define HID_USAGE_INDEX_KEYPAD_PLUS 0x57
|
|
#define HID_USAGE_INDEX_KEYPAD_ENTER 0x58
|
|
#define HID_USAGE_INDEX_KEYPAD_ONE 0x59
|
|
#define HID_USAGE_INDEX_KEYPAD_TWO 0x5A
|
|
#define HID_USAGE_INDEX_KEYPAD_THREE 0x5B
|
|
#define HID_USAGE_INDEX_KEYPAD_FOUR 0x5C
|
|
#define HID_USAGE_INDEX_KEYPAD_FIVE 0x5D
|
|
#define HID_USAGE_INDEX_KEYPAD_SIX 0x5E
|
|
#define HID_USAGE_INDEX_KEYPAD_SEVEN 0x5F
|
|
#define HID_USAGE_INDEX_KEYPAD_EIGHT 0x60
|
|
#define HID_USAGE_INDEX_KEYPAD_NINE 0x61
|
|
#define HID_USAGE_INDEX_KEYPAD_ZERO 0x62
|
|
#define HID_USAGE_INDEX_KEYPAD_DECIMAL 0x63
|
|
#define HID_USAGE_INDEX_KEYBOARD_NON_US_BACKSLASH 0x64
|
|
#define HID_USAGE_INDEX_KEYBOARD_APPLICATION 0x65 //This is the Windows(R)TM Key
|
|
#define HID_USAGE_INDEX_KEYBOARD_POWER 0x66 //Not on standard 101 or 104
|
|
#define HID_USAGE_INDEX_KEYPAD_EQUALS 0x67 //Not on standard 101 or 104
|
|
|
|
//Bunch o' function keys not on supported keyboards
|
|
#define HID_USAGE_INDEX_KEYBOARD_F13 0x68
|
|
#define HID_USAGE_INDEX_KEYBOARD_F14 0x69
|
|
#define HID_USAGE_INDEX_KEYBOARD_F15 0x6A
|
|
#define HID_USAGE_INDEX_KEYBOARD_F16 0x6B
|
|
#define HID_USAGE_INDEX_KEYBOARD_F17 0x6C
|
|
#define HID_USAGE_INDEX_KEYBOARD_F18 0x6D
|
|
#define HID_USAGE_INDEX_KEYBOARD_F19 0x6E
|
|
#define HID_USAGE_INDEX_KEYBOARD_F20 0x6F
|
|
#define HID_USAGE_INDEX_KEYBOARD_F21 0x70
|
|
#define HID_USAGE_INDEX_KEYBOARD_F22 0x71
|
|
#define HID_USAGE_INDEX_KEYBOARD_F23 0x72
|
|
#define HID_USAGE_INDEX_KEYBOARD_F24 0x73
|
|
//More unsupported usages
|
|
#define HID_USAGE_INDEX_KEYBOARD_EXECUTE 0x74
|
|
#define HID_USAGE_INDEX_KEYBOARD_HELP 0x75
|
|
#define HID_USAGE_INDEX_KEYBOARD_MENU 0x76
|
|
#define HID_USAGE_INDEX_KEYBOARD_SELECT 0x77
|
|
#define HID_USAGE_INDEX_KEYBOARD_STOP 0x78
|
|
#define HID_USAGE_INDEX_KEYBOARD_AGAIN 0x79
|
|
#define HID_USAGE_INDEX_KEYBOARD_UNDO 0x7A
|
|
#define HID_USAGE_INDEX_KEYBOARD_CUT 0x7B
|
|
#define HID_USAGE_INDEX_KEYBOARD_COPY 0x7C
|
|
#define HID_USAGE_INDEX_KEYBOARD_PASTE 0x7D
|
|
#define HID_USAGE_INDEX_KEYBOARD_FIND 0x7E
|
|
#define HID_USAGE_INDEX_KEYBOARD_MUTE 0x7F
|
|
#define HID_USAGE_INDEX_KEYBOARD_VOLUME_UP 0x80
|
|
#define HID_USAGE_INDEX_KEYBOARD_VOLUME_DOWN 0x81
|
|
#define HID_USAGE_INDEX_KEYBOARD_LOCKING_CAPS 0x82 //sent as a toggle, see HID USAGE Tables spec.
|
|
#define HID_USAGE_INDEX_KEYBOARD_LOCKING_NUM 0x83 //sent as a toggle, see HID USAGE Tables spec.
|
|
#define HID_USAGE_INDEX_KEYBOARD_LOCKING_SCROLL 0x84 //sent as a toggle, see HID USAGE Tables spec
|
|
//Stuff that we use on foreign keyboards, some needed, some not
|
|
#define HID_USAGE_INDEX_KEYPAD_COMMA 0x85 //According to HID usage table 1.1rc3 2/16/99, use for Brazilian keypad "."
|
|
#define HID_USAGE_INDEX_KEYPAD_EQUALS_AS400 0x86 //Only As\400, so we don't need to worry.
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL1 0x87 //Brazilian forward slash "/", and Japanese backslash slash
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNALIONAL2 0x88 //Picture looks like Hiragana according to Emi
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL3 0x89 //Picture looks like Yen
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL4 0x8A //Picture looks like Henkan
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL5 0x8B //Picture looks like Mu-Henkan
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL6 0x8C
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL7 0x8D //Single byte/double byte toggle
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL8 0x8E //left undefined in spec
|
|
#define HID_USAGE_INDEX_KEYBOARD_INTERNATIONAL9 0x8F //left undefined in spec
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG1 0x90 //Hangul/English
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG2 0x91 //Hanja conversion key
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG3 0x92 //Katakana key Japanese USB word-processing keyboard
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG4 0x93 //Hiragana key Japanese USB word-processing keyboard
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG5 0x94 //Defines the Zenkaku/Hankaku key for Japanese USB word-processing keyboard
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG6 0x95 //reserved for IME
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG7 0x96 //reserved for IME
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG8 0x97 //reserved for IME
|
|
#define HID_USAGE_INDEX_KEYBOARD_LANG9 0x98 //reserved for IME
|
|
|
|
// . . .
|
|
// Modifier Keys
|
|
#define HID_USAGE_INDEX_KEYBOARD_LCTRL 0xE0
|
|
#define HID_USAGE_INDEX_KEYBOARD_LSHFT 0xE1
|
|
#define HID_USAGE_INDEX_KEYBOARD_LALT 0xE2
|
|
#define HID_USAGE_INDEX_KEYBOARD_LGUI 0xE3
|
|
#define HID_USAGE_INDEX_KEYBOARD_RCTRL 0xE4
|
|
#define HID_USAGE_INDEX_KEYBOARD_RSHFT 0xE5
|
|
#define HID_USAGE_INDEX_KEYBOARD_RALT 0xE6
|
|
#define HID_USAGE_INDEX_KEYBOARD_RGUI 0xE7
|
|
// The masks are used, not the indices.
|
|
#define HID_USAGE_MASK_KEYBOARD_LCTRL 0x01
|
|
#define HID_USAGE_MASK_KEYBOARD_LSHFT 0x02
|
|
#define HID_USAGE_MASK_KEYBOARD_LALT 0x04
|
|
#define HID_USAGE_MASK_KEYBOARD_LGUI 0x08
|
|
#define HID_USAGE_MASK_KEYBOARD_RCTRL 0x10
|
|
#define HID_USAGE_MASK_KEYBOARD_RSHFT 0x20
|
|
#define HID_USAGE_MASK_KEYBOARD_RALT 0x40
|
|
#define HID_USAGE_MASK_KEYBOARD_RGUI 0x80
|
|
// Mask for the Keyboard LEDs
|
|
#define HID_KEYBOARDLED_MASK_NUM_LOCK 0x01
|
|
#define HID_KEYBOARDLED_MASK_CAPS_LOCK 0x02
|
|
#define HID_KEYBOARDLED_MASK_SCROLL_LOCK 0x04
|
|
|
|
#endif //__XID_KBD_H__
|