📄 hil.h
字号:
#define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8 /* Reserved */#define HIL_IDD_DID_ABS_RSVD1 0x98#define HIL_IDD_DID_ABS_TABLET_MASK 0xf8 /* Tablets and digitizers */#define HIL_IDD_DID_ABS_TABLET 0x90#define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc /* Touch screens */#define HIL_IDD_DID_ABS_TSCREEN 0x8c#define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc /* Reserved */#define HIL_IDD_DID_ABS_RSVD2 0x88#define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc /* Reserved */#define HIL_IDD_DID_ABS_RSVD3 0x80#define HIL_IDD_DID_TYPE_REL 0x60 /* Relative Positioners */#define HIL_IDD_DID_REL_RSVD1_MASK 0xf0 /* Reserved */#define HIL_IDD_DID_REL_RSVD1 0x70#define HIL_IDD_DID_REL_RSVD2_MASK 0xfc /* Reserved */#define HIL_IDD_DID_REL_RSVD2 0x6c#define HIL_IDD_DID_REL_MOUSE_MASK 0xfc /* Mouse */#define HIL_IDD_DID_REL_MOUSE 0x68#define HIL_IDD_DID_REL_QUAD_MASK 0xf8 /* Other Quadrature Devices */#define HIL_IDD_DID_REL_QUAD 0x60#define HIL_IDD_DID_TYPE_CHAR 0x40 /* Character Entry */#define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc /* Barcode Reader */#define HIL_IDD_DID_CHAR_BARCODE 0x5c#define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc /* Reserved */#define HIL_IDD_DID_CHAR_RSVD1 0x58#define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8 /* Reserved */#define HIL_IDD_DID_CHAR_RSVD2 0x50#define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0 /* Reserved */#define HIL_IDD_DID_CHAR_RSVD3 0x40#define HIL_IDD_DID_TYPE_OTHER 0x20 /* Miscellaneous */#define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0 /* Reserved */#define HIL_IDD_DID_OTHER_RSVD1 0x30#define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc /* Tone Generator */#define HIL_IDD_DID_OTHER_BARCODE 0x2c#define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc /* Reserved */#define HIL_IDD_DID_OTHER_RSVD2 0x28#define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8 /* Reserved */#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 */ \/* 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -