|
Lightweight USB stack
1.0
|
This module contains USB Human Interface Devices class definitions. More...
Modules | |
| HID Usage Tables for Button | |
| Contains USB HID Usages definitions for Button Page. | |
| HID Usage Tables for Desktop | |
| Contains USB HID Usages definitions for Generic Desktop Page. | |
| HID Usages for Device | |
| Contains USB HID Usages definitions for Generic Device Control Page. | |
| HID Usage Tables for Game | |
| Contains USB HID Usages definitions for Game Controls Page. | |
| HID Usages for Keyboard | |
| Contains USB HID Usages definitions for Keyboard/Keypad Page. | |
| HID Usages for LED's | |
| Contains USB HID Usages definitions for LED's Control Page. | |
| HID Usage Tables for Ordinal | |
| Contains USB HID Usages definitions for Ordinal Page. | |
| HID Usage Tables for Power Devices. | |
| Contains USB HID Usage tables definitions for HID Power Devices. | |
| HID Usage Tables for Simulation | |
| Contains USB HID Usages definitions for Simulation Controls Page. | |
| HID Usage Tables for Sport | |
| Contains USB HID Usages definitions for Sport Controls Page. | |
| HID Usage Tables for Telephony | |
| Contains USB HID Usages definitions for Telephony Page. | |
| HID Usage Tables for VR | |
| Contains USB HID Usages definitions for VR Control Page. | |
Data Structures | |
| struct | usb_hid_descriptor |
| USB HID functional descriptor. More... | |
| struct | usb_hid_descriptor_header |
| USB HID functional descriptor header. More... | |
| struct | usb_hid_report_descriptor |
| USB HID report descriptor. More... | |
Macros | |
| #define | USB_HID_REPORT_IN 0x01 |
| Indicates that the item is an IN report type. | |
| #define | USB_HID_REPORT_OUT 0x02 |
| Indicates that the item is an OUT report type. | |
| #define | USB_HID_REPORT_FEATURE 0x03 |
| Indicates that the item is a FEATURE report type. | |
| #define | DECLARE_USB_HID_DESCRIPTOR(p) |
| Helper macro for the multireport hid descriptor. More... | |
USB HID class code | |
| #define | USB_CLASS_HID 0x03 |
| Interface belongs to the Human Interface device class. | |
USB HID subclass codes | |
| #define | USB_HID_SUBCLASS_NONBOOT 0x00 |
| Nonboot subclass. | |
| #define | USB_HID_SUBCLASS_BOOT 0x01 |
| Boot subclass. | |
USB HID protocol codes | |
| #define | USB_HID_PROTO_NONBOOT 0x00 |
| Nonboot protocol. | |
| #define | USB_HID_PROTO_KEYBOARD 0x01 |
| Keyboard boot protocol. | |
| #define | USB_HID_PROTO_MOUSE 0x02 |
| Mouse boot protocol. | |
USB HID class-specified requests | |
| #define | USB_HID_GETREPORT 0x01 |
| Request to get the current HID report from the device. | |
| #define | USB_HID_GETIDLE 0x02 |
| Request to get the current device idle count. | |
| #define | USB_HID_GETPROTOCOL 0x03 |
| Request to get the current HID report protocol mode. | |
| #define | USB_HID_SETREPORT 0x09 |
| Request to set the current HID report to the device. | |
| #define | USB_HID_SETIDLE 0x0A |
| Request to set the device's idle count. | |
| #define | USB_HID_SETPROTOCOL 0x0B |
| Request to set the current HID report protocol mode. | |
USB HID class-specified descriptor types | |
| #define | USB_DTYPE_HID 0x21 |
| HID class HID descriptor type. | |
| #define | USB_DTYPE_HID_REPORT 0x22 |
| HID class HID report descriptor type. | |
USB HID country codes | |
| #define | USB_HID_COUNTRY_NONE 0 |
| Not supported. | |
| #define | USB_HID_COUNTRY_AR 1 |
| Arabic. | |
| #define | USB_HID_COUNTRY_BE 2 |
| Belgian. | |
| #define | USB_HID_COUNTRY_CA_BI 3 |
| Canadian-Bilingual. | |
| #define | USB_HID_COUNTRY_CA_FR 4 |
| Canadian-French. | |
| #define | USB_HID_COUNTRY_CZ 5 |
| Czech Republic. | |
| #define | USB_HID_COUNTRY_DK 6 |
| Danish. | |
| #define | USB_HID_COUNTRY_FI 7 |
| Finnish. | |
| #define | USB_HID_COUNTRY_FR 8 |
| French. | |
| #define | USB_HID_COUNTRY_DE 9 |
| German. | |
| #define | USB_HID_COUNTRY_GR 10 |
| Greek. | |
| #define | USB_HID_COUNTRY_HEB 11 |
| Hebrew. | |
| #define | USB_HID_COUNTRY_HU 12 |
| Hungary. | |
| #define | USB_HID_COUNTRY_ISO 13 |
| International (ISO) | |
| #define | USB_HID_COUNTRY_IT 14 |
| Italian. | |
| #define | USB_HID_COUNTRY_JP 15 |
| Japan (Katakana) | |
| #define | USB_HID_COUNTRY_KR 16 |
| Korean. | |
| #define | USB_HID_COUNTRY_LAT 17 |
| Latin American. | |
| #define | USB_HID_COUNTRY_NL 18 |
| Netherlands/Dutch. | |
| #define | USB_HID_COUNTRY_NO 19 |
| Norwegian. | |
| #define | USB_HID_COUNTRY_PER 20 |
| Persian (Farsi) | |
| #define | USB_HID_COUNTRY_PL 21 |
| Poland. | |
| #define | USB_HID_COUNTRY_PO 22 |
| Portuguese. | |
| #define | USB_HID_COUNTRY_RU 23 |
| Russia. | |
| #define | USB_HID_COUNTRY_SK 24 |
| Slovakia. | |
| #define | USB_HID_COUNTRY_ES 25 |
| Spanish. | |
| #define | USB_HID_COUNTRY_SE 26 |
| Swedish. | |
| #define | USB_HID_COUNTRY_CH_FR 26 |
| Swiss-French. | |
| #define | USB_HID_COUNTRY_CH_DE 27 |
| Swiss-German. | |
| #define | USB_HID_COUNTRY_CH 29 |
| Switzerland. | |
| #define | USB_HID_COUNTRY_TW 30 |
| Taiwan. | |
| #define | USB_HID_COUNTRY_TR_Q 31 |
| Turkish-Q. | |
| #define | USB_HID_COUNTRY_UK 32 |
| United Kingdom. | |
| #define | USB_HID_COUNTRY_US 33 |
| United States. | |
| #define | USB_HID_COUNTRY_YU 34 |
| Yugoslavia. | |
| #define | USB_HID_COUNTRY_TR_F 35 |
| Turkish-F. | |
HID Collections types | |
| #define | HID_PHYSICAL_COLLECTION 0x00 |
| A physical collection of items. | |
| #define | HID_APPLICATION_COLLECTION 0x01 |
| Applies a name to a top level collection which the operating system uses to identify a device and possibly remap to a legacy API. | |
| #define | HID_LOGICAL_COLLECTION 0x02 |
| A logical collection of items. | |
| #define | HID_REPORT_COLLECTION 0x03 |
| #define | HID_NARY_COLLECTION 0x04 |
| A collection that encompasses an array definition, naming the array set or the field created by the array. | |
| #define | HID_USAGE_SWITCH_COLLECTION 0x05 |
| Modifies the purpose or function of the usages (controls) that it contains. | |
| #define | HID_USAGE_MODIFIER_COLLECTION 0x06 |
| Modifies the purpose or function of the usages (controls) that contains it. | |
HID Input, Output and Feature Report Descriptor Item Flags | |
| #define | HID_IOF_CONSTANT (1 << 0) |
| #define | HID_IOF_DATA (0 << 0) |
| #define | HID_IOF_VARIABLE (1 << 1) |
| #define | HID_IOF_ARRAY (0 << 1) |
| #define | HID_IOF_RELATIVE (1 << 2) |
| #define | HID_IOF_ABSOLUTE (0 << 2) |
| #define | HID_IOF_WRAP (1 << 3) |
| #define | HID_IOF_NO_WRAP (0 << 3) |
| #define | HID_IOF_NON_LINEAR (1 << 4) |
| #define | HID_IOF_LINEAR (0 << 4) |
| #define | HID_IOF_NO_PREFERRED_STATE (1 << 5) |
| #define | HID_IOF_PREFERRED_STATE (0 << 5) |
| #define | HID_IOF_NULLSTATE (1 << 6) |
| #define | HID_IOF_NO_NULL_POSITION (0 << 6) |
| #define | HID_IOF_VOLATILE (1 << 7) |
| #define | HID_IOF_NON_VOLATILE (0 << 7) |
| #define | HID_IOF_BUFFERED_BYTES (1 << 8) |
| #define | HID_IOF_BITFIELD (0 << 8) |
HID Report Descriptor Main items | |
| #define | HID_RI_INPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x80, DataBits, __VA_ARGS__) |
| #define | HID_RI_OUTPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x90, DataBits, __VA_ARGS__) |
| #define | HID_RI_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xA0, DataBits, __VA_ARGS__) |
| #define | HID_RI_FEATURE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xB0, DataBits, __VA_ARGS__) |
| #define | HID_RI_END_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xC0, DataBits, __VA_ARGS__) |
HID Report Descriptor Global items | |
| #define | HID_RI_USAGE_PAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x00, DataBits, __VA_ARGS__) |
| #define | HID_RI_LOGICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x10, DataBits, __VA_ARGS__) |
| #define | HID_RI_LOGICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x20, DataBits, __VA_ARGS__) |
| #define | HID_RI_PHYSICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x30, DataBits, __VA_ARGS__) |
| #define | HID_RI_PHYSICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x40, DataBits, __VA_ARGS__) |
| #define | HID_RI_UNIT_EXPONENT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x50, DataBits, __VA_ARGS__) |
| #define | HID_RI_UNIT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x60, DataBits, __VA_ARGS__) |
| #define | HID_RI_REPORT_SIZE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x70, DataBits, __VA_ARGS__) |
| #define | HID_RI_REPORT_ID(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x80, DataBits, __VA_ARGS__) |
| #define | HID_RI_REPORT_COUNT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x90, DataBits, __VA_ARGS__) |
| #define | HID_RI_PUSH(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xA0, DataBits, __VA_ARGS__) |
| #define | HID_RI_POP(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xB0, DataBits, __VA_ARGS__) |
HID Report Descriptor Local items | |
| #define | HID_RI_USAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x00, DataBits, __VA_ARGS__) |
| #define | HID_RI_USAGE_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x10, DataBits, __VA_ARGS__) |
| #define | HID_RI_USAGE_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x20, DataBits, __VA_ARGS__) |
| #define | HID_RI_DESIGNATOR_INDEX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x30, DataBits, __VA_ARGS__) |
| #define | HID_RI_DESIGNATOR_MIN(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x40, DataBits, __VA_ARGS__) |
| #define | HID_RI_DESIGNATOR_MAX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x50, DataBits, __VA_ARGS__) |
| #define | HID_RI_STRING_INDEX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x70, DataBits, __VA_ARGS__) |
| #define | HID_RI_STRING_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x80, DataBits, __VA_ARGS__) |
| #define | HID_RI_STRING_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x90, DataBits, __VA_ARGS__) |
| #define | HID_RI_DELIMITER(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0xA0, DataBits, __VA_ARGS__) |
Macros for the units encoding | |
| #define | HID_UNIT_NONE 0x00 |
| #define | HID_UNIT_CGS_LINEAR 0x01 |
| #define | HID_UNIT_CGS_ROTATION 0x02 |
| #define | HID_UNIT_IMPERIAL_LINEAR 0x03 |
| #define | HID_UNIT_IMPERIAL_ROTATION 0x04 |
| #define | HID_UNIT_LENGTH(exp) ((exp & 0x0F) << 4) |
| #define | HID_UNIT_ANGLE(exp) ((exp & 0x0F) << 4) |
| #define | HID_UNIT_MASS(exp) ((exp & 0x0F) << 8) |
| #define | HID_UNIT_TIME(exp) ((exp & 0x0F) << 12) |
| #define | HID_UNIT_TEMPERATURE(exp) ((exp & 0x0F) << 16) |
| #define | HID_UNIT_CURRENT(exp) ((exp & 0x0F) << 20) |
| #define | HID_UNIT_LUMINOUS(exp) ((exp & 0x0F) << 24) |
Macros for the some SI named units | |
| #define | HID_UNIT_METER(exp) |
| #define | HID_UNIT_KG(exp) |
| #define | HID_UNIT_SECOND(exp) |
| #define | HID_UNIT_MPS(exp) |
| #define | HID_UNIT_MPS2(exp) |
| #define | HID_UNIT_NEWTON(exp) |
| #define | HID_UNIT_JOULE(exp) |
| #define | HID_UNIT_WATT(exp) |
| #define | HID_UNIT_PASCAL(exp) |
| #define | HID_UNIT_HERTZ(exp) |
| #define | HID_UNIT_AMPERE(exp) |
| #define | HID_UNIT_VOLT(exp) |
| #define | HID_UNIT_OHM(exp) |
| #define | HID_UNIT_HENRY(exp) |
| #define | HID_UNIT_FARAD(exp) |
| #define | HID_UNIT_COULOMB(exp) |
| #define | HID_UNIT_TESLA(exp) |
| #define | HID_UNIT_LUX(exp) |
This module contains USB Human Interface Devices class definitions.
This module based on
| Type | Logical min | Logical max | Flags | Signal | Operation |
|---|---|---|---|---|---|
| [LC] Linear control | -1 | 1 | Relative, Preferred state | Edge | Inc / Dec value |
| -Min | Max | Relative, Preferred state | Level | Inc / Dec value by n | |
| Min | Max | Absolute, Preferred state | N/A | Absolute value | |
| [OOC] ON/OFF control | -1 | 1 | Relative, No preferred | Edge | 1 asserts ON; -1 assertsOFF |
| 0 | 1 | Relative, Preferred state | Edge | 0->1 toggles ON/OFF | |
| 0 | 1 | Absolute, No preferred | Level | 0 asserts ON; 1 asserts OFF | |
| [MC] Momentary control | 0 | 1 | Absolute, Preferred state | Level | 0 asserts, 1 deasserts condition |
| [OSC] One shot control | 0 | 1 | Relative, Preferred state | Edge | 0->1 triggers an event |
| [RTC] Re-trigger control | 0 | 1 | Absolute, Preferred state | Level | 1 trigger an event |
| Type | Flgs | Description |
|---|---|---|
| [SEL] Selector | Array | Contained a Named Array |
| [SV] Static value | Constant, Variable, Absolute | Read-only multiple-bit value |
| [SF] Static flag | Constant, Variable, Absolute | Read-only single-bit value |
| [DV] Dynamic value | Data, Variable, Absolute | Read-write multiple-bit value |
| [DF] Dynamic flag | Data, Variable, Absolute | Read-write single-bit value |
| #define DECLARE_USB_HID_DESCRIPTOR | ( | p | ) |
Helper macro for the multireport hid descriptor.
| #define HID_IOF_CONSTANT (1 << 0) |
| #define HID_IOF_DATA (0 << 0) |
| #define HID_IOF_VARIABLE (1 << 1) |
| #define HID_IOF_ARRAY (0 << 1) |
| #define HID_IOF_RELATIVE (1 << 2) |
| #define HID_IOF_ABSOLUTE (0 << 2) |
| #define HID_IOF_WRAP (1 << 3) |
| #define HID_IOF_NO_WRAP (0 << 3) |
| #define HID_IOF_NON_LINEAR (1 << 4) |
| #define HID_IOF_LINEAR (0 << 4) |
| #define HID_IOF_NO_PREFERRED_STATE (1 << 5) |
| #define HID_IOF_PREFERRED_STATE (0 << 5) |
| #define HID_IOF_NULLSTATE (1 << 6) |
| #define HID_IOF_NO_NULL_POSITION (0 << 6) |
| #define HID_IOF_VOLATILE (1 << 7) |
| #define HID_IOF_NON_VOLATILE (0 << 7) |
| #define HID_IOF_BUFFERED_BYTES (1 << 8) |
| #define HID_IOF_BITFIELD (0 << 8) |
| #define HID_RI_INPUT | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x80, DataBits, __VA_ARGS__) |
| #define HID_RI_OUTPUT | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x90, DataBits, __VA_ARGS__) |
| #define HID_RI_COLLECTION | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xA0, DataBits, __VA_ARGS__) |
| #define HID_RI_FEATURE | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xB0, DataBits, __VA_ARGS__) |
| #define HID_RI_END_COLLECTION | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xC0, DataBits, __VA_ARGS__) |
| #define HID_RI_USAGE_PAGE | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x00, DataBits, __VA_ARGS__) |
| #define HID_RI_LOGICAL_MINIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x10, DataBits, __VA_ARGS__) |
| #define HID_RI_LOGICAL_MAXIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x20, DataBits, __VA_ARGS__) |
| #define HID_RI_PHYSICAL_MINIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x30, DataBits, __VA_ARGS__) |
| #define HID_RI_PHYSICAL_MAXIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x40, DataBits, __VA_ARGS__) |
| #define HID_RI_UNIT_EXPONENT | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x50, DataBits, __VA_ARGS__) |
| #define HID_RI_UNIT | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x60, DataBits, __VA_ARGS__) |
| #define HID_RI_REPORT_SIZE | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x70, DataBits, __VA_ARGS__) |
| #define HID_RI_REPORT_ID | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x80, DataBits, __VA_ARGS__) |
| #define HID_RI_REPORT_COUNT | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x90, DataBits, __VA_ARGS__) |
| #define HID_RI_PUSH | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xA0, DataBits, __VA_ARGS__) |
| #define HID_RI_POP | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xB0, DataBits, __VA_ARGS__) |
| #define HID_RI_USAGE | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x00, DataBits, __VA_ARGS__) |
| #define HID_RI_USAGE_MINIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x10, DataBits, __VA_ARGS__) |
| #define HID_RI_USAGE_MAXIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x20, DataBits, __VA_ARGS__) |
| #define HID_RI_DESIGNATOR_INDEX | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x30, DataBits, __VA_ARGS__) |
| #define HID_RI_DESIGNATOR_MIN | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x40, DataBits, __VA_ARGS__) |
| #define HID_RI_DESIGNATOR_MAX | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x50, DataBits, __VA_ARGS__) |
| #define HID_RI_STRING_INDEX | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x70, DataBits, __VA_ARGS__) |
| #define HID_RI_STRING_MINIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x80, DataBits, __VA_ARGS__) |
| #define HID_RI_STRING_MAXIMUM | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x90, DataBits, __VA_ARGS__) |
| #define HID_RI_DELIMITER | ( | DataBits, | |
| ... | |||
| ) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0xA0, DataBits, __VA_ARGS__) |
| #define HID_INPUT | ( | data | ) | HID_RI_INPUT(8, data) |
| #define HID_OUTPUT | ( | data | ) | HID_RI_OUTPUT(8, data) |
| #define HID_COLLECTION | ( | data | ) | HID_RI_COLLECTION(8, data) |
| #define HID_FEATURE | ( | data | ) | HID_RI_FEATURE(8, data) |
| #define HID_END_COLLECTION HID_RI_END_COLLECTION(0) |
| #define HID_USAGE_PAGE | ( | data | ) | HID_RI_USAGE_PAGE(8, data) |
| #define HID_LOGICAL_MINIMUM | ( | data | ) | HID_RI_LOGICAL_MINIMUM(8, data) |
| #define HID_LOGICAL_MAXIMUM | ( | data | ) | HID_RI_LOGICAL_MAXIMUM(8, data) |
| #define HID_PHYSICAL_MINIMUM | ( | data | ) | HID_RI_PHYSICAL_MINIMUM(16, data) |
| #define HID_PHYSICAL_MAXIMUM | ( | data | ) | HID_RI_PHYSICAL_MAXIMUM(16, data) |
| #define HID_UNIT_EXPONENT | ( | data | ) | HID_RI_UNIT_EXPONENT(8, data) |
| #define HID_UNIT | ( | bits, | |
| data | |||
| ) | HID_RI_UNIT(bits, data) |
| #define HID_REPORT_SIZE | ( | data | ) | HID_RI_REPORT_SIZE(8, data) |
| #define HID_REPORT_ID | ( | data | ) | HID_RI_REPORT_ID(8, data) |
| #define HID_REPORT_COUNT | ( | data | ) | HID_RI_REPORT_COUNT(8, data) |
| #define HID_PUSH HID_RI_PUSH(0) |
| #define HID_POP HID_RI_POP(0) |
| #define HID_USAGE | ( | data | ) | HID_RI_USAGE(8, data) |
| #define HID_USAGE_MINIMUM | ( | data | ) | HID_RI_USAGE_MINIMUM(8, data) |
| #define HID_USAGE_MAXIMUM | ( | data | ) | HID_RI_USAGE_MAXIMUM(8, data) |
| #define HID_UNIT_CGS_LINEAR 0x01 |
| #define HID_UNIT_CGS_ROTATION 0x02 |
| #define HID_UNIT_IMPERIAL_LINEAR 0x03 |
| #define HID_UNIT_IMPERIAL_ROTATION 0x04 |
| #define HID_UNIT_LENGTH | ( | exp | ) | ((exp & 0x0F) << 4) |
| #define HID_UNIT_ANGLE | ( | exp | ) | ((exp & 0x0F) << 4) |
| #define HID_UNIT_MASS | ( | exp | ) | ((exp & 0x0F) << 8) |
| #define HID_UNIT_TIME | ( | exp | ) | ((exp & 0x0F) << 12) |
| #define HID_UNIT_TEMPERATURE | ( | exp | ) | ((exp & 0x0F) << 16) |
| #define HID_UNIT_CURRENT | ( | exp | ) | ((exp & 0x0F) << 20) |
| #define HID_UNIT_LUMINOUS | ( | exp | ) | ((exp & 0x0F) << 24) |
| #define HID_UNIT_METER | ( | exp | ) |
SI length. m = 1E2 * cm
| #define HID_UNIT_KG | ( | exp | ) |
SI mass. kg = 1E3 * g
| #define HID_UNIT_SECOND | ( | exp | ) |
SI time. 1s
| #define HID_UNIT_MPS | ( | exp | ) |
SI velocity. m/s = 1E2 * cm/s
| #define HID_UNIT_MPS2 | ( | exp | ) |
SI acceleration. m/s^2 = 1E2 * cm/s^2
| #define HID_UNIT_NEWTON | ( | exp | ) |
SI force. N = 1E5 * g * cm / s^2
| #define HID_UNIT_JOULE | ( | exp | ) |
SI energy. J = 1E7 * g * cm^2 / s^2
| #define HID_UNIT_WATT | ( | exp | ) |
SI power. W = 1E7 * g * cm^2 / s^3
| #define HID_UNIT_PASCAL | ( | exp | ) |
SI pressure. Pa = 1E1 * g / (cm * s^2)
| #define HID_UNIT_HERTZ | ( | exp | ) |
SI frequency. Hz = 1 / s
| #define HID_UNIT_AMPERE | ( | exp | ) |
SI current. A
| #define HID_UNIT_VOLT | ( | exp | ) |
SI voltage. V = W / A = 1E7 * g * cm^2 / (s^3 * A)
| #define HID_UNIT_OHM | ( | exp | ) |
SI resistance. Ohm = 1E7 * g * cm^2 / (s^3 * A^2)
| #define HID_UNIT_HENRY | ( | exp | ) |
SI inductance. H = 1E7 * g * cm^2 / (s^2 * A^2)
| #define HID_UNIT_FARAD | ( | exp | ) |
SI capacitance. F = 1E-7 * s^4 * A^2 / (cm^2 * g)
| #define HID_UNIT_COULOMB | ( | exp | ) |
SI electric charge. C = s * A
| #define HID_UNIT_TESLA | ( | exp | ) |
SI magnetic flux density. T = 1E3 * g / (s^2 * A)
| #define HID_UNIT_LUX | ( | exp | ) |
SI illuminance. lx = 1E4 * cd / cm^2