grub2: bring back build of aros-side grub2 tools
[AROS.git] / rom / usb / classes / hid / numtostr.c
blob9f10c3a967cfcbe8c7b7e475e64c33d13ffd5538
2 #include "numtostr.h"
4 /* /// "Generic Desktop Controls" */
5 const struct HidUsageIDMap hidusage01[] =
7 { 0x01, "Pointer" },
8 { 0x02, "Mouse" },
9 { 0x04, "Joystick" },
10 { 0x05, "Game Pad" },
11 { 0x06, "Keyboard" },
12 { 0x07, "Keypad" },
13 { 0x08, "Multi-axis Controller" },
14 { 0x09, "Tablet PC System Controls" },
15 { 0x30, "X axis" },
16 { 0x31, "Y axis" },
17 { 0x32, "Z axis" },
18 { 0x33, "X rotation" },
19 { 0x34, "Y rotation" },
20 { 0x35, "Z rotation" },
21 { 0x36, "Slider" },
22 { 0x37, "Dial" },
23 { 0x38, "Wheel" },
24 { 0x39, "Hat switch" },
25 { 0x3A, "Counted Buffer" },
26 { 0x3B, "Byte Count" },
27 { 0x3C, "Motion Wakeup" },
28 { 0x3D, "Start" },
29 { 0x3E, "Select" },
30 { 0x40, "X vector" },
31 { 0x41, "Y vector" },
32 { 0x42, "Z vector" },
33 { 0x43, "X body-rel. vector" },
34 { 0x44, "Y body-rel. vector" },
35 { 0x45, "Y body-rel. vector" },
36 { 0x46, "Non oriented vector" },
37 { 0x47, "Feature Notification" },
38 { 0x48, "Resolution Multiplier" },
39 { 0x80, "System Control" },
40 { 0x81, "System Power Down" },
41 { 0x82, "System Sleep" },
42 { 0x83, "System Wake Up" },
43 { 0x84, "System Context Menu" },
44 { 0x85, "System Main Menu" },
45 { 0x86, "System App Menu" },
46 { 0x87, "System Menu Help" },
47 { 0x88, "System Menu Exit" },
48 { 0x89, "System Menu Select" },
49 { 0x8A, "System Menu Right" },
50 { 0x8B, "System Menu Left" },
51 { 0x8C, "System Menu Up" },
52 { 0x8D, "System Menu Down" },
53 { 0x8E, "System Cold Restart" },
54 { 0x8F, "System Warm Restart" },
55 { 0x90, "Direction-pad Up" },
56 { 0x91, "Direction-pad Down" },
57 { 0x92, "Direction-pad Right" },
58 { 0x93, "Direction-pad Left" },
59 { 0xA0, "System Dock" },
60 { 0xA1, "System Undock" },
61 { 0xA2, "System Setup" },
62 { 0xA3, "System Break" },
63 { 0xA4, "System Debugger Break" },
64 { 0xA5, "Application Break" },
65 { 0xA6, "Application Debugger Break" },
66 { 0xA7, "System Speaker Mute" },
67 { 0xA8, "System Hibernate" },
68 { 0xB0, "System Display Invert" },
69 { 0xB1, "System Display Internal" },
70 { 0xB2, "System Display External" },
71 { 0xB3, "System Display Both" },
72 { 0xB4, "System Display Dual" },
73 { 0xB5, "System Display Toggle Int/Ext" },
74 { 0xB6, "System Display Swap Primary/Secondary" },
75 { 0xB7, "System Display LCD Autoscale" },
76 { 0xfff0, "Initial startup actions" },
77 { 0xfff1, "Disconnect actions" },
78 { 0x00, NULL }
80 /* \\\ */
82 /* /// "Simulation Controls" */
83 const struct HidUsageIDMap hidusage02[] =
85 { 0x01, "Flight Simulation Device" },
86 { 0x02, "Automobile Simulation Device" },
87 { 0x03, "Tank Simulation Device" },
88 { 0x04, "Spaceship Simulation Device" },
89 { 0x05, "Submarine Simulation Device" },
90 { 0x06, "Sailing Simulation Device" },
91 { 0x07, "Motorcycle Simulation Device" },
92 { 0x08, "Sports Simulation Device" },
93 { 0x09, "Airplane Simulation Device" },
94 { 0x0A, "Helicopter Simulation Device" },
95 { 0x0B, "Magic Carpet Simulation Device" },
96 { 0x0C, "Bicycle Simulation Device" },
97 { 0x20, "Flight Control Stick" },
98 { 0x21, "Flight Stick" },
99 { 0x22, "Cyclic Control" },
100 { 0x23, "Cyclic Trim" },
101 { 0x24, "Flight Yoke" },
102 { 0x25, "Track Control" },
103 { 0xB0, "Aileron" },
104 { 0xB1, "Aileron Trim" },
105 { 0xB2, "Anti-Torque Control" },
106 { 0xB3, "Autopilot Enable" },
107 { 0xB4, "Chaff Release" },
108 { 0xB5, "Collective Control" },
109 { 0xB6, "Dive Brake" },
110 { 0xB7, "Electronic Countermeasures" },
111 { 0xB8, "Elevator" },
112 { 0xB9, "Elevator Trim" },
113 { 0xBA, "Rudder" },
114 { 0xBB, "Throttle" },
115 { 0xBC, "Flight Communications" },
116 { 0xBD, "Flare Release" },
117 { 0xBE, "Landing Gear" },
118 { 0xBF, "Toe Brake" },
119 { 0xC0, "Trigger" },
120 { 0xC1, "Weapons Arm" },
121 { 0xC2, "Weapons Select" },
122 { 0xC3, "Wing Flaps" },
123 { 0xC4, "Accelerator" },
124 { 0xC5, "Brake" },
125 { 0xC6, "Clutch" },
126 { 0xC7, "Shifter" },
127 { 0xC8, "Steering" },
128 { 0xC9, "Turret Direction" },
129 { 0xCA, "Barrel Elevation" },
130 { 0xCB, "Dive Plane" },
131 { 0xCC, "Ballast" },
132 { 0xCD, "Bicycle Crank" },
133 { 0xCE, "Handle Bars" },
134 { 0xCF, "Front Brake" },
135 { 0xD0, "Rear Brake" },
136 { 0x00, NULL }
138 /* \\\ */
140 /* /// "VR Controls" */
141 const struct HidUsageIDMap hidusage03[] =
143 { 0x01, "Belt" },
144 { 0x02, "Body Suit" },
145 { 0x03, "Flexor" },
146 { 0x04, "Glove" },
147 { 0x05, "Head Tracker" },
148 { 0x06, "Head Mounted Display" },
149 { 0x07, "Hand Tracker" },
150 { 0x08, "Oculometer" },
151 { 0x09, "Vest" },
152 { 0x0A, "Animatronic Device" },
153 { 0x20, "Stereo Enable" },
154 { 0x21, "Display Enable" },
155 { 0x00, NULL }
157 /* \\\ */
159 /* /// "Sports Controls" */
160 const struct HidUsageIDMap hidusage04[] =
162 { 0x01, "Baseball Bat" },
163 { 0x02, "Golf Club" },
164 { 0x03, "Rowing Machine" },
165 { 0x04, "Treadmill" },
166 { 0x30, "Oar" },
167 { 0x31, "Slope" },
168 { 0x32, "Rate" },
169 { 0x33, "Stick Speed" },
170 { 0x34, "Stick Face Angle" },
171 { 0x35, "Stick Heel/Toe" },
172 { 0x36, "Stick Follow Through" },
173 { 0x37, "Stick Tempo" },
174 { 0x38, "Stick Type" },
175 { 0x39, "Stick Height" },
176 { 0x50, "Putter" },
177 { 0x51, "1 Iron" },
178 { 0x52, "2 Iron" },
179 { 0x53, "3 Iron" },
180 { 0x54, "4 Iron" },
181 { 0x55, "5 Iron" },
182 { 0x56, "6 Iron" },
183 { 0x57, "7 Iron" },
184 { 0x58, "8 Iron" },
185 { 0x59, "9 Iron" },
186 { 0x5A, "10 Iron" },
187 { 0x5B, "11 Iron" },
188 { 0x5C, "Sand Wedge" },
189 { 0x5D, "Loft Wedge" },
190 { 0x5E, "Power Wedge" },
191 { 0x5F, "1 Wood" },
192 { 0x60, "3 Wood" },
193 { 0x61, "5 Wood" },
194 { 0x62, "7 Wood" },
195 { 0x63, "9 Wood" },
196 { 0x00, NULL }
198 /* \\\ */
200 /* /// "Game Controls" */
201 const struct HidUsageIDMap hidusage05[] =
203 { 0x01, "3D Game Controller" },
204 { 0x02, "Pinball Device" },
205 { 0x03, "Gun Device" },
206 { 0x20, "Point of View" },
207 { 0x21, "Turn Right/Left" },
208 { 0x22, "Pitch Forward/Backward" },
209 { 0x23, "Roll Right/Left" },
210 { 0x24, "Move Right/Left" },
211 { 0x25, "Move Forward/Backward" },
212 { 0x26, "Move Up/Down" },
213 { 0x27, "Lean Right/Left" },
214 { 0x28, "Lean Forward/Backward" },
215 { 0x29, "Height of POV" },
216 { 0x2A, "Flipper" },
217 { 0x2B, "Secondary Flipper" },
218 { 0x2C, "Bump" },
219 { 0x2D, "New Game" },
220 { 0x2E, "Shoot Ball" },
221 { 0x2F, "Player" },
222 { 0x30, "Gun Bolt" },
223 { 0x31, "Gun Clip" },
224 { 0x32, "Gun Selector" },
225 { 0x33, "Gun Single Shot" },
226 { 0x34, "Gun Burst" },
227 { 0x35, "Gun Automatic" },
228 { 0x36, "Gun Safety" },
229 { 0x37, "Gamepad Fire/Jump" },
230 { 0x39, "Gamepad Trigger" },
231 { 0x00, NULL }
233 /* \\\ */
235 /* /// "Generic Device Controls" */
236 const struct HidUsageIDMap hidusage06[] =
238 { 0x20, "Battery Strength" },
239 { 0x21, "Wireless Channel" },
240 { 0x22, "Wireless ID" },
241 { 0x23, "Discover Wireless Control" },
242 { 0x24, "Security Code Character Entered" },
243 { 0x25, "Security Code Character Erased" },
244 { 0x26, "Security Code Cleared" },
245 { 0x00, NULL }
247 /* \\\ */
249 /* /// "Keyboard/Keypad" */
250 const struct HidUsageIDMap hidusage07[] =
252 { 0x00, "No event" },
253 { 0x01, "Keyboard ErrorRollOver" },
254 { 0x02, "Keyboard POSTFail" },
255 { 0x03, "Keyboard ErrorUndefined" },
256 { 0x04, "Keyboard a and A" },
257 { 0x05, "Keyboard b and B" },
258 { 0x06, "Keyboard c and C" },
259 { 0x07, "Keyboard d and D" },
260 { 0x08, "Keyboard e and E" },
261 { 0x09, "Keyboard f and F" },
262 { 0x0A, "Keyboard g and G" },
263 { 0x0B, "Keyboard h and H" },
264 { 0x0C, "Keyboard i and I" },
265 { 0x0D, "Keyboard j and J" },
266 { 0x0E, "Keyboard k and K" },
267 { 0x0F, "Keyboard l and L" },
268 { 0x10, "Keyboard m and M" },
269 { 0x11, "Keyboard n and N" },
270 { 0x12, "Keyboard o and O" },
271 { 0x13, "Keyboard p and P" },
272 { 0x14, "Keyboard q and Q" },
273 { 0x15, "Keyboard r and R" },
274 { 0x16, "Keyboard s and S" },
275 { 0x17, "Keyboard t and T" },
276 { 0x18, "Keyboard u and U" },
277 { 0x19, "Keyboard v and V" },
278 { 0x1A, "Keyboard w and W" },
279 { 0x1B, "Keyboard x and X" },
280 { 0x1C, "Keyboard y and Y" },
281 { 0x1D, "Keyboard z and Z" },
282 { 0x1E, "Keyboard 1 and !" },
283 { 0x1F, "Keyboard 2 and @" },
284 { 0x20, "Keyboard 3 and #" },
285 { 0x21, "Keyboard 4 and $" },
286 { 0x22, "Keyboard 5 and %" },
287 { 0x23, "Keyboard 6 and ^" },
288 { 0x24, "Keyboard 7 and &" },
289 { 0x25, "Keyboard 8 and *" },
290 { 0x26, "Keyboard 9 and (" },
291 { 0x27, "Keyboard 0 and )" },
292 { 0x28, "Keyboard Return (Enter)" },
293 { 0x29, "Keyboard Escape" },
294 { 0x2A, "Keyboard Delete (Backspace)" },
295 { 0x2B, "Keyboard Tab" },
296 { 0x2C, "Keyboard Spacebar" },
297 { 0x2D, "Keyboard - and (underscore)" },
298 { 0x2E, "Keyboard = and +" },
299 { 0x2F, "Keyboard [ and {" },
300 { 0x30, "Keyboard ] and }" },
301 { 0x31, "Keyboard \\ and |" },
302 { 0x32, "Keyboard Non-US # and ~" },
303 { 0x33, "Keyboard ; and :" },
304 { 0x34, "Keyboard ` and \"" },
305 { 0x35, "Keyboard Grave Accent & Tilde" },
306 { 0x36, "Keyboard , and <" },
307 { 0x37, "Keyboard . and >" },
308 { 0x38, "Keyboard / and ?" },
309 { 0x39, "Keyboard Caps Lock" },
310 { 0x3A, "Keyboard F1" },
311 { 0x3B, "Keyboard F2" },
312 { 0x3C, "Keyboard F3" },
313 { 0x3D, "Keyboard F4" },
314 { 0x3E, "Keyboard F5" },
315 { 0x3F, "Keyboard F6" },
316 { 0x40, "Keyboard F7" },
317 { 0x41, "Keyboard F8" },
318 { 0x42, "Keyboard F9" },
319 { 0x43, "Keyboard F10" },
320 { 0x44, "Keyboard F11" },
321 { 0x45, "Keyboard F12" },
322 { 0x46, "Keyboard Print Screen" },
323 { 0x47, "Keyboard Scroll Lock" },
324 { 0x48, "Keyboard Pause" },
325 { 0x49, "Keyboard Insert" },
326 { 0x4A, "Keyboard Home" },
327 { 0x4B, "Keyboard PageUp" },
328 { 0x4C, "Keyboard Delete Forward" },
329 { 0x4D, "Keyboard End" },
330 { 0x4E, "Keyboard PageDown" },
331 { 0x4F, "Keyboard RightArrow" },
332 { 0x50, "Keyboard LeftArrow" },
333 { 0x51, "Keyboard DownArrow" },
334 { 0x52, "Keyboard UpArrow" },
335 { 0x53, "Keypad Num Lock and Clear" },
336 { 0x54, "Keypad /" },
337 { 0x55, "Keypad *" },
338 { 0x56, "Keypad -" },
339 { 0x57, "Keypad +" },
340 { 0x58, "Keypad Enter" },
341 { 0x59, "Keypad 1 and End" },
342 { 0x5A, "Keypad 2 and Down Arrow" },
343 { 0x5B, "Keypad 3 and PageDn" },
344 { 0x5C, "Keypad 4 and Left Arrow" },
345 { 0x5D, "Keypad 5" },
346 { 0x5E, "Keypad 6 and Right Arrow" },
347 { 0x5F, "Keypad 7 and Home" },
348 { 0x60, "Keypad 8 and Up Arrow" },
349 { 0x61, "Keypad 9 and PageUp" },
350 { 0x62, "Keypad 0 and Insert" },
351 { 0x63, "Keypad . and Delete" },
352 { 0x64, "Keyboard Non-US \\ and |" },
353 { 0x65, "Keyboard Application" },
354 { 0x66, "Keyboard Power" },
355 { 0x67, "Keypad =" },
356 { 0x68, "Keyboard F13" },
357 { 0x69, "Keyboard F14" },
358 { 0x6A, "Keyboard F15" },
359 { 0x6B, "Keyboard F16" },
360 { 0x6C, "Keyboard F17" },
361 { 0x6D, "Keyboard F18" },
362 { 0x6E, "Keyboard F19" },
363 { 0x6F, "Keyboard F20" },
364 { 0x70, "Keyboard F21" },
365 { 0x71, "Keyboard F22" },
366 { 0x72, "Keyboard F23" },
367 { 0x73, "Keyboard F24" },
368 { 0x74, "Keyboard Execute" },
369 { 0x75, "Keyboard Help" },
370 { 0x76, "Keyboard Menu" },
371 { 0x77, "Keyboard Select" },
372 { 0x78, "Keyboard Stop" },
373 { 0x79, "Keyboard Again" },
374 { 0x7A, "Keyboard Undo" },
375 { 0x7B, "Keyboard Cut" },
376 { 0x7C, "Keyboard Copy" },
377 { 0x7D, "Keyboard Paste" },
378 { 0x7E, "Keyboard Find" },
379 { 0x7F, "Keyboard Mute" },
380 { 0x80, "Keyboard Volume Up" },
381 { 0x81, "Keyboard Volume Down" },
382 { 0x82, "Keyboard Locking Caps Lock" },
383 { 0x83, "Keyboard Locking Num Lock" },
384 { 0x84, "Keyboard Locking Scroll Lock" },
385 { 0x85, "Keypad Comma" },
386 { 0x86, "Keypad Equal Sign" },
387 { 0x87, "Keyboard International1" },
388 { 0x88, "Keyboard International2" },
389 { 0x89, "Keyboard International3" },
390 { 0x8A, "Keyboard International4" },
391 { 0x8B, "Keyboard International5" },
392 { 0x8C, "Keyboard International6" },
393 { 0x8D, "Keyboard International7" },
394 { 0x8E, "Keyboard International8" },
395 { 0x8F, "Keyboard International9" },
396 { 0x90, "Keyboard Lang1" },
397 { 0x91, "Keyboard Lang2" },
398 { 0x92, "Keyboard Lang3" },
399 { 0x93, "Keyboard Lang4" },
400 { 0x94, "Keyboard Lang5" },
401 { 0x95, "Keyboard Lang6" },
402 { 0x96, "Keyboard Lang7" },
403 { 0x97, "Keyboard Lang8" },
404 { 0x98, "Keyboard Lang9 " },
405 { 0x99, "Keyboard Alternate Erase" },
406 { 0x9A, "Keyboard SysReq/Attention" },
407 { 0x9B, "Keyboard Cancel" },
408 { 0x9C, "Keyboard Clear" },
409 { 0x9D, "Keyboard Prior" },
410 { 0x9E, "Keyboard Return" },
411 { 0x9F, "Keyboard Separator" },
412 { 0xA0, "Keyboard Out" },
413 { 0xA1, "Keyboard Oper" },
414 { 0xA2, "Keyboard Clear/Again" },
415 { 0xA3, "Keyboard CrSel/Props" },
416 { 0xA4, "Keyboard ExSel" },
417 { 0xB0, "Keypad 00" },
418 { 0xB1, "Keypad 000" },
419 { 0xB2, "Thousands Separator" },
420 { 0xB3, "Decimal Separator" },
421 { 0xB4, "Currency Unit" },
422 { 0xB5, "Currency Sub-unit" },
423 { 0xB6, "Keypad (" },
424 { 0xB7, "Keypad )" },
425 { 0xB8, "Keypad {" },
426 { 0xB9, "Keypad }" },
427 { 0xBA, "Keypad Tab" },
428 { 0xBB, "Keypad Backspace" },
429 { 0xBC, "Keypad A" },
430 { 0xBD, "Keypad B" },
431 { 0xBE, "Keypad C" },
432 { 0xBF, "Keypad D" },
433 { 0xC0, "Keypad E" },
434 { 0xC1, "Keypad F" },
435 { 0xC2, "Keypad XOR" },
436 { 0xC3, "Keypad ^" },
437 { 0xC4, "Keypad %" },
438 { 0xC5, "Keypad <" },
439 { 0xC6, "Keypad >" },
440 { 0xC7, "Keypad &" },
441 { 0xC8, "Keypad &&" },
442 { 0xC9, "Keypad |" },
443 { 0xCA, "Keypad ||" },
444 { 0xCB, "Keypad :" },
445 { 0xCC, "Keypad #" },
446 { 0xCD, "Keypad Space" },
447 { 0xCE, "Keypad @" },
448 { 0xCF, "Keypad !" },
449 { 0xD0, "Keypad Memory Store" },
450 { 0xD1, "Keypad Memory Recall" },
451 { 0xD2, "Keypad Memory Clear" },
452 { 0xD3, "Keypad Memory Add" },
453 { 0xD4, "Keypad Memory Subtract" },
454 { 0xD5, "Keypad Memory Multiply" },
455 { 0xD6, "Keypad Memory Divide" },
456 { 0xD7, "Keypad +/-" },
457 { 0xD8, "Keypad Clear" },
458 { 0xD9, "Keypad Clear Entry" },
459 { 0xDA, "Keypad Binary" },
460 { 0xDB, "Keypad Octal" },
461 { 0xDC, "Keypad Decimal" },
462 { 0xDD, "Keypad Hexadecimal" },
463 { 0xE0, "Keyboard Left Control" },
464 { 0xE1, "Keyboard Left Shift" },
465 { 0xE2, "Keyboard Left Alt" },
466 { 0xE3, "Keyboard Left GUI" },
467 { 0xE4, "Keyboard Right Control" },
468 { 0xE5, "Keyboard Right Shift" },
469 { 0xE6, "Keyboard Right Alt" },
470 { 0xE7, "Keyboard Right GUI" },
471 { 0x00, NULL }
473 /* \\\ */
475 /* /// "LEDs" */
476 const struct HidUsageIDMap hidusage08[] =
478 { 0x01, "Num Lock" },
479 { 0x02, "Caps Lock" },
480 { 0x03, "Scroll Lock" },
481 { 0x04, "Compose" },
482 { 0x05, "Kana" },
483 { 0x06, "Power" },
484 { 0x07, "Shift" },
485 { 0x08, "Do Not Disturb" },
486 { 0x09, "Mute" },
487 { 0x0A, "Tone Enable" },
488 { 0x0B, "High Cut Filter" },
489 { 0x0C, "Low Cut Filter" },
490 { 0x0D, "Equalizer Enable" },
491 { 0x0E, "Sound Field On" },
492 { 0x0F, "Surround On" },
493 { 0x10, "Repeat" },
494 { 0x11, "Stereo" },
495 { 0x12, "Sampling Rate Detect" },
496 { 0x13, "Spinning" },
497 { 0x14, "CAV" },
498 { 0x15, "CLV" },
499 { 0x16, "Recording Format Detect" },
500 { 0x17, "Off-Hook" },
501 { 0x18, "Ring" },
502 { 0x19, "Message Waiting" },
503 { 0x1A, "Data Mode" },
504 { 0x1B, "Battery Operation" },
505 { 0x1C, "Battery OK" },
506 { 0x1D, "Battery Low" },
507 { 0x1E, "Speaker" },
508 { 0x1F, "Head Set" },
509 { 0x20, "Hold" },
510 { 0x21, "Microphone" },
511 { 0x22, "Coverage" },
512 { 0x23, "Night Mode" },
513 { 0x24, "Send Calls" },
514 { 0x25, "Call Pickup" },
515 { 0x26, "Conference" },
516 { 0x27, "Stand-by" },
517 { 0x28, "Camera On" },
518 { 0x29, "Camera Off" },
519 { 0x2A, "On-Line" },
520 { 0x2B, "Off-Line" },
521 { 0x2C, "Busy" },
522 { 0x2D, "Ready" },
523 { 0x2E, "Paper-Out" },
524 { 0x2F, "Paper-Jam" },
525 { 0x30, "Remote" },
526 { 0x31, "Forward" },
527 { 0x32, "Reverse" },
528 { 0x33, "Stop" },
529 { 0x34, "Rewind" },
530 { 0x35, "Fast Forward" },
531 { 0x36, "Play" },
532 { 0x37, "Pause" },
533 { 0x38, "Record" },
534 { 0x39, "Error" },
535 { 0x3A, "Usage Selected Indicator" },
536 { 0x3B, "Usage In Use Indicator" },
537 { 0x3C, "Usage Multi Mode Indicator" },
538 { 0x3D, "Indicator On" },
539 { 0x3E, "Indicator Flash" },
540 { 0x3F, "Indicator Slow Blink" },
541 { 0x40, "Indicator Fast Blink" },
542 { 0x41, "Indicator Off" },
543 { 0x42, "Flash On Time" },
544 { 0x43, "Slow Blink On Time" },
545 { 0x44, "Slow Blink Off Time" },
546 { 0x45, "Fast Blink On Time" },
547 { 0x46, "Fast Blink Off Time" },
548 { 0x47, "Usage Indicator Color" },
549 { 0x48, "Indicator Red" },
550 { 0x49, "Indicator Green" },
551 { 0x4A, "Indicator Amber" },
552 { 0x4B, "Generic Indicator" },
553 { 0x4C, "System Suspend" },
554 { 0x4D, "External Power Connected" },
555 { 0x00, NULL }
557 /* \\\ */
559 /* /// "Button" */
560 const struct HidUsageIDMap hidusage09[] =
562 { 0x01, "Button 1 (primary/trigger)" },
563 { 0x02, "Button 2 (secondary)" },
564 { 0x03, "Button 3 (tertiary)" },
565 { 0x04, "Button 4" },
566 { 0x05, "Button 5" },
567 { 0x06, "Button 6" },
568 { 0x07, "Button 7" },
569 { 0x08, "Button 8" },
570 { 0x09, "Button 9" },
571 { 0x0a, "Button 10" },
572 { 0x0b, "Button 11" },
573 { 0x0c, "Button 12" },
574 { 0x0d, "Button 13" },
575 { 0x0e, "Button 14" },
576 { 0x0f, "Button 15" },
577 { 0x10, "Button 16" },
578 { 0x00, NULL }
580 /* \\\ */
582 /* /// "Ordinal" */
583 const struct HidUsageIDMap hidusage0a[] =
585 { 0x01, "Instance 1" },
586 { 0x02, "Instance 2" },
587 { 0x03, "Instance 3" },
588 { 0x04, "Instance 4" },
589 { 0x05, "Instance 5" },
590 { 0x06, "Instance 6" },
591 { 0x07, "Instance 7" },
592 { 0x08, "Instance 8" },
593 { 0x09, "Instance 9" },
594 { 0x0a, "Instance 10" },
595 { 0x0b, "Instance 11" },
596 { 0x0c, "Instance 12" },
597 { 0x0d, "Instance 13" },
598 { 0x0e, "Instance 14" },
599 { 0x0f, "Instance 15" },
600 { 0x10, "Instance 16" },
601 { 0x00, NULL }
603 /* \\\ */
605 /* /// "Telephony" */
606 const struct HidUsageIDMap hidusage0b[] =
608 { 0x01, "Phone" },
609 { 0x02, "Answering Machine" },
610 { 0x03, "Message Controls" },
611 { 0x04, "Handset" },
612 { 0x05, "Headset" },
613 { 0x06, "Telephony Key Pad" },
614 { 0x07, "Programmable Button" },
615 { 0x20, "Hook Switch" },
616 { 0x21, "Flash" },
617 { 0x22, "Feature" },
618 { 0x23, "Hold" },
619 { 0x24, "Redial" },
620 { 0x25, "Transfer" },
621 { 0x26, "Drop" },
622 { 0x27, "Park" },
623 { 0x28, "Forward Calls" },
624 { 0x29, "Alternate Function" },
625 { 0x2A, "Line" },
626 { 0x2B, "Speaker Phone" },
627 { 0x2C, "Conference" },
628 { 0x2D, "Ring Enable" },
629 { 0x2E, "Ring Select" },
630 { 0x2F, "Phone Mute" },
631 { 0x30, "Caller ID" },
632 { 0x31, "Send" },
633 { 0x50, "Speed Dial" },
634 { 0x51, "Store Number" },
635 { 0x52, "Recall Number" },
636 { 0x53, "Phone Directory" },
637 { 0x70, "Voice Mail" },
638 { 0x71, "Screen Calls" },
639 { 0x72, "Do Not Disturb" },
640 { 0x73, "Message" },
641 { 0x74, "Answer On/Off" },
642 { 0x90, "Inside Dial Tone" },
643 { 0x91, "Outside Dial Tone" },
644 { 0x92, "Inside Ring Tone" },
645 { 0x93, "Outside Ring Tone" },
646 { 0x94, "Priority Ring Tone" },
647 { 0x95, "Inside Ringback" },
648 { 0x96, "Priority Ringback" },
649 { 0x97, "Line Busy Tone" },
650 { 0x98, "Reorder Tone" },
651 { 0x99, "Call Waiting Tone" },
652 { 0x9A, "Confirmation Tone 1" },
653 { 0x9B, "Confirmation Tone 2" },
654 { 0x9C, "Tones Off" },
655 { 0x9D, "Outside Ringback" },
656 { 0x9E, "Ringer" },
657 { 0xB0, "Phone Key 0" },
658 { 0xB1, "Phone Key 1" },
659 { 0xB2, "Phone Key 2" },
660 { 0xB3, "Phone Key 3" },
661 { 0xB4, "Phone Key 4" },
662 { 0xB5, "Phone Key 5" },
663 { 0xB6, "Phone Key 6" },
664 { 0xB7, "Phone Key 7" },
665 { 0xB8, "Phone Key 8" },
666 { 0xB9, "Phone Key 9" },
667 { 0xBA, "Phone Key Star" },
668 { 0xBB, "Phone Key Pound" },
669 { 0xBC, "Phone Key A" },
670 { 0xBD, "Phone Key B" },
671 { 0xBE, "Phone Key C" },
672 { 0xBF, "Phone Key D" },
673 { 0x00, NULL }
675 /* \\\ */
677 /* /// "Consumer" */
678 const struct HidUsageIDMap hidusage0c[] =
680 { 0x01, "Consumer Control" },
681 { 0x02, "Numeric Key Pad" },
682 { 0x03, "Programmable Buttons" },
683 { 0x04, "Microphone" },
684 { 0x05, "Headphone" },
685 { 0x06, "Graphic Equalizer" },
686 { 0x20, "+10" },
687 { 0x21, "+100" },
688 { 0x22, "AM/PM" },
689 { 0x30, "Power" },
690 { 0x31, "Reset" },
691 { 0x32, "Sleep" },
692 { 0x33, "Sleep After" },
693 { 0x34, "Sleep Mode" },
694 { 0x35, "Illumination" },
695 { 0x36, "Function Buttons" },
696 { 0x40, "Menu" },
697 { 0x41, "Menu Pick" },
698 { 0x42, "Menu Up" },
699 { 0x43, "Menu Down" },
700 { 0x44, "Menu Left" },
701 { 0x45, "Menu Right" },
702 { 0x46, "Menu Escape" },
703 { 0x47, "Menu Value Increase" },
704 { 0x48, "Menu Value Decrease" },
705 { 0x60, "Data On Screen" },
706 { 0x61, "Closed Caption" },
707 { 0x62, "Closed Caption Select" },
708 { 0x63, "VCR/TV" },
709 { 0x64, "Broadcast Mode" },
710 { 0x65, "Snapshot" },
711 { 0x66, "Still" },
712 { 0x80, "Selection" },
713 { 0x81, "Assign Selection" },
714 { 0x82, "Mode Step" },
715 { 0x83, "Recall Last" },
716 { 0x84, "Enter Channel" },
717 { 0x85, "Order Movie" },
718 { 0x86, "Channel" },
719 { 0x87, "Media Selection" },
720 { 0x88, "Media Select Computer" },
721 { 0x89, "Media Select TV" },
722 { 0x8A, "Media Select WWW" },
723 { 0x8B, "Media Select DVD" },
724 { 0x8C, "Media Select Telephone" },
725 { 0x8D, "Media Select Program Guide" },
726 { 0x8E, "Media Select Video Phone" },
727 { 0x8F, "Media Select Games" },
728 { 0x90, "Media Select Messages" },
729 { 0x91, "Media Select CD" },
730 { 0x92, "Media Select VCR" },
731 { 0x93, "Media Select Tuner" },
732 { 0x94, "Quit" },
733 { 0x95, "Help" },
734 { 0x96, "Media Select Tape" },
735 { 0x97, "Media Select Cable" },
736 { 0x98, "Media Select Satellite" },
737 { 0x99, "Media Select Security" },
738 { 0x9A, "Media Select Home" },
739 { 0x9B, "Media Select Call" },
740 { 0x9C, "Channel Increment" },
741 { 0x9D, "Channel Decrement" },
742 { 0x9E, "Media Select SAP" },
743 { 0xA0, "VCR Plus" },
744 { 0xA1, "Once" },
745 { 0xA2, "Daily" },
746 { 0xA3, "Weekly" },
747 { 0xA4, "Monthly" },
748 { 0xB0, "Play" },
749 { 0xB1, "Pause" },
750 { 0xB2, "Record" },
751 { 0xB3, "Fast Forward" },
752 { 0xB4, "Rewind" },
753 { 0xB5, "Scan Next Track" },
754 { 0xB6, "Scan Previous Track" },
755 { 0xB7, "Stop" },
756 { 0xB8, "Eject" },
757 { 0xB9, "Random Play" },
758 { 0xBA, "Select Disc" },
759 { 0xBB, "Enter Disc" },
760 { 0xBC, "Repeat" },
761 { 0xBD, "Tracking" },
762 { 0xBE, "Track Normal" },
763 { 0xBF, "Slow Tracking" },
764 { 0xC0, "Frame Forward" },
765 { 0xC1, "Frame Back" },
766 { 0xC2, "Mark" },
767 { 0xC3, "Clear Mark" },
768 { 0xC4, "Repeat From Mark" },
769 { 0xC5, "Return To Mark" },
770 { 0xC6, "Search Mark Forward" },
771 { 0xC7, "Search Mark Backwards" },
772 { 0xC8, "Counter Reset" },
773 { 0xC9, "Show Counter" },
774 { 0xCA, "Tracking Increment" },
775 { 0xCB, "Tracking Decrement" },
776 { 0xCC, "Stop/Eject" },
777 { 0xCD, "Play/Pause" },
778 { 0xCE, "Play/Skip" },
779 { 0xE0, "Volume" },
780 { 0xE1, "Balance" },
781 { 0xE2, "Mute" },
782 { 0xE3, "Bass" },
783 { 0xE4, "Treble" },
784 { 0xE5, "Bass Boost" },
785 { 0xE6, "Surround Mode" },
786 { 0xE7, "Loudness" },
787 { 0xE8, "MPX" },
788 { 0xE9, "Volume Increment" },
789 { 0xEA, "Volume Decrement" },
790 { 0xF0, "Speed Select" },
791 { 0xF1, "Playback Speed" },
792 { 0xF2, "Standard Play" },
793 { 0xF3, "Long Play" },
794 { 0xF4, "Extended Play" },
795 { 0xF5, "Slow" },
797 { 0x100, "Fan Enable" },
798 { 0x101, "Fan Speed" },
799 { 0x102, "Light Enable" },
800 { 0x103, "Light Illumination Level" },
801 { 0x104, "Climate Control Enable" },
802 { 0x105, "Room Temperature" },
803 { 0x106, "Security Enable" },
804 { 0x107, "Fire Alarm" },
805 { 0x108, "Police Alarm" },
806 { 0x109, "Proximity" },
807 { 0x10A, "Motion" },
808 { 0x10B, "Duress Alarm" },
809 { 0x10C, "Holdup Alarm" },
810 { 0x10D, "Medical Alarm" },
811 { 0x150, "Balance Right" },
812 { 0x151, "Balance Left" },
813 { 0x152, "Bass Increment" },
814 { 0x153, "Bass Decrement" },
815 { 0x154, "Treble Increment" },
816 { 0x155, "Treble Decrement" },
817 { 0x160, "Speaker System" },
818 { 0x161, "Channel Left" },
819 { 0x162, "Channel Right" },
820 { 0x163, "Channel Center" },
821 { 0x164, "Channel Front" },
822 { 0x165, "Channel Center Front" },
823 { 0x166, "Channel Side" },
824 { 0x167, "Channel Surround" },
825 { 0x168, "Channel Low Frequency Enhancement" },
826 { 0x169, "Channel Top" },
827 { 0x16A, "Channel Unknown" },
828 { 0x170, "Sub-channel" },
829 { 0x171, "Sub-channel Increment" },
830 { 0x172, "Sub-channel Decrement" },
831 { 0x173, "Alternate Audio Increment" },
832 { 0x174, "Alternate Audio Decrement" },
833 { 0x180, "Application Launch Buttons" },
834 { 0x181, "AL Launch Button Configuration Tool" },
835 { 0x182, "AL Programmable Button Configuration" },
836 { 0x183, "AL Consumer Control Configuration" },
837 { 0x184, "AL Word Processor" },
838 { 0x185, "AL Text Editor" },
839 { 0x186, "AL Spreadsheet" },
840 { 0x187, "AL Graphics Editor" },
841 { 0x188, "AL Presentation App" },
842 { 0x189, "AL Database App" },
843 { 0x18A, "AL Email Reader" },
844 { 0x18B, "AL Newsreader" },
845 { 0x18C, "AL Voicemail" },
846 { 0x18D, "AL Contacts/Address Book" },
847 { 0x18E, "AL Calendar/Schedule" },
848 { 0x18F, "AL Task/Project Manager" },
849 { 0x190, "AL Log/Journal/Timecard" },
850 { 0x191, "AL Checkbook/Finance" },
851 { 0x192, "AL Calculator" },
852 { 0x193, "AL A/V Capture/Playback" },
853 { 0x194, "AL Local Machine Browser" },
854 { 0x195, "AL LAN/WAN Browser" },
855 { 0x196, "AL Internet Browser" },
856 { 0x197, "AL Remote Networking/ISP Connect" },
857 { 0x198, "AL Network Conference" },
858 { 0x199, "AL Network Chat" },
859 { 0x19A, "AL Telephony/Dialer" },
860 { 0x19B, "AL Logon" },
861 { 0x19C, "AL Logoff" },
862 { 0x19D, "AL Logon/Logoff" },
863 { 0x19E, "AL Terminal Lock/Screensaver" },
864 { 0x19F, "AL Control Panel" },
865 { 0x1A0, "AL Command Line Processor/Run" },
866 { 0x1A1, "AL Process/Task Manager" },
867 { 0x1A2, "AL Select Task/Application" },
868 { 0x1A3, "AL Next Task/Application" },
869 { 0x1A4, "AL Previous Task/Application" },
870 { 0x1A5, "AL Preemptive Halt Task/Application" },
871 { 0x1A6, "AL Integrated Help Center" },
872 { 0x1A7, "AL Documents" },
873 { 0x1A8, "AL Thesaurus" },
874 { 0x1A9, "AL Dictionary" },
875 { 0x1AA, "AL Desktop" },
876 { 0x1AB, "AL Spell Check" },
877 { 0x1AC, "AL Grammar Check" },
878 { 0x1AD, "AL Wireless Status" },
879 { 0x1AE, "AL Keyboard Layout" },
880 { 0x1AF, "AL Virus Protection" },
881 { 0x1B0, "AL Encryption" },
882 { 0x1B1, "AL Screen Saver" },
883 { 0x1B2, "AL Alarms" },
884 { 0x1B3, "AL Clock" },
885 { 0x1B4, "AL File Browser" },
886 { 0x1B5, "AL Power Status" },
887 { 0x1B6, "AL Image Browser" },
888 { 0x1B7, "AL Audio Browser" },
889 { 0x1B8, "AL Movie Browser" },
890 { 0x1B9, "AL Digital Rights Manager" },
891 { 0x1BA, "AL Digital Wallet" },
892 { 0x1BC, "AL Instant Messaging" },
893 { 0x1BD, "AL OEM Features/ Tips/Tutorial Browser" },
894 { 0x1BE, "AL OEM Help" },
895 { 0x1BF, "AL Online Community" },
896 { 0x1C0, "AL Entertainment Content Browser" },
897 { 0x1C1, "AL Online Shopping Browser" },
898 { 0x1C2, "AL SmartCard Information/Help" },
899 { 0x1C3, "AL Market Monitor/Finance Browser" },
900 { 0x1C4, "AL Customized Corporate News Browser" },
901 { 0x1C5, "AL Online Activity Browser" },
902 { 0x1C6, "AL Research/Search Browser" },
903 { 0x1C7, "AL Audio Player" },
905 { 0x200, "Generic GUI Application Controls" },
906 { 0x201, "AC New" },
907 { 0x202, "AC Open" },
908 { 0x203, "AC Close" },
909 { 0x204, "AC Exit" },
910 { 0x205, "AC Maximize" },
911 { 0x206, "AC Minimize" },
912 { 0x207, "AC Save" },
913 { 0x208, "AC Print" },
914 { 0x209, "AC Properties" },
915 { 0x21A, "AC Undo" },
916 { 0x21B, "AC Copy" },
917 { 0x21C, "AC Cut" },
918 { 0x21D, "AC Paste" },
919 { 0x21E, "AC Select All" },
920 { 0x21F, "AC Find" },
921 { 0x220, "AC Find and Replace" },
922 { 0x221, "AC Search" },
923 { 0x222, "AC Go To" },
924 { 0x223, "AC Home" },
925 { 0x224, "AC Back" },
926 { 0x225, "AC Forward" },
927 { 0x226, "AC Stop" },
928 { 0x227, "AC Refresh" },
929 { 0x228, "AC Previous Link" },
930 { 0x229, "AC Next Link" },
931 { 0x22A, "AC Bookmarks" },
932 { 0x22B, "AC History" },
933 { 0x22C, "AC Subscriptions" },
934 { 0x22D, "AC Zoom In" },
935 { 0x22E, "AC Zoom Out" },
936 { 0x22F, "AC Zoom" },
937 { 0x230, "AC Full Screen View" },
938 { 0x231, "AC Normal View" },
939 { 0x232, "AC View Toggle" },
940 { 0x233, "AC Scroll Up" },
941 { 0x234, "AC Scroll Down" },
942 { 0x235, "AC Scroll" },
943 { 0x236, "AC Pan Left" },
944 { 0x237, "AC Pan Right" },
945 { 0x238, "AC Pan" },
946 { 0x239, "AC New Window" },
947 { 0x23A, "AC Tile Horizontally" },
948 { 0x23B, "AC Tile Vertically" },
949 { 0x23C, "AC Format" },
950 { 0x23D, "AC Edit" },
951 { 0x23E, "AC Bold" },
952 { 0x23F, "AC Italics" },
953 { 0x240, "AC Underline" },
954 { 0x241, "AC Strikethrough" },
955 { 0x242, "AC Subscript" },
956 { 0x243, "AC Superscript" },
957 { 0x244, "AC All Caps" },
958 { 0x245, "AC Rotate" },
959 { 0x246, "AC Resize" },
960 { 0x247, "AC Flip Horizontal" },
961 { 0x248, "AC Flip Vertical " },
962 { 0x249, "AC Mirror Horizontal" },
963 { 0x24A, "AC Mirror Vertical" },
964 { 0x24B, "AC Font Select" },
965 { 0x24C, "AC Font Color" },
966 { 0x24D, "AC Font Size" },
967 { 0x24E, "AC Justify Left" },
968 { 0x24F, "AC Justify Center H" },
969 { 0x250, "AC Justify Right" },
970 { 0x251, "AC Justify Block H" },
971 { 0x252, "AC Justify Top" },
972 { 0x253, "AC Justify Center V" },
973 { 0x254, "AC Justify Bottom" },
974 { 0x255, "AC Justify Block V" },
975 { 0x256, "AC Indent Decrease" },
976 { 0x257, "AC Indent Increase" },
977 { 0x258, "AC Numbered List" },
978 { 0x259, "AC Restart Numbering" },
979 { 0x25A, "AC Bulleted List" },
980 { 0x25B, "AC Promote" },
981 { 0x25C, "AC Demote" },
982 { 0x25D, "AC Yes" },
983 { 0x25E, "AC No" },
984 { 0x25F, "AC Cancel" },
985 { 0x260, "AC Catalog" },
986 { 0x261, "AC Buy/Checkout" },
987 { 0x262, "AC Add to Cart" },
988 { 0x263, "AC Expand" },
989 { 0x264, "AC Expand All" },
990 { 0x265, "AC Collapse" },
991 { 0x266, "AC Collapse All" },
992 { 0x267, "AC Print Preview" },
993 { 0x268, "AC Paste Special" },
994 { 0x269, "AC Insert Mode" },
995 { 0x26A, "AC Delete" },
996 { 0x26B, "AC Lock" },
997 { 0x26C, "AC Unlock" },
998 { 0x26D, "AC Protect" },
999 { 0x26E, "AC Unprotect" },
1000 { 0x26F, "AC Attach Comment" },
1001 { 0x270, "AC Delete Comment" },
1002 { 0x271, "AC View Comment" },
1003 { 0x272, "AC Select Word" },
1004 { 0x273, "AC Select Sentence" },
1005 { 0x274, "AC Select Paragraph" },
1006 { 0x275, "AC Select Column" },
1007 { 0x276, "AC Select Row" },
1008 { 0x277, "AC Select Table" },
1009 { 0x278, "AC Select Object" },
1010 { 0x279, "AC Redo/Repeat" },
1011 { 0x27A, "AC Sort" },
1012 { 0x27B, "AC Sort Ascending" },
1013 { 0x27C, "AC Sort Descending" },
1014 { 0x27D, "AC Filter" },
1015 { 0x27E, "AC Set Clock" },
1016 { 0x27F, "AC View Clock" },
1017 { 0x280, "AC Select Time Zone" },
1018 { 0x281, "AC Edit Time Zones" },
1019 { 0x282, "AC Set Alarm" },
1020 { 0x283, "AC Clear Alarm" },
1021 { 0x284, "AC Snooze Alarm" },
1022 { 0x285, "AC Reset Alarm" },
1023 { 0x286, "AC Synchronize" },
1024 { 0x287, "AC Send/Receive" },
1025 { 0x288, "AC Send To" },
1026 { 0x289, "AC Reply" },
1027 { 0x28A, "AC Reply All" },
1028 { 0x28B, "AC Forward Msg" },
1029 { 0x28C, "AC Send" },
1030 { 0x28D, "AC Attach File" },
1031 { 0x28E, "AC Upload" },
1032 { 0x28F, "AC Download (Save Target As)" },
1033 { 0x290, "AC Set Borders" },
1034 { 0x291, "AC Insert Row" },
1035 { 0x292, "AC Insert Column" },
1036 { 0x293, "AC Insert File" },
1037 { 0x294, "AC Insert Picture" },
1038 { 0x295, "AC Insert Object" },
1039 { 0x296, "AC Insert Symbol" },
1040 { 0x297, "AC Save and Close" },
1041 { 0x298, "AC Rename" },
1042 { 0x299, "AC Merge" },
1043 { 0x29A, "AC Split" },
1044 { 0x29B, "AC Distribute Horizontally" },
1045 { 0x29C, "AC Distribute Vertically" },
1046 { 0x00, NULL }
1048 /* \\\ */
1050 /* /// "Digitizer" */
1051 const struct HidUsageIDMap hidusage0d[] =
1053 { 0x01, "Digitizer" },
1054 { 0x02, "Pen" },
1055 { 0x03, "Light Pen" },
1056 { 0x04, "Touch Screen" },
1057 { 0x05, "Touch Pad" },
1058 { 0x06, "White Board" },
1059 { 0x07, "Coordinate Measuring Machine" },
1060 { 0x08, "3D Digitizer" },
1061 { 0x09, "Stereo Plotter" },
1062 { 0x0A, "Articulated Arm" },
1063 { 0x0B, "Armature" },
1064 { 0x0C, "Multiple Point Digitizer" },
1065 { 0x0D, "Free Space Wand" },
1066 { 0x20, "Stylus" },
1067 { 0x21, "Puck" },
1068 { 0x22, "Finger" },
1069 { 0x30, "Tip Pressure" },
1070 { 0x31, "Barrel Pressure" },
1071 { 0x32, "In Range" },
1072 { 0x33, "Touch" },
1073 { 0x34, "Untouch" },
1074 { 0x35, "Tap" },
1075 { 0x36, "Quality" },
1076 { 0x37, "Data Valid" },
1077 { 0x38, "Transducer Index" },
1078 { 0x39, "Tablet Function Keys" },
1079 { 0x3A, "Program Change Keys" },
1080 { 0x3B, "Battery Strength" },
1081 { 0x3C, "Invert" },
1082 { 0x3D, "X Tilt" },
1083 { 0x3E, "Y Tilt" },
1084 { 0x3F, "Azimuth" },
1085 { 0x40, "Altitude" },
1086 { 0x41, "Twist" },
1087 { 0x42, "Tip Switch" },
1088 { 0x43, "Secondary Tip Switch" },
1089 { 0x44, "Barrel Switch" },
1090 { 0x45, "Eraser" },
1091 { 0x46, "Tablet Pick" },
1092 { 0x00, NULL }
1094 /* \\\ */
1096 /* /// "PID Page" */
1097 const struct HidUsageIDMap hidusage0f[] =
1099 { 0x01, "Physical Interface Device" },
1100 { 0x20, "Normal" },
1101 { 0x21, "Set Effect Report" },
1102 { 0x22, "Effect Block Index" },
1103 { 0x23, "Parameter Block Offset" },
1104 { 0x24, "ROM Flag" },
1105 { 0x25, "Effect Type" },
1106 { 0x26, "ET Constant Force" },
1107 { 0x27, "ET Ramp" },
1108 { 0x28, "ET Custom Force Data" },
1109 { 0x30, "ET Square" },
1110 { 0x31, "ET Sine" },
1111 { 0x32, "ET Triangle" },
1112 { 0x33, "ET Sawtooth Up" },
1113 { 0x34, "ET Sawtooth Down" },
1114 { 0x40, "ET Spring" },
1115 { 0x41, "ET Damper" },
1116 { 0x42, "ET Inertia" },
1117 { 0x43, "ET Friction" },
1118 { 0x50, "Duration" },
1119 { 0x51, "Sample Period" },
1120 { 0x52, "Gain" },
1121 { 0x53, "Trigger Button" },
1122 { 0x54, "Trigger Repeat Interval" },
1123 { 0x55, "Axes Enable" },
1124 { 0x56, "Direction Enable" },
1125 { 0x57, "Direction" },
1126 { 0x58, "Type Specific Block Offset" },
1127 { 0x59, "Block Type" },
1128 { 0x5A, "Set Envelope Report " },
1129 { 0x5B, "Attack Level" },
1130 { 0x5C, "Attack Time" },
1131 { 0x5D, "Fade Level" },
1132 { 0x5E, "Fade Time" },
1133 { 0x5F, "Set Condition Report" },
1134 { 0x60, "CP Offset" },
1135 { 0x61, "Positive Coefficient" },
1136 { 0x62, "Negative Coefficient" },
1137 { 0x63, "Positive Saturation" },
1138 { 0x64, "Negative Saturation" },
1139 { 0x65, "Dead Band" },
1140 { 0x66, "Download Force Sample" },
1141 { 0x67, "Isoch Custom Force Enable" },
1142 { 0x68, "Custom Force Data Report" },
1143 { 0x69, "Custom Force Data" },
1144 { 0x6A, "Custom Force Vendor Defined Data" },
1145 { 0x6B, "Set Custom Force Report" },
1146 { 0x6C, "Custom Force Data Offset" },
1147 { 0x6D, "Sample Count" },
1148 { 0x6E, "Set Periodic Report" },
1149 { 0x6F, "Offset" },
1150 { 0x70, "Magnitude" },
1151 { 0x71, "Phase" },
1152 { 0x72, "Period" },
1153 { 0x73, "Set Constant Force Report" },
1154 { 0x74, "Set Ramp Force Report" },
1155 { 0x75, "Ramp Start" },
1156 { 0x76, "Ramp End" },
1157 { 0x77, "Effect Operation Report" },
1158 { 0x78, "Effect Operation" },
1159 { 0x79, "Op Effect Start" },
1160 { 0x7A, "Op Effect Start Solo" },
1161 { 0x7B, "Op Effect Stop" },
1162 { 0x7C, "Loop Count" },
1163 { 0x7D, "Device Gain Report" },
1164 { 0x7E, "Device Gain" },
1165 { 0x7F, "PID Pool Report" },
1166 { 0x80, "RAM Pool Size" },
1167 { 0x81, "ROM Pool Size" },
1168 { 0x82, "ROM Effect Block Count" },
1169 { 0x83, "Simultaneous Effects Max" },
1170 { 0x84, "Pool Alignment" },
1171 { 0x85, "PID Pool Move Report" },
1172 { 0x86, "Move Source" },
1173 { 0x87, "Move Destination" },
1174 { 0x88, "Move Length" },
1175 { 0x89, "PID Block Load Report" },
1176 { 0x8B, "Block Load Status" },
1177 { 0x8C, "Block Load Success" },
1178 { 0x8D, "Block Load Full" },
1179 { 0x8E, "Block Load Error" },
1180 { 0x8F, "Block Handle" },
1181 { 0x90, "PID Block Free Report" },
1182 { 0x91, "Type Specific Block Handle" },
1183 { 0x92, "PID State Report" },
1184 { 0x94, "Effect Playing" },
1185 { 0x95, "PID Device Control Report" },
1186 { 0x96, "PID Device Control" },
1187 { 0x97, "DC Enable Actuators" },
1188 { 0x98, "DC Disable Actuators" },
1189 { 0x99, "DC Stop All Effects" },
1190 { 0x9A, "DC Device Reset" },
1191 { 0x9B, "DC Device Pause" },
1192 { 0x9C, "DC Device Continue" },
1193 { 0x9F, "Device Paused" },
1194 { 0xA0, "Actuators Enabled" },
1195 { 0xA4, "Safety Switch" },
1196 { 0xA5, "Actuator Override Switch" },
1197 { 0xA6, "Actuator Power" },
1198 { 0xA7, "Start Delay" },
1199 { 0xA8, "Parameter Block Size" },
1200 { 0xA9, "Device Managed Pool" },
1201 { 0xAA, "Shared Parameter Blocks" },
1202 { 0xAB, "Create New Effect Report" },
1203 { 0xAC, "RAM Pool Available" },
1204 { 0x00, NULL }
1206 /* \\\ */
1208 /* /// "Alphanumeric Display" */
1209 const struct HidUsageIDMap hidusage14[] =
1211 { 0x01, "Alphanumeric Display" },
1212 { 0x02, "Bitmapped Display" },
1213 { 0x20, "Display Attributes Report" },
1214 { 0x21, "ASCII Character Set" },
1215 { 0x22, "Data Read Back" },
1216 { 0x23, "Font Read Back" },
1217 { 0x24, "Display Control Report" },
1218 { 0x25, "Clear Display" },
1219 { 0x26, "Display Enable" },
1220 { 0x27, "Screen Saver Delay" },
1221 { 0x28, "Screen Saver Enable" },
1222 { 0x29, "Vertical Scroll" },
1223 { 0x2A, "Horizontal Scroll" },
1224 { 0x2B, "Character Report" },
1225 { 0x2C, "Display Data" },
1226 { 0x2D, "Display Status" },
1227 { 0x2E, "Stat Not Ready" },
1228 { 0x2F, "Stat Ready" },
1229 { 0x30, "Err Not a loadable character" },
1230 { 0x31, "Err Font data cannot be read" },
1231 { 0x32, "Cursor Position Report" },
1232 { 0x33, "Row" },
1233 { 0x34, "Column" },
1234 { 0x35, "Rows" },
1235 { 0x36, "Columns" },
1236 { 0x37, "Cursor Pixel Positioning" },
1237 { 0x38, "Cursor Mode" },
1238 { 0x39, "Cursor Enable" },
1239 { 0x3A, "Cursor Blink" },
1240 { 0x3B, "Font Report" },
1241 { 0x3C, "Font Data" },
1242 { 0x3D, "Character Width" },
1243 { 0x3E, "Character Height" },
1244 { 0x3F, "Character Spacing Horizontal" },
1245 { 0x40, "Character Spacing Vertical" },
1246 { 0x41, "Unicode Character Set" },
1247 { 0x42, "Font 7-Segment" },
1248 { 0x43, "7-Segment Direct Map" },
1249 { 0x44, "Font 14-Segment" },
1250 { 0x45, "14-Segment Direct Map" },
1251 { 0x46, "Display Brightness" },
1252 { 0x47, "Display Contrast" },
1253 { 0x48, "Character Attribute" },
1254 { 0x49, "Attribute Readback" },
1255 { 0x4A, "Attribute Data" },
1256 { 0x4B, "Char Attr Enhance" },
1257 { 0x4C, "Char Attr Underline" },
1258 { 0x4D, "Char Attr Blink" },
1259 { 0x80, "Bitmap Size X" },
1260 { 0x81, "Bitmap Size Y" },
1261 { 0x83, "Bit Depth Format" },
1262 { 0x84, "Display Orientation" },
1263 { 0x85, "Palette Report" },
1264 { 0x86, "Palette Data Size" },
1265 { 0x87, "Palette Data Offset" },
1266 { 0x88, "Palette Data" },
1267 { 0x8A, "Blit Report" },
1268 { 0x8B, "Blit Rectangle X1" },
1269 { 0x8C, "Blit Rectangle Y1" },
1270 { 0x8D, "Blit Rectangle X2" },
1271 { 0x8E, "Blit Rectangle Y2" },
1272 { 0x8F, "Blit Data" },
1273 { 0x90, "Soft Button" },
1274 { 0x91, "Soft Button ID" },
1275 { 0x92, "Soft Button Side" },
1276 { 0x93, "Soft Button Offset 1" },
1277 { 0x94, "Soft Button Offset 2" },
1278 { 0x95, "Soft Button Report" },
1279 { 0x00, NULL }
1281 /* \\\ */
1283 /* /// "Medical Instruments" */
1284 const struct HidUsageIDMap hidusage40[] =
1286 { 0x01, "Medical Ultrasound" },
1287 { 0x20, "VCR/Acquisition" },
1288 { 0x21, "Freeze/Thaw" },
1289 { 0x22, "Clip Store" },
1290 { 0x23, "Update" },
1291 { 0x24, "Next" },
1292 { 0x25, "Save" },
1293 { 0x26, "Print" },
1294 { 0x27, "Microphone Enable" },
1295 { 0x40, "Cine" },
1296 { 0x41, "Transmit Power" },
1297 { 0x42, "Volume" },
1298 { 0x43, "Focus" },
1299 { 0x44, "Depth" },
1300 { 0x60, "Soft Step - Primary" },
1301 { 0x61, "Soft Step - Secondary" },
1302 { 0x70, "Depth Gain Compensation" },
1303 { 0x80, "Zoom Select" },
1304 { 0x81, "Zoom Adjust" },
1305 { 0x82, "Spectral Doppler Mode Select" },
1306 { 0x83, "Spectral Doppler Adjust" },
1307 { 0x84, "Color Doppler Mode Select" },
1308 { 0x85, "Color Doppler Adjust" },
1309 { 0x86, "Motion Mode Select" },
1310 { 0x87, "Motion Mode Adjust" },
1311 { 0x88, "2-D Mode Select" },
1312 { 0x89, "2-D Mode Adjust" },
1313 { 0xA0, "Soft Control Select" },
1314 { 0xA1, "Soft Control Adjust" },
1315 { 0x00, NULL }
1317 /* \\\ */
1319 /* /// "Monitor Device Page" */
1320 const struct HidUsageIDMap hidusage80[] =
1322 { 0x01, "Monitor Control" },
1323 { 0x02, "EDID Information" },
1324 { 0x03, "VDIF Information" },
1325 { 0x04, "VESA Version" },
1326 { 0x00, NULL }
1328 /* \\\ */
1330 /* /// "VESA Virtual Controls" */
1331 const struct HidUsageIDMap hidusage82[] =
1333 { 0x01, "Degauss" },
1334 { 0x10, "Brightness" },
1335 { 0x12, "Contrast" },
1336 { 0x16, "Red Video Gain" },
1337 { 0x18, "Green Video Gain" },
1338 { 0x1A, "Blue Video Gain" },
1339 { 0x1C, "Focus" },
1340 { 0x20, "Horizontal Position" },
1341 { 0x22, "Horizontal Size" },
1342 { 0x24, "Horizontal Pincushion" },
1343 { 0x26, "Horizontal Pincushion Balance" },
1344 { 0x28, "Horizontal Misconvergence" },
1345 { 0x2A, "Horizontal Linearity" },
1346 { 0x2C, "Horizontal Linearity Balance" },
1347 { 0x30, "Vertical Position" },
1348 { 0x32, "Vertical Size" },
1349 { 0x34, "Vertical Pincushion" },
1350 { 0x36, "Vertical Pincushion Balance" },
1351 { 0x38, "Vertical Misconvergence" },
1352 { 0x3A, "Vertical Linearity" },
1353 { 0x3C, "Vertical Linearity Balance" },
1354 { 0x40, "Parallelogram Distortion (Key Balance)" },
1355 { 0x42, "Trapezoidal Distortion (Key)" },
1356 { 0x44, "Tilt (Rotation)" },
1357 { 0x46, "Top Corner Distortion Control" },
1358 { 0x48, "Top Corner Distortion Balance" },
1359 { 0x4A, "Bottom Corner Distortion Control" },
1360 { 0x4C, "Bottom Corner Distortion Balance" },
1361 { 0x56, "Horizontal Moiré" },
1362 { 0x58, "Vertical Moiré" },
1363 { 0x6C, "Red Video Black Level" },
1364 { 0x6E, "Green Video Black Level" },
1365 { 0x70, "Blue Video Black Level" },
1366 { 0x5E, "Input Level Select" },
1367 { 0x60, "Input Source Select" },
1368 { 0xA2, "Auto Size Center" },
1369 { 0xA4, "Polarity Horizontal Synchronization" },
1370 { 0xA6, "Polarity Vertical Synchronization" },
1371 { 0xA8, "Synchronization Type" },
1372 { 0xAA, "Screen Orientation" },
1373 { 0xAC, "Horizontal Frequency" },
1374 { 0xAE, "Vertical Frequency" },
1375 { 0xB0, "Settings" },
1376 { 0xCA, "On Screen Display" },
1377 { 0xD4, "StereoMode" },
1378 { 0x00, NULL }
1380 /* \\\ */
1382 /* /// "Power Device Page" */
1383 const struct HidUsageIDMap hidusage84[] =
1385 { 0x01, "iName" },
1386 { 0x02, "PresentStatus" },
1387 { 0x03, "ChangedStatus" },
1388 { 0x04, "UPS" },
1389 { 0x05, "PowerSupply" },
1390 { 0x10, "BatterySystem" },
1391 { 0x11, "BatterySystemID" },
1392 { 0x12, "Battery" },
1393 { 0x13, "BatteryID" },
1394 { 0x14, "Charger" },
1395 { 0x15, "ChargerID" },
1396 { 0x16, "PowerConverter" },
1397 { 0x17, "PowerConverterID" },
1398 { 0x18, "OutletSystem" },
1399 { 0x19, "OutletSystemID" },
1400 { 0x1A, "Input" },
1401 { 0x1B, "InputID" },
1402 { 0x1C, "Output" },
1403 { 0x1D, "OutputID" },
1404 { 0x1E, "Flow" },
1405 { 0x1F, "FlowID" },
1406 { 0x20, "Outlet" },
1407 { 0x21, "OutletID" },
1408 { 0x22, "Gang" },
1409 { 0x23, "GangID" },
1410 { 0x24, "PowerSummary" },
1411 { 0x25, "PowerSummaryID" },
1412 { 0x30, "Voltage" },
1413 { 0x31, "Current" },
1414 { 0x32, "Frequency" },
1415 { 0x33, "ApparentPower" },
1416 { 0x34, "ActivePower" },
1417 { 0x35, "PercentLoad" },
1418 { 0x36, "Temperature" },
1419 { 0x37, "Humidity" },
1420 { 0x38, "BadCount" },
1421 { 0x40, "ConfigVoltage" },
1422 { 0x41, "ConfigCurrent" },
1423 { 0x42, "ConfigFrequency" },
1424 { 0x43, "ConfigApparentPower" },
1425 { 0x44, "ConfigActivePower" },
1426 { 0x45, "ConfigPercentLoad" },
1427 { 0x46, "ConfigTemperature" },
1428 { 0x47, "ConfigHumidity" },
1429 { 0x50, "SwitchOnControl" },
1430 { 0x51, "SwitchOffControl" },
1431 { 0x52, "ToggleControl" },
1432 { 0x53, "LowVoltageTransfer" },
1433 { 0x54, "HighVoltageTransfer" },
1434 { 0x55, "DelayBeforeReboot" },
1435 { 0x56, "DelayBeforeStartup" },
1436 { 0x57, "DelayBeforeShutdown" },
1437 { 0x58, "Test" },
1438 { 0x59, "ModuleReset" },
1439 { 0x5A, "AudibleAlarmControl" },
1440 { 0x60, "Present" },
1441 { 0x61, "Good" },
1442 { 0x62, "InternalFailure" },
1443 { 0x63, "VoltageOutOfRange" },
1444 { 0x64, "FrequencyOutOfRange" },
1445 { 0x65, "Overload" },
1446 { 0x66, "OverCharged" },
1447 { 0x67, "OverTemperature" },
1448 { 0x68, "ShutdownRequested" },
1449 { 0x69, "ShutdownImminent" },
1450 { 0x6B, "SwitchOn/Off" },
1451 { 0x6C, "Switchable" },
1452 { 0x6D, "Used" },
1453 { 0x6E, "Boost" },
1454 { 0x6F, "Buck" },
1455 { 0x70, "Initialized" },
1456 { 0x71, "Tested" },
1457 { 0x72, "AwaitingPower" },
1458 { 0x73, "CommunicationLost" },
1459 { 0xFD, "iManufacturer" },
1460 { 0xFE, "iProduct" },
1461 { 0xFF, "iSerialNumber" },
1462 { 0x00, NULL }
1464 /* \\\ */
1466 /* /// "Battery System Page" */
1467 const struct HidUsageIDMap hidusage85[] =
1469 { 0x01, "SMBBatteryMode" },
1470 { 0x02, "SMBBatteryStatus" },
1471 { 0x03, "SMBAlarmWarning" },
1472 { 0x04, "SMBChargerMode" },
1473 { 0x05, "SMBChargerStatus" },
1474 { 0x06, "SMBChargerSpecInfo" },
1475 { 0x07, "SMBSelectorState" },
1476 { 0x08, "SMBSelectorPresets" },
1477 { 0x09, "SMBSelectorInfo" },
1478 { 0x10, "OptionalMfgFunction1" },
1479 { 0x11, "OptionalMfgFunction2" },
1480 { 0x12, "OptionalMfgFunction3" },
1481 { 0x13, "OptionalMfgFunction4" },
1482 { 0x14, "OptionalMfgFunction5" },
1483 { 0x15, "ConnectionToSMBus" },
1484 { 0x16, "OutputConnection" },
1485 { 0x17, "ChargerConnection" },
1486 { 0x18, "BatteryInsertion" },
1487 { 0x19, "Usenext" },
1488 { 0x1A, "OKToUse" },
1489 { 0x1B, "BatterySupported" },
1490 { 0x1C, "SelectorRevision" },
1491 { 0x1D, "ChargingIndicator" },
1492 { 0x28, "ManufacturerAccess" },
1493 { 0x29, "RemainingCapacityLimit" },
1494 { 0x2A, "RemainingTimeLimit" },
1495 { 0x2B, "AtRate" },
1496 { 0x2C, "CapacityMode" },
1497 { 0x2D, "BroadcastToCharger" },
1498 { 0x2E, "PrimaryBattery" },
1499 { 0x2F, "ChargeController" },
1500 { 0x40, "TerminateCharge" },
1501 { 0x41, "TerminateDischarge" },
1502 { 0x42, "BelowRemainingCapacityLimit" },
1503 { 0x43, "RemainingTimeLimitExpired" },
1504 { 0x44, "Charging" },
1505 { 0x45, "Discharging" },
1506 { 0x46, "FullyCharged" },
1507 { 0x47, "FullyDischarged" },
1508 { 0x48, "ConditioningFlag" },
1509 { 0x49, "AtRateOK" },
1510 { 0x4A, "SMBErrorCode" },
1511 { 0x4B, "NeedReplacement" },
1512 { 0x60, "AtRateTimeToFull" },
1513 { 0x61, "AtRateTimeToEmpty" },
1514 { 0x62, "AverageCurrent" },
1515 { 0x63, "Maxerror" },
1516 { 0x64, "RelativeStateOfCharge" },
1517 { 0x65, "AbsoluteStateOfCharge" },
1518 { 0x66, "RemainingCapacity" },
1519 { 0x67, "FullChargeCapacity" },
1520 { 0x68, "RunTimeToEmpty" },
1521 { 0x69, "AverageTimeToEmpty" },
1522 { 0x6A, "AverageTimeToFull" },
1523 { 0x6B, "CycleCount" },
1524 { 0x80, "BattPackModelLevel" },
1525 { 0x81, "InternalChargeController" },
1526 { 0x82, "PrimaryBatterySupport" },
1527 { 0x83, "DesignCapacity" },
1528 { 0x84, "SpecificationInfo" },
1529 { 0x85, "ManufacturerDate" },
1530 { 0x86, "SerialNumber" },
1531 { 0x87, "iManufacturerName" },
1532 { 0x88, "iDevicename" },
1533 { 0x89, "iDeviceChemistery" },
1534 { 0x8A, "ManufacturerData" },
1535 { 0x8B, "Rechargable" },
1536 { 0x8C, "WarningCapacityLimit" },
1537 { 0x8D, "CapacityGranularity1" },
1538 { 0x8E, "CapacityGranularity2" },
1539 { 0x8F, "iOEMInformation" },
1540 { 0xC0, "InhibitCharge" },
1541 { 0xC1, "EnablePolling" },
1542 { 0xC2, "ResetToZero" },
1543 { 0xD0, "ACPresent" },
1544 { 0xD1, "BatteryPresent" },
1545 { 0xD2, "PowerFail" },
1546 { 0xD3, "AlarmInhibited" },
1547 { 0xD4, "ThermistorUnderRange" },
1548 { 0xD5, "ThermistorHot" },
1549 { 0xD6, "ThermistorCold" },
1550 { 0xD7, "ThermistorOverRange" },
1551 { 0xD8, "VoltageOutOfRange" },
1552 { 0xD9, "CurrentOutOfRange" },
1553 { 0xDA, "CurrentNotRegulated" },
1554 { 0xDB, "VoltageNotRegulated" },
1555 { 0xDC, "MasterMode" },
1556 { 0xF0, "ChargerSelectorSupport" },
1557 { 0xF1, "ChargerSpec" },
1558 { 0xF2, "Level2" },
1559 { 0xF3, "Level3" },
1560 { 0x00, NULL }
1562 /* \\\ */
1564 /* /// "Barcode Scanner" */
1565 const struct HidUsageIDMap hidusage8c[] =
1567 { 0x01, "Bar Code Badge Reader" },
1568 { 0x02, "Bar Code Scanner" },
1569 { 0x03, "Dumb Bar Code Scanner" },
1570 { 0x04, "Cordless Scanner Base" },
1571 { 0x05, "Bar Code Scanner Cradle" },
1572 { 0x10, "Attribute Report" },
1573 { 0x11, "Settings Report" },
1574 { 0x12, "Scanned Data Report" },
1575 { 0x13, "Raw Scanned Data Report" },
1576 { 0x14, "Trigger Report" },
1577 { 0x15, "Status Report" },
1578 { 0x16, "UPC/EAN Control Report" },
1579 { 0x17, "EAN 2/3 Label Control Report" },
1580 { 0x18, "Code 39 Control Report" },
1581 { 0x19, "Interleaved 2 of 5 Control Report" },
1582 { 0x1A, "Standard 2 of 5 Control Report" },
1583 { 0x1B, "MSI Plessey Control Report" },
1584 { 0x1C, "Codabar Control Report" },
1585 { 0x1D, "Code 128 Control Report" },
1586 { 0x1E, "Misc 1D Control Report" },
1587 { 0x1F, "2D Control Report" },
1588 { 0x30, "Aiming/Pointer Mode" },
1589 { 0x31, "Bar Code Present Sensor" },
1590 { 0x32, "Class 1A Laser" },
1591 { 0x33, "Class 2 Laser" },
1592 { 0x34, "Heater Present" },
1593 { 0x35, "Contact Scanner" },
1594 { 0x36, "Electronic Article Surveillance Notification" },
1595 { 0x37, "Constant Electronic Article Surveillance" },
1596 { 0x38, "Error Indication" },
1597 { 0x39, "Fixed Beeper" },
1598 { 0x3A, "Good Decode Indication" },
1599 { 0x3B, "Hands Free Scanning" },
1600 { 0x3C, "Intrinsically Safe" },
1601 { 0x3D, "Klasse Eins Laser" },
1602 { 0x3E, "Long Range Scanner" },
1603 { 0x3F, "Mirror Speed Control" },
1604 { 0x40, "Not On File Indication" },
1605 { 0x41, "Programmable Beeper" },
1606 { 0x42, "Triggerless" },
1607 { 0x43, "Wand" },
1608 { 0x44, "Water Resistant" },
1609 { 0x45, "Multi-Range Scanner" },
1610 { 0x46, "Proximity Sensor" },
1611 { 0x4D, "Fragment Decoding" },
1612 { 0x4E, "Scanner Read Confidence" },
1613 { 0x4F, "Data Prefix" },
1614 { 0x50, "Prefix AIMI" },
1615 { 0x51, "Prefix None" },
1616 { 0x52, "Prefix Proprietary" },
1617 { 0x55, "Active Time" },
1618 { 0x56, "Aiming Laser Pattern" },
1619 { 0x57, "Bar Code Present" },
1620 { 0x58, "Beeper State" },
1621 { 0x59, "Laser On Time" },
1622 { 0x5A, "Laser State" },
1623 { 0x5B, "Lockout Time" },
1624 { 0x5C, "Motor State" },
1625 { 0x5D, "Motor Timeout" },
1626 { 0x5E, "Power On Reset Scanner" },
1627 { 0x5F, "Prevent Read of Barcodes" },
1628 { 0x60, "Initiate Barcode Read" },
1629 { 0x61, "Trigger State" },
1630 { 0x62, "Trigger Mode" },
1631 { 0x63, "Trigger Mode Blinking Laser On" },
1632 { 0x64, "Trigger Mode Continuous Laser On" },
1633 { 0x65, "Trigger Mode Laser on while Pulled" },
1634 { 0x66, "Trigger Mode Laser stays on after Trigger release" },
1635 { 0x6D, "Commit Parameters to NVM" },
1636 { 0x6E, "Parameter Scanning" },
1637 { 0x6F, "Parameters Changed" },
1638 { 0x70, "Set parameter default values" },
1639 { 0x75, "Scanner In Cradle" },
1640 { 0x76, "Scanner In Range" },
1641 { 0x7A, "Aim Duration" },
1642 { 0x7B, "Good Read Lamp Duration" },
1643 { 0x7C, "Good Read Lamp Intensity" },
1644 { 0x7D, "Good Read LED" },
1645 { 0x7E, "Good Read Tone Frequency" },
1646 { 0x7F, "Good Read Tone Length" },
1647 { 0x80, "Good Read Tone Volume" },
1648 { 0x82, "No Read Message" },
1649 { 0x83, "Not on File Volume" },
1650 { 0x84, "Powerup Beep" },
1651 { 0x85, "Sound Error Beep" },
1652 { 0x86, "Sound Good Read Beep" },
1653 { 0x87, "Sound Not On File Beep" },
1654 { 0x88, "Good Read When to Write" },
1655 { 0x89, "GRWTI After Decode" },
1656 { 0x8A, "GRWTI Beep/Lamp after transmit" },
1657 { 0x8B, "GRWTI No Beep/Lamp use at all" },
1658 { 0x91, "Bookland EAN" },
1659 { 0x92, "Convert EAN 8 to 13 Type" },
1660 { 0x93, "Convert UPC A to EAN-13" },
1661 { 0x94, "Convert UPC-E to A" },
1662 { 0x95, "EAN-13" },
1663 { 0x96, "EAN-8" },
1664 { 0x97, "EAN-99 128_Mandatory" },
1665 { 0x98, "EAN-99 P5/128_Optional" },
1666 { 0x9A, "UPC/EAN" },
1667 { 0x9B, "UPC/EAN Coupon Code" },
1668 { 0x9C, "UPC/EAN Periodicals" },
1669 { 0x9D, "UPC-A" },
1670 { 0x9E, "UPC-A with 128 Mandatory" },
1671 { 0x9F, "UPC-A with 128 Optional" },
1672 { 0xA0, "UPC-A with P5 Optional" },
1673 { 0xA1, "UPC-E" },
1674 { 0xA2, "UPC-E1" },
1675 { 0xA9, "Periodical" },
1676 { 0xAA, "Periodical Auto-Discriminate + 2" },
1677 { 0xAB, "Periodical Only Decode with + 2" },
1678 { 0xAC, "Periodical Ignore + 2" },
1679 { 0xAD, "Periodical Auto-Discriminate + 5" },
1680 { 0xAE, "Periodical Only Decode with + 5" },
1681 { 0xAF, "Periodical Ignore + 5" },
1682 { 0xB0, "Check" },
1683 { 0xB1, "Check Disable Price" },
1684 { 0xB2, "Check Enable 4 digit Price" },
1685 { 0xB3, "Check Enable 5 digit Price" },
1686 { 0xB4, "Check Enable European 4 digit Price" },
1687 { 0xB5, "Check Enable European 5 digit Price" },
1688 { 0xB7, "EAN Two Label" },
1689 { 0xB8, "EAN Three Label" },
1690 { 0xB9, "EAN 8 Flag Digit 1" },
1691 { 0xBA, "EAN 8 Flag Digit 2" },
1692 { 0xBB, "EAN 8 Flag Digit 3" },
1693 { 0xBC, "EAN 13 Flag Digit 1" },
1694 { 0xBD, "EAN 13 Flag Digit 2" },
1695 { 0xBE, "EAN 13 Flag Digit 3" },
1696 { 0xBF, "Add EAN 2/3 Label Definition" },
1697 { 0xC0, "Clear all EAN 2/3 Label Definitions" },
1698 { 0xC3, "Codabar" },
1699 { 0xC4, "Code 128" },
1700 { 0xC7, "Code 39" },
1701 { 0xC8, "Code 93" },
1702 { 0xC9, "Full ASCII Conversion" },
1703 { 0xCA, "Interleaved 2 of 5" },
1704 { 0xCB, "Italian Pharmacy Code" },
1705 { 0xCC, "MSI/Plessey" },
1706 { 0xCD, "Standard 2 of 5 IATA" },
1707 { 0xCE, "Standard 2 of 5" },
1708 { 0xD3, "Transmit Start/Stop" },
1709 { 0xD4, "Tri-Optic" },
1710 { 0xD5, "UCC/EAN-128" },
1711 { 0xD6, "Check Digit" },
1712 { 0xD7, "Check Digit Disable" },
1713 { 0xD8, "Check Digit Enable Interleaved 2 of 5 OPCC" },
1714 { 0xD9, "Check Digit Enable Interleaved 2 of 5 USS" },
1715 { 0xDA, "Check Digit Enable Standard 2 of 5 OPCC" },
1716 { 0xDB, "Check Digit Enable Standard 2 of 5 USS" },
1717 { 0xDC, "Check Digit Enable One MSI Plessey" },
1718 { 0xDD, "Check Digit Enable Two MSI Plessey" },
1719 { 0xDE, "Check Digit Codabar Enable" },
1720 { 0xDF, "Check Digit Code 39 Enable" },
1721 { 0xF0, "Transmit Check Digit" },
1722 { 0xF1, "Disable Check Digit Transmit" },
1723 { 0xF2, "Enable Check Digit Transmit" },
1724 { 0xFB, "Symbology Identifier 1" },
1725 { 0xFC, "Symbology Identifier 2" },
1726 { 0xFD, "Symbology Identifier 3" },
1727 { 0xFE, "Decoded Data" },
1728 { 0xFF, "Decode Data Continued" },
1730 { 0x100, "Bar Space Data" },
1731 { 0x101, "Scanner Data Accuracy" },
1732 { 0x102, "Raw Data Polarity" },
1733 { 0x103, "Polarity Inverted Bar Code" },
1734 { 0x104, "Polarity Normal Bar Code" },
1735 { 0x106, "Minimum Length to Decode" },
1736 { 0x107, "Maximum Length to Decode" },
1737 { 0x108, "First Discrete Length to Decode" },
1738 { 0x109, "Second Discrete Length to Decode" },
1739 { 0x10A, "Data Length Method" },
1740 { 0x10B, "DL Method Read any" },
1741 { 0x10C, "DL Method Check in Range" },
1742 { 0x10D, "DL Method Check for Discrete" },
1743 { 0x110, "Aztec Code" },
1744 { 0x111, "BC412" },
1745 { 0x112, "Channel Code" },
1746 { 0x113, "Code 16" },
1747 { 0x114, "Code 32" },
1748 { 0x115, "Code 49" },
1749 { 0x116, "Code One" },
1750 { 0x117, "Colorcode" },
1751 { 0x118, "Data Matrix" },
1752 { 0x119, "MaxiCode" },
1753 { 0x11A, "MicroPDF" },
1754 { 0x11B, "PDF-417" },
1755 { 0x11C, "PosiCode" },
1756 { 0x11D, "QR Code" },
1757 { 0x11E, "SuperCode" },
1758 { 0x11F, "UltraCode" },
1759 { 0x120, "USD-5 (Slug Code)" },
1760 { 0x121, "VeriCode" },
1761 { 0x00, NULL }
1763 /* \\\ */
1765 /* /// "Weighing Device Page" */
1766 const struct HidUsageIDMap hidusage8d[] =
1768 { 0x01, "Weighing Device" },
1769 { 0x20, "Scale Device" },
1770 { 0x21, "Scale Class I Metric" },
1771 { 0x22, "Scale Class I Metric" },
1772 { 0x23, "Scale Class II Metric" },
1773 { 0x24, "Scale Class III Metric" },
1774 { 0x25, "Scale Class IIIL Metric" },
1775 { 0x26, "Scale Class IV Metric" },
1776 { 0x27, "Scale Class III English" },
1777 { 0x28, "Scale Class IIIL English" },
1778 { 0x29, "Scale Class IV English" },
1779 { 0x2A, "Scale Class Generic" },
1780 { 0x30, "Scale Attribute Report" },
1781 { 0x31, "Scale Control Report" },
1782 { 0x32, "Scale Data Report" },
1783 { 0x33, "Scale Status Report" },
1784 { 0x34, "Scale Weight Limit Report" },
1785 { 0x35, "Scale Statistics Report" },
1786 { 0x40, "Data Weight" },
1787 { 0x41, "Data Scaling" },
1788 { 0x50, "Weight Unit" },
1789 { 0x51, "Weight Unit Milligram" },
1790 { 0x52, "Weight Unit Gram" },
1791 { 0x53, "Weight Unit Kilogram" },
1792 { 0x54, "Weight Unit Carats" },
1793 { 0x55, "Weight Unit Taels" },
1794 { 0x56, "Weight Unit Grains" },
1795 { 0x57, "Weight Unit Pennyweights" },
1796 { 0x58, "Weight Unit Metric Ton" },
1797 { 0x59, "Weight Unit Avoir Ton" },
1798 { 0x5A, "Weight Unit Troy Ounce" },
1799 { 0x5B, "Weight Unit Ounce" },
1800 { 0x5C, "Weight Unit Pound" },
1801 { 0x60, "Calibration Count" },
1802 { 0x61, "Re-Zero Count" },
1803 { 0x70, "Scale Status" },
1804 { 0x71, "Scale Status Fault" },
1805 { 0x72, "Scale Status Stable at Center of Zero" },
1806 { 0x73, "Scale Status In Motion" },
1807 { 0x74, "Scale Status Weight Stable" },
1808 { 0x75, "Scale Status Under Zero" },
1809 { 0x76, "Scale Status Over Weight Limit" },
1810 { 0x77, "Scale Status Requires Calibration" },
1811 { 0x78, "Scale Status Requires Re-zeroing" },
1812 { 0x80, "Zero Scale" },
1813 { 0x81, "Enforced Zero Return" },
1814 { 0x00, NULL }
1816 /* \\\ */
1818 /* /// "Magnetic Stripe Reading (MSR) devices" */
1819 const struct HidUsageIDMap hidusage8e[] =
1821 { 0x01, "MSR Device Read-Only" },
1822 { 0x11, "Track 1 Length" },
1823 { 0x12, "Track 2 Length" },
1824 { 0x13, "Track 3 Length" },
1825 { 0x14, "Track JIS Length" },
1826 { 0x20, "Track Data" },
1827 { 0x21, "Track 1 Data" },
1828 { 0x22, "Track 2 Data" },
1829 { 0x23, "Track 3 Data" },
1830 { 0x24, "Track JIS Data" },
1831 { 0x00, NULL }
1833 /* \\\ */
1835 /* /// "Camera control page" */
1836 const struct HidUsageIDMap hidusage90[] =
1838 { 0x00, NULL }
1840 /* \\\ */
1842 /* /// "Hid Usage Page Map" */
1843 const struct HidUsagePageMap hidusagepagestr[] =
1845 { 0x01, "Generic Desktop Controls", hidusage01 },
1846 { 0x02, "Simulation Controls", hidusage02 },
1847 { 0x03, "VR Controls", hidusage03 },
1848 { 0x04, "Sport Controls", hidusage04 },
1849 { 0x05, "Game Controls", hidusage05 },
1850 { 0x06, "Generic Device Controls", hidusage06 },
1851 { 0x07, "Keyboard/Keypad", hidusage07 },
1852 { 0x08, "LEDs", hidusage08 },
1853 { 0x09, "Button", hidusage09 },
1854 { 0x0a, "Ordinal", hidusage0a },
1855 { 0x0b, "Telephony", hidusage0b },
1856 { 0x0c, "Consumer", hidusage0c },
1857 { 0x0d, "Digitizer", hidusage0d },
1858 { 0x0f, "PID/Force feedback", hidusage0f },
1859 { 0x10, "Unicode", NULL },
1860 { 0x14, "Alphanumeric Display", hidusage14 },
1861 { 0x40, "Medical Instruments" , hidusage40 },
1862 { 0x80, "USB Monitor", hidusage80 },
1863 { 0x81, "Monitor Enumerated Values", NULL },
1864 { 0x82, "VESA Virtual Controls", hidusage82 },
1865 { 0x83, "Monitor Reserved", NULL },
1866 { 0x84, "Power Device Page", hidusage84 },
1867 { 0x85, "Battery System Page", hidusage85 },
1868 { 0x86, "Power Reserved", NULL },
1869 { 0x87, "Power Reserved", NULL },
1870 { 0x8c, "Barcode Scanner Page", hidusage8c },
1871 { 0x8d, "Weighing Device Page", hidusage8d },
1872 { 0x8e, "Magnetic Stripe Reading (MSR) devices", hidusage8e },
1873 { 0x90, "Camera Control Page", hidusage90 },
1874 { 0x00, NULL, NULL }
1876 /* \\\ */
1878 /* /// "Special Raw Keys" */
1879 const struct HidUsageIDMap specialrawkeys[] =
1881 { 0x0f, "Keypad 0" },
1882 { 0x1d, "Keypad 1" },
1883 { 0x1e, "Keypad 2" },
1884 { 0x1f, "Keypad 3" },
1885 { 0x2d, "Keypad 4" },
1886 { 0x2e, "Keypad 5" },
1887 { 0x2f, "Keypad 6" },
1888 { 0x3c, "Keypad ." },
1889 { 0x3d, "Keypad 7" },
1890 { 0x3e, "Keypad 8" },
1891 { 0x3f, "Keypad 9" },
1892 { 0x40, "Space" },
1893 { 0x41, "Backspace" },
1894 { 0x42, "Tab" },
1895 { 0x43, "Keypad enter" },
1896 { 0x44, "Return" },
1897 { 0x45, "Escape" },
1898 { 0x46, "Delete" },
1899 { 0x4a, "Keypad -" },
1900 { 0x4c, "Cursor up" },
1901 { 0x4d, "Cursor down" },
1902 { 0x4e, "Cursor right" },
1903 { 0x4f, "Cursor left" },
1904 { 0x50, "F1" },
1905 { 0x51, "F2" },
1906 { 0x52, "F3" },
1907 { 0x53, "F4" },
1908 { 0x54, "F5" },
1909 { 0x55, "F6" },
1910 { 0x56, "F7" },
1911 { 0x57, "F8" },
1912 { 0x58, "F9" },
1913 { 0x59, "F10" },
1914 { 0x5a, "Keypad [" },
1915 { 0x5b, "Keypad ]" },
1916 { 0x5c, "Keypad /" },
1917 { 0x5d, "Keypad *" },
1918 { 0x5e, "Keypad +" },
1919 { 0x5f, "Help" },
1920 { 0x60, "Left shift" },
1921 { 0x61, "Right shift" },
1922 { 0x62, "Caps lock" },
1923 { 0x63, "Control" },
1924 { 0x64, "Left alt" },
1925 { 0x65, "Right alt" },
1926 { 0x66, "Left amiga" },
1927 { 0x67, "Right amiga" },
1928 { 0x7a, "Wheel up" },
1929 { 0x7b, "Wheel down" },
1930 { 0x7c, "Wheel left" },
1931 { 0x7d, "Wheel right" },
1932 { 0x7f, "No code" },
1933 { 0x00, NULL },
1935 /* \\\ */
1937 /* /// "Special Extended Raw Keys" */
1938 const struct HidUsageIDMap specialextrawkeys[] =
1940 { 0x05, "Filer" },
1941 { 0x07, "Redo" },
1942 { 0x08, "Undo" },
1943 { 0x09, "App Toggle Prev" },
1944 { 0x0A, "Paste" },
1945 { 0x0B, "Wheel Y Up 1" },
1946 { 0x10, "Media Prev" },
1947 { 0x11, "Wheel Y Up 2" },
1948 { 0x12, "Wheel Y Up 3" },
1949 { 0x13, "Word Processor" },
1950 { 0x14, "Spreadsheet" },
1951 { 0x15, "Media Stop" },
1952 { 0x16, "Logoff" },
1953 { 0x17, "Cut" },
1954 { 0x18, "Copy" },
1955 { 0x19, "Media Next" },
1956 { 0x1E, "App Toggle Next" },
1957 { 0x1F, "Wheel Y Up 4" },
1958 { 0x20, "Volume Mute" },
1959 { 0x21, "Calculator" },
1960 { 0x22, "Media Play" },
1961 { 0x23, "Office Spellchecker" },
1962 { 0x24, "Media Stop" },
1963 { 0x2E, "Volume Down" },
1964 { 0x30, "Volume Up" },
1965 { 0x32, "WWW Home" },
1966 { 0x37, "SysRq" },
1967 { 0x3B, "Office Help" },
1968 { 0x3C, "Office Home" },
1969 { 0x3D, "Office Task" },
1970 { 0x3E, "Office New" },
1971 { 0x3F, "Office Open" },
1972 { 0x40, "Office Close" },
1973 { 0x41, "E-Mail Reply" },
1974 { 0x42, "E-Mail Forward" },
1975 { 0x43, "E-Mail Send" },
1976 { 0x45, "Pause" },
1977 { 0x4C, "Print Screen" },
1978 { 0x57, "Office Save" },
1979 { 0x58, "Office Print" },
1980 { 0x5E, "Power/Standby" },
1981 { 0x5F, "Sleep" },
1982 { 0x63, "Wakeup" },
1983 { 0x64, "Scroll Lock" },
1984 { 0x65, "WWW Search" },
1985 { 0x66, "WWW Bookmarks" },
1986 { 0x67, "WWW Refresh" },
1987 { 0x68, "WWW Stop" },
1988 { 0x69, "WWW Forward" },
1989 { 0x6A, "WWW Backward" },
1990 { 0x6B, "Private Files" },
1991 { 0x6C, "E-Mail" },
1992 { 0x6D, "Media Select" },
1993 { 0x00, NULL },
1995 /* \\\ */
1997 /* /// "nNumToStr()" */
1998 STRPTR nNumToStr(struct NepClassHid *nch, UWORD type, ULONG id, STRPTR defstr)
2000 switch(type)
2002 case NTS_USAGEPAGE:
2004 const struct HidUsagePageMap *hupm = hidusagepagestr;
2005 while(hupm->hupm_String)
2007 if(hupm->hupm_ID == id)
2009 return(hupm->hupm_String);
2011 hupm++;
2013 break;
2016 case NTS_USAGEID:
2018 const struct HidUsageIDMap *hum = NULL;
2019 const struct HidUsagePageMap *hupm = hidusagepagestr;
2020 while(hupm->hupm_String)
2022 if(hupm->hupm_ID == (id>>16))
2024 hum = hupm->hupm_UsageIDMap;
2025 break;
2027 hupm++;
2029 if(hum)
2031 id &= 0xffff;
2032 while(hum->hum_String)
2034 if(hum->hum_ID == id)
2036 return(hum->hum_String);
2038 hum++;
2041 break;
2044 case NTS_RAWKEY:
2046 const struct HidUsageIDMap *hum = specialrawkeys;
2047 while(hum->hum_String)
2049 if(hum->hum_ID == id)
2051 return(hum->hum_String);
2053 hum++;
2055 break;
2058 case NTS_EXTRAWKEY:
2060 const struct HidUsageIDMap *hum = specialextrawkeys;
2061 while(hum->hum_String)
2063 if(hum->hum_ID == id)
2065 return(hum->hum_String);
2067 hum++;
2069 break;
2073 return(defstr);
2075 /* \\\ */