]> git.saurik.com Git - apple/xnu.git/blob - iokit/IOKit/hidsystem/IOHIDUsageTables.h
xnu-124.13.tar.gz
[apple/xnu.git] / iokit / IOKit / hidsystem / IOHIDUsageTables.h
1 /*
2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 #ifndef _IOHIDUSAGETABLES_H
23 #define _IOHIDUSAGETABLES_H
24
25 /* ******************************************************************************************
26 * HID Usage Tables
27 *
28 * The following constants are from the USB 'HID Usage Tables' specification, revision 1.1rc3
29 * ****************************************************************************************** */
30
31
32 /* Usage Pages */
33 enum
34 {
35 kHIDPage_Undefined = 0x00,
36 kHIDPage_GenericDesktop = 0x01,
37 kHIDPage_Simulation = 0x02,
38 kHIDPage_VR = 0x03,
39 kHIDPage_Sport = 0x04,
40 kHIDPage_Game = 0x05,
41 /* Reserved 0x06 */
42 kHIDPage_KeyboardOrKeypad = 0x07, /* USB Device Class Definition for Human Interface Devices (HID). Note: the usage type for all key codes is Selector (Sel). */
43 kHIDPage_LEDs = 0x08,
44 kHIDPage_Button = 0x09,
45 kHIDPage_Ordinal = 0x0A,
46 kHIDPage_Telephony = 0x0B,
47 kHIDPage_Consumer = 0x0C,
48 kHIDPage_Digitizer = 0x0D,
49 /* Reserved 0x0E */
50 kHIDPage_PID = 0x0F, /* USB Physical Interface Device definitions for force feedback and related devices. */
51 kHIDPage_Unicode = 0x10,
52 /* Reserved 0x11 - 0x13 */
53 kHIDPage_AlphanumericDisplay = 0x14,
54 /* Reserved 0x15 - 0x7F */
55 /* Monitor 0x80 - 0x83 USB Device Class Definition for Monitor Devices */
56 /* Power 0x84 - 0x87 USB Device Class Definition for Power Devices */
57 /* Reserved 0x88 - 0x8B */
58 kHIDPage_BarCodeScanner = 0x8C, /* (Point of Sale) USB Device Class Definition for Bar Code Scanner Devices */
59 kHIDPage_Scale = 0x8D, /* (Point of Sale) USB Device Class Definition for Scale Devices */
60 /* ReservedPointofSalepages 0x8E - 0x8F */
61 kHIDPage_CameraControl = 0x90, /* USB Device Class Definition for Image Class Devices */
62 kHIDPage_Arcade = 0x91, /* OAAF Definitions for arcade and coinop related Devices */
63 /* Reserved 0x92 - 0xFEFF */
64 /* VendorDefined 0xFF00 - 0xFFFF */
65 kHIDPage_VendorDefinedStart = 0xFF00,
66 };
67
68 /* Undefined Usage for all usage pages */
69 enum
70 {
71 kHIDUsage_Undefined = 0x00
72 };
73
74 /* GenericDesktop Page (0x01) */
75 enum
76 {
77 kHIDUsage_GD_Pointer = 0x01, /* Physical Collection */
78 kHIDUsage_GD_Mouse = 0x02, /* Application Collection */
79 /* 0x03 Reserved */
80 kHIDUsage_GD_Joystick = 0x04, /* Application Collection */
81 kHIDUsage_GD_GamePad = 0x05, /* Application Collection */
82 kHIDUsage_GD_Keyboard = 0x06, /* Application Collection */
83 kHIDUsage_GD_Keypad = 0x07, /* Application Collection */
84 kHIDUsage_GD_MultiAxisController = 0x08, /* Application Collection */
85 /* 0x09 - 0x2F Reserved */
86 kHIDUsage_GD_X = 0x30, /* Dynamic Value */
87 kHIDUsage_GD_Y = 0x31, /* Dynamic Value */
88 kHIDUsage_GD_Z = 0x32, /* Dynamic Value */
89 kHIDUsage_GD_Rx = 0x33, /* Dynamic Value */
90 kHIDUsage_GD_Ry = 0x34, /* Dynamic Value */
91 kHIDUsage_GD_Rz = 0x35, /* Dynamic Value */
92 kHIDUsage_GD_Slider = 0x36, /* Dynamic Value */
93 kHIDUsage_GD_Dial = 0x37, /* Dynamic Value */
94 kHIDUsage_GD_Wheel = 0x38, /* Dynamic Value */
95 kHIDUsage_GD_Hatswitch = 0x39, /* Dynamic Value */
96 kHIDUsage_GD_CountedBuffer = 0x3A, /* Logical Collection */
97 kHIDUsage_GD_ByteCount = 0x3B, /* Dynamic Value */
98 kHIDUsage_GD_MotionWakeup = 0x3C, /* One-Shot Control */
99 kHIDUsage_GD_Start = 0x3D, /* On/Off Control */
100 kHIDUsage_GD_Select = 0x3E, /* On/Off Control */
101 /* 0x3F Reserved */
102 kHIDUsage_GD_Vx = 0x40, /* Dynamic Value */
103 kHIDUsage_GD_Vy = 0x41, /* Dynamic Value */
104 kHIDUsage_GD_Vz = 0x42, /* Dynamic Value */
105 kHIDUsage_GD_Vbrx = 0x43, /* Dynamic Value */
106 kHIDUsage_GD_Vbry = 0x44, /* Dynamic Value */
107 kHIDUsage_GD_Vbrz = 0x45, /* Dynamic Value */
108 kHIDUsage_GD_Vno = 0x46, /* Dynamic Value */
109 /* 0x47 - 0x7F Reserved */
110 kHIDUsage_GD_SystemControl = 0x80, /* Application Collection */
111 kHIDUsage_GD_SystemPowerDown = 0x81, /* One-Shot Control */
112 kHIDUsage_GD_SystemSleep = 0x82, /* One-Shot Control */
113 kHIDUsage_GD_SystemWakeUp = 0x83, /* One-Shot Control */
114 kHIDUsage_GD_SystemContextMenu = 0x84, /* One-Shot Control */
115 kHIDUsage_GD_SystemMainMenu = 0x85, /* One-Shot Control */
116 kHIDUsage_GD_SystemAppMenu = 0x86, /* One-Shot Control */
117 kHIDUsage_GD_SystemMenuHelp = 0x87, /* One-Shot Control */
118 kHIDUsage_GD_SystemMenuExit = 0x88, /* One-Shot Control */
119 kHIDUsage_GD_SystemMenu = 0x89, /* Selector */
120 kHIDUsage_GD_SystemMenuRight = 0x8A, /* Re-Trigger Control */
121 kHIDUsage_GD_SystemMenuLeft = 0x8B, /* Re-Trigger Control */
122 kHIDUsage_GD_SystemMenuUp = 0x8C, /* Re-Trigger Control */
123 kHIDUsage_GD_SystemMenuDown = 0x8D, /* Re-Trigger Control */
124 /* 0x8E - 0x8F Reserved */
125 kHIDUsage_GD_DPadUp = 0x90, /* On/Off Control */
126 kHIDUsage_GD_DPadDown = 0x91, /* On/Off Control */
127 kHIDUsage_GD_DPadRight = 0x92, /* On/Off Control */
128 kHIDUsage_GD_DPadLeft = 0x93, /* On/Off Control */
129 /* 0x94 - 0xFFFF Reserved */
130 kHIDUsage_GD_Reserved = 0xFFFF,
131 };
132
133 /* Simulation Page (0x02) */
134 /* This section provides detailed descriptions of the usages employed by simulation devices. */
135 enum
136 {
137 kHIDUsage_Sim_FlightSimulationDevice = 0x01, /* Application Collection */
138 kHIDUsage_Sim_AutomobileSimulationDevice = 0x02, /* Application Collection */
139 kHIDUsage_Sim_TankSimulationDevice = 0x03, /* Application Collection */
140 kHIDUsage_Sim_SpaceshipSimulationDevice = 0x04, /* Application Collection */
141 kHIDUsage_Sim_SubmarineSimulationDevice = 0x05, /* Application Collection */
142 kHIDUsage_Sim_SailingSimulationDevice = 0x06, /* Application Collection */
143 kHIDUsage_Sim_MotorcycleSimulationDevice = 0x07, /* Application Collection */
144 kHIDUsage_Sim_SportsSimulationDevice = 0x08, /* Application Collection */
145 kHIDUsage_Sim_AirplaneSimulationDevice = 0x09, /* Application Collection */
146 kHIDUsage_Sim_HelicopterSimulationDevice = 0x0A, /* Application Collection */
147 kHIDUsage_Sim_MagicCarpetSimulationDevice = 0x0B, /* Application Collection */
148 kHIDUsage_Sim_BicycleSimulationDevice = 0x0C, /* Application Collection */
149 /* 0x0D - 0x1F Reserved */
150 kHIDUsage_Sim_FlightControlStick = 0x20, /* Application Collection */
151 kHIDUsage_Sim_FlightStick = 0x21, /* Application Collection */
152 kHIDUsage_Sim_CyclicControl = 0x22, /* Physical Collection */
153 kHIDUsage_Sim_CyclicTrim = 0x23, /* Physical Collection */
154 kHIDUsage_Sim_FlightYoke = 0x24, /* Application Collection */
155 kHIDUsage_Sim_TrackControl = 0x25, /* Physical Collection */
156 /* 0x26 - 0xAF Reserved */
157 kHIDUsage_Sim_Aileron = 0xB0, /* Dynamic Value */
158 kHIDUsage_Sim_AileronTrim = 0xB1, /* Dynamic Value */
159 kHIDUsage_Sim_AntiTorqueControl = 0xB2, /* Dynamic Value */
160 kHIDUsage_Sim_AutopilotEnable = 0xB3, /* On/Off Control */
161 kHIDUsage_Sim_ChaffRelease = 0xB4, /* One-Shot Control */
162 kHIDUsage_Sim_CollectiveControl = 0xB5, /* Dynamic Value */
163 kHIDUsage_Sim_DiveBrake = 0xB6, /* Dynamic Value */
164 kHIDUsage_Sim_ElectronicCountermeasures = 0xB7, /* On/Off Control */
165 kHIDUsage_Sim_Elevator = 0xB8, /* Dynamic Value */
166 kHIDUsage_Sim_ElevatorTrim = 0xB9, /* Dynamic Value */
167 kHIDUsage_Sim_Rudder = 0xBA, /* Dynamic Value */
168 kHIDUsage_Sim_Throttle = 0xBB, /* Dynamic Value */
169 kHIDUsage_Sim_FlightCommunications = 0xBC, /* On/Off Control */
170 kHIDUsage_Sim_FlareRelease = 0xBD, /* One-Shot Control */
171 kHIDUsage_Sim_LandingGear = 0xBE, /* On/Off Control */
172 kHIDUsage_Sim_ToeBrake = 0xBF, /* Dynamic Value */
173 kHIDUsage_Sim_Trigger = 0xC0, /* Momentary Control */
174 kHIDUsage_Sim_WeaponsArm = 0xC1, /* On/Off Control */
175 kHIDUsage_Sim_Weapons = 0xC2, /* Selector */
176 kHIDUsage_Sim_WingFlaps = 0xC3, /* Dynamic Value */
177 kHIDUsage_Sim_Accelerator = 0xC4, /* Dynamic Value */
178 kHIDUsage_Sim_Brake = 0xC5, /* Dynamic Value */
179 kHIDUsage_Sim_Clutch = 0xC6, /* Dynamic Value */
180 kHIDUsage_Sim_Shifter = 0xC7, /* Dynamic Value */
181 kHIDUsage_Sim_Steering = 0xC8, /* Dynamic Value */
182 kHIDUsage_Sim_TurretDirection = 0xC9, /* Dynamic Value */
183 kHIDUsage_Sim_BarrelElevation = 0xCA, /* Dynamic Value */
184 kHIDUsage_Sim_DivePlane = 0xCB, /* Dynamic Value */
185 kHIDUsage_Sim_Ballast = 0xCC, /* Dynamic Value */
186 kHIDUsage_Sim_BicycleCrank = 0xCD, /* Dynamic Value */
187 kHIDUsage_Sim_HandleBars = 0xCE, /* Dynamic Value */
188 kHIDUsage_Sim_FrontBrake = 0xCF, /* Dynamic Value */
189 kHIDUsage_Sim_RearBrake = 0xD0, /* Dynamic Value */
190 /* 0xD1 - 0xFFFF Reserved */
191 kHIDUsage_Sim_Reserved = 0xFFFF,
192 };
193
194 /* VR Page (0x03) */
195 /* Virtual Reality controls depend on designators to identify the individual controls. Most of the following are */
196 /* usages are applied to the collections of entities that comprise the actual device. */
197 enum
198 {
199 kHIDUsage_VR_Belt = 0x01, /* Application Collection */
200 kHIDUsage_VR_BodySuit = 0x02, /* Application Collection */
201 kHIDUsage_VR_Flexor = 0x03, /* Physical Collection */
202 kHIDUsage_VR_Glove = 0x04, /* Application Collection */
203 kHIDUsage_VR_HeadTracker = 0x05, /* Physical Collection */
204 kHIDUsage_VR_HeadMountedDisplay = 0x06, /* Application Collection */
205 kHIDUsage_VR_HandTracker = 0x07, /* Application Collection */
206 kHIDUsage_VR_Oculometer = 0x08, /* Application Collection */
207 kHIDUsage_VR_Vest = 0x09, /* Application Collection */
208 kHIDUsage_VR_AnimatronicDevice = 0x0A, /* Application Collection */
209 /* 0x0B - 0x1F Reserved */
210 kHIDUsage_VR_StereoEnable = 0x20, /* On/Off Control */
211 kHIDUsage_VR_DisplayEnable = 0x21, /* On/Off Control */
212 /* 0x22 - 0xFFFF Reserved */
213 kHIDUsage_VR_Reserved = 0xFFFF,
214 };
215
216 /* Sport Page (0x04) */
217 enum
218 {
219 kHIDUsage_Sprt_BaseballBat = 0x01, /* Application Collection */
220 kHIDUsage_Sprt_GolfClub = 0x02, /* Application Collection */
221 kHIDUsage_Sprt_RowingMachine = 0x03, /* Application Collection */
222 kHIDUsage_Sprt_Treadmill = 0x04, /* Application Collection */
223 /* 0x05 - 0x2F Reserved */
224 kHIDUsage_Sprt_Oar = 0x30, /* Dynamic Value */
225 kHIDUsage_Sprt_Slope = 0x31, /* Dynamic Value */
226 kHIDUsage_Sprt_Rate = 0x32, /* Dynamic Value */
227 kHIDUsage_Sprt_StickSpeed = 0x33, /* Dynamic Value */
228 kHIDUsage_Sprt_StickFaceAngle = 0x34, /* Dynamic Value */
229 kHIDUsage_Sprt_StickHeelOrToe = 0x35, /* Dynamic Value */
230 kHIDUsage_Sprt_StickFollowThrough = 0x36, /* Dynamic Value */
231 kHIDUsage_Sprt_StickTempo = 0x37, /* Dynamic Value */
232 kHIDUsage_Sprt_StickType = 0x38, /* Named Array */
233 kHIDUsage_Sprt_StickHeight = 0x39, /* Dynamic Value */
234 /* 0x3A - 0x4F Reserved */
235 kHIDUsage_Sprt_Putter = 0x50, /* Selector */
236 kHIDUsage_Sprt_1Iron = 0x51, /* Selector */
237 kHIDUsage_Sprt_2Iron = 0x52, /* Selector */
238 kHIDUsage_Sprt_3Iron = 0x53, /* Selector */
239 kHIDUsage_Sprt_4Iron = 0x54, /* Selector */
240 kHIDUsage_Sprt_5Iron = 0x55, /* Selector */
241 kHIDUsage_Sprt_6Iron = 0x56, /* Selector */
242 kHIDUsage_Sprt_7Iron = 0x57, /* Selector */
243 kHIDUsage_Sprt_8Iron = 0x58, /* Selector */
244 kHIDUsage_Sprt_9Iron = 0x59, /* Selector */
245 kHIDUsage_Sprt_10Iron = 0x5A, /* Selector */
246 kHIDUsage_Sprt_11Iron = 0x5B, /* Selector */
247 kHIDUsage_Sprt_SandWedge = 0x5C, /* Selector */
248 kHIDUsage_Sprt_LoftWedge = 0x5D, /* Selector */
249 kHIDUsage_Sprt_PowerWedge = 0x5E, /* Selector */
250 kHIDUsage_Sprt_1Wood = 0x5F, /* Selector */
251 kHIDUsage_Sprt_3Wood = 0x60, /* Selector */
252 kHIDUsage_Sprt_5Wood = 0x61, /* Selector */
253 kHIDUsage_Sprt_7Wood = 0x62, /* Selector */
254 kHIDUsage_Sprt_9Wood = 0x63, /* Selector */
255 /* 0x64 - 0xFFFF Reserved */
256 kHIDUsage_Sprt_Reserved = 0xFFFF,
257 };
258
259 /* Game Page (0x05) */
260 enum
261 {
262 kHIDUsage_Game_3DGameController = 0x01, /* Application Collection */
263 kHIDUsage_Game_PinballDevice = 0x02, /* Application Collection */
264 kHIDUsage_Game_GunDevice = 0x03, /* Application Collection */
265 /* 0x04 - 0x1F Reserved */
266 kHIDUsage_Game_PointofView = 0x20, /* Physical Collection */
267 kHIDUsage_Game_TurnRightOrLeft = 0x21, /* Dynamic Value */
268 kHIDUsage_Game_PitchUpOrDown = 0x22, /* Dynamic Value */
269 kHIDUsage_Game_RollRightOrLeft = 0x23, /* Dynamic Value */
270 kHIDUsage_Game_MoveRightOrLeft = 0x24, /* Dynamic Value */
271 kHIDUsage_Game_MoveForwardOrBackward = 0x25, /* Dynamic Value */
272 kHIDUsage_Game_MoveUpOrDown = 0x26, /* Dynamic Value */
273 kHIDUsage_Game_LeanRightOrLeft = 0x27, /* Dynamic Value */
274 kHIDUsage_Game_LeanForwardOrBackward = 0x28, /* Dynamic Value */
275 kHIDUsage_Game_HeightOfPOV = 0x29, /* Dynamic Value */
276 kHIDUsage_Game_Flipper = 0x2A, /* Momentary Control */
277 kHIDUsage_Game_SecondaryFlipper = 0x2B, /* Momentary Control */
278 kHIDUsage_Game_Bump = 0x2C, /* Momentary Control */
279 kHIDUsage_Game_NewGame = 0x2D, /* One-Shot Control */
280 kHIDUsage_Game_ShootBall = 0x2E, /* One-Shot Control */
281 kHIDUsage_Game_Player = 0x2F, /* One-Shot Control */
282 kHIDUsage_Game_GunBolt = 0x30, /* On/Off Control */
283 kHIDUsage_Game_GunClip = 0x31, /* On/Off Control */
284 kHIDUsage_Game_Gun = 0x32, /* Selector */
285 kHIDUsage_Game_GunSingleShot = 0x33, /* Selector */
286 kHIDUsage_Game_GunBurst = 0x34, /* Selector */
287 kHIDUsage_Game_GunAutomatic = 0x35, /* Selector */
288 kHIDUsage_Game_GunSafety = 0x36, /* On/Off Control */
289 kHIDUsage_Game_GamepadFireOrJump = 0x37, /* Logical Collection */
290 kHIDUsage_Game_GamepadTrigger = 0x39, /* Logical Collection */
291 /* 0x3A - 0xFFFF Reserved */
292 kHIDUsage_Game_Reserved = 0xFFFF,
293 };
294
295 /* KeyboardOrKeypad Page (0x07) */
296 /* This section is the Usage Page for key codes to be used in implementing a USB keyboard. A Boot Keyboard (84-, 101- or 104-key) should at a minimum support all associated usage codes as indicated in the ÒBootÓ */
297 /* column below. */
298 /* The usage type of all key codes is Selectors (Sel), except for the modifier keys Keyboard Left Control (0x224) to Keyboard Right GUI (0x231) which are Dynamic Flags (DV). */
299 /* Note: A general note on Usages and languages: Due to the variation of keyboards from language to language, it is not feasible to specify exact key mappings for every language. Where this list is not specific for a key function in a language, the closest equivalent key position should be used, so that a keyboard may be modified for a different language by simply printing different keycaps. One example is the Y key on a North American keyboard. In Germany this is typically Z. Rather than changing the keyboard firmware to put the Z Usage into that place in the descriptor list, the vendor should use the Y Usage on both the North American and German keyboards. This continues to be the existing practice in the industry, in order to minimize the number of changes to the electronics to accommodate otherlanguages. */
300 enum
301 {
302 kHIDUsage_KeyboardErrorRollOver = 0x01, /* ErrorRollOver */
303 kHIDUsage_KeyboardPOSTFail = 0x02, /* POSTFail */
304 kHIDUsage_KeyboardErrorUndefined = 0x03, /* ErrorUndefined */
305 kHIDUsage_KeyboardA = 0x04, /* a or A */
306 kHIDUsage_KeyboardB = 0x05, /* b or B */
307 kHIDUsage_KeyboardC = 0x06, /* c or C */
308 kHIDUsage_KeyboardD = 0x07, /* d or D */
309 kHIDUsage_KeyboardE = 0x08, /* e or E */
310 kHIDUsage_KeyboardF = 0x09, /* f or F */
311 kHIDUsage_KeyboardG = 0x0A, /* g or G */
312 kHIDUsage_KeyboardH = 0x0B, /* h or H */
313 kHIDUsage_KeyboardI = 0x0C, /* i or I */
314 kHIDUsage_KeyboardJ = 0x0D, /* j or J */
315 kHIDUsage_KeyboardK = 0x0E, /* k or K */
316 kHIDUsage_KeyboardL = 0x0F, /* l or L */
317 kHIDUsage_KeyboardM = 0x10, /* m or M */
318 kHIDUsage_KeyboardN = 0x11, /* n or N */
319 kHIDUsage_KeyboardO = 0x12, /* o or O */
320 kHIDUsage_KeyboardP = 0x13, /* p or P */
321 kHIDUsage_KeyboardQ = 0x14, /* q or Q */
322 kHIDUsage_KeyboardR = 0x15, /* r or R */
323 kHIDUsage_KeyboardS = 0x16, /* s or S */
324 kHIDUsage_KeyboardT = 0x17, /* t or T */
325 kHIDUsage_KeyboardU = 0x18, /* u or U */
326 kHIDUsage_KeyboardV = 0x19, /* v or V */
327 kHIDUsage_KeyboardW = 0x1A, /* w or W */
328 kHIDUsage_KeyboardX = 0x1B, /* x or X */
329 kHIDUsage_KeyboardY = 0x1C, /* y or Y */
330 kHIDUsage_KeyboardZ = 0x1D, /* z or Z */
331 kHIDUsage_Keyboard1 = 0x1E, /* 1 or ! */
332 kHIDUsage_Keyboard2 = 0x1F, /* 2 or @ */
333 kHIDUsage_Keyboard3 = 0x20, /* 3 or # */
334 kHIDUsage_Keyboard4 = 0x21, /* 4 or $ */
335 kHIDUsage_Keyboard5 = 0x22, /* 5 or % */
336 kHIDUsage_Keyboard6 = 0x23, /* 6 or ^ */
337 kHIDUsage_Keyboard7 = 0x24, /* 7 or & */
338 kHIDUsage_Keyboard8 = 0x25, /* 8 or * */
339 kHIDUsage_Keyboard9 = 0x26, /* 9 or ( */
340 kHIDUsage_Keyboard0 = 0x27, /* 0 or ) */
341 kHIDUsage_KeyboardReturnOrEnter = 0x28, /* Return (Enter) */
342 kHIDUsage_KeyboardEscape = 0x29, /* Escape */
343 kHIDUsage_KeyboardDeleteOrBackspace = 0x2A, /* Delete (Backspace) */
344 kHIDUsage_KeyboardTab = 0x2B, /* Tab */
345 kHIDUsage_KeyboardSpacebar = 0x2C, /* Spacebar */
346 kHIDUsage_KeyboardHyphen = 0x2D, /* - or _ */
347 kHIDUsage_KeyboardEqualSign = 0x2E, /* = or + */
348 kHIDUsage_KeyboardOpenBracket = 0x2F, /* [ or { */
349 kHIDUsage_KeyboardCloseBracket = 0x30, /* ] or } */
350 kHIDUsage_KeyboardBackslash = 0x31, /* \ or | */
351 kHIDUsage_KeyboardNonUSPound = 0x32, /* Non-US # or _ */
352 kHIDUsage_KeyboardSemicolon = 0x33, /* ; or : */
353 kHIDUsage_KeyboardQuote = 0x34, /* ' or " */
354 kHIDUsage_KeyboardGraveAccentAndTilde = 0x35, /* Grave Accent and Tilde */
355 kHIDUsage_KeyboardComma = 0x36, /* , or < */
356 kHIDUsage_KeyboardPeriod = 0x37, /* . or > */
357 kHIDUsage_KeyboardSlash = 0x38, /* / or ? */
358 kHIDUsage_KeyboardCapsLock = 0x39, /* Caps Lock */
359 kHIDUsage_KeyboardF1 = 0x3A, /* F1 */
360 kHIDUsage_KeyboardF2 = 0x3B, /* F2 */
361 kHIDUsage_KeyboardF3 = 0x3C, /* F3 */
362 kHIDUsage_KeyboardF4 = 0x3D, /* F4 */
363 kHIDUsage_KeyboardF5 = 0x3E, /* F5 */
364 kHIDUsage_KeyboardF6 = 0x3F, /* F6 */
365 kHIDUsage_KeyboardF7 = 0x40, /* F7 */
366 kHIDUsage_KeyboardF8 = 0x41, /* F8 */
367 kHIDUsage_KeyboardF9 = 0x42, /* F9 */
368 kHIDUsage_KeyboardF10 = 0x43, /* F10 */
369 kHIDUsage_KeyboardF11 = 0x44, /* F11 */
370 kHIDUsage_KeyboardF12 = 0x45, /* F12 */
371 kHIDUsage_KeyboardPrintScreen = 0x46, /* Print Screen */
372 kHIDUsage_KeyboardScrollLock = 0x47, /* Scroll Lock */
373 kHIDUsage_KeyboardPause = 0x48, /* Pause */
374 kHIDUsage_KeyboardInsert = 0x49, /* Insert */
375 kHIDUsage_KeyboardHome = 0x4A, /* Home */
376 kHIDUsage_KeyboardPageUp = 0x4B, /* Page Up */
377 kHIDUsage_KeyboardDeleteForward = 0x4C, /* Delete Forward */
378 kHIDUsage_KeyboardEnd = 0x4D, /* End */
379 kHIDUsage_KeyboardPageDown = 0x4E, /* Page Down */
380 kHIDUsage_KeyboardRightArrow = 0x4F, /* Right Arrow */
381 kHIDUsage_KeyboardLeftArrow = 0x50, /* Left Arrow */
382 kHIDUsage_KeyboardDownArrow = 0x51, /* Down Arrow */
383 kHIDUsage_KeyboardUpArrow = 0x52, /* Up Arrow */
384 kHIDUsage_KeypadNumLock = 0x53, /* Keypad NumLock or Clear */
385 kHIDUsage_KeypadSlash = 0x54, /* Keypad / */
386 kHIDUsage_KeypadAsterisk = 0x55, /* Keypad * */
387 kHIDUsage_KeypadHyphen = 0x56, /* Keypad - */
388 kHIDUsage_KeypadPlus = 0x57, /* Keypad + */
389 kHIDUsage_KeypadEnter = 0x58, /* Keypad Enter */
390 kHIDUsage_Keypad1 = 0x59, /* Keypad 1 or End */
391 kHIDUsage_Keypad2 = 0x5A, /* Keypad 2 or Down Arrow */
392 kHIDUsage_Keypad3 = 0x5B, /* Keypad 3 or Page Down */
393 kHIDUsage_Keypad4 = 0x5C, /* Keypad 4 or Left Arrow */
394 kHIDUsage_Keypad5 = 0x5D, /* Keypad 5 */
395 kHIDUsage_Keypad6 = 0x5E, /* Keypad 6 or Right Arrow */
396 kHIDUsage_Keypad7 = 0x5F, /* Keypad 7 or Home */
397 kHIDUsage_Keypad8 = 0x60, /* Keypad 8 or Up Arrow */
398 kHIDUsage_Keypad9 = 0x61, /* Keypad 9 or Page Up */
399 kHIDUsage_Keypad0 = 0x62, /* Keypad 0 or Insert */
400 kHIDUsage_KeypadPeriod = 0x63, /* Keypad . or Delete */
401 kHIDUsage_KeyboardNonUSBackslash = 0x64, /* Non-US \ or | */
402 kHIDUsage_KeyboardApplication = 0x65, /* Application */
403 kHIDUsage_KeyboardPower = 0x66, /* Power */
404 kHIDUsage_KeypadEqualSign = 0x67, /* Keypad = */
405 kHIDUsage_KeyboardF13 = 0x68, /* F13 */
406 kHIDUsage_KeyboardF14 = 0x69, /* F14 */
407 kHIDUsage_KeyboardF15 = 0x6A, /* F15 */
408 kHIDUsage_KeyboardF16 = 0x6B, /* F16 */
409 kHIDUsage_KeyboardF17 = 0x6C, /* F17 */
410 kHIDUsage_KeyboardF18 = 0x6D, /* F18 */
411 kHIDUsage_KeyboardF19 = 0x6E, /* F19 */
412 kHIDUsage_KeyboardF20 = 0x6F, /* F20 */
413 kHIDUsage_KeyboardF21 = 0x70, /* F21 */
414 kHIDUsage_KeyboardF22 = 0x71, /* F22 */
415 kHIDUsage_KeyboardF23 = 0x72, /* F23 */
416 kHIDUsage_KeyboardF24 = 0x73, /* F24 */
417 kHIDUsage_KeyboardExecute = 0x74, /* Execute */
418 kHIDUsage_KeyboardHelp = 0x75, /* Help */
419 kHIDUsage_KeyboardMenu = 0x76, /* Menu */
420 kHIDUsage_KeyboardSelect = 0x77, /* Select */
421 kHIDUsage_KeyboardStop = 0x78, /* Stop */
422 kHIDUsage_KeyboardAgain = 0x79, /* Again */
423 kHIDUsage_KeyboardUndo = 0x7A, /* Undo */
424 kHIDUsage_KeyboardCut = 0x7B, /* Cut */
425 kHIDUsage_KeyboardCopy = 0x7C, /* Copy */
426 kHIDUsage_KeyboardPaste = 0x7D, /* Paste */
427 kHIDUsage_KeyboardFind = 0x7E, /* Find */
428 kHIDUsage_KeyboardMute = 0x7F, /* Mute */
429 kHIDUsage_KeyboardVolumeUp = 0x80, /* Volume Up */
430 kHIDUsage_KeyboardVolumeDown = 0x81, /* Volume Down */
431 kHIDUsage_KeyboardLockingCapsLock = 0x82, /* Locking Caps Lock */
432 kHIDUsage_KeyboardLockingNumLock = 0x83, /* Locking Num Lock */
433 kHIDUsage_KeyboardLockingScrollLock = 0x84, /* Locking Scroll Lock */
434 kHIDUsage_KeypadComma = 0x85, /* Keypad Comma */
435 kHIDUsage_KeypadEqualSignAS400 = 0x86, /* Keypad Equal Sign for AS/400 */
436 kHIDUsage_KeyboardInternational1 = 0x87, /* International1 */
437 kHIDUsage_KeyboardInternational2 = 0x88, /* International2 */
438 kHIDUsage_KeyboardInternational3 = 0x89, /* International3 */
439 kHIDUsage_KeyboardInternational4 = 0x8A, /* International4 */
440 kHIDUsage_KeyboardInternational5 = 0x8B, /* International5 */
441 kHIDUsage_KeyboardInternational6 = 0x8C, /* International6 */
442 kHIDUsage_KeyboardInternational7 = 0x8D, /* International7 */
443 kHIDUsage_KeyboardInternational8 = 0x8E, /* International8 */
444 kHIDUsage_KeyboardInternational9 = 0x8F, /* International9 */
445 kHIDUsage_KeyboardLANG1 = 0x90, /* LANG1 */
446 kHIDUsage_KeyboardLANG2 = 0x91, /* LANG2 */
447 kHIDUsage_KeyboardLANG3 = 0x92, /* LANG3 */
448 kHIDUsage_KeyboardLANG4 = 0x93, /* LANG4 */
449 kHIDUsage_KeyboardLANG5 = 0x94, /* LANG5 */
450 kHIDUsage_KeyboardLANG6 = 0x95, /* LANG6 */
451 kHIDUsage_KeyboardLANG7 = 0x96, /* LANG7 */
452 kHIDUsage_KeyboardLANG8 = 0x97, /* LANG8 */
453 kHIDUsage_KeyboardLANG9 = 0x98, /* LANG9 */
454 kHIDUsage_KeyboardAlternateErase = 0x99, /* AlternateErase */
455 kHIDUsage_KeyboardSysReqOrAttention = 0x9A, /* SysReq/Attention */
456 kHIDUsage_KeyboardCancel = 0x9B, /* Cancel */
457 kHIDUsage_KeyboardClear = 0x9C, /* Clear */
458 kHIDUsage_KeyboardPrior = 0x9D, /* Prior */
459 kHIDUsage_KeyboardReturn = 0x9E, /* Return */
460 kHIDUsage_KeyboardSeparator = 0x9F, /* Separator */
461 kHIDUsage_KeyboardOut = 0xA0, /* Out */
462 kHIDUsage_KeyboardOper = 0xA1, /* Oper */
463 kHIDUsage_KeyboardClearOrAgain = 0xA2, /* Clear/Again */
464 kHIDUsage_KeyboardCrSelOrProps = 0xA3, /* CrSel/Props */
465 kHIDUsage_KeyboardExSel = 0xA4, /* ExSel */
466 /* 0xA5-0xDF Reserved */
467 kHIDUsage_KeyboardLeftControl = 0xE0, /* Left Control */
468 kHIDUsage_KeyboardLeftShift = 0xE1, /* Left Shift */
469 kHIDUsage_KeyboardLeftAlt = 0xE2, /* Left Alt */
470 kHIDUsage_KeyboardLeftGUI = 0xE3, /* Left GUI */
471 kHIDUsage_KeyboardRightControl = 0xE4, /* Right Control */
472 kHIDUsage_KeyboardRightShift = 0xE5, /* Right Shift */
473 kHIDUsage_KeyboardRightAlt = 0xE6, /* Right Alt */
474 kHIDUsage_KeyboardRightGUI = 0xE7, /* Right GUI */
475 /* 0xE8-0xFFFF Reserved */
476 kHIDUsage_Keyboard_Reserved = 0xFFFF,
477 };
478
479 /* LEDs Page (0x08) */
480 /* An LED or indicator is implemented as an On/Off Control (OOF) using the ÒSingle button toggleÓ mode, where a value of 1 will turn on the indicator, and a value of 0 will turn it off. The exceptions are described below. */
481 enum
482 {
483 kHIDUsage_LED_NumLock = 0x01, /* On/Off Control */
484 kHIDUsage_LED_CapsLock = 0x02, /* On/Off Control */
485 kHIDUsage_LED_ScrollLock = 0x03, /* On/Off Control */
486 kHIDUsage_LED_Compose = 0x04, /* On/Off Control */
487 kHIDUsage_LED_Kana = 0x05, /* On/Off Control */
488 kHIDUsage_LED_Power = 0x06, /* On/Off Control */
489 kHIDUsage_LED_Shift = 0x07, /* On/Off Control */
490 kHIDUsage_LED_DoNotDisturb = 0x08, /* On/Off Control */
491 kHIDUsage_LED_Mute = 0x09, /* On/Off Control */
492 kHIDUsage_LED_ToneEnable = 0x0A, /* On/Off Control */
493 kHIDUsage_LED_HighCutFilter = 0x0B, /* On/Off Control */
494 kHIDUsage_LED_LowCutFilter = 0x0C, /* On/Off Control */
495 kHIDUsage_LED_EqualizerEnable = 0x0D, /* On/Off Control */
496 kHIDUsage_LED_SoundFieldOn = 0x0E, /* On/Off Control */
497 kHIDUsage_LED_SurroundOn = 0x0F, /* On/Off Control */
498 kHIDUsage_LED_Repeat = 0x10, /* On/Off Control */
499 kHIDUsage_LED_Stereo = 0x11, /* On/Off Control */
500 kHIDUsage_LED_SamplingRateDetect = 0x12, /* On/Off Control */
501 kHIDUsage_LED_Spinning = 0x13, /* On/Off Control */
502 kHIDUsage_LED_CAV = 0x14, /* On/Off Control */
503 kHIDUsage_LED_CLV = 0x15, /* On/Off Control */
504 kHIDUsage_LED_RecordingFormatDetect = 0x16, /* On/Off Control */
505 kHIDUsage_LED_OffHook = 0x17, /* On/Off Control */
506 kHIDUsage_LED_Ring = 0x18, /* On/Off Control */
507 kHIDUsage_LED_MessageWaiting = 0x19, /* On/Off Control */
508 kHIDUsage_LED_DataMode = 0x1A, /* On/Off Control */
509 kHIDUsage_LED_BatteryOperation = 0x1B, /* On/Off Control */
510 kHIDUsage_LED_BatteryOK = 0x1C, /* On/Off Control */
511 kHIDUsage_LED_BatteryLow = 0x1D, /* On/Off Control */
512 kHIDUsage_LED_Speaker = 0x1E, /* On/Off Control */
513 kHIDUsage_LED_HeadSet = 0x1F, /* On/Off Control */
514 kHIDUsage_LED_Hold = 0x20, /* On/Off Control */
515 kHIDUsage_LED_Microphone = 0x21, /* On/Off Control */
516 kHIDUsage_LED_Coverage = 0x22, /* On/Off Control */
517 kHIDUsage_LED_NightMode = 0x23, /* On/Off Control */
518 kHIDUsage_LED_SendCalls = 0x24, /* On/Off Control */
519 kHIDUsage_LED_CallPickup = 0x25, /* On/Off Control */
520 kHIDUsage_LED_Conference = 0x26, /* On/Off Control */
521 kHIDUsage_LED_StandBy = 0x27, /* On/Off Control */
522 kHIDUsage_LED_CameraOn = 0x28, /* On/Off Control */
523 kHIDUsage_LED_CameraOff = 0x29, /* On/Off Control */
524 kHIDUsage_LED_OnLine = 0x2A, /* On/Off Control */
525 kHIDUsage_LED_OffLine = 0x2B, /* On/Off Control */
526 kHIDUsage_LED_Busy = 0x2C, /* On/Off Control */
527 kHIDUsage_LED_Ready = 0x2D, /* On/Off Control */
528 kHIDUsage_LED_PaperOut = 0x2E, /* On/Off Control */
529 kHIDUsage_LED_PaperJam = 0x2F, /* On/Off Control */
530 kHIDUsage_LED_Remote = 0x30, /* On/Off Control */
531 kHIDUsage_LED_Forward = 0x31, /* On/Off Control */
532 kHIDUsage_LED_Reverse = 0x32, /* On/Off Control */
533 kHIDUsage_LED_Stop = 0x33, /* On/Off Control */
534 kHIDUsage_LED_Rewind = 0x34, /* On/Off Control */
535 kHIDUsage_LED_FastForward = 0x35, /* On/Off Control */
536 kHIDUsage_LED_Play = 0x36, /* On/Off Control */
537 kHIDUsage_LED_Pause = 0x37, /* On/Off Control */
538 kHIDUsage_LED_Record = 0x38, /* On/Off Control */
539 kHIDUsage_LED_Error = 0x39, /* On/Off Control */
540 kHIDUsage_LED_Usage = 0x3A, /* Selector */
541 kHIDUsage_LED_UsageInUseIndicator = 0x3B, /* Usage Switch */
542 kHIDUsage_LED_UsageMultiModeIndicator = 0x3C, /* Usage Modifier */
543 kHIDUsage_LED_IndicatorOn = 0x3D, /* Selector */
544 kHIDUsage_LED_IndicatorFlash = 0x3E, /* Selector */
545 kHIDUsage_LED_IndicatorSlowBlink = 0x3F, /* Selector */
546 kHIDUsage_LED_IndicatorFastBlink = 0x40, /* Selector */
547 kHIDUsage_LED_IndicatorOff = 0x41, /* Selector */
548 kHIDUsage_LED_FlashOnTime = 0x42, /* Dynamic Value */
549 kHIDUsage_LED_SlowBlinkOnTime = 0x43, /* Dynamic Value */
550 kHIDUsage_LED_SlowBlinkOffTime = 0x44, /* Dynamic Value */
551 kHIDUsage_LED_FastBlinkOnTime = 0x45, /* Dynamic Value */
552 kHIDUsage_LED_FastBlinkOffTime = 0x46, /* Dynamic Value */
553 kHIDUsage_LED_UsageIndicatorColor = 0x47, /* Usage Modifier */
554 kHIDUsage_LED_IndicatorRed = 0x48, /* Selector */
555 kHIDUsage_LED_IndicatorGreen = 0x49, /* Selector */
556 kHIDUsage_LED_IndicatorAmber = 0x4A, /* Selector */
557 kHIDUsage_LED_GenericIndicator = 0x4B, /* On/Off Control */
558 kHIDUsage_LED_SystemSuspend = 0x4C, /* On/Off Control */
559 kHIDUsage_LED_ExternalPowerConnected = 0x4D, /* On/Off Control */
560 /* 0x4E - 0xFFFF Reserved */
561 kHIDUsage_LED_Reserved = 0xFFFF,
562 };
563
564 /* Button Page (0x09) */
565 /* The Button page is the first place an application should look for user selection controls. System graphical user interfaces typically employ a pointer and a set of hierarchical selectors to select, move and otherwise manipulate their environment. For these purposes the following assignment of significance can be applied to the Button usages: */
566 /* ¥ Button 1, Primary Button. Used for object selecting, dragging, and double click activation. On MacOS, this is the only button. Microsoft operating systems call this a logical left button, because it */
567 /* is not necessarily physically located on the left of the pointing device. */
568 /* ¥ Button 2, Secondary Button. Used by newer graphical user interfaces to browse object properties. Exposed by systems to applications that typically assign application-specific functionality. */
569 /* ¥ Button 3, Tertiary Button. Optional control. Exposed to applications, but seldom assigned functionality due to prevalence of two- and one-button devices. */
570 /* ¥ Buttons 4 -55. As the button number increases, its significance as a selector decreases. */
571 /* In many ways the assignment of button numbers is similar to the assignment of Effort in Physical descriptors. Button 1 would be used to define the button a finger rests on when the hand is in the Òat restÓ position, that is, virtually no effort is required by the user to activate the button. Button values increment as the finger has to stretch to reach a control. See Section 6.2.3, ÒPhysical Descriptors,Ó in the HID Specification for methods of further qualifying buttons. */
572 enum
573 {
574 kHIDUsage_Button_1 = 0x01, /* (primary/trigger) */
575 kHIDUsage_Button_2 = 0x02, /* (secondary) */
576 kHIDUsage_Button_3 = 0x03, /* (tertiary) */
577 kHIDUsage_Button_4 = 0x04, /* 4th button */
578 /* ... */
579 kHIDUsage_Button_65535 = 0xFFFF,
580 };
581
582 /* Ordinal Page (0x0A) */
583 /* The Ordinal page allows multiple instances of a control or sets of controls to be declared without requiring individual enumeration in the native usage page. For example, it is not necessary to declare usages of Pointer 1, Pointer 2, and so forth on the Generic Desktop page. When parsed, the ordinal instance number is, in essence, concatenated to the usages attached to the encompassing collection to create Pointer 1, Pointer 2, and so forth. */
584 /* For an example, see Section A.5, ÒMultiple Instances of a Control,Ó in Appendix A, ÒUsage Examples.Ó By convention, an Ordinal collection is placed inside the collection for which it is declaring multiple instances. */
585 /* Instances do not have to be identical. */
586 enum
587 {
588 /* 0x00 Reserved */
589 kHIDUsage_Ord_Instance1 = 0x01, /* Usage Modifier */
590 kHIDUsage_Ord_Instance2 = 0x02, /* Usage Modifier */
591 kHIDUsage_Ord_Instance3 = 0x03, /* Usage Modifier */
592 kHIDUsage_Ord_Instance4 = 0x04, /* Usage Modifier */
593 kHIDUsage_Ord_Instance65535 = 0xFFFF, /* Usage Modifier */
594 };
595
596 /* Telephony Page (0x0B) */
597 /* This usage page defines the keytop and control usages for telephony devices. */
598 /* Indicators on a phone are handled by wrapping them in LED: Usage In Use Indicator and LED: Usage Selected Indicator usages. For example, a message-indicator LED would be identified by a Telephony: Message usage declared as a Feature or Output in a LED: Usage In Use Indicator collection. */
599 /* See Section 14, ÒConsumer Page (0x0C),Ó for audio volume and tone controls. */
600 enum
601 {
602 kHIDUsage_Tfon_Phone = 0x01, /* Application Collection */
603 kHIDUsage_Tfon_AnsweringMachine = 0x02, /* Application Collection */
604 kHIDUsage_Tfon_MessageControls = 0x03, /* Logical Collection */
605 kHIDUsage_Tfon_Handset = 0x04, /* Logical Collection */
606 kHIDUsage_Tfon_Headset = 0x05, /* Logical Collection */
607 kHIDUsage_Tfon_TelephonyKeyPad = 0x06, /* Named Array */
608 kHIDUsage_Tfon_ProgrammableButton = 0x07, /* Named Array */
609 /* 0x08 - 0x1F Reserved */
610 kHIDUsage_Tfon_HookSwitch = 0x20, /* On/Off Control */
611 kHIDUsage_Tfon_Flash = 0x21, /* Momentary Control */
612 kHIDUsage_Tfon_Feature = 0x22, /* One-Shot Control */
613 kHIDUsage_Tfon_Hold = 0x23, /* On/Off Control */
614 kHIDUsage_Tfon_Redial = 0x24, /* One-Shot Control */
615 kHIDUsage_Tfon_Transfer = 0x25, /* One-Shot Control */
616 kHIDUsage_Tfon_Drop = 0x26, /* One-Shot Control */
617 kHIDUsage_Tfon_Park = 0x27, /* On/Off Control */
618 kHIDUsage_Tfon_ForwardCalls = 0x28, /* On/Off Control */
619 kHIDUsage_Tfon_AlternateFunction = 0x29, /* Momentary Control */
620 kHIDUsage_Tfon_Line = 0x2A, /* One-Shot Control */
621 kHIDUsage_Tfon_SpeakerPhone = 0x2B, /* On/Off Control */
622 kHIDUsage_Tfon_Conference = 0x2C, /* On/Off Control */
623 kHIDUsage_Tfon_RingEnable = 0x2D, /* On/Off Control */
624 kHIDUsage_Tfon_Ring = 0x2E, /* Selector */
625 kHIDUsage_Tfon_PhoneMute = 0x2F, /* On/Off Control */
626 kHIDUsage_Tfon_CallerID = 0x30, /* Momentary Control */
627 /* 0x31 - 0x4F Reserved */
628 kHIDUsage_Tfon_SpeedDial = 0x50, /* One-Shot Control */
629 kHIDUsage_Tfon_StoreNumber = 0x51, /* One-Shot Control */
630 kHIDUsage_Tfon_RecallNumber = 0x52, /* One-Shot Control */
631 kHIDUsage_Tfon_PhoneDirectory = 0x53, /* On/Off Control */
632 /* 0x54 - 0x6F Reserved */
633 kHIDUsage_Tfon_VoiceMail = 0x70, /* On/Off Control */
634 kHIDUsage_Tfon_ScreenCalls = 0x71, /* On/Off Control */
635 kHIDUsage_Tfon_DoNotDisturb = 0x72, /* On/Off Control */
636 kHIDUsage_Tfon_Message = 0x73, /* One-Shot Control */
637 kHIDUsage_Tfon_AnswerOnOrOff = 0x74, /* On/Off Control */
638 /* 0x75 - 0x8F Reserved */
639 kHIDUsage_Tfon_InsideDialTone = 0x90, /* Momentary Control */
640 kHIDUsage_Tfon_OutsideDialTone = 0x91, /* Momentary Control */
641 kHIDUsage_Tfon_InsideRingTone = 0x92, /* Momentary Control */
642 kHIDUsage_Tfon_OutsideRingTone = 0x93, /* Momentary Control */
643 kHIDUsage_Tfon_PriorityRingTone = 0x94, /* Momentary Control */
644 kHIDUsage_Tfon_InsideRingback = 0x95, /* Momentary Control */
645 kHIDUsage_Tfon_PriorityRingback = 0x96, /* Momentary Control */
646 kHIDUsage_Tfon_LineBusyTone = 0x97, /* Momentary Control */
647 kHIDUsage_Tfon_ReorderTone = 0x98, /* Momentary Control */
648 kHIDUsage_Tfon_CallWaitingTone = 0x99, /* Momentary Control */
649 kHIDUsage_Tfon_ConfirmationTone1 = 0x9A, /* Momentary Control */
650 kHIDUsage_Tfon_ConfirmationTone2 = 0x9B, /* Momentary Control */
651 kHIDUsage_Tfon_TonesOff = 0x9C, /* On/Off Control */
652 kHIDUsage_Tfon_OutsideRingback = 0x9D, /* Momentary Control */
653 /* 0x9E - 0xAF Reserved */
654 kHIDUsage_Tfon_PhoneKey0 = 0xB0, /* Selector/One-Shot Control */
655 kHIDUsage_Tfon_PhoneKey1 = 0xB1, /* Selector/One-Shot Control */
656 kHIDUsage_Tfon_PhoneKey2 = 0xB2, /* Selector/One-Shot Control */
657 kHIDUsage_Tfon_PhoneKey3 = 0xB3, /* Selector/One-Shot Control */
658 kHIDUsage_Tfon_PhoneKey4 = 0xB4, /* Selector/One-Shot Control */
659 kHIDUsage_Tfon_PhoneKey5 = 0xB5, /* Selector/One-Shot Control */
660 kHIDUsage_Tfon_PhoneKey6 = 0xB6, /* Selector/One-Shot Control */
661 kHIDUsage_Tfon_PhoneKey7 = 0xB7, /* Selector/One-Shot Control */
662 kHIDUsage_Tfon_PhoneKey8 = 0xB8, /* Selector/One-Shot Control */
663 kHIDUsage_Tfon_PhoneKey9 = 0xB9, /* Selector/One-Shot Control */
664 kHIDUsage_Tfon_PhoneKeyStar = 0xBA, /* Selector/One-Shot Control */
665 kHIDUsage_Tfon_PhoneKeyPound = 0xBB, /* Selector/One-Shot Control */
666 kHIDUsage_Tfon_PhoneKeyA = 0xBC, /* Selector/One-Shot Control */
667 kHIDUsage_Tfon_PhoneKeyB = 0xBD, /* Selector/One-Shot Control */
668 kHIDUsage_Tfon_PhoneKeyC = 0xBE, /* Selector/One-Shot Control */
669 kHIDUsage_Tfon_PhoneKeyD = 0xBF, /* Selector/One-Shot Control */
670 /* 0xC0 - 0xFFFF Reserved */
671 kHIDUsage_TFon_Reserved = 0xFFFF,
672 };
673
674 /* Consumer Page (0x0C) */
675 /* All controls on the Consumer page are application-specific. That is, they affect a specific device, not the system as a whole. */
676 enum
677 {
678 kHIDUsage_Csmr_ConsumerControl = 0x01, /* Application Collection */
679 kHIDUsage_Csmr_NumericKeyPad = 0x02, /* Named Array */
680 kHIDUsage_Csmr_ProgrammableButtons = 0x03, /* Named Array */
681 /* 0x03 - 0x1F Reserved */
682 kHIDUsage_Csmr_Plus10 = 0x20, /* One-Shot Control */
683 kHIDUsage_Csmr_Plus100 = 0x21, /* One-Shot Control */
684 kHIDUsage_Csmr_AMOrPM = 0x22, /* One-Shot Control */
685 /* 0x23 - 0x3F Reserved */
686 kHIDUsage_Csmr_Power = 0x30, /* On/Off Control */
687 kHIDUsage_Csmr_Reset = 0x31, /* One-Shot Control */
688 kHIDUsage_Csmr_Sleep = 0x32, /* One-Shot Control */
689 kHIDUsage_Csmr_SleepAfter = 0x33, /* One-Shot Control */
690 kHIDUsage_Csmr_SleepMode = 0x34, /* Re-Trigger Control */
691 kHIDUsage_Csmr_Illumination = 0x35, /* On/Off Control */
692 kHIDUsage_Csmr_FunctionButtons = 0x36, /* Named Array */
693 /* 0x37 - 0x3F Reserved */
694 kHIDUsage_Csmr_Menu = 0x40, /* On/Off Control */
695 kHIDUsage_Csmr_MenuPick = 0x41, /* One-Shot Control */
696 kHIDUsage_Csmr_MenuUp = 0x42, /* One-Shot Control */
697 kHIDUsage_Csmr_MenuDown = 0x43, /* One-Shot Control */
698 kHIDUsage_Csmr_MenuLeft = 0x44, /* One-Shot Control */
699 kHIDUsage_Csmr_MenuRight = 0x45, /* One-Shot Control */
700 kHIDUsage_Csmr_MenuEscape = 0x46, /* One-Shot Control */
701 kHIDUsage_Csmr_MenuValueIncrease = 0x47, /* One-Shot Control */
702 kHIDUsage_Csmr_MenuValueDecrease = 0x48, /* One-Shot Control */
703 /* 0x49 - 0x5F Reserved */
704 kHIDUsage_Csmr_DataOnScreen = 0x60, /* On/Off Control */
705 kHIDUsage_Csmr_ClosedCaption = 0x61, /* On/Off Control */
706 kHIDUsage_Csmr_ClosedCaptionSelect = 0x62, /* Selector */
707 kHIDUsage_Csmr_VCROrTV = 0x63, /* On/Off Control */
708 kHIDUsage_Csmr_BroadcastMode = 0x64, /* One-Shot Control */
709 kHIDUsage_Csmr_Snapshot = 0x65, /* One-Shot Control */
710 kHIDUsage_Csmr_Still = 0x66, /* One-Shot Control */
711 /* 0x67 - 0x7F Reserved */
712 kHIDUsage_Csmr_Selection = 0x80, /* Named Array */
713 kHIDUsage_Csmr_Assign = 0x81, /* Selector */
714 kHIDUsage_Csmr_ModeStep = 0x82, /* One-Shot Control */
715 kHIDUsage_Csmr_RecallLast = 0x83, /* One-Shot Control */
716 kHIDUsage_Csmr_EnterChannel = 0x84, /* One-Shot Control */
717 kHIDUsage_Csmr_OrderMovie = 0x85, /* One-Shot Control */
718 kHIDUsage_Csmr_Channel = 0x86, /* Linear Control */
719 kHIDUsage_Csmr_MediaSelection = 0x87, /* Selector */
720 kHIDUsage_Csmr_MediaSelectComputer = 0x88, /* Selector */
721 kHIDUsage_Csmr_MediaSelectTV = 0x89, /* Selector */
722 kHIDUsage_Csmr_MediaSelectWWW = 0x8A, /* Selector */
723 kHIDUsage_Csmr_MediaSelectDVD = 0x8B, /* Selector */
724 kHIDUsage_Csmr_MediaSelectTelephone = 0x8C, /* Selector */
725 kHIDUsage_Csmr_MediaSelectProgramGuide = 0x8D, /* Selector */
726 kHIDUsage_Csmr_MediaSelectVideoPhone = 0x8E, /* Selector */
727 kHIDUsage_Csmr_MediaSelectGames = 0x8F, /* Selector */
728 kHIDUsage_Csmr_MediaSelectMessages = 0x90, /* Selector */
729 kHIDUsage_Csmr_MediaSelectCD = 0x91, /* Selector */
730 kHIDUsage_Csmr_MediaSelectVCR = 0x92, /* Selector */
731 kHIDUsage_Csmr_MediaSelectTuner = 0x93, /* Selector */
732 kHIDUsage_Csmr_Quit = 0x94, /* One-Shot Control */
733 kHIDUsage_Csmr_Help = 0x95, /* On/Off Control */
734 kHIDUsage_Csmr_MediaSelectTape = 0x96, /* Selector */
735 kHIDUsage_Csmr_MediaSelectCable = 0x97, /* Selector */
736 kHIDUsage_Csmr_MediaSelectSatellite = 0x98, /* Selector */
737 kHIDUsage_Csmr_MediaSelectSecurity = 0x99, /* Selector */
738 kHIDUsage_Csmr_MediaSelectHome = 0x9A, /* Selector */
739 kHIDUsage_Csmr_MediaSelectCall = 0x9B, /* Selector */
740 kHIDUsage_Csmr_ChannelIncrement = 0x9C, /* One-Shot Control */
741 kHIDUsage_Csmr_ChannelDecrement = 0x9D, /* One-Shot Control */
742 kHIDUsage_Csmr_Media = 0x9E, /* Selector */
743 /* 0x9F Reserved */
744 kHIDUsage_Csmr_VCRPlus = 0xA0, /* One-Shot Control */
745 kHIDUsage_Csmr_Once = 0xA1, /* One-Shot Control */
746 kHIDUsage_Csmr_Daily = 0xA2, /* One-Shot Control */
747 kHIDUsage_Csmr_Weekly = 0xA3, /* One-Shot Control */
748 kHIDUsage_Csmr_Monthly = 0xA4, /* One-Shot Control */
749 /* 0xA5 - 0xAF Reserved */
750 kHIDUsage_Csmr_Play = 0xB0, /* On/Off Control */
751 kHIDUsage_Csmr_Pause = 0xB1, /* On/Off Control */
752 kHIDUsage_Csmr_Record = 0xB2, /* On/Off Control */
753 kHIDUsage_Csmr_FastForward = 0xB3, /* On/Off Control */
754 kHIDUsage_Csmr_Rewind = 0xB4, /* On/Off Control */
755 kHIDUsage_Csmr_ScanNextTrack = 0xB5, /* One-Shot Control */
756 kHIDUsage_Csmr_ScanPreviousTrack = 0xB6, /* One-Shot Control */
757 kHIDUsage_Csmr_Stop = 0xB7, /* One-Shot Control */
758 kHIDUsage_Csmr_Eject = 0xB8, /* One-Shot Control */
759 kHIDUsage_Csmr_RandomPlay = 0xB9, /* On/Off Control */
760 kHIDUsage_Csmr_SelectDisc = 0xBA, /* Named Array */
761 kHIDUsage_Csmr_EnterDisc = 0xBB, /* Momentary Control */
762 kHIDUsage_Csmr_Repeat = 0xBC, /* One-Shot Control */
763 kHIDUsage_Csmr_Tracking = 0xBD, /* Linear Control */
764 kHIDUsage_Csmr_TrackNormal = 0xBE, /* One-Shot Control */
765 kHIDUsage_Csmr_SlowTracking = 0xBF, /* Linear Control */
766 kHIDUsage_Csmr_FrameForward = 0xC0, /* Re-Trigger Control */
767 kHIDUsage_Csmr_FrameBack = 0xC1, /* Re-Trigger Control */
768 kHIDUsage_Csmr_Mark = 0xC2, /* One-Shot Control */
769 kHIDUsage_Csmr_ClearMark = 0xC3, /* One-Shot Control */
770 kHIDUsage_Csmr_RepeatFromMark = 0xC4, /* On/Off Control */
771 kHIDUsage_Csmr_ReturnToMark = 0xC5, /* One-Shot Control */
772 kHIDUsage_Csmr_SearchMarkForward = 0xC6, /* One-Shot Control */
773 kHIDUsage_Csmr_SearchMarkBackwards = 0xC7, /* One-Shot Control */
774 kHIDUsage_Csmr_CounterReset = 0xC8, /* One-Shot Control */
775 kHIDUsage_Csmr_ShowCounter = 0xC9, /* One-Shot Control */
776 kHIDUsage_Csmr_TrackingIncrement = 0xCA, /* Re-Trigger Control */
777 kHIDUsage_Csmr_TrackingDecrement = 0xCB, /* Re-Trigger Control */
778 kHIDUsage_Csmr_StopOrEject = 0xCC, /* One-Shot Control */
779 kHIDUsage_Csmr_PlayOrPause = 0xCD, /* One-Shot Control */
780 kHIDUsage_Csmr_PlayOrSkip = 0xCE, /* One-Shot Control */
781 /* 0xCF - 0xDF Reserved */
782 kHIDUsage_Csmr_Volume = 0xE0, /* Linear Control */
783 kHIDUsage_Csmr_Balance = 0xE1, /* Linear Control */
784 kHIDUsage_Csmr_Mute = 0xE2, /* On/Off Control */
785 kHIDUsage_Csmr_Bass = 0xE3, /* Linear Control */
786 kHIDUsage_Csmr_Treble = 0xE4, /* Linear Control */
787 kHIDUsage_Csmr_BassBoost = 0xE5, /* On/Off Control */
788 kHIDUsage_Csmr_SurroundMode = 0xE6, /* One-Shot Control */
789 kHIDUsage_Csmr_Loudness = 0xE7, /* On/Off Control */
790 kHIDUsage_Csmr_MPX = 0xE8, /* On/Off Control */
791 kHIDUsage_Csmr_VolumeIncrement = 0xE9, /* Re-Trigger Control */
792 kHIDUsage_Csmr_VolumeDecrement = 0xEA, /* Re-Trigger Control */
793 /* 0xEB - 0xEF Reserved */
794 kHIDUsage_Csmr_Speed = 0xF0, /* Selector */
795 kHIDUsage_Csmr_PlaybackSpeed = 0xF1, /* Named Array */
796 kHIDUsage_Csmr_StandardPlay = 0xF2, /* Selector */
797 kHIDUsage_Csmr_LongPlay = 0xF3, /* Selector */
798 kHIDUsage_Csmr_ExtendedPlay = 0xF4, /* Selector */
799 kHIDUsage_Csmr_Slow = 0xF5, /* One-Shot Control */
800 /* 0xF6 - 0xFF Reserved */
801 kHIDUsage_Csmr_FanEnable = 0x100, /* On/Off Control */
802 kHIDUsage_Csmr_FanSpeed = 0x101, /* Linear Control */
803 kHIDUsage_Csmr_LightEnable = 0x102, /* On/Off Control */
804 kHIDUsage_Csmr_LightIlluminationLevel = 0x103, /* Linear Control */
805 kHIDUsage_Csmr_ClimateControlEnable = 0x104, /* On/Off Control */
806 kHIDUsage_Csmr_RoomTemperature = 0x105, /* Linear Control */
807 kHIDUsage_Csmr_SecurityEnable = 0x106, /* On/Off Control */
808 kHIDUsage_Csmr_FireAlarm = 0x107, /* One-Shot Control */
809 kHIDUsage_Csmr_PoliceAlarm = 0x108, /* One-Shot Control */
810 /* 0x109 - 0x14F Reserved */
811 kHIDUsage_Csmr_BalanceRight = 0x150, /* Re-Trigger Control */
812 kHIDUsage_Csmr_BalanceLeft = 0x151, /* Re-Trigger Control */
813 kHIDUsage_Csmr_BassIncrement = 0x152, /* Re-Trigger Control */
814 kHIDUsage_Csmr_BassDecrement = 0x153, /* Re-Trigger Control */
815 kHIDUsage_Csmr_TrebleIncrement = 0x154, /* Re-Trigger Control */
816 kHIDUsage_Csmr_TrebleDecrement = 0x155, /* Re-Trigger Control */
817 /* 0x156 - 0x15F Reserved */
818 kHIDUsage_Csmr_SpeakerSystem = 0x160, /* Logical Collection */
819 kHIDUsage_Csmr_ChannelLeft = 0x161, /* Logical Collection */
820 kHIDUsage_Csmr_ChannelRight = 0x162, /* Logical Collection */
821 kHIDUsage_Csmr_ChannelCenter = 0x163, /* Logical Collection */
822 kHIDUsage_Csmr_ChannelFront = 0x164, /* Logical Collection */
823 kHIDUsage_Csmr_ChannelCenterFront = 0x165, /* Logical Collection */
824 kHIDUsage_Csmr_ChannelSide = 0x166, /* Logical Collection */
825 kHIDUsage_Csmr_ChannelSurround = 0x167, /* Logical Collection */
826 kHIDUsage_Csmr_ChannelLowFrequencyEnhancement = 0x168, /* Logical Collection */
827 kHIDUsage_Csmr_ChannelTop = 0x169, /* Logical Collection */
828 kHIDUsage_Csmr_ChannelUnknown = 0x16A, /* Logical Collection */
829 /* 0x16B - 0x16F Reserved */
830 kHIDUsage_Csmr_SubChannel = 0x170, /* Linear Control */
831 kHIDUsage_Csmr_SubChannelIncrement = 0x171, /* One-Shot Control */
832 kHIDUsage_Csmr_SubChannelDecrement = 0x172, /* One-Shot Control */
833 kHIDUsage_Csmr_AlternateAudioIncrement = 0x173, /* One-Shot Control */
834 kHIDUsage_Csmr_AlternateAudioDecrement = 0x174, /* One-Shot Control */
835 /* 0x175 - 0x17F Reserved */
836 kHIDUsage_Csmr_ApplicationLaunchButtons = 0x180, /* Named Array */
837 kHIDUsage_Csmr_ALLaunchButtonConfigurationTool = 0x181, /* Selector */
838 kHIDUsage_Csmr_ALProgrammableButtonConfiguration = 0x182, /* Selector */
839 kHIDUsage_Csmr_ALConsumerControlConfiguration = 0x183, /* Selector */
840 kHIDUsage_Csmr_ALWordProcessor = 0x184, /* Selector */
841 kHIDUsage_Csmr_ALTextEditor = 0x185, /* Selector */
842 kHIDUsage_Csmr_ALSpreadsheet = 0x186, /* Selector */
843 kHIDUsage_Csmr_ALGraphicsEditor = 0x187, /* Selector */
844 kHIDUsage_Csmr_ALPresentationApp = 0x188, /* Selector */
845 kHIDUsage_Csmr_ALDatabaseApp = 0x189, /* Selector */
846 kHIDUsage_Csmr_ALEmailReader = 0x18A, /* Selector */
847 kHIDUsage_Csmr_ALNewsreader = 0x18B, /* Selector */
848 kHIDUsage_Csmr_ALVoicemail = 0x18C, /* Selector */
849 kHIDUsage_Csmr_ALContactsOrAddressBook = 0x18D, /* Selector */
850 kHIDUsage_Csmr_ALCalendarOrSchedule = 0x18E, /* Selector */
851 kHIDUsage_Csmr_ALTaskOrProjectManager = 0x18F, /* Selector */
852 kHIDUsage_Csmr_ALLogOrJournalOrTimecard = 0x190, /* Selector */
853 kHIDUsage_Csmr_ALCheckbookOrFinance = 0x191, /* Selector */
854 kHIDUsage_Csmr_ALCalculator = 0x192, /* Selector */
855 kHIDUsage_Csmr_ALAOrVCaptureOrPlayback = 0x193, /* Selector */
856 kHIDUsage_Csmr_ALLocalMachineBrowser = 0x194, /* Selector */
857 kHIDUsage_Csmr_ALLANOrWANBrowser = 0x195, /* Selector */
858 kHIDUsage_Csmr_ALInternetBrowser = 0x196, /* Selector */
859 kHIDUsage_Csmr_ALRemoteNetworkingOrISPConnect = 0x197, /* Selector */
860 kHIDUsage_Csmr_ALNetworkConference = 0x198, /* Selector */
861 kHIDUsage_Csmr_ALNetworkChat = 0x199, /* Selector */
862 kHIDUsage_Csmr_ALTelephonyOrDialer = 0x19A, /* Selector */
863 kHIDUsage_Csmr_ALLogon = 0x19B, /* Selector */
864 kHIDUsage_Csmr_ALLogoff = 0x19C, /* Selector */
865 kHIDUsage_Csmr_ALLogonOrLogoff = 0x19D, /* Selector */
866 kHIDUsage_Csmr_ALTerminalLockOrScreensaver = 0x19E, /* Selector */
867 kHIDUsage_Csmr_ALControlPanel = 0x19F, /* Selector */
868 kHIDUsage_Csmr_ALCommandLineProcessorOrRun = 0x1A0, /* Selector */
869 kHIDUsage_Csmr_ALProcessOrTaskManager = 0x1A1, /* Selector */
870 kHIDUsage_Csmr_AL = 0x1A2, /* Selector */
871 kHIDUsage_Csmr_ALNextTaskOrApplication = 0x143, /* Selector */
872 kHIDUsage_Csmr_ALPreviousTaskOrApplication = 0x1A4, /* Selector */
873 kHIDUsage_Csmr_ALPreemptiveHaltTaskOrApplication = 0x1A5, /* Selector */
874 /* 0x1A6 - 0x1FF Reserved */
875 kHIDUsage_Csmr_GenericGUIApplicationControls = 0x200, /* Named Array */
876 kHIDUsage_Csmr_ACNew = 0x201, /* Selector */
877 kHIDUsage_Csmr_ACOpen = 0x202, /* Selector */
878 kHIDUsage_Csmr_ACClose = 0x203, /* Selector */
879 kHIDUsage_Csmr_ACExit = 0x204, /* Selector */
880 kHIDUsage_Csmr_ACMaximize = 0x205, /* Selector */
881 kHIDUsage_Csmr_ACMinimize = 0x206, /* Selector */
882 kHIDUsage_Csmr_ACSave = 0x207, /* Selector */
883 kHIDUsage_Csmr_ACPrint = 0x208, /* Selector */
884 kHIDUsage_Csmr_ACProperties = 0x209, /* Selector */
885 kHIDUsage_Csmr_ACUndo = 0x21A, /* Selector */
886 kHIDUsage_Csmr_ACCopy = 0x21B, /* Selector */
887 kHIDUsage_Csmr_ACCut = 0x21C, /* Selector */
888 kHIDUsage_Csmr_ACPaste = 0x21D, /* Selector */
889 kHIDUsage_Csmr_AC = 0x21E, /* Selector */
890 kHIDUsage_Csmr_ACFind = 0x21F, /* Selector */
891 kHIDUsage_Csmr_ACFindandReplace = 0x220, /* Selector */
892 kHIDUsage_Csmr_ACSearch = 0x221, /* Selector */
893 kHIDUsage_Csmr_ACGoTo = 0x222, /* Selector */
894 kHIDUsage_Csmr_ACHome = 0x223, /* Selector */
895 kHIDUsage_Csmr_ACBack = 0x224, /* Selector */
896 kHIDUsage_Csmr_ACForward = 0x225, /* Selector */
897 kHIDUsage_Csmr_ACStop = 0x226, /* Selector */
898 kHIDUsage_Csmr_ACRefresh = 0x227, /* Selector */
899 kHIDUsage_Csmr_ACPreviousLink = 0x228, /* Selector */
900 kHIDUsage_Csmr_ACNextLink = 0x229, /* Selector */
901 kHIDUsage_Csmr_ACBookmarks = 0x22A, /* Selector */
902 kHIDUsage_Csmr_ACHistory = 0x22B, /* Selector */
903 kHIDUsage_Csmr_ACSubscriptions = 0x22C, /* Selector */
904 kHIDUsage_Csmr_ACZoomIn = 0x22D, /* Selector */
905 kHIDUsage_Csmr_ACZoomOut = 0x22E, /* Selector */
906 kHIDUsage_Csmr_ACZoom = 0x22F, /* Selector */
907 kHIDUsage_Csmr_ACFullScreenView = 0x230, /* Selector */
908 kHIDUsage_Csmr_ACNormalView = 0x231, /* Selector */
909 kHIDUsage_Csmr_ACViewToggle = 0x232, /* Selector */
910 kHIDUsage_Csmr_ACScrollUp = 0x233, /* Selector */
911 kHIDUsage_Csmr_ACScrollDown = 0x234, /* Selector */
912 kHIDUsage_Csmr_ACScroll = 0x235, /* Selector */
913 kHIDUsage_Csmr_ACPanLeft = 0x236, /* Selector */
914 kHIDUsage_Csmr_ACPanRight = 0x237, /* Selector */
915 kHIDUsage_Csmr_ACPan = 0x238, /* Selector */
916 kHIDUsage_Csmr_ACNewWindow = 0x239, /* Selector */
917 kHIDUsage_Csmr_ACTileHorizontally = 0x23A, /* Selector */
918 kHIDUsage_Csmr_ACTileVertically = 0x23B, /* Selector */
919 kHIDUsage_Csmr_ACFormat = 0x23C, /* Selector */
920 /* 0x23D - 0xFFFF Reserved */
921 kHIDUsage_Csmr_Reserved = 0xFFFF,
922 };
923
924 /* Digitizer Page (0x0D) */
925 /* This section provides detailed descriptions of the usages employed by Digitizer Devices. */
926 enum
927 {
928 kHIDUsage_Dig_Digitizer = 0x01, /* Application Collection */
929 kHIDUsage_Dig_Pen = 0x02, /* Application Collection */
930 kHIDUsage_Dig_LightPen = 0x03, /* Application Collection */
931 kHIDUsage_Dig_TouchScreen = 0x04, /* Application Collection */
932 kHIDUsage_Dig_TouchPad = 0x05, /* Application Collection */
933 kHIDUsage_Dig_WhiteBoard = 0x06, /* Application Collection */
934 kHIDUsage_Dig_CoordinateMeasuringMachine = 0x07, /* Application Collection */
935 kHIDUsage_Dig_3DDigitizer = 0x08, /* Application Collection */
936 kHIDUsage_Dig_StereoPlotter = 0x09, /* Application Collection */
937 kHIDUsage_Dig_ArticulatedArm = 0x0A, /* Application Collection */
938 kHIDUsage_Dig_Armature = 0x0B, /* Application Collection */
939 kHIDUsage_Dig_MultiplePointDigitizer = 0x0C, /* Application Collection */
940 kHIDUsage_Dig_FreeSpaceWand = 0x0D, /* Application Collection */
941 /* 0x0E - 0x1F Reserved */
942 kHIDUsage_Dig_Stylus = 0x20, /* Logical Collection */
943 kHIDUsage_Dig_Puck = 0x21, /* Logical Collection */
944 kHIDUsage_Dig_Finger = 0x22, /* Logical Collection */
945 /* 0x23 - 0x2F Reserved */
946 kHIDUsage_Dig_TipPressure = 0x30, /* Dynamic Value */
947 kHIDUsage_Dig_BarrelPressure = 0x31, /* Dynamic Value */
948 kHIDUsage_Dig_InRange = 0x32, /* Momentary Control */
949 kHIDUsage_Dig_Touch = 0x33, /* Momentary Control */
950 kHIDUsage_Dig_Untouch = 0x34, /* One-Shot Control */
951 kHIDUsage_Dig_Tap = 0x35, /* One-Shot Control */
952 kHIDUsage_Dig_Quality = 0x36, /* Dynamic Value */
953 kHIDUsage_Dig_DataValid = 0x37, /* Momentary Control */
954 kHIDUsage_Dig_TransducerIndex = 0x38, /* Dynamic Value */
955 kHIDUsage_Dig_TabletFunctionKeys = 0x39, /* Logical Collection */
956 kHIDUsage_Dig_ProgramChangeKeys = 0x3A, /* Logical Collection */
957 kHIDUsage_Dig_BatteryStrength = 0x3B, /* Dynamic Value */
958 kHIDUsage_Dig_Invert = 0x3C, /* Momentary Control */
959 kHIDUsage_Dig_XTilt = 0x3D, /* Dynamic Value */
960 kHIDUsage_Dig_YTilt = 0x3E, /* Dynamic Value */
961 kHIDUsage_Dig_Azimuth = 0x3F, /* Dynamic Value */
962 kHIDUsage_Dig_Altitude = 0x40, /* Dynamic Value */
963 kHIDUsage_Dig_Twist = 0x41, /* Dynamic Value */
964 kHIDUsage_Dig_TipSwitch = 0x42, /* Momentary Control */
965 kHIDUsage_Dig_SecondaryTipSwitch = 0x43, /* Momentary Control */
966 kHIDUsage_Dig_BarrelSwitch = 0x44, /* Momentary Control */
967 kHIDUsage_Dig_Eraser = 0x45, /* Momentary Control */
968 kHIDUsage_Dig_TabletPick = 0x46, /* Momentary Control */
969 /* 0x47 - 0xFFFF Reserved */
970 kHIDUsage_Dig_Reserved = 0xFFFF,
971 };
972
973 /* AlphanumericDisplay Page (0x14) */
974 /* The Alphanumeric Display page is intended for use by simple alphanumeric displays that are used on consumer devices. */
975 enum
976 {
977 kHIDUsage_AD_AlphanumericDisplay = 0x01, /* Application Collection */
978 /* 0x02 - 0x1F Reserved */
979 kHIDUsage_AD_DisplayAttributesReport = 0x20, /* Logical Collection */
980 kHIDUsage_AD_ASCIICharacterSet = 0x21, /* Static Flag */
981 kHIDUsage_AD_DataReadBack = 0x22, /* Static Flag */
982 kHIDUsage_AD_FontReadBack = 0x23, /* Static Flag */
983 kHIDUsage_AD_DisplayControlReport = 0x24, /* Logical Collection */
984 kHIDUsage_AD_ClearDisplay = 0x25, /* Dynamic Flag */
985 kHIDUsage_AD_DisplayEnable = 0x26, /* Dynamic Flag */
986 kHIDUsage_AD_ScreenSaverDelay = 0x27, /* Static Value */
987 kHIDUsage_AD_ScreenSaverEnable = 0x28, /* Dynamic Flag */
988 kHIDUsage_AD_VerticalScroll = 0x29, /* Static Flag */
989 kHIDUsage_AD_HorizontalScroll = 0x2A, /* Static Flag */
990 kHIDUsage_AD_CharacterReport = 0x2B, /* Logical Collection */
991 kHIDUsage_AD_DisplayData = 0x2C, /* Dynamic Value */
992 kHIDUsage_AD_DisplayStatus = 0x2D, /* Logical Collection */
993 kHIDUsage_AD_StatNotReady = 0x2E, /* Selector */
994 kHIDUsage_AD_StatReady = 0x2F, /* Selector */
995 kHIDUsage_AD_ErrNotaloadablecharacter = 0x30, /* Selector */
996 kHIDUsage_AD_ErrFontdatacannotberead = 0x31, /* Selector */
997 kHIDUsage_AD_CursorPositionReport = 0x32, /* Logical Collection */
998 kHIDUsage_AD_Row = 0x33, /* Dynamic Value */
999 kHIDUsage_AD_Column = 0x34, /* Dynamic Value */
1000 kHIDUsage_AD_Rows = 0x35, /* Static Value */
1001 kHIDUsage_AD_Columns = 0x36, /* Static Value */
1002 kHIDUsage_AD_CursorPixelPositioning = 0x37, /* Static Flag */
1003 kHIDUsage_AD_CursorMode = 0x38, /* Dynamic Flag */
1004 kHIDUsage_AD_CursorEnable = 0x39, /* Dynamic Flag */
1005 kHIDUsage_AD_CursorBlink = 0x3A, /* Dynamic Flag */
1006 kHIDUsage_AD_FontReport = 0x3B, /* Logical Collection */
1007 kHIDUsage_AD_FontData = 0x3C, /* Buffered Byte */
1008 kHIDUsage_AD_CharacterWidth = 0x3D, /* Static Value */
1009 kHIDUsage_AD_CharacterHeight = 0x3E, /* Static Value */
1010 kHIDUsage_AD_CharacterSpacingHorizontal = 0x3F, /* Static Value */
1011 kHIDUsage_AD_CharacterSpacingVertical = 0x40, /* Static Value */
1012 kHIDUsage_AD_UnicodeCharacterSet = 0x41, /* Static Flag */
1013 /* 0x42 - 0xFFFF Reserved */
1014 kHIDUsage_AD_Reserved = 0xFFFF,
1015 };
1016
1017 #endif /* _IOHIDUSAGETABLES_H */