2 * Copyright (C) 2015 Austin English
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
25 typedef USHORT USAGE
, *PUSAGE
;
27 #define HID_USAGE_CONSUMERCTRL ((USAGE) 0x01)
29 #define HID_USAGE_CONSUMER_VOLUME ((USAGE) 0xE0)
31 #define HID_USAGE_DIGITIZER_PEN ((USAGE) 0x02)
32 #define HID_USAGE_DIGITIZER_TOUCH_SCREEN ((USAGE) 0x04)
33 #define HID_USAGE_DIGITIZER_TOUCH_PAD ((USAGE) 0x05)
34 #define HID_USAGE_DIGITIZER_TIP_PRESSURE ((USAGE) 0x30)
35 #define HID_USAGE_DIGITIZER_IN_RANGE ((USAGE) 0x32)
36 #define HID_USAGE_DIGITIZER_X_TILT ((USAGE) 0x3D)
37 #define HID_USAGE_DIGITIZER_Y_TILT ((USAGE) 0x3E)
38 #define HID_USAGE_DIGITIZER_AZIMUTH ((USAGE) 0x3F)
39 #define HID_USAGE_DIGITIZER_TIP_SWITCH ((USAGE) 0x42)
40 #define HID_USAGE_DIGITIZER_BARREL_SWITCH ((USAGE) 0x44)
42 #define HID_USAGE_GENERIC_POINTER ((USAGE) 0x01)
43 #define HID_USAGE_GENERIC_MOUSE ((USAGE) 0x02)
44 #define HID_USAGE_GENERIC_JOYSTICK ((USAGE) 0x04)
45 #define HID_USAGE_GENERIC_GAMEPAD ((USAGE) 0x05)
46 #define HID_USAGE_GENERIC_KEYBOARD ((USAGE) 0x06)
47 #define HID_USAGE_GENERIC_KEYPAD ((USAGE) 0x07)
48 #define HID_USAGE_GENERIC_MULTI_AXIS_CONTROLLER ((USAGE) 0x08)
49 #define HID_USAGE_GENERIC_SYSTEM_CTL ((USAGE) 0x80)
50 #define HID_USAGE_GENERIC_X ((USAGE) 0x30)
51 #define HID_USAGE_GENERIC_Y ((USAGE) 0x31)
52 #define HID_USAGE_GENERIC_Z ((USAGE) 0x32)
53 #define HID_USAGE_GENERIC_RX ((USAGE) 0x33)
54 #define HID_USAGE_GENERIC_RY ((USAGE) 0x34)
55 #define HID_USAGE_GENERIC_RZ ((USAGE) 0x35)
56 #define HID_USAGE_GENERIC_SLIDER ((USAGE) 0x36)
57 #define HID_USAGE_GENERIC_DIAL ((USAGE) 0x37)
58 #define HID_USAGE_GENERIC_WHEEL ((USAGE) 0x38)
59 #define HID_USAGE_GENERIC_HATSWITCH ((USAGE) 0x39)
60 #define HID_USAGE_GENERIC_COUNTED_BUFFER ((USAGE) 0x3A)
61 #define HID_USAGE_GENERIC_BYTE_COUNT ((USAGE) 0x3B)
62 #define HID_USAGE_GENERIC_MOTION_WAKEUP ((USAGE) 0x3C)
63 #define HID_USAGE_GENERIC_VX ((USAGE) 0x40)
64 #define HID_USAGE_GENERIC_VY ((USAGE) 0x41)
65 #define HID_USAGE_GENERIC_VZ ((USAGE) 0x42)
66 #define HID_USAGE_GENERIC_VBRX ((USAGE) 0x43)
67 #define HID_USAGE_GENERIC_VBRY ((USAGE) 0x44)
68 #define HID_USAGE_GENERIC_VBRZ ((USAGE) 0x45)
69 #define HID_USAGE_GENERIC_VNO ((USAGE) 0x46)
70 #define HID_USAGE_GENERIC_SYSCTL_POWER ((USAGE) 0x81)
71 #define HID_USAGE_GENERIC_SYSCTL_SLEEP ((USAGE) 0x82)
72 #define HID_USAGE_GENERIC_SYSCTL_WAKE ((USAGE) 0x83)
73 #define HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU ((USAGE) 0x84)
74 #define HID_USAGE_GENERIC_SYSCTL_MAIN_MENU ((USAGE) 0x85)
75 #define HID_USAGE_GENERIC_SYSCTL_APP_MENU ((USAGE) 0x86)
76 #define HID_USAGE_GENERIC_SYSCTL_HELP_MENU ((USAGE) 0x87)
77 #define HID_USAGE_GENERIC_SYSCTL_MENU_EXIT ((USAGE) 0x88)
78 #define HID_USAGE_GENERIC_SYSCTL_MENU_SELECT ((USAGE) 0x89)
79 #define HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT ((USAGE) 0x8A)
80 #define HID_USAGE_GENERIC_SYSCTL_MENU_LEFT ((USAGE) 0x8B)
81 #define HID_USAGE_GENERIC_SYSCTL_MENU_UP ((USAGE) 0x8C)
82 #define HID_USAGE_GENERIC_SYSCTL_MENU_DOWN ((USAGE) 0x8D)
84 #define HID_USAGE_KEYBOARD_NOEVENT ((USAGE) 0x00)
85 #define HID_USAGE_KEYBOARD_ROLLOVER ((USAGE) 0x01)
86 #define HID_USAGE_KEYBOARD_POSTFAIL ((USAGE) 0x02)
87 #define HID_USAGE_KEYBOARD_UNDEFINED ((USAGE) 0x03)
88 #define HID_USAGE_KEYBOARD_aA ((USAGE) 0x04)
89 #define HID_USAGE_KEYBOARD_zZ ((USAGE) 0x1D)
90 #define HID_USAGE_KEYBOARD_ONE ((USAGE) 0x1E)
91 #define HID_USAGE_KEYBOARD_ZERO ((USAGE) 0x27)
92 #define HID_USAGE_KEYBOARD_LCTRL ((USAGE) 0xE0)
93 #define HID_USAGE_KEYBOARD_LSHFT ((USAGE) 0xE1)
94 #define HID_USAGE_KEYBOARD_LALT ((USAGE) 0xE2)
95 #define HID_USAGE_KEYBOARD_LGUI ((USAGE) 0xE3)
96 #define HID_USAGE_KEYBOARD_RCTRL ((USAGE) 0xE4)
97 #define HID_USAGE_KEYBOARD_RSHFT ((USAGE) 0xE5)
98 #define HID_USAGE_KEYBOARD_RALT ((USAGE) 0xE6)
99 #define HID_USAGE_KEYBOARD_RGUI ((USAGE) 0xE7)
100 #define HID_USAGE_KEYBOARD_SCROLL_LOCK ((USAGE) 0x47)
101 #define HID_USAGE_KEYBOARD_NUM_LOCK ((USAGE) 0x53)
102 #define HID_USAGE_KEYBOARD_CAPS_LOCK ((USAGE) 0x39)
103 #define HID_USAGE_KEYBOARD_F1 ((USAGE) 0x3A)
104 #define HID_USAGE_KEYBOARD_F12 ((USAGE) 0x45)
105 #define HID_USAGE_KEYBOARD_RETURN ((USAGE) 0x28)
106 #define HID_USAGE_KEYBOARD_ESCAPE ((USAGE) 0x29)
107 #define HID_USAGE_KEYBOARD_DELETE ((USAGE) 0x2A)
108 #define HID_USAGE_KEYBOARD_PRINT_SCREEN ((USAGE) 0x46)
110 #define HID_USAGE_LED_NUM_LOCK ((USAGE) 0x01)
111 #define HID_USAGE_LED_CAPS_LOCK ((USAGE) 0x02)
112 #define HID_USAGE_LED_SCROLL_LOCK ((USAGE) 0x03)
113 #define HID_USAGE_LED_COMPOSE ((USAGE) 0x04)
114 #define HID_USAGE_LED_KANA ((USAGE) 0x05)
115 #define HID_USAGE_LED_POWER ((USAGE) 0x06)
116 #define HID_USAGE_LED_SHIFT ((USAGE) 0x07)
117 #define HID_USAGE_LED_DO_NOT_DISTURB ((USAGE) 0x08)
118 #define HID_USAGE_LED_MUTE ((USAGE) 0x09)
119 #define HID_USAGE_LED_TONE_ENABLE ((USAGE) 0x0A)
120 #define HID_USAGE_LED_HIGH_CUT_FILTER ((USAGE) 0x0B)
121 #define HID_USAGE_LED_LOW_CUT_FILTER ((USAGE) 0x0C)
122 #define HID_USAGE_LED_EQUALIZER_ENABLE ((USAGE) 0x0D)
123 #define HID_USAGE_LED_SOUND_FIELD_ON ((USAGE) 0x0E)
124 #define HID_USAGE_LED_SURROUND_FIELD_ON ((USAGE) 0x0F)
125 #define HID_USAGE_LED_REPEAT ((USAGE) 0x10)
126 #define HID_USAGE_LED_STEREO ((USAGE) 0x11)
127 #define HID_USAGE_LED_SAMPLING_RATE_DETECT ((USAGE) 0x12)
128 #define HID_USAGE_LED_SPINNING ((USAGE) 0x13)
129 #define HID_USAGE_LED_CAV ((USAGE) 0x14)
130 #define HID_USAGE_LED_CLV ((USAGE) 0x15)
131 #define HID_USAGE_LED_RECORDING_FORMAT_DET ((USAGE) 0x16)
132 #define HID_USAGE_LED_OFF_HOOK ((USAGE) 0x17)
133 #define HID_USAGE_LED_RING ((USAGE) 0x18)
134 #define HID_USAGE_LED_MESSAGE_WAITING ((USAGE) 0x19)
135 #define HID_USAGE_LED_DATA_MODE ((USAGE) 0x1A)
136 #define HID_USAGE_LED_BATTERY_OPERATION ((USAGE) 0x1B)
137 #define HID_USAGE_LED_BATTERY_OK ((USAGE) 0x1C)
138 #define HID_USAGE_LED_BATTERY_LOW ((USAGE) 0x1D)
139 #define HID_USAGE_LED_SPEAKER ((USAGE) 0x1E)
140 #define HID_USAGE_LED_HEAD_SET ((USAGE) 0x1F)
141 #define HID_USAGE_LED_HOLD ((USAGE) 0x20)
142 #define HID_USAGE_LED_MICROPHONE ((USAGE) 0x21)
143 #define HID_USAGE_LED_COVERAGE ((USAGE) 0x22)
144 #define HID_USAGE_LED_NIGHT_MODE ((USAGE) 0x23)
145 #define HID_USAGE_LED_SEND_CALLS ((USAGE) 0x24)
146 #define HID_USAGE_LED_CALL_PICKUP ((USAGE) 0x25)
147 #define HID_USAGE_LED_CONFERENCE ((USAGE) 0x26)
148 #define HID_USAGE_LED_STAND_BY ((USAGE) 0x27)
149 #define HID_USAGE_LED_CAMERA_ON ((USAGE) 0x28)
150 #define HID_USAGE_LED_CAMERA_OFF ((USAGE) 0x29)
151 #define HID_USAGE_LED_ON_LINE ((USAGE) 0x2A)
152 #define HID_USAGE_LED_OFF_LINE ((USAGE) 0x2B)
153 #define HID_USAGE_LED_BUSY ((USAGE) 0x2C)
154 #define HID_USAGE_LED_READY ((USAGE) 0x2D)
155 #define HID_USAGE_LED_PAPER_OUT ((USAGE) 0x2E)
156 #define HID_USAGE_LED_PAPER_JAM ((USAGE) 0x2F)
157 #define HID_USAGE_LED_REMOTE ((USAGE) 0x30)
158 #define HID_USAGE_LED_FORWARD ((USAGE) 0x31)
159 #define HID_USAGE_LED_REVERSE ((USAGE) 0x32)
160 #define HID_USAGE_LED_STOP ((USAGE) 0x33)
161 #define HID_USAGE_LED_REWIND ((USAGE) 0x34)
162 #define HID_USAGE_LED_FAST_FORWARD ((USAGE) 0x35)
163 #define HID_USAGE_LED_PLAY ((USAGE) 0x36)
164 #define HID_USAGE_LED_PAUSE ((USAGE) 0x37)
165 #define HID_USAGE_LED_RECORD ((USAGE) 0x38)
166 #define HID_USAGE_LED_ERROR ((USAGE) 0x39)
167 #define HID_USAGE_LED_SELECTED_INDICATOR ((USAGE) 0x3A)
168 #define HID_USAGE_LED_IN_USE_INDICATOR ((USAGE) 0x3B)
169 #define HID_USAGE_LED_MULTI_MODE_INDICATOR ((USAGE) 0x3C)
170 #define HID_USAGE_LED_INDICATOR_ON ((USAGE) 0x3D)
171 #define HID_USAGE_LED_INDICATOR_FLASH ((USAGE) 0x3E)
172 #define HID_USAGE_LED_INDICATOR_SLOW_BLINK ((USAGE) 0x3F)
173 #define HID_USAGE_LED_INDICATOR_FAST_BLINK ((USAGE) 0x40)
174 #define HID_USAGE_LED_INDICATOR_OFF ((USAGE) 0x41)
175 #define HID_USAGE_LED_FLASH_ON_TIME ((USAGE) 0x42)
176 #define HID_USAGE_LED_SLOW_BLINK_ON_TIME ((USAGE) 0x43)
177 #define HID_USAGE_LED_SLOW_BLINK_OFF_TIME ((USAGE) 0x44)
178 #define HID_USAGE_LED_FAST_BLINK_ON_TIME ((USAGE) 0x45)
179 #define HID_USAGE_LED_FAST_BLINK_OFF_TIME ((USAGE) 0x46)
180 #define HID_USAGE_LED_INDICATOR_COLOR ((USAGE) 0x47)
181 #define HID_USAGE_LED_RED ((USAGE) 0x48)
182 #define HID_USAGE_LED_GREEN ((USAGE) 0x49)
183 #define HID_USAGE_LED_AMBER ((USAGE) 0x4A)
184 #define HID_USAGE_LED_GENERIC_INDICATOR ((USAGE) 0x3B)
186 #define HID_USAGE_PAGE_UNDEFINED ((USAGE) 0x00)
187 #define HID_USAGE_PAGE_GENERIC ((USAGE) 0x01)
188 #define HID_USAGE_PAGE_SIMULATION ((USAGE) 0x02)
189 #define HID_USAGE_PAGE_VR ((USAGE) 0x03)
190 #define HID_USAGE_PAGE_SPORT ((USAGE) 0x04)
191 #define HID_USAGE_PAGE_GAME ((USAGE) 0x05)
192 #define HID_USAGE_PAGE_KEYBOARD ((USAGE) 0x07)
193 #define HID_USAGE_PAGE_LED ((USAGE) 0x08)
194 #define HID_USAGE_PAGE_BUTTON ((USAGE) 0x09)
195 #define HID_USAGE_PAGE_ORDINAL ((USAGE) 0x0A)
196 #define HID_USAGE_PAGE_TELEPHONY ((USAGE) 0x0B)
197 #define HID_USAGE_PAGE_CONSUMER ((USAGE) 0x0C)
198 #define HID_USAGE_PAGE_DIGITIZER ((USAGE) 0x0D)
199 #define HID_USAGE_PAGE_HAPTICS ((USAGE) 0x0E)
200 #define HID_USAGE_PAGE_PID ((USAGE) 0x0F)
201 #define HID_USAGE_PAGE_UNICODE ((USAGE) 0x10)
202 #define HID_USAGE_PAGE_ALPHANUMERIC ((USAGE) 0x14)
203 #define HID_USAGE_PAGE_VENDOR_DEFINED_BEGIN ((USAGE) 0xff00)
204 #define HID_USAGE_PAGE_VENDOR_DEFINED_END ((USAGE) 0xffff)
206 #define HID_USAGE_SIMULATION_FLIGHT_SIMULATION_DEVICE ((USAGE) 0x01)
207 #define HID_USAGE_SIMULATION_AUTOMOBILE_SIMULATION_DEVICE ((USAGE) 0x02)
208 #define HID_USAGE_SIMULATION_RUDDER ((USAGE) 0xBA)
209 #define HID_USAGE_SIMULATION_THROTTLE ((USAGE) 0xBB)
210 #define HID_USAGE_SIMULATION_ACCELERATOR ((USAGE) 0xC4)
211 #define HID_USAGE_SIMULATION_BRAKE ((USAGE) 0xC5)
212 #define HID_USAGE_SIMULATION_CLUTCH ((USAGE) 0xC6)
213 #define HID_USAGE_SIMULATION_STEERING ((USAGE) 0xC8)
215 #define HID_USAGE_TELEPHONY_PHONE ((USAGE) 0x01)
216 #define HID_USAGE_TELEPHONY_ANSWERING_MACHINE ((USAGE) 0x02)
217 #define HID_USAGE_TELEPHONY_MESSAGE_CONTROLS ((USAGE) 0x03)
218 #define HID_USAGE_TELEPHONY_HANDSET ((USAGE) 0x04)
219 #define HID_USAGE_TELEPHONY_HEADSET ((USAGE) 0x05)
220 #define HID_USAGE_TELEPHONY_KEYPAD ((USAGE) 0x06)
221 #define HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON ((USAGE) 0x07)
222 #define HID_USAGE_TELEPHONY_REDIAL ((USAGE) 0x24)
223 #define HID_USAGE_TELEPHONY_TRANSFER ((USAGE) 0x25)
224 #define HID_USAGE_TELEPHONY_DROP ((USAGE) 0x26)
225 #define HID_USAGE_TELEPHONY_LINE ((USAGE) 0x2A)
226 #define HID_USAGE_TELEPHONY_RING_ENABLE ((USAGE) 0x2D)
227 #define HID_USAGE_TELEPHONY_SEND ((USAGE) 0x31)
228 #define HID_USAGE_TELEPHONY_KEYPAD_0 ((USAGE) 0xB0)
229 #define HID_USAGE_TELEPHONY_KEYPAD_D ((USAGE) 0xBF)
230 #define HID_USAGE_TELEPHONY_HOST_AVAILABLE ((USAGE) 0xF1)
232 #define HID_USAGE_HAPTICS_SIMPLE_CONTROLLER ((USAGE) 0x01)
233 #define HID_USAGE_HAPTICS_WAVEFORM_LIST ((USAGE) 0x10)
234 #define HID_USAGE_HAPTICS_DURATION_LIST ((USAGE) 0x11)
235 #define HID_USAGE_HAPTICS_AUTO_TRIGGER ((USAGE) 0x20)
236 #define HID_USAGE_HAPTICS_MANUAL_TRIGGER ((USAGE) 0x21)
237 #define HID_USAGE_HAPTICS_AUTO_ASSOCIATED_CONTROL ((USAGE) 0x22)
238 #define HID_USAGE_HAPTICS_INTENSITY ((USAGE) 0x23)
239 #define HID_USAGE_HAPTICS_REPEAT_COUNT ((USAGE) 0x24)
240 #define HID_USAGE_HAPTICS_RETRIGGER_PERIOD ((USAGE) 0x25)
241 #define HID_USAGE_HAPTICS_WAVEFORM_VENDOR_PAGE ((USAGE) 0x26)
242 #define HID_USAGE_HAPTICS_WAVEFORM_VENDOR_ID ((USAGE) 0x27)
243 #define HID_USAGE_HAPTICS_WAVEFORM_CUTOFF_TIME ((USAGE) 0x28)
244 #define HID_USAGE_HAPTICS_WAVEFORM_BEGIN ((USAGE) 0x1000)
245 /* Differs from https://usb.org/sites/default/files/hut1_22.pdf */
247 #define HID_USAGE_HAPTICS_WAVEFORM_STOP ((USAGE) 0x1001)
249 #define HID_USAGE_HAPTICS_WAVEFORM_NULL ((USAGE) 0x1002)
250 #define HID_USAGE_HAPTICS_WAVEFORM_CLICK ((USAGE) 0x1003)
251 #define HID_USAGE_HAPTICS_WAVEFORM_BUZZ ((USAGE) 0x1004)
252 #define HID_USAGE_HAPTICS_WAVEFORM_RUMBLE ((USAGE) 0x1005)
253 #define HID_USAGE_HAPTICS_WAVEFORM_PRESS ((USAGE) 0x1006)
254 #define HID_USAGE_HAPTICS_WAVEFORM_RELEASE ((USAGE) 0x1007)
255 #define HID_USAGE_HAPTICS_WAVEFORM_END ((USAGE) 0x1FFF)
256 #define HID_USAGE_HAPTICS_WAVEFORM_VENDOR_BEGIN ((USAGE) 0x2000)
257 #define HID_USAGE_HAPTICS_WAVEFORM_VENDOR_END ((USAGE) 0x2FFF)
259 #define HID_USAGE_MS_BTH_HF_DIALNUMBER ((USAGE) 0x21)
260 #define HID_USAGE_MS_BTH_HF_DIALMEMORY ((USAGE) 0x22)
266 #endif /* __HIDUSAGE_H */