#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__