📄 hil.h
字号:
#define HIL_IDD_DID_OTHER_RSVD3 0x20#define HIL_IDD_DID_TYPE_KEYPAD 0x00 /* Vectra Keyboard *//* IDD record header */#define HIL_IDD_HEADER_AXSET_MASK 0x03 /* Number of axis in a set */#define HIL_IDD_HEADER_RSC 0x04 /* Supports RSC command */#define HIL_IDD_HEADER_EXD 0x08 /* Supports EXD command */#define HIL_IDD_HEADER_IOD 0x10 /* IOD byte to follow */#define HIL_IDD_HEADER_16BIT 0x20 /* 16 (vs. 8) bit resolution */#define HIL_IDD_HEADER_ABS 0x40 /* Reports Absolute Position */#define HIL_IDD_HEADER_2X_AXIS 0x80 /* Two sets of 1-3 axis *//* I/O Descriptor */#define HIL_IDD_IOD_NBUTTON_MASK 0x07 /* Number of buttons */#define HIL_IDD_IOD_PROXIMITY 0x08 /* Proximity in/out events */#define HIL_IDD_IOD_PROMPT_MASK 0x70 /* Number of prompts/acks */#define HIL_IDD_IOD_PROMPT_SHIFT 4#define HIL_IDD_IOD_PROMPT 0x80 /* Generic prompt/ack */#define HIL_IDD_NUM_AXES_PER_SET(header_packet) \((header_packet) & HIL_IDD_HEADER_AXSET_MASK)#define HIL_IDD_NUM_AXSETS(header_packet) \(2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS))#define HIL_IDD_LEN(header_packet) \((4 - !(header_packet & HIL_IDD_HEADER_IOD) - \ 2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) + \ 2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) * \ !!((header_packet) & HIL_IDD_HEADER_ABS))/* The following HIL_IDD_* macros assume you have an array of * packets and/or unpacked 8-bit data in the order that they * were received. */#define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr) \(!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 : \(((*(header_ptr + 1) & HIL_PKT_DATA_MASK) + \ ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8) \* ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1)))#define HIL_IDD_AXIS_MAX(header_ptr, __axnum) \((!(*(header_ptr) & HIL_IDD_HEADER_ABS) || \ (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 : \ ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) + \ ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8)))#define HIL_IDD_IOD(header_ptr) \(*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1))#define HIL_IDD_HAS_GEN_PROMPT(header_ptr) \((*header_ptr & HIL_IDD_HEADER_IOD) && \ (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT))#define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) \((*header_ptr & HIL_IDD_HEADER_IOD) && \ (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY))#define HIL_IDD_NUM_BUTTONS(header_ptr) \((*header_ptr & HIL_IDD_HEADER_IOD) ? \ (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0)#define HIL_IDD_NUM_PROMPTS(header_ptr) \((*header_ptr & HIL_IDD_HEADER_IOD) ? \ ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK) \ >> HIL_IDD_IOD_PROMPT_SHIFT) : 0)/* The response to HIL EXD commands -- the "extended describe record" */#define HIL_EXD_HEADER_WRG 0x03 /* Supports type2 WRG */#define HIL_EXD_HEADER_WRG_TYPE1 0x01 /* Supports type1 WRG */#define HIL_EXD_HEADER_WRG_TYPE2 0x02 /* Supports type2 WRG */#define HIL_EXD_HEADER_RRG 0x04 /* Supports RRG command */#define HIL_EXD_HEADER_RNM 0x10 /* Supports RNM command */#define HIL_EXD_HEADER_RST 0x20 /* Supports RST command */#define HIL_EXD_HEADER_LOCALE 0x40 /* Contains locale code */#define HIL_EXD_NUM_RRG(header_ptr) \((*header_ptr & HIL_EXD_HEADER_RRG) ? \ (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0)#define HIL_EXD_NUM_WWG(header_ptr) \((*header_ptr & HIL_EXD_HEADER_WRG) ? \ (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) & \ HIL_PKT_DATA_MASK) : 0)#define HIL_EXD_LEN(header_ptr) \(!!(*header_ptr & HIL_EXD_HEADER_RRG) + \ !!(*header_ptr & HIL_EXD_HEADER_WRG) + \ !!(*header_ptr & HIL_EXD_HEADER_LOCALE) + \ 2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1)#define HIL_EXD_LOCALE(header_ptr) \(!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 : \ (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK))#define HIL_EXD_WRG_TYPE2_LEN(header_ptr) \(!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1 : \ (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 - \ !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) + \ ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 - \ !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8))/* Device locale codes. */ /* Last defined locale code. Everything above this is "Reserved", and note that this same table applies to the Device ID Byte where keyboards may have a nationality code which is only 5 bits. */#define HIL_LOCALE_MAX 0x1f/* Map to hopefully useful strings. I was trying to make these look like locale.aliases strings do; maybe that isn't the right table to emulate. In either case, I didn't have much to work on. */#define HIL_LOCALE_MAP \"", /* 0x00 Reserved */ \"", /* 0x01 Reserved */ \"", /* 0x02 Reserved */ \"swiss.french", /* 0x03 Swiss/French */ \"portuguese", /* 0x04 Portuguese */ \"arabic", /* 0x05 Arabic */ \"hebrew", /* 0x06 Hebrew */ \"english.canadian", /* 0x07 Canadian English */ \"turkish", /* 0x08 Turkish */ \"greek", /* 0x09 Greek */ \"thai", /* 0x0a Thai (Thailand) */ \"italian", /* 0x0b Italian */ \"korean", /* 0x0c Hangul (Korea) */ \"dutch", /* 0x0d Dutch */ \"swedish", /* 0x0e Swedish */ \"german", /* 0x0f German */ \"chinese", /* 0x10 Chinese-PRC */ \"chinese", /* 0x11 Chinese-ROC */ \"swiss.french", /* 0x12 Swiss/French II */ \"spanish", /* 0x13 Spanish */ \"swiss.german", /* 0x14 Swiss/German II */ \"flemish", /* 0x15 Belgian (Flemish) */ \"finnish", /* 0x16 Finnish */ \"english.uk", /* 0x17 United Kingdom */ \"french.canadian", /* 0x18 French/Canadian */ \"swiss.german", /* 0x19 Swiss/German */ \"norwegian", /* 0x1a Norwegian */ \"french", /* 0x1b French */ \"danish", /* 0x1c Danish */ \"japanese", /* 0x1d Katakana */ \"spanish", /* 0x1e Latin American/Spanish*/\"english.us" /* 0x1f United States */ \/* HIL keycodes */#define HIL_KEYCODES_SET1_TBLSIZE 128#define HIL_KEYCODES_SET1 \ KEY_5, KEY_RESERVED, KEY_RIGHTALT, KEY_LEFTALT, \ KEY_RIGHTSHIFT, KEY_LEFTSHIFT, KEY_LEFTCTRL, KEY_SYSRQ, \ KEY_KP4, KEY_KP8, KEY_KP5, KEY_KP9, \ KEY_KP6, KEY_KP7, KEY_KPCOMMA, KEY_KPENTER, \ KEY_KP1, KEY_KPSLASH, KEY_KP2, KEY_KPPLUS, \ KEY_KP3, KEY_KPASTERISK, KEY_KP0, KEY_KPMINUS, \ KEY_B, KEY_V, KEY_C, KEY_X, \ KEY_Z, KEY_RESERVED, KEY_RESERVED, KEY_ESC, \ KEY_6, KEY_F10, KEY_3, KEY_F11, \ KEY_KPDOT, KEY_F9, KEY_TAB /*KP*/, KEY_F12, \ KEY_H, KEY_G, KEY_F, KEY_D, \ KEY_S, KEY_A, KEY_RESERVED, KEY_CAPSLOCK, \ KEY_U, KEY_Y, KEY_T, KEY_R, \ KEY_E, KEY_W, KEY_Q, KEY_TAB, \ KEY_7, KEY_6, KEY_5, KEY_4, \ KEY_3, KEY_2, KEY_1, KEY_GRAVE, \ KEY_F13, KEY_F14, KEY_F15, KEY_F16, \ KEY_F17, KEY_F18, KEY_F19, KEY_F20, \ KEY_MENU, KEY_F4, KEY_F3, KEY_F2, \ KEY_F1, KEY_VOLUMEUP, KEY_STOP, KEY_SENDFILE, \ KEY_SYSRQ, KEY_F5, KEY_F6, KEY_F7, \ KEY_F8, KEY_VOLUMEDOWN, KEY_DEL_EOL, KEY_DEL_EOS, \ KEY_8, KEY_9, KEY_0, KEY_MINUS, \ KEY_EQUAL, KEY_BACKSPACE, KEY_INS_LINE, KEY_DEL_LINE, \ KEY_I, KEY_O, KEY_P, KEY_LEFTBRACE, \ KEY_RIGHTBRACE, KEY_BACKSLASH, KEY_INSERT, KEY_DELETE, \ KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \ KEY_APOSTROPHE, KEY_ENTER, KEY_HOME, KEY_PAGEUP, \ KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH, \ KEY_BACKSLASH, KEY_SELECT, KEY_102ND, KEY_PAGEDOWN, \ KEY_N, KEY_SPACE, KEY_NEXT, KEY_RESERVED, \ KEY_LEFT, KEY_DOWN, KEY_UP, KEY_RIGHT#define HIL_KEYCODES_SET3_TBLSIZE 128#define HIL_KEYCODES_SET3 \ KEY_RESERVED, KEY_ESC, KEY_1, KEY_2, \ KEY_3, KEY_4, KEY_5, KEY_6, \ KEY_7, KEY_8, KEY_9, KEY_0, \ KEY_MINUS, KEY_EQUAL, KEY_BACKSPACE, KEY_TAB, \ KEY_Q, KEY_W, KEY_E, KEY_R, \ KEY_T, KEY_Y, KEY_U, KEY_I, \ KEY_O, KEY_P, KEY_LEFTBRACE, KEY_RIGHTBRACE, \ KEY_ENTER, KEY_LEFTCTRL, KEY_A, KEY_S, \ KEY_D, KEY_F, KEY_G, KEY_H, \ KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \ KEY_APOSTROPHE,KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH, \ KEY_Z, KEY_X, KEY_C, KEY_V, \ KEY_B, KEY_N, KEY_M, KEY_COMMA, \ KEY_DOT, KEY_SLASH, KEY_RIGHTSHIFT, KEY_KPASTERISK, \ KEY_LEFTALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, \ KEY_F2, KEY_F3, KEY_F4, KEY_F5, \ KEY_F6, KEY_F7, KEY_F8, KEY_F9, \ KEY_F10, KEY_NUMLOCK, KEY_SCROLLLOCK, KEY_KP7, \ KEY_KP8, KEY_KP9, KEY_KPMINUS, KEY_KP4, \ KEY_KP5, KEY_KP6, KEY_KPPLUS, KEY_KP1, \ KEY_KP2, KEY_KP3, KEY_KP0, KEY_KPDOT, \ KEY_SYSRQ, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ KEY_UP, KEY_LEFT, KEY_DOWN, KEY_RIGHT, \ KEY_HOME, KEY_PAGEUP, KEY_END, KEY_PAGEDOWN, \ KEY_INSERT, KEY_DELETE, KEY_102ND, KEY_RESERVED, \ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ KEY_F1, KEY_F2, KEY_F3, KEY_F4, \ KEY_F5, KEY_F6, KEY_F7, KEY_F8, \ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED/* Response to POL command, the "poll record header" */#define HIL_POL_NUM_AXES_MASK 0x03 /* Number of axis reported */#define HIL_POL_CTS 0x04 /* Device ready to receive data */#define HIL_POL_STATUS_PENDING 0x08 /* Device has status to report */#define HIL_POL_CHARTYPE_MASK 0x70 /* Type of character data to follow */#define HIL_POL_CHARTYPE_NONE 0x00 /* No character data to follow */#define HIL_POL_CHARTYPE_RSVD1 0x10 /* Reserved Set 1 */#define HIL_POL_CHARTYPE_ASCII 0x20 /* U.S. ASCII */#define HIL_POL_CHARTYPE_BINARY 0x30 /* Binary data */#define HIL_POL_CHARTYPE_SET1 0x40 /* Keycode Set 1 */#define HIL_POL_CHARTYPE_RSVD2 0x50 /* Reserved Set 2 */#define HIL_POL_CHARTYPE_SET2 0x60 /* Keycode Set 2 */#define HIL_POL_CHARTYPE_SET3 0x70 /* Keycode Set 3 */#define HIL_POL_AXIS_ALT 0x80 /* Data is from axis set 2 */#endif /* _HIL_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -