/* * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * The contents of this file constitute Original Code as defined in and * are subject to the Apple Public Source License Version 1.1 (the * "License"). You may not use this file except in compliance with the * License. Please obtain a copy of the License at * http://www.apple.com/publicsource and read it before using this file. * * This Original Code and all software distributed under the License are * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the * License for the specific language governing rights and limitations * under the License. * * @APPLE_LICENSE_HEADER_END@ */ /* File: IOUSSBHIDParser.h Contains: Definition of the interfaces to the HIDLib shared library contained in OS 9's HID.h. */ #ifndef __IOUSBHIDPARSER__ #define __IOUSBHIDPARSER__ #ifndef __MACTYPES__ #include #endif #ifndef __MACERRORS__ #include #endif #ifdef __cplusplus extern "C" { #endif /* types of HID reports (input, output, feature)*/ enum { kHIDInputReport = 1, kHIDOutputReport = 2, kHIDFeatureReport = 3, kHIDUnknownReport = 255 }; /* constants used in HIDButtonCapabilities and HIDValueCapabilities structures*/ enum { /* While HIDButtonCaps and HIDValueCaps have no version #, they can be*/ /* thought of as version 1 of HIDButtonCapabilities and HIDValueCapabilities.*/ kHIDCurrentCapabilitiesPBVersion = 2 }; /* flags passed to HIDOpenReportDescriptor*/ enum { kHIDFlag_StrictErrorChecking = 0x00000001 }; typedef UInt32 HIDReportType; typedef UInt32 HIDUsage; typedef struct OpaqueHIDPreparsedDataRef* HIDPreparsedDataRef; struct HIDUsageAndPage { HIDUsage usage; HIDUsage usagePage; }; typedef struct HIDUsageAndPage HIDUsageAndPage; typedef HIDUsageAndPage * HIDUsageAndPagePtr; struct HIDCapabilities { HIDUsage usage; HIDUsage usagePage; ByteCount inputReportByteLength; ByteCount outputReportByteLength; ByteCount featureReportByteLength; UInt32 numberCollectionNodes; UInt32 numberInputButtonCaps; UInt32 numberInputValueCaps; UInt32 numberOutputButtonCaps; UInt32 numberOutputValueCaps; UInt32 numberFeatureButtonCaps; UInt32 numberFeatureValueCaps; }; typedef struct HIDCapabilities HIDCapabilities; typedef HIDCapabilities * HIDCapabilitiesPtr; struct HIDCollectionNode { HIDUsage collectionUsage; HIDUsage collectionUsagePage; UInt32 parent; UInt32 numberOfChildren; UInt32 nextSibling; UInt32 firstChild; }; typedef struct HIDCollectionNode HIDCollectionNode; typedef HIDCollectionNode * HIDCollectionNodePtr; struct HIDButtonCapabilities { HIDUsage usagePage; UInt32 reportID; UInt32 bitField; UInt32 collection; HIDUsage collectionUsage; HIDUsage collectionUsagePage; Boolean isRange; Boolean isStringRange; Boolean isDesignatorRange; Boolean isAbsolute; SInt32 unitExponent; SInt32 units; UInt32 reserved; UInt32 pbVersion; union { struct { HIDUsage usageMin; HIDUsage usageMax; UInt32 stringMin; UInt32 stringMax; UInt32 designatorMin; UInt32 designatorMax; } range; struct { HIDUsage usage; HIDUsage reserved1; UInt32 stringIndex; UInt32 reserved2; UInt32 designatorIndex; UInt32 reserved3; } notRange; } u; }; typedef struct HIDButtonCapabilities HIDButtonCapabilities; typedef HIDButtonCapabilities * HIDButtonCapabilitiesPtr; struct HIDValueCapabilities { HIDUsage usagePage; UInt32 reportID; UInt32 bitField; UInt32 collection; HIDUsage collectionUsage; HIDUsage collectionUsagePage; Boolean isRange; Boolean isStringRange; Boolean isDesignatorRange; Boolean isAbsolute; UInt32 bitSize; UInt32 reportCount; SInt32 logicalMin; SInt32 logicalMax; SInt32 physicalMin; SInt32 physicalMax; SInt32 unitExponent; SInt32 units; UInt32 reserved; UInt32 pbVersion; union { struct { HIDUsage usageMin; HIDUsage usageMax; UInt32 stringMin; UInt32 stringMax; UInt32 designatorMin; UInt32 designatorMax; } range; struct { HIDUsage usage; HIDUsage reserved1; UInt32 stringIndex; UInt32 reserved2; UInt32 designatorIndex; UInt32 reserved3; } notRange; } u; }; typedef struct HIDValueCapabilities HIDValueCapabilities; typedef HIDValueCapabilities * HIDValueCapabilitiesPtr; EXTERN_API_C( OSStatus ) HIDOpenReportDescriptor (void * hidReportDescriptor, ByteCount descriptorLength, HIDPreparsedDataRef * preparsedDataRef, UInt32 flags); EXTERN_API_C( OSStatus ) HIDCloseReportDescriptor (HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetCapabilities (HIDPreparsedDataRef preparsedDataRef, HIDCapabilitiesPtr capabilities); EXTERN_API_C( OSStatus ) HIDGetCollectionNodes (HIDCollectionNodePtr collectionNodes, UInt32 * collectionNodesSize, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetButtonCapabilities (HIDReportType reportType, HIDButtonCapabilitiesPtr buttonCaps, UInt32 * buttonCapsSize, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetValueCapabilities (HIDReportType reportType, HIDValueCapabilitiesPtr valueCaps, UInt32 * valueCapsSize, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetSpecificButtonCapabilities (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, HIDButtonCapabilitiesPtr buttonCaps, UInt32 * buttonCapsSize, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetSpecificValueCapabilities (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, HIDValueCapabilitiesPtr valueCaps, UInt32 * valueCapsSize, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetNextButtonInfo (HIDReportType reportType, HIDUsage usagePage, HIDUsage usage, UInt32 * collection, UInt8 * reportID, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetNextUsageValueInfo (HIDReportType reportType, HIDUsage usagePage, HIDUsage usage, UInt32 * collection, UInt8 * reportID, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( UInt32 ) HIDMaxUsageListLength (HIDReportType reportType, HIDUsage usagePage, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDGetReportLength (HIDReportType reportType, UInt8 reportID, ByteCount * reportLength, HIDPreparsedDataRef preparsedDataRef); EXTERN_API_C( OSStatus ) HIDInitReport (HIDReportType reportType, UInt8 reportID, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDGetButtons (HIDReportType reportType, UInt32 collection, HIDUsageAndPagePtr usageList, UInt32 * usageListSize, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDGetButtonsOnPage (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage * usageList, UInt32 * usageListSize, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDGetScaledUsageValue (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, SInt32 * usageValue, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDGetUsageValue (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, SInt32 * usageValue, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDGetUsageValueArray (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, Byte * usageValueBuffer, ByteCount usageValueBufferSize, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDSetButton (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDSetButtons (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage * usageList, UInt32 * usageListSize, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDSetScaledUsageValue (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, SInt32 usageValue, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDSetUsageValue (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, SInt32 usageValue, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDSetUsageValueArray (HIDReportType reportType, HIDUsage usagePage, UInt32 collection, HIDUsage usage, Byte * usageValueBuffer, ByteCount usageValueBufferLength, HIDPreparsedDataRef preparsedDataRef, void * report, ByteCount reportLength); EXTERN_API_C( OSStatus ) HIDUsageListDifference (HIDUsage * previousUsageList, HIDUsage * currentUsageList, HIDUsage * breakUsageList, HIDUsage * makeUsageList, UInt32 usageListsSize); /* ****************************************************************************************** */ /* HID Usage Tables */ /* */ /* The following constants are from the USB 'HID Usage Tables' specification, revision 1.1rc3 */ /* ****************************************************************************************** */ /* Usage Pages */ enum { kHIDPage_Undefined = 0x00, kHIDPage_GenericDesktop = 0x01, kHIDPage_Simulation = 0x02, kHIDPage_VR = 0x03, kHIDPage_Sport = 0x04, kHIDPage_Game = 0x05, /* Reserved 0x06 */ kHIDPage_KeyboardOrKeypad = 0x07, /* USB Device Class Definition for Human Interface Devices (HID). Note: the usage type for all key codes is Selector (Sel). */ kHIDPage_LEDs = 0x08, kHIDPage_Button = 0x09, kHIDPage_Ordinal = 0x0A, kHIDPage_Telephony = 0x0B, kHIDPage_Consumer = 0x0C, kHIDPage_Digitizer = 0x0D, /* Reserved 0x0E */ kHIDPage_PID = 0x0F, /* USB Physical Interface Device definitions for force feedback and related devices. */ kHIDPage_Unicode = 0x10, /* Reserved 0x11 - 0x13 */ kHIDPage_AlphanumericDisplay = 0x14, /* Reserved 0x15 - 0x7F */ /* Monitor 0x80 - 0x83 USB Device Class Definition for Monitor Devices */ /* Power 0x84 - 0x87 USB Device Class Definition for Power Devices */ /* Reserved 0x88 - 0x8B */ kHIDPage_BarCodeScanner = 0x8C, /* (Point of Sale) USB Device Class Definition for Bar Code Scanner Devices */ kHIDPage_Scale = 0x8D, /* (Point of Sale) USB Device Class Definition for Scale Devices */ /* ReservedPointofSalepages 0x8E - 0x8F */ kHIDPage_CameraControl = 0x90, /* USB Device Class Definition for Image Class Devices */ kHIDPage_Arcade = 0x91, /* OAAF Definitions for arcade and coinop related Devices */ /* Reserved 0x92 - 0xFEFF */ /* VendorDefined 0xFF00 - 0xFFFF */ kHIDPage_VendorDefinedStart = 0xFF00 }; /* Undefined Usage for all usage pages */ enum { kHIDUsage_Undefined = 0x00 }; /* GenericDesktop Page (0x01) */ enum { kHIDUsage_GD_Pointer = 0x01, /* Physical Collection */ kHIDUsage_GD_Mouse = 0x02, /* Application Collection */ /* 0x03 Reserved */ kHIDUsage_GD_Joystick = 0x04, /* Application Collection */ kHIDUsage_GD_GamePad = 0x05, /* Application Collection */ kHIDUsage_GD_Keyboard = 0x06, /* Application Collection */ kHIDUsage_GD_Keypad = 0x07, /* Application Collection */ kHIDUsage_GD_MultiAxisController = 0x08, /* Application Collection */ /* 0x09 - 0x2F Reserved */ kHIDUsage_GD_X = 0x30, /* Dynamic Value */ kHIDUsage_GD_Y = 0x31, /* Dynamic Value */ kHIDUsage_GD_Z = 0x32, /* Dynamic Value */ kHIDUsage_GD_Rx = 0x33, /* Dynamic Value */ kHIDUsage_GD_Ry = 0x34, /* Dynamic Value */ kHIDUsage_GD_Rz = 0x35, /* Dynamic Value */ kHIDUsage_GD_Slider = 0x36, /* Dynamic Value */ kHIDUsage_GD_Dial = 0x37, /* Dynamic Value */ kHIDUsage_GD_Wheel = 0x38, /* Dynamic Value */ kHIDUsage_GD_Hatswitch = 0x39, /* Dynamic Value */ kHIDUsage_GD_CountedBuffer = 0x3A, /* Logical Collection */ kHIDUsage_GD_ByteCount = 0x3B, /* Dynamic Value */ kHIDUsage_GD_MotionWakeup = 0x3C, /* One-Shot Control */ kHIDUsage_GD_Start = 0x3D, /* On/Off Control */ kHIDUsage_GD_Select = 0x3E, /* On/Off Control */ /* 0x3F Reserved */ kHIDUsage_GD_Vx = 0x40, /* Dynamic Value */ kHIDUsage_GD_Vy = 0x41, /* Dynamic Value */ kHIDUsage_GD_Vz = 0x42, /* Dynamic Value */ kHIDUsage_GD_Vbrx = 0x43, /* Dynamic Value */ kHIDUsage_GD_Vbry = 0x44, /* Dynamic Value */ kHIDUsage_GD_Vbrz = 0x45, /* Dynamic Value */ kHIDUsage_GD_Vno = 0x46, /* Dynamic Value */ /* 0x47 - 0x7F Reserved */ kHIDUsage_GD_SystemControl = 0x80, /* Application Collection */ kHIDUsage_GD_SystemPowerDown = 0x81, /* One-Shot Control */ kHIDUsage_GD_SystemSleep = 0x82, /* One-Shot Control */ kHIDUsage_GD_SystemWakeUp = 0x83, /* One-Shot Control */ kHIDUsage_GD_SystemContextMenu = 0x84, /* One-Shot Control */ kHIDUsage_GD_SystemMainMenu = 0x85, /* One-Shot Control */ kHIDUsage_GD_SystemAppMenu = 0x86, /* One-Shot Control */ kHIDUsage_GD_SystemMenuHelp = 0x87, /* One-Shot Control */ kHIDUsage_GD_SystemMenuExit = 0x88, /* One-Shot Control */ kHIDUsage_GD_SystemMenu = 0x89, /* Selector */ kHIDUsage_GD_SystemMenuRight = 0x8A, /* Re-Trigger Control */ kHIDUsage_GD_SystemMenuLeft = 0x8B, /* Re-Trigger Control */ kHIDUsage_GD_SystemMenuUp = 0x8C, /* Re-Trigger Control */ kHIDUsage_GD_SystemMenuDown = 0x8D, /* Re-Trigger Control */ /* 0x8E - 0x8F Reserved */ kHIDUsage_GD_DPadUp = 0x90, /* On/Off Control */ kHIDUsage_GD_DPadDown = 0x91, /* On/Off Control */ kHIDUsage_GD_DPadRight = 0x92, /* On/Off Control */ kHIDUsage_GD_DPadLeft = 0x93, /* On/Off Control */ /* 0x94 - 0xFFFF Reserved */ kHIDUsage_GD_Reserved = 0xFFFF }; /* Simulation Page (0x02) */ /* This section provides detailed descriptions of the usages employed by simulation devices. */ enum { kHIDUsage_Sim_FlightSimulationDevice = 0x01, /* Application Collection */ kHIDUsage_Sim_AutomobileSimulationDevice = 0x02, /* Application Collection */ kHIDUsage_Sim_TankSimulationDevice = 0x03, /* Application Collection */ kHIDUsage_Sim_SpaceshipSimulationDevice = 0x04, /* Application Collection */ kHIDUsage_Sim_SubmarineSimulationDevice = 0x05, /* Application Collection */ kHIDUsage_Sim_SailingSimulationDevice = 0x06, /* Application Collection */ kHIDUsage_Sim_MotorcycleSimulationDevice = 0x07, /* Application Collection */ kHIDUsage_Sim_SportsSimulationDevice = 0x08, /* Application Collection */ kHIDUsage_Sim_AirplaneSimulationDevice = 0x09, /* Application Collection */ kHIDUsage_Sim_HelicopterSimulationDevice = 0x0A, /* Application Collection */ kHIDUsage_Sim_MagicCarpetSimulationDevice = 0x0B, /* Application Collection */ kHIDUsage_Sim_BicycleSimulationDevice = 0x0C, /* Application Collection */ /* 0x0D - 0x1F Reserved */ kHIDUsage_Sim_FlightControlStick = 0x20, /* Application Collection */ kHIDUsage_Sim_FlightStick = 0x21, /* Application Collection */ kHIDUsage_Sim_CyclicControl = 0x22, /* Physical Collection */ kHIDUsage_Sim_CyclicTrim = 0x23, /* Physical Collection */ kHIDUsage_Sim_FlightYoke = 0x24, /* Application Collection */ kHIDUsage_Sim_TrackControl = 0x25, /* Physical Collection */ /* 0x26 - 0xAF Reserved */ kHIDUsage_Sim_Aileron = 0xB0, /* Dynamic Value */ kHIDUsage_Sim_AileronTrim = 0xB1, /* Dynamic Value */ kHIDUsage_Sim_AntiTorqueControl = 0xB2, /* Dynamic Value */ kHIDUsage_Sim_AutopilotEnable = 0xB3, /* On/Off Control */ kHIDUsage_Sim_ChaffRelease = 0xB4, /* One-Shot Control */ kHIDUsage_Sim_CollectiveControl = 0xB5, /* Dynamic Value */ kHIDUsage_Sim_DiveBrake = 0xB6, /* Dynamic Value */ kHIDUsage_Sim_ElectronicCountermeasures = 0xB7, /* On/Off Control */ kHIDUsage_Sim_Elevator = 0xB8, /* Dynamic Value */ kHIDUsage_Sim_ElevatorTrim = 0xB9, /* Dynamic Value */ kHIDUsage_Sim_Rudder = 0xBA, /* Dynamic Value */ kHIDUsage_Sim_Throttle = 0xBB, /* Dynamic Value */ kHIDUsage_Sim_FlightCommunications = 0xBC, /* On/Off Control */ kHIDUsage_Sim_FlareRelease = 0xBD, /* One-Shot Control */ kHIDUsage_Sim_LandingGear = 0xBE, /* On/Off Control */ kHIDUsage_Sim_ToeBrake = 0xBF, /* Dynamic Value */ kHIDUsage_Sim_Trigger = 0xC0, /* Momentary Control */ kHIDUsage_Sim_WeaponsArm = 0xC1, /* On/Off Control */ kHIDUsage_Sim_Weapons = 0xC2, /* Selector */ kHIDUsage_Sim_WingFlaps = 0xC3, /* Dynamic Value */ kHIDUsage_Sim_Accelerator = 0xC4, /* Dynamic Value */ kHIDUsage_Sim_Brake = 0xC5, /* Dynamic Value */ kHIDUsage_Sim_Clutch = 0xC6, /* Dynamic Value */ kHIDUsage_Sim_Shifter = 0xC7, /* Dynamic Value */ kHIDUsage_Sim_Steering = 0xC8, /* Dynamic Value */ kHIDUsage_Sim_TurretDirection = 0xC9, /* Dynamic Value */ kHIDUsage_Sim_BarrelElevation = 0xCA, /* Dynamic Value */ kHIDUsage_Sim_DivePlane = 0xCB, /* Dynamic Value */ kHIDUsage_Sim_Ballast = 0xCC, /* Dynamic Value */ kHIDUsage_Sim_BicycleCrank = 0xCD, /* Dynamic Value */ kHIDUsage_Sim_HandleBars = 0xCE, /* Dynamic Value */ kHIDUsage_Sim_FrontBrake = 0xCF, /* Dynamic Value */ kHIDUsage_Sim_RearBrake = 0xD0, /* Dynamic Value */ /* 0xD1 - 0xFFFF Reserved */ kHIDUsage_Sim_Reserved = 0xFFFF }; /* VR Page (0x03) */ /* Virtual Reality controls depend on designators to identify the individual controls. Most of the following are */ /* usages are applied to the collections of entities that comprise the actual device. */ enum { kHIDUsage_VR_Belt = 0x01, /* Application Collection */ kHIDUsage_VR_BodySuit = 0x02, /* Application Collection */ kHIDUsage_VR_Flexor = 0x03, /* Physical Collection */ kHIDUsage_VR_Glove = 0x04, /* Application Collection */ kHIDUsage_VR_HeadTracker = 0x05, /* Physical Collection */ kHIDUsage_VR_HeadMountedDisplay = 0x06, /* Application Collection */ kHIDUsage_VR_HandTracker = 0x07, /* Application Collection */ kHIDUsage_VR_Oculometer = 0x08, /* Application Collection */ kHIDUsage_VR_Vest = 0x09, /* Application Collection */ kHIDUsage_VR_AnimatronicDevice = 0x0A, /* Application Collection */ /* 0x0B - 0x1F Reserved */ kHIDUsage_VR_StereoEnable = 0x20, /* On/Off Control */ kHIDUsage_VR_DisplayEnable = 0x21, /* On/Off Control */ /* 0x22 - 0xFFFF Reserved */ kHIDUsage_VR_Reserved = 0xFFFF }; /* Sport Page (0x04) */ enum { kHIDUsage_Sprt_BaseballBat = 0x01, /* Application Collection */ kHIDUsage_Sprt_GolfClub = 0x02, /* Application Collection */ kHIDUsage_Sprt_RowingMachine = 0x03, /* Application Collection */ kHIDUsage_Sprt_Treadmill = 0x04, /* Application Collection */ /* 0x05 - 0x2F Reserved */ kHIDUsage_Sprt_Oar = 0x30, /* Dynamic Value */ kHIDUsage_Sprt_Slope = 0x31, /* Dynamic Value */ kHIDUsage_Sprt_Rate = 0x32, /* Dynamic Value */ kHIDUsage_Sprt_StickSpeed = 0x33, /* Dynamic Value */ kHIDUsage_Sprt_StickFaceAngle = 0x34, /* Dynamic Value */ kHIDUsage_Sprt_StickHeelOrToe = 0x35, /* Dynamic Value */ kHIDUsage_Sprt_StickFollowThrough = 0x36, /* Dynamic Value */ kHIDUsage_Sprt_StickTempo = 0x37, /* Dynamic Value */ kHIDUsage_Sprt_StickType = 0x38, /* Named Array */ kHIDUsage_Sprt_StickHeight = 0x39, /* Dynamic Value */ /* 0x3A - 0x4F Reserved */ kHIDUsage_Sprt_Putter = 0x50, /* Selector */ kHIDUsage_Sprt_1Iron = 0x51, /* Selector */ kHIDUsage_Sprt_2Iron = 0x52, /* Selector */ kHIDUsage_Sprt_3Iron = 0x53, /* Selector */ kHIDUsage_Sprt_4Iron = 0x54, /* Selector */ kHIDUsage_Sprt_5Iron = 0x55, /* Selector */ kHIDUsage_Sprt_6Iron = 0x56, /* Selector */ kHIDUsage_Sprt_7Iron = 0x57, /* Selector */ kHIDUsage_Sprt_8Iron = 0x58, /* Selector */ kHIDUsage_Sprt_9Iron = 0x59, /* Selector */ kHIDUsage_Sprt_10Iron = 0x5A, /* Selector */ kHIDUsage_Sprt_11Iron = 0x5B, /* Selector */ kHIDUsage_Sprt_SandWedge = 0x5C, /* Selector */ kHIDUsage_Sprt_LoftWedge = 0x5D, /* Selector */ kHIDUsage_Sprt_PowerWedge = 0x5E, /* Selector */ kHIDUsage_Sprt_1Wood = 0x5F, /* Selector */ kHIDUsage_Sprt_3Wood = 0x60, /* Selector */ kHIDUsage_Sprt_5Wood = 0x61, /* Selector */ kHIDUsage_Sprt_7Wood = 0x62, /* Selector */ kHIDUsage_Sprt_9Wood = 0x63, /* Selector */ /* 0x64 - 0xFFFF Reserved */ kHIDUsage_Sprt_Reserved = 0xFFFF }; /* Game Page (0x05) */ enum { kHIDUsage_Game_3DGameController = 0x01, /* Application Collection */ kHIDUsage_Game_PinballDevice = 0x02, /* Application Collection */ kHIDUsage_Game_GunDevice = 0x03, /* Application Collection */ /* 0x04 - 0x1F Reserved */ kHIDUsage_Game_PointofView = 0x20, /* Physical Collection */ kHIDUsage_Game_TurnRightOrLeft = 0x21, /* Dynamic Value */ kHIDUsage_Game_PitchUpOrDown = 0x22, /* Dynamic Value */ kHIDUsage_Game_RollRightOrLeft = 0x23, /* Dynamic Value */ kHIDUsage_Game_MoveRightOrLeft = 0x24, /* Dynamic Value */ kHIDUsage_Game_MoveForwardOrBackward = 0x25, /* Dynamic Value */ kHIDUsage_Game_MoveUpOrDown = 0x26, /* Dynamic Value */ kHIDUsage_Game_LeanRightOrLeft = 0x27, /* Dynamic Value */ kHIDUsage_Game_LeanForwardOrBackward = 0x28, /* Dynamic Value */ kHIDUsage_Game_HeightOfPOV = 0x29, /* Dynamic Value */ kHIDUsage_Game_Flipper = 0x2A, /* Momentary Control */ kHIDUsage_Game_SecondaryFlipper = 0x2B, /* Momentary Control */ kHIDUsage_Game_Bump = 0x2C, /* Momentary Control */ kHIDUsage_Game_NewGame = 0x2D, /* One-Shot Control */ kHIDUsage_Game_ShootBall = 0x2E, /* One-Shot Control */ kHIDUsage_Game_Player = 0x2F, /* One-Shot Control */ kHIDUsage_Game_GunBolt = 0x30, /* On/Off Control */ kHIDUsage_Game_GunClip = 0x31, /* On/Off Control */ kHIDUsage_Game_Gun = 0x32, /* Selector */ kHIDUsage_Game_GunSingleShot = 0x33, /* Selector */ kHIDUsage_Game_GunBurst = 0x34, /* Selector */ kHIDUsage_Game_GunAutomatic = 0x35, /* Selector */ kHIDUsage_Game_GunSafety = 0x36, /* On/Off Control */ kHIDUsage_Game_GamepadFireOrJump = 0x37, /* Logical Collection */ kHIDUsage_Game_GamepadTrigger = 0x39, /* Logical Collection */ /* 0x3A - 0xFFFF Reserved */ kHIDUsage_Game_Reserved = 0xFFFF }; /* KeyboardOrKeypad Page (0x07) */ /* 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Ó column below. */ /* 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). */ /* 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. */ enum { kHIDUsage_KeyboardErrorRollOver = 0x01, /* ErrorRollOver */ kHIDUsage_KeyboardPOSTFail = 0x02, /* POSTFail */ kHIDUsage_KeyboardErrorUndefined = 0x03, /* ErrorUndefined */ kHIDUsage_KeyboardA = 0x04, /* a or A */ kHIDUsage_KeyboardB = 0x05, /* b or B */ kHIDUsage_KeyboardC = 0x06, /* c or C */ kHIDUsage_KeyboardD = 0x07, /* d or D */ kHIDUsage_KeyboardE = 0x08, /* e or E */ kHIDUsage_KeyboardF = 0x09, /* f or F */ kHIDUsage_KeyboardG = 0x0A, /* g or G */ kHIDUsage_KeyboardH = 0x0B, /* h or H */ kHIDUsage_KeyboardI = 0x0C, /* i or I */ kHIDUsage_KeyboardJ = 0x0D, /* j or J */ kHIDUsage_KeyboardK = 0x0E, /* k or K */ kHIDUsage_KeyboardL = 0x0F, /* l or L */ kHIDUsage_KeyboardM = 0x10, /* m or M */ kHIDUsage_KeyboardN = 0x11, /* n or N */ kHIDUsage_KeyboardO = 0x12, /* o or O */ kHIDUsage_KeyboardP = 0x13, /* p or P */ kHIDUsage_KeyboardQ = 0x14, /* q or Q */ kHIDUsage_KeyboardR = 0x15, /* r or R */ kHIDUsage_KeyboardS = 0x16, /* s or S */ kHIDUsage_KeyboardT = 0x17, /* t or T */ kHIDUsage_KeyboardU = 0x18, /* u or U */ kHIDUsage_KeyboardV = 0x19, /* v or V */ kHIDUsage_KeyboardW = 0x1A, /* w or W */ kHIDUsage_KeyboardX = 0x1B, /* x or X */ kHIDUsage_KeyboardY = 0x1C, /* y or Y */ kHIDUsage_KeyboardZ = 0x1D, /* z or Z */ kHIDUsage_Keyboard1 = 0x1E, /* 1 or ! */ kHIDUsage_Keyboard2 = 0x1F, /* 2 or @ */ kHIDUsage_Keyboard3 = 0x20, /* 3 or # */ kHIDUsage_Keyboard4 = 0x21, /* 4 or $ */ kHIDUsage_Keyboard5 = 0x22, /* 5 or % */ kHIDUsage_Keyboard6 = 0x23, /* 6 or ^ */ kHIDUsage_Keyboard7 = 0x24, /* 7 or & */ kHIDUsage_Keyboard8 = 0x25, /* 8 or * */ kHIDUsage_Keyboard9 = 0x26, /* 9 or ( */ kHIDUsage_Keyboard0 = 0x27, /* 0 or ) */ kHIDUsage_KeyboardReturnOrEnter = 0x28, /* Return (Enter) */ kHIDUsage_KeyboardEscape = 0x29, /* Escape */ kHIDUsage_KeyboardDeleteOrBackspace = 0x2A, /* Delete (Backspace) */ kHIDUsage_KeyboardTab = 0x2B, /* Tab */ kHIDUsage_KeyboardSpacebar = 0x2C, /* Spacebar */ kHIDUsage_KeyboardHyphen = 0x2D, /* - or _ */ kHIDUsage_KeyboardEqualSign = 0x2E, /* = or + */ kHIDUsage_KeyboardOpenBracket = 0x2F, /* [ or { */ kHIDUsage_KeyboardCloseBracket = 0x30, /* ] or } */ kHIDUsage_KeyboardBackslash = 0x31, /* \ or | */ kHIDUsage_KeyboardNonUSPound = 0x32, /* Non-US # or _ */ kHIDUsage_KeyboardSemicolon = 0x33, /* ; or : */ kHIDUsage_KeyboardQuote = 0x34, /* ' or " */ kHIDUsage_KeyboardGraveAccentAndTilde = 0x35, /* Grave Accent and Tilde */ kHIDUsage_KeyboardComma = 0x36, /* , or < */ kHIDUsage_KeyboardPeriod = 0x37, /* . or > */ kHIDUsage_KeyboardSlash = 0x38, /* / or ? */ kHIDUsage_KeyboardCapsLock = 0x39, /* Caps Lock */ kHIDUsage_KeyboardF1 = 0x3A, /* F1 */ kHIDUsage_KeyboardF2 = 0x3B, /* F2 */ kHIDUsage_KeyboardF3 = 0x3C, /* F3 */ kHIDUsage_KeyboardF4 = 0x3D, /* F4 */ kHIDUsage_KeyboardF5 = 0x3E, /* F5 */ kHIDUsage_KeyboardF6 = 0x3F, /* F6 */ kHIDUsage_KeyboardF7 = 0x40, /* F7 */ kHIDUsage_KeyboardF8 = 0x41, /* F8 */ kHIDUsage_KeyboardF9 = 0x42, /* F9 */ kHIDUsage_KeyboardF10 = 0x43, /* F10 */ kHIDUsage_KeyboardF11 = 0x44, /* F11 */ kHIDUsage_KeyboardF12 = 0x45, /* F12 */ kHIDUsage_KeyboardPrintScreen = 0x46, /* Print Screen */ kHIDUsage_KeyboardScrollLock = 0x47, /* Scroll Lock */ kHIDUsage_KeyboardPause = 0x48, /* Pause */ kHIDUsage_KeyboardInsert = 0x49, /* Insert */ kHIDUsage_KeyboardHome = 0x4A, /* Home */ kHIDUsage_KeyboardPageUp = 0x4B, /* Page Up */ kHIDUsage_KeyboardDeleteForward = 0x4C, /* Delete Forward */ kHIDUsage_KeyboardEnd = 0x4D, /* End */ kHIDUsage_KeyboardPageDown = 0x4E, /* Page Down */ kHIDUsage_KeyboardRightArrow = 0x4F, /* Right Arrow */ kHIDUsage_KeyboardLeftArrow = 0x50, /* Left Arrow */ kHIDUsage_KeyboardDownArrow = 0x51, /* Down Arrow */ kHIDUsage_KeyboardUpArrow = 0x52, /* Up Arrow */ kHIDUsage_KeypadNumLock = 0x53, /* Keypad NumLock or Clear */ kHIDUsage_KeypadSlash = 0x54, /* Keypad / */ kHIDUsage_KeypadAsterisk = 0x55, /* Keypad * */ kHIDUsage_KeypadHyphen = 0x56, /* Keypad - */ kHIDUsage_KeypadPlus = 0x57, /* Keypad + */ kHIDUsage_KeypadEnter = 0x58, /* Keypad Enter */ kHIDUsage_Keypad1 = 0x59, /* Keypad 1 or End */ kHIDUsage_Keypad2 = 0x5A, /* Keypad 2 or Down Arrow */ kHIDUsage_Keypad3 = 0x5B, /* Keypad 3 or Page Down */ kHIDUsage_Keypad4 = 0x5C, /* Keypad 4 or Left Arrow */ kHIDUsage_Keypad5 = 0x5D, /* Keypad 5 */ kHIDUsage_Keypad6 = 0x5E, /* Keypad 6 or Right Arrow */ kHIDUsage_Keypad7 = 0x5F, /* Keypad 7 or Home */ kHIDUsage_Keypad8 = 0x60, /* Keypad 8 or Up Arrow */ kHIDUsage_Keypad9 = 0x61, /* Keypad 9 or Page Up */ kHIDUsage_Keypad0 = 0x62, /* Keypad 0 or Insert */ kHIDUsage_KeypadPeriod = 0x63, /* Keypad . or Delete */ kHIDUsage_KeyboardNonUSBackslash = 0x64, /* Non-US \ or | */ kHIDUsage_KeyboardApplication = 0x65, /* Application */ kHIDUsage_KeyboardPower = 0x66, /* Power */ kHIDUsage_KeypadEqualSign = 0x67, /* Keypad = */ kHIDUsage_KeyboardF13 = 0x68, /* F13 */ kHIDUsage_KeyboardF14 = 0x69, /* F14 */ kHIDUsage_KeyboardF15 = 0x6A, /* F15 */ kHIDUsage_KeyboardF16 = 0x6B, /* F16 */ kHIDUsage_KeyboardF17 = 0x6C, /* F17 */ kHIDUsage_KeyboardF18 = 0x6D, /* F18 */ kHIDUsage_KeyboardF19 = 0x6E, /* F19 */ kHIDUsage_KeyboardF20 = 0x6F, /* F20 */ kHIDUsage_KeyboardF21 = 0x70, /* F21 */ kHIDUsage_KeyboardF22 = 0x71, /* F22 */ kHIDUsage_KeyboardF23 = 0x72, /* F23 */ kHIDUsage_KeyboardF24 = 0x73, /* F24 */ kHIDUsage_KeyboardExecute = 0x74, /* Execute */ kHIDUsage_KeyboardHelp = 0x75, /* Help */ kHIDUsage_KeyboardMenu = 0x76, /* Menu */ kHIDUsage_KeyboardSelect = 0x77, /* Select */ kHIDUsage_KeyboardStop = 0x78, /* Stop */ kHIDUsage_KeyboardAgain = 0x79, /* Again */ kHIDUsage_KeyboardUndo = 0x7A, /* Undo */ kHIDUsage_KeyboardCut = 0x7B, /* Cut */ kHIDUsage_KeyboardCopy = 0x7C, /* Copy */ kHIDUsage_KeyboardPaste = 0x7D, /* Paste */ kHIDUsage_KeyboardFind = 0x7E, /* Find */ kHIDUsage_KeyboardMute = 0x7F, /* Mute */ kHIDUsage_KeyboardVolumeUp = 0x80, /* Volume Up */ kHIDUsage_KeyboardVolumeDown = 0x81, /* Volume Down */ kHIDUsage_KeyboardLockingCapsLock = 0x82, /* Locking Caps Lock */ kHIDUsage_KeyboardLockingNumLock = 0x83, /* Locking Num Lock */ kHIDUsage_KeyboardLockingScrollLock = 0x84, /* Locking Scroll Lock */ kHIDUsage_KeypadComma = 0x85, /* Keypad Comma */ kHIDUsage_KeypadEqualSignAS400 = 0x86, /* Keypad Equal Sign for AS/400 */ kHIDUsage_KeyboardInternational1 = 0x87, /* International1 */ kHIDUsage_KeyboardInternational2 = 0x88, /* International2 */ kHIDUsage_KeyboardInternational3 = 0x89, /* International3 */ kHIDUsage_KeyboardInternational4 = 0x8A, /* International4 */ kHIDUsage_KeyboardInternational5 = 0x8B, /* International5 */ kHIDUsage_KeyboardInternational6 = 0x8C, /* International6 */ kHIDUsage_KeyboardInternational7 = 0x8D, /* International7 */ kHIDUsage_KeyboardInternational8 = 0x8E, /* International8 */ kHIDUsage_KeyboardInternational9 = 0x8F, /* International9 */ kHIDUsage_KeyboardLANG1 = 0x90, /* LANG1 */ kHIDUsage_KeyboardLANG2 = 0x91, /* LANG2 */ kHIDUsage_KeyboardLANG3 = 0x92, /* LANG3 */ kHIDUsage_KeyboardLANG4 = 0x93, /* LANG4 */ kHIDUsage_KeyboardLANG5 = 0x94, /* LANG5 */ kHIDUsage_KeyboardLANG6 = 0x95, /* LANG6 */ kHIDUsage_KeyboardLANG7 = 0x96, /* LANG7 */ kHIDUsage_KeyboardLANG8 = 0x97, /* LANG8 */ kHIDUsage_KeyboardLANG9 = 0x98, /* LANG9 */ kHIDUsage_KeyboardAlternateErase = 0x99, /* AlternateErase */ kHIDUsage_KeyboardSysReqOrAttention = 0x9A, /* SysReq/Attention */ kHIDUsage_KeyboardCancel = 0x9B, /* Cancel */ kHIDUsage_KeyboardClear = 0x9C, /* Clear */ kHIDUsage_KeyboardPrior = 0x9D, /* Prior */ kHIDUsage_KeyboardReturn = 0x9E, /* Return */ kHIDUsage_KeyboardSeparator = 0x9F, /* Separator */ kHIDUsage_KeyboardOut = 0xA0, /* Out */ kHIDUsage_KeyboardOper = 0xA1, /* Oper */ kHIDUsage_KeyboardClearOrAgain = 0xA2, /* Clear/Again */ kHIDUsage_KeyboardCrSelOrProps = 0xA3, /* CrSel/Props */ kHIDUsage_KeyboardExSel = 0xA4, /* ExSel */ /* 0xA5-0xDF Reserved */ kHIDUsage_KeyboardLeftControl = 0xE0, /* Left Control */ kHIDUsage_KeyboardLeftShift = 0xE1, /* Left Shift */ kHIDUsage_KeyboardLeftAlt = 0xE2, /* Left Alt */ kHIDUsage_KeyboardLeftGUI = 0xE3, /* Left GUI */ kHIDUsage_KeyboardRightControl = 0xE4, /* Right Control */ kHIDUsage_KeyboardRightShift = 0xE5, /* Right Shift */ kHIDUsage_KeyboardRightAlt = 0xE6, /* Right Alt */ kHIDUsage_KeyboardRightGUI = 0xE7, /* Right GUI */ /* 0xE8-0xFFFF Reserved */ kHIDUsage_Keyboard_Reserved = 0xFFFF }; /* LEDs Page (0x08) */ /* 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. */ enum { kHIDUsage_LED_NumLock = 0x01, /* On/Off Control */ kHIDUsage_LED_CapsLock = 0x02, /* On/Off Control */ kHIDUsage_LED_ScrollLock = 0x03, /* On/Off Control */ kHIDUsage_LED_Compose = 0x04, /* On/Off Control */ kHIDUsage_LED_Kana = 0x05, /* On/Off Control */ kHIDUsage_LED_Power = 0x06, /* On/Off Control */ kHIDUsage_LED_Shift = 0x07, /* On/Off Control */ kHIDUsage_LED_DoNotDisturb = 0x08, /* On/Off Control */ kHIDUsage_LED_Mute = 0x09, /* On/Off Control */ kHIDUsage_LED_ToneEnable = 0x0A, /* On/Off Control */ kHIDUsage_LED_HighCutFilter = 0x0B, /* On/Off Control */ kHIDUsage_LED_LowCutFilter = 0x0C, /* On/Off Control */ kHIDUsage_LED_EqualizerEnable = 0x0D, /* On/Off Control */ kHIDUsage_LED_SoundFieldOn = 0x0E, /* On/Off Control */ kHIDUsage_LED_SurroundOn = 0x0F, /* On/Off Control */ kHIDUsage_LED_Repeat = 0x10, /* On/Off Control */ kHIDUsage_LED_Stereo = 0x11, /* On/Off Control */ kHIDUsage_LED_SamplingRateDetect = 0x12, /* On/Off Control */ kHIDUsage_LED_Spinning = 0x13, /* On/Off Control */ kHIDUsage_LED_CAV = 0x14, /* On/Off Control */ kHIDUsage_LED_CLV = 0x15, /* On/Off Control */ kHIDUsage_LED_RecordingFormatDetect = 0x16, /* On/Off Control */ kHIDUsage_LED_OffHook = 0x17, /* On/Off Control */ kHIDUsage_LED_Ring = 0x18, /* On/Off Control */ kHIDUsage_LED_MessageWaiting = 0x19, /* On/Off Control */ kHIDUsage_LED_DataMode = 0x1A, /* On/Off Control */ kHIDUsage_LED_BatteryOperation = 0x1B, /* On/Off Control */ kHIDUsage_LED_BatteryOK = 0x1C, /* On/Off Control */ kHIDUsage_LED_BatteryLow = 0x1D, /* On/Off Control */ kHIDUsage_LED_Speaker = 0x1E, /* On/Off Control */ kHIDUsage_LED_HeadSet = 0x1F, /* On/Off Control */ kHIDUsage_LED_Hold = 0x20, /* On/Off Control */ kHIDUsage_LED_Microphone = 0x21, /* On/Off Control */ kHIDUsage_LED_Coverage = 0x22, /* On/Off Control */ kHIDUsage_LED_NightMode = 0x23, /* On/Off Control */ kHIDUsage_LED_SendCalls = 0x24, /* On/Off Control */ kHIDUsage_LED_CallPickup = 0x25, /* On/Off Control */ kHIDUsage_LED_Conference = 0x26, /* On/Off Control */ kHIDUsage_LED_StandBy = 0x27, /* On/Off Control */ kHIDUsage_LED_CameraOn = 0x28, /* On/Off Control */ kHIDUsage_LED_CameraOff = 0x29, /* On/Off Control */ kHIDUsage_LED_OnLine = 0x2A, /* On/Off Control */ kHIDUsage_LED_OffLine = 0x2B, /* On/Off Control */ kHIDUsage_LED_Busy = 0x2C, /* On/Off Control */ kHIDUsage_LED_Ready = 0x2D, /* On/Off Control */ kHIDUsage_LED_PaperOut = 0x2E, /* On/Off Control */ kHIDUsage_LED_PaperJam = 0x2F, /* On/Off Control */ kHIDUsage_LED_Remote = 0x30, /* On/Off Control */ kHIDUsage_LED_Forward = 0x31, /* On/Off Control */ kHIDUsage_LED_Reverse = 0x32, /* On/Off Control */ kHIDUsage_LED_Stop = 0x33, /* On/Off Control */ kHIDUsage_LED_Rewind = 0x34, /* On/Off Control */ kHIDUsage_LED_FastForward = 0x35, /* On/Off Control */ kHIDUsage_LED_Play = 0x36, /* On/Off Control */ kHIDUsage_LED_Pause = 0x37, /* On/Off Control */ kHIDUsage_LED_Record = 0x38, /* On/Off Control */ kHIDUsage_LED_Error = 0x39, /* On/Off Control */ kHIDUsage_LED_Usage = 0x3A, /* Selector */ kHIDUsage_LED_UsageInUseIndicator = 0x3B, /* Usage Switch */ kHIDUsage_LED_UsageMultiModeIndicator = 0x3C, /* Usage Modifier */ kHIDUsage_LED_IndicatorOn = 0x3D, /* Selector */ kHIDUsage_LED_IndicatorFlash = 0x3E, /* Selector */ kHIDUsage_LED_IndicatorSlowBlink = 0x3F, /* Selector */ kHIDUsage_LED_IndicatorFastBlink = 0x40, /* Selector */ kHIDUsage_LED_IndicatorOff = 0x41, /* Selector */ kHIDUsage_LED_FlashOnTime = 0x42, /* Dynamic Value */ kHIDUsage_LED_SlowBlinkOnTime = 0x43, /* Dynamic Value */ kHIDUsage_LED_SlowBlinkOffTime = 0x44, /* Dynamic Value */ kHIDUsage_LED_FastBlinkOnTime = 0x45, /* Dynamic Value */ kHIDUsage_LED_FastBlinkOffTime = 0x46, /* Dynamic Value */ kHIDUsage_LED_UsageIndicatorColor = 0x47, /* Usage Modifier */ kHIDUsage_LED_IndicatorRed = 0x48, /* Selector */ kHIDUsage_LED_IndicatorGreen = 0x49, /* Selector */ kHIDUsage_LED_IndicatorAmber = 0x4A, /* Selector */ kHIDUsage_LED_GenericIndicator = 0x4B, /* On/Off Control */ kHIDUsage_LED_SystemSuspend = 0x4C, /* On/Off Control */ kHIDUsage_LED_ExternalPowerConnected = 0x4D, /* On/Off Control */ /* 0x4E - 0xFFFF Reserved */ kHIDUsage_LED_Reserved = 0xFFFF }; /* Button Page (0x09) */ /* 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: */ /* ¥ 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 */ /* is not necessarily physically located on the left of the pointing device. */ /* ¥ 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. */ /* ¥ Button 3, Tertiary Button. Optional control. Exposed to applications, but seldom assigned functionality due to prevalence */ /* of two- and one-button devices. */ /* ¥ Buttons 4 -55. As the button number increases, its significance as a selector decreases. */ /* 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. */ enum { kHIDUsage_Button_1 = 0x01, /* (primary/trigger) */ kHIDUsage_Button_2 = 0x02, /* (secondary) */ kHIDUsage_Button_3 = 0x03, /* (tertiary) */ kHIDUsage_Button_4 = 0x04, /* 4th button */ /* ... */ kHIDUsage_Button_65535 = 0xFFFF }; /* Ordinal Page (0x0A) */ /* 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. */ /* 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. */ /* Instances do not have to be identical. */ enum { /* 0x00 Reserved */ kHIDUsage_Ord_Instance1 = 0x01, /* Usage Modifier */ kHIDUsage_Ord_Instance2 = 0x02, /* Usage Modifier */ kHIDUsage_Ord_Instance3 = 0x03, /* Usage Modifier */ kHIDUsage_Ord_Instance4 = 0x04, /* Usage Modifier */ kHIDUsage_Ord_Instance65535 = 0xFFFF /* Usage Modifier */ }; /* Telephony Page (0x0B) */ /* This usage page defines the keytop and control usages for telephony devices. */ /* 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. */ /* See Section 14, ÒConsumer Page (0x0C),Ó for audio volume and tone controls. */ enum { kHIDUsage_Tfon_Phone = 0x01, /* Application Collection */ kHIDUsage_Tfon_AnsweringMachine = 0x02, /* Application Collection */ kHIDUsage_Tfon_MessageControls = 0x03, /* Logical Collection */ kHIDUsage_Tfon_Handset = 0x04, /* Logical Collection */ kHIDUsage_Tfon_Headset = 0x05, /* Logical Collection */ kHIDUsage_Tfon_TelephonyKeyPad = 0x06, /* Named Array */ kHIDUsage_Tfon_ProgrammableButton = 0x07, /* Named Array */ /* 0x08 - 0x1F Reserved */ kHIDUsage_Tfon_HookSwitch = 0x20, /* On/Off Control */ kHIDUsage_Tfon_Flash = 0x21, /* Momentary Control */ kHIDUsage_Tfon_Feature = 0x22, /* One-Shot Control */ kHIDUsage_Tfon_Hold = 0x23, /* On/Off Control */ kHIDUsage_Tfon_Redial = 0x24, /* One-Shot Control */ kHIDUsage_Tfon_Transfer = 0x25, /* One-Shot Control */ kHIDUsage_Tfon_Drop = 0x26, /* One-Shot Control */ kHIDUsage_Tfon_Park = 0x27, /* On/Off Control */ kHIDUsage_Tfon_ForwardCalls = 0x28, /* On/Off Control */ kHIDUsage_Tfon_AlternateFunction = 0x29, /* Momentary Control */ kHIDUsage_Tfon_Line = 0x2A, /* One-Shot Control */ kHIDUsage_Tfon_SpeakerPhone = 0x2B, /* On/Off Control */ kHIDUsage_Tfon_Conference = 0x2C, /* On/Off Control */ kHIDUsage_Tfon_RingEnable = 0x2D, /* On/Off Control */ kHIDUsage_Tfon_Ring = 0x2E, /* Selector */ kHIDUsage_Tfon_PhoneMute = 0x2F, /* On/Off Control */ kHIDUsage_Tfon_CallerID = 0x30, /* Momentary Control */ /* 0x31 - 0x4F Reserved */ kHIDUsage_Tfon_SpeedDial = 0x50, /* One-Shot Control */ kHIDUsage_Tfon_StoreNumber = 0x51, /* One-Shot Control */ kHIDUsage_Tfon_RecallNumber = 0x52, /* One-Shot Control */ kHIDUsage_Tfon_PhoneDirectory = 0x53, /* On/Off Control */ /* 0x54 - 0x6F Reserved */ kHIDUsage_Tfon_VoiceMail = 0x70, /* On/Off Control */ kHIDUsage_Tfon_ScreenCalls = 0x71, /* On/Off Control */ kHIDUsage_Tfon_DoNotDisturb = 0x72, /* On/Off Control */ kHIDUsage_Tfon_Message = 0x73, /* One-Shot Control */ kHIDUsage_Tfon_AnswerOnOrOff = 0x74, /* On/Off Control */ /* 0x75 - 0x8F Reserved */ kHIDUsage_Tfon_InsideDialTone = 0x90, /* Momentary Control */ kHIDUsage_Tfon_OutsideDialTone = 0x91, /* Momentary Control */ kHIDUsage_Tfon_InsideRingTone = 0x92, /* Momentary Control */ kHIDUsage_Tfon_OutsideRingTone = 0x93, /* Momentary Control */ kHIDUsage_Tfon_PriorityRingTone = 0x94, /* Momentary Control */ kHIDUsage_Tfon_InsideRingback = 0x95, /* Momentary Control */ kHIDUsage_Tfon_PriorityRingback = 0x96, /* Momentary Control */ kHIDUsage_Tfon_LineBusyTone = 0x97, /* Momentary Control */ kHIDUsage_Tfon_ReorderTone = 0x98, /* Momentary Control */ kHIDUsage_Tfon_CallWaitingTone = 0x99, /* Momentary Control */ kHIDUsage_Tfon_ConfirmationTone1 = 0x9A, /* Momentary Control */ kHIDUsage_Tfon_ConfirmationTone2 = 0x9B, /* Momentary Control */ kHIDUsage_Tfon_TonesOff = 0x9C, /* On/Off Control */ kHIDUsage_Tfon_OutsideRingback = 0x9D, /* Momentary Control */ /* 0x9E - 0xAF Reserved */ kHIDUsage_Tfon_PhoneKey0 = 0xB0, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey1 = 0xB1, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey2 = 0xB2, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey3 = 0xB3, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey4 = 0xB4, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey5 = 0xB5, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey6 = 0xB6, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey7 = 0xB7, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey8 = 0xB8, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKey9 = 0xB9, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKeyStar = 0xBA, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKeyPound = 0xBB, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKeyA = 0xBC, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKeyB = 0xBD, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKeyC = 0xBE, /* Selector/One-Shot Control */ kHIDUsage_Tfon_PhoneKeyD = 0xBF, /* Selector/One-Shot Control */ /* 0xC0 - 0xFFFF Reserved */ kHIDUsage_TFon_Reserved = 0xFFFF }; /* Consumer Page (0x0C) */ /* All controls on the Consumer page are application-specific. That is, they affect a specific device, not the system as a whole. */ enum { kHIDUsage_Csmr_ConsumerControl = 0x01, /* Application Collection */ kHIDUsage_Csmr_NumericKeyPad = 0x02, /* Named Array */ kHIDUsage_Csmr_ProgrammableButtons = 0x03, /* Named Array */ /* 0x03 - 0x1F Reserved */ kHIDUsage_Csmr_Plus10 = 0x20, /* One-Shot Control */ kHIDUsage_Csmr_Plus100 = 0x21, /* One-Shot Control */ kHIDUsage_Csmr_AMOrPM = 0x22, /* One-Shot Control */ /* 0x23 - 0x3F Reserved */ kHIDUsage_Csmr_Power = 0x30, /* On/Off Control */ kHIDUsage_Csmr_Reset = 0x31, /* One-Shot Control */ kHIDUsage_Csmr_Sleep = 0x32, /* One-Shot Control */ kHIDUsage_Csmr_SleepAfter = 0x33, /* One-Shot Control */ kHIDUsage_Csmr_SleepMode = 0x34, /* Re-Trigger Control */ kHIDUsage_Csmr_Illumination = 0x35, /* On/Off Control */ kHIDUsage_Csmr_FunctionButtons = 0x36, /* Named Array */ /* 0x37 - 0x3F Reserved */ kHIDUsage_Csmr_Menu = 0x40, /* On/Off Control */ kHIDUsage_Csmr_MenuPick = 0x41, /* One-Shot Control */ kHIDUsage_Csmr_MenuUp = 0x42, /* One-Shot Control */ kHIDUsage_Csmr_MenuDown = 0x43, /* One-Shot Control */ kHIDUsage_Csmr_MenuLeft = 0x44, /* One-Shot Control */ kHIDUsage_Csmr_MenuRight = 0x45, /* One-Shot Control */ kHIDUsage_Csmr_MenuEscape = 0x46, /* One-Shot Control */ kHIDUsage_Csmr_MenuValueIncrease = 0x47, /* One-Shot Control */ kHIDUsage_Csmr_MenuValueDecrease = 0x48, /* One-Shot Control */ /* 0x49 - 0x5F Reserved */ kHIDUsage_Csmr_DataOnScreen = 0x60, /* On/Off Control */ kHIDUsage_Csmr_ClosedCaption = 0x61, /* On/Off Control */ kHIDUsage_Csmr_ClosedCaptionSelect = 0x62, /* Selector */ kHIDUsage_Csmr_VCROrTV = 0x63, /* On/Off Control */ kHIDUsage_Csmr_BroadcastMode = 0x64, /* One-Shot Control */ kHIDUsage_Csmr_Snapshot = 0x65, /* One-Shot Control */ kHIDUsage_Csmr_Still = 0x66, /* One-Shot Control */ /* 0x67 - 0x7F Reserved */ kHIDUsage_Csmr_Selection = 0x80, /* Named Array */ kHIDUsage_Csmr_Assign = 0x81, /* Selector */ kHIDUsage_Csmr_ModeStep = 0x82, /* One-Shot Control */ kHIDUsage_Csmr_RecallLast = 0x83, /* One-Shot Control */ kHIDUsage_Csmr_EnterChannel = 0x84, /* One-Shot Control */ kHIDUsage_Csmr_OrderMovie = 0x85, /* One-Shot Control */ kHIDUsage_Csmr_Channel = 0x86, /* Linear Control */ kHIDUsage_Csmr_MediaSelection = 0x87, /* Selector */ kHIDUsage_Csmr_MediaSelectComputer = 0x88, /* Selector */ kHIDUsage_Csmr_MediaSelectTV = 0x89, /* Selector */ kHIDUsage_Csmr_MediaSelectWWW = 0x8A, /* Selector */ kHIDUsage_Csmr_MediaSelectDVD = 0x8B, /* Selector */ kHIDUsage_Csmr_MediaSelectTelephone = 0x8C, /* Selector */ kHIDUsage_Csmr_MediaSelectProgramGuide = 0x8D, /* Selector */ kHIDUsage_Csmr_MediaSelectVideoPhone = 0x8E, /* Selector */ kHIDUsage_Csmr_MediaSelectGames = 0x8F, /* Selector */ kHIDUsage_Csmr_MediaSelectMessages = 0x90, /* Selector */ kHIDUsage_Csmr_MediaSelectCD = 0x91, /* Selector */ kHIDUsage_Csmr_MediaSelectVCR = 0x92, /* Selector */ kHIDUsage_Csmr_MediaSelectTuner = 0x93, /* Selector */ kHIDUsage_Csmr_Quit = 0x94, /* One-Shot Control */ kHIDUsage_Csmr_Help = 0x95, /* On/Off Control */ kHIDUsage_Csmr_MediaSelectTape = 0x96, /* Selector */ kHIDUsage_Csmr_MediaSelectCable = 0x97, /* Selector */ kHIDUsage_Csmr_MediaSelectSatellite = 0x98, /* Selector */ kHIDUsage_Csmr_MediaSelectSecurity = 0x99, /* Selector */ kHIDUsage_Csmr_MediaSelectHome = 0x9A, /* Selector */ kHIDUsage_Csmr_MediaSelectCall = 0x9B, /* Selector */ kHIDUsage_Csmr_ChannelIncrement = 0x9C, /* One-Shot Control */ kHIDUsage_Csmr_ChannelDecrement = 0x9D, /* One-Shot Control */ kHIDUsage_Csmr_Media = 0x9E, /* Selector */ /* 0x9F Reserved */ kHIDUsage_Csmr_VCRPlus = 0xA0, /* One-Shot Control */ kHIDUsage_Csmr_Once = 0xA1, /* One-Shot Control */ kHIDUsage_Csmr_Daily = 0xA2, /* One-Shot Control */ kHIDUsage_Csmr_Weekly = 0xA3, /* One-Shot Control */ kHIDUsage_Csmr_Monthly = 0xA4, /* One-Shot Control */ /* 0xA5 - 0xAF Reserved */ kHIDUsage_Csmr_Play = 0xB0, /* On/Off Control */ kHIDUsage_Csmr_Pause = 0xB1, /* On/Off Control */ kHIDUsage_Csmr_Record = 0xB2, /* On/Off Control */ kHIDUsage_Csmr_FastForward = 0xB3, /* On/Off Control */ kHIDUsage_Csmr_Rewind = 0xB4, /* On/Off Control */ kHIDUsage_Csmr_ScanNextTrack = 0xB5, /* One-Shot Control */ kHIDUsage_Csmr_ScanPreviousTrack = 0xB6, /* One-Shot Control */ kHIDUsage_Csmr_Stop = 0xB7, /* One-Shot Control */ kHIDUsage_Csmr_Eject = 0xB8, /* One-Shot Control */ kHIDUsage_Csmr_RandomPlay = 0xB9, /* On/Off Control */ kHIDUsage_Csmr_SelectDisc = 0xBA, /* Named Array */ kHIDUsage_Csmr_EnterDisc = 0xBB, /* Momentary Control */ kHIDUsage_Csmr_Repeat = 0xBC, /* One-Shot Control */ kHIDUsage_Csmr_Tracking = 0xBD, /* Linear Control */ kHIDUsage_Csmr_TrackNormal = 0xBE, /* One-Shot Control */ kHIDUsage_Csmr_SlowTracking = 0xBF, /* Linear Control */ kHIDUsage_Csmr_FrameForward = 0xC0, /* Re-Trigger Control */ kHIDUsage_Csmr_FrameBack = 0xC1, /* Re-Trigger Control */ kHIDUsage_Csmr_Mark = 0xC2, /* One-Shot Control */ kHIDUsage_Csmr_ClearMark = 0xC3, /* One-Shot Control */ kHIDUsage_Csmr_RepeatFromMark = 0xC4, /* On/Off Control */ kHIDUsage_Csmr_ReturnToMark = 0xC5, /* One-Shot Control */ kHIDUsage_Csmr_SearchMarkForward = 0xC6, /* One-Shot Control */ kHIDUsage_Csmr_SearchMarkBackwards = 0xC7, /* One-Shot Control */ kHIDUsage_Csmr_CounterReset = 0xC8, /* One-Shot Control */ kHIDUsage_Csmr_ShowCounter = 0xC9, /* One-Shot Control */ kHIDUsage_Csmr_TrackingIncrement = 0xCA, /* Re-Trigger Control */ kHIDUsage_Csmr_TrackingDecrement = 0xCB, /* Re-Trigger Control */ kHIDUsage_Csmr_StopOrEject = 0xCC, /* One-Shot Control */ kHIDUsage_Csmr_PlayOrPause = 0xCD, /* One-Shot Control */ kHIDUsage_Csmr_PlayOrSkip = 0xCE, /* One-Shot Control */ /* 0xCF - 0xDF Reserved */ kHIDUsage_Csmr_Volume = 0xE0, /* Linear Control */ kHIDUsage_Csmr_Balance = 0xE1, /* Linear Control */ kHIDUsage_Csmr_Mute = 0xE2, /* On/Off Control */ kHIDUsage_Csmr_Bass = 0xE3, /* Linear Control */ kHIDUsage_Csmr_Treble = 0xE4, /* Linear Control */ kHIDUsage_Csmr_BassBoost = 0xE5, /* On/Off Control */ kHIDUsage_Csmr_SurroundMode = 0xE6, /* One-Shot Control */ kHIDUsage_Csmr_Loudness = 0xE7, /* On/Off Control */ kHIDUsage_Csmr_MPX = 0xE8, /* On/Off Control */ kHIDUsage_Csmr_VolumeIncrement = 0xE9, /* Re-Trigger Control */ kHIDUsage_Csmr_VolumeDecrement = 0xEA, /* Re-Trigger Control */ /* 0xEB - 0xEF Reserved */ kHIDUsage_Csmr_Speed = 0xF0, /* Selector */ kHIDUsage_Csmr_PlaybackSpeed = 0xF1, /* Named Array */ kHIDUsage_Csmr_StandardPlay = 0xF2, /* Selector */ kHIDUsage_Csmr_LongPlay = 0xF3, /* Selector */ kHIDUsage_Csmr_ExtendedPlay = 0xF4, /* Selector */ kHIDUsage_Csmr_Slow = 0xF5, /* One-Shot Control */ /* 0xF6 - 0xFF Reserved */ kHIDUsage_Csmr_FanEnable = 0x0100, /* On/Off Control */ kHIDUsage_Csmr_FanSpeed = 0x0101, /* Linear Control */ kHIDUsage_Csmr_LightEnable = 0x0102, /* On/Off Control */ kHIDUsage_Csmr_LightIlluminationLevel = 0x0103, /* Linear Control */ kHIDUsage_Csmr_ClimateControlEnable = 0x0104, /* On/Off Control */ kHIDUsage_Csmr_RoomTemperature = 0x0105, /* Linear Control */ kHIDUsage_Csmr_SecurityEnable = 0x0106, /* On/Off Control */ kHIDUsage_Csmr_FireAlarm = 0x0107, /* One-Shot Control */ kHIDUsage_Csmr_PoliceAlarm = 0x0108, /* One-Shot Control */ /* 0x109 - 0x14F Reserved */ kHIDUsage_Csmr_BalanceRight = 0x0150, /* Re-Trigger Control */ kHIDUsage_Csmr_BalanceLeft = 0x0151, /* Re-Trigger Control */ kHIDUsage_Csmr_BassIncrement = 0x0152, /* Re-Trigger Control */ kHIDUsage_Csmr_BassDecrement = 0x0153, /* Re-Trigger Control */ kHIDUsage_Csmr_TrebleIncrement = 0x0154, /* Re-Trigger Control */ kHIDUsage_Csmr_TrebleDecrement = 0x0155, /* Re-Trigger Control */ /* 0x156 - 0x15F Reserved */ kHIDUsage_Csmr_SpeakerSystem = 0x0160, /* Logical Collection */ kHIDUsage_Csmr_ChannelLeft = 0x0161, /* Logical Collection */ kHIDUsage_Csmr_ChannelRight = 0x0162, /* Logical Collection */ kHIDUsage_Csmr_ChannelCenter = 0x0163, /* Logical Collection */ kHIDUsage_Csmr_ChannelFront = 0x0164, /* Logical Collection */ kHIDUsage_Csmr_ChannelCenterFront = 0x0165, /* Logical Collection */ kHIDUsage_Csmr_ChannelSide = 0x0166, /* Logical Collection */ kHIDUsage_Csmr_ChannelSurround = 0x0167, /* Logical Collection */ kHIDUsage_Csmr_ChannelLowFrequencyEnhancement = 0x0168, /* Logical Collection */ kHIDUsage_Csmr_ChannelTop = 0x0169, /* Logical Collection */ kHIDUsage_Csmr_ChannelUnknown = 0x016A, /* Logical Collection */ /* 0x16B - 0x16F Reserved */ kHIDUsage_Csmr_SubChannel = 0x0170, /* Linear Control */ kHIDUsage_Csmr_SubChannelIncrement = 0x0171, /* One-Shot Control */ kHIDUsage_Csmr_SubChannelDecrement = 0x0172, /* One-Shot Control */ kHIDUsage_Csmr_AlternateAudioIncrement = 0x0173, /* One-Shot Control */ kHIDUsage_Csmr_AlternateAudioDecrement = 0x0174, /* One-Shot Control */ /* 0x175 - 0x17F Reserved */ kHIDUsage_Csmr_ApplicationLaunchButtons = 0x0180, /* Named Array */ kHIDUsage_Csmr_ALLaunchButtonConfigurationTool = 0x0181, /* Selector */ kHIDUsage_Csmr_ALProgrammableButtonConfiguration = 0x0182, /* Selector */ kHIDUsage_Csmr_ALConsumerControlConfiguration = 0x0183, /* Selector */ kHIDUsage_Csmr_ALWordProcessor = 0x0184, /* Selector */ kHIDUsage_Csmr_ALTextEditor = 0x0185, /* Selector */ kHIDUsage_Csmr_ALSpreadsheet = 0x0186, /* Selector */ kHIDUsage_Csmr_ALGraphicsEditor = 0x0187, /* Selector */ kHIDUsage_Csmr_ALPresentationApp = 0x0188, /* Selector */ kHIDUsage_Csmr_ALDatabaseApp = 0x0189, /* Selector */ kHIDUsage_Csmr_ALEmailReader = 0x018A, /* Selector */ kHIDUsage_Csmr_ALNewsreader = 0x018B, /* Selector */ kHIDUsage_Csmr_ALVoicemail = 0x018C, /* Selector */ kHIDUsage_Csmr_ALContactsOrAddressBook = 0x018D, /* Selector */ kHIDUsage_Csmr_ALCalendarOrSchedule = 0x018E, /* Selector */ kHIDUsage_Csmr_ALTaskOrProjectManager = 0x018F, /* Selector */ kHIDUsage_Csmr_ALLogOrJournalOrTimecard = 0x0190, /* Selector */ kHIDUsage_Csmr_ALCheckbookOrFinance = 0x0191, /* Selector */ kHIDUsage_Csmr_ALCalculator = 0x0192, /* Selector */ kHIDUsage_Csmr_ALAOrVCaptureOrPlayback = 0x0193, /* Selector */ kHIDUsage_Csmr_ALLocalMachineBrowser = 0x0194, /* Selector */ kHIDUsage_Csmr_ALLANOrWANBrowser = 0x0195, /* Selector */ kHIDUsage_Csmr_ALInternetBrowser = 0x0196, /* Selector */ kHIDUsage_Csmr_ALRemoteNetworkingOrISPConnect = 0x0197, /* Selector */ kHIDUsage_Csmr_ALNetworkConference = 0x0198, /* Selector */ kHIDUsage_Csmr_ALNetworkChat = 0x0199, /* Selector */ kHIDUsage_Csmr_ALTelephonyOrDialer = 0x019A, /* Selector */ kHIDUsage_Csmr_ALLogon = 0x019B, /* Selector */ kHIDUsage_Csmr_ALLogoff = 0x019C, /* Selector */ kHIDUsage_Csmr_ALLogonOrLogoff = 0x019D, /* Selector */ kHIDUsage_Csmr_ALTerminalLockOrScreensaver = 0x019E, /* Selector */ kHIDUsage_Csmr_ALControlPanel = 0x019F, /* Selector */ kHIDUsage_Csmr_ALCommandLineProcessorOrRun = 0x01A0, /* Selector */ kHIDUsage_Csmr_ALProcessOrTaskManager = 0x01A1, /* Selector */ kHIDUsage_Csmr_AL = 0x01A2, /* Selector */ kHIDUsage_Csmr_ALNextTaskOrApplication = 0x0143, /* Selector */ kHIDUsage_Csmr_ALPreviousTaskOrApplication = 0x01A4, /* Selector */ kHIDUsage_Csmr_ALPreemptiveHaltTaskOrApplication = 0x01A5, /* Selector */ /* 0x1A6 - 0x1FF Reserved */ kHIDUsage_Csmr_GenericGUIApplicationControls = 0x0200, /* Named Array */ kHIDUsage_Csmr_ACNew = 0x0201, /* Selector */ kHIDUsage_Csmr_ACOpen = 0x0202, /* Selector */ kHIDUsage_Csmr_ACClose = 0x0203, /* Selector */ kHIDUsage_Csmr_ACExit = 0x0204, /* Selector */ kHIDUsage_Csmr_ACMaximize = 0x0205, /* Selector */ kHIDUsage_Csmr_ACMinimize = 0x0206, /* Selector */ kHIDUsage_Csmr_ACSave = 0x0207, /* Selector */ kHIDUsage_Csmr_ACPrint = 0x0208, /* Selector */ kHIDUsage_Csmr_ACProperties = 0x0209, /* Selector */ kHIDUsage_Csmr_ACUndo = 0x021A, /* Selector */ kHIDUsage_Csmr_ACCopy = 0x021B, /* Selector */ kHIDUsage_Csmr_ACCut = 0x021C, /* Selector */ kHIDUsage_Csmr_ACPaste = 0x021D, /* Selector */ kHIDUsage_Csmr_AC = 0x021E, /* Selector */ kHIDUsage_Csmr_ACFind = 0x021F, /* Selector */ kHIDUsage_Csmr_ACFindandReplace = 0x0220, /* Selector */ kHIDUsage_Csmr_ACSearch = 0x0221, /* Selector */ kHIDUsage_Csmr_ACGoTo = 0x0222, /* Selector */ kHIDUsage_Csmr_ACHome = 0x0223, /* Selector */ kHIDUsage_Csmr_ACBack = 0x0224, /* Selector */ kHIDUsage_Csmr_ACForward = 0x0225, /* Selector */ kHIDUsage_Csmr_ACStop = 0x0226, /* Selector */ kHIDUsage_Csmr_ACRefresh = 0x0227, /* Selector */ kHIDUsage_Csmr_ACPreviousLink = 0x0228, /* Selector */ kHIDUsage_Csmr_ACNextLink = 0x0229, /* Selector */ kHIDUsage_Csmr_ACBookmarks = 0x022A, /* Selector */ kHIDUsage_Csmr_ACHistory = 0x022B, /* Selector */ kHIDUsage_Csmr_ACSubscriptions = 0x022C, /* Selector */ kHIDUsage_Csmr_ACZoomIn = 0x022D, /* Selector */ kHIDUsage_Csmr_ACZoomOut = 0x022E, /* Selector */ kHIDUsage_Csmr_ACZoom = 0x022F, /* Selector */ kHIDUsage_Csmr_ACFullScreenView = 0x0230, /* Selector */ kHIDUsage_Csmr_ACNormalView = 0x0231, /* Selector */ kHIDUsage_Csmr_ACViewToggle = 0x0232, /* Selector */ kHIDUsage_Csmr_ACScrollUp = 0x0233, /* Selector */ kHIDUsage_Csmr_ACScrollDown = 0x0234, /* Selector */ kHIDUsage_Csmr_ACScroll = 0x0235, /* Selector */ kHIDUsage_Csmr_ACPanLeft = 0x0236, /* Selector */ kHIDUsage_Csmr_ACPanRight = 0x0237, /* Selector */ kHIDUsage_Csmr_ACPan = 0x0238, /* Selector */ kHIDUsage_Csmr_ACNewWindow = 0x0239, /* Selector */ kHIDUsage_Csmr_ACTileHorizontally = 0x023A, /* Selector */ kHIDUsage_Csmr_ACTileVertically = 0x023B, /* Selector */ kHIDUsage_Csmr_ACFormat = 0x023C, /* Selector */ /* 0x23D - 0xFFFF Reserved */ kHIDUsage_Csmr_Reserved = 0xFFFF }; /* Digitizer Page (0x0D) */ /* This section provides detailed descriptions of the usages employed by Digitizer Devices. */ enum { kHIDUsage_Dig_Digitizer = 0x01, /* Application Collection */ kHIDUsage_Dig_Pen = 0x02, /* Application Collection */ kHIDUsage_Dig_LightPen = 0x03, /* Application Collection */ kHIDUsage_Dig_TouchScreen = 0x04, /* Application Collection */ kHIDUsage_Dig_TouchPad = 0x05, /* Application Collection */ kHIDUsage_Dig_WhiteBoard = 0x06, /* Application Collection */ kHIDUsage_Dig_CoordinateMeasuringMachine = 0x07, /* Application Collection */ kHIDUsage_Dig_3DDigitizer = 0x08, /* Application Collection */ kHIDUsage_Dig_StereoPlotter = 0x09, /* Application Collection */ kHIDUsage_Dig_ArticulatedArm = 0x0A, /* Application Collection */ kHIDUsage_Dig_Armature = 0x0B, /* Application Collection */ kHIDUsage_Dig_MultiplePointDigitizer = 0x0C, /* Application Collection */ kHIDUsage_Dig_FreeSpaceWand = 0x0D, /* Application Collection */ /* 0x0E - 0x1F Reserved */ kHIDUsage_Dig_Stylus = 0x20, /* Logical Collection */ kHIDUsage_Dig_Puck = 0x21, /* Logical Collection */ kHIDUsage_Dig_Finger = 0x22, /* Logical Collection */ /* 0x23 - 0x2F Reserved */ kHIDUsage_Dig_TipPressure = 0x30, /* Dynamic Value */ kHIDUsage_Dig_BarrelPressure = 0x31, /* Dynamic Value */ kHIDUsage_Dig_InRange = 0x32, /* Momentary Control */ kHIDUsage_Dig_Touch = 0x33, /* Momentary Control */ kHIDUsage_Dig_Untouch = 0x34, /* One-Shot Control */ kHIDUsage_Dig_Tap = 0x35, /* One-Shot Control */ kHIDUsage_Dig_Quality = 0x36, /* Dynamic Value */ kHIDUsage_Dig_DataValid = 0x37, /* Momentary Control */ kHIDUsage_Dig_TransducerIndex = 0x38, /* Dynamic Value */ kHIDUsage_Dig_TabletFunctionKeys = 0x39, /* Logical Collection */ kHIDUsage_Dig_ProgramChangeKeys = 0x3A, /* Logical Collection */ kHIDUsage_Dig_BatteryStrength = 0x3B, /* Dynamic Value */ kHIDUsage_Dig_Invert = 0x3C, /* Momentary Control */ kHIDUsage_Dig_XTilt = 0x3D, /* Dynamic Value */ kHIDUsage_Dig_YTilt = 0x3E, /* Dynamic Value */ kHIDUsage_Dig_Azimuth = 0x3F, /* Dynamic Value */ kHIDUsage_Dig_Altitude = 0x40, /* Dynamic Value */ kHIDUsage_Dig_Twist = 0x41, /* Dynamic Value */ kHIDUsage_Dig_TipSwitch = 0x42, /* Momentary Control */ kHIDUsage_Dig_SecondaryTipSwitch = 0x43, /* Momentary Control */ kHIDUsage_Dig_BarrelSwitch = 0x44, /* Momentary Control */ kHIDUsage_Dig_Eraser = 0x45, /* Momentary Control */ kHIDUsage_Dig_TabletPick = 0x46, /* Momentary Control */ /* 0x47 - 0xFFFF Reserved */ kHIDUsage_Dig_Reserved = 0xFFFF }; /* AlphanumericDisplay Page (0x14) */ /* The Alphanumeric Display page is intended for use by simple alphanumeric displays that are used on consumer devices. */ enum { kHIDUsage_AD_AlphanumericDisplay = 0x01, /* Application Collection */ /* 0x02 - 0x1F Reserved */ kHIDUsage_AD_DisplayAttributesReport = 0x20, /* Logical Collection */ kHIDUsage_AD_ASCIICharacterSet = 0x21, /* Static Flag */ kHIDUsage_AD_DataReadBack = 0x22, /* Static Flag */ kHIDUsage_AD_FontReadBack = 0x23, /* Static Flag */ kHIDUsage_AD_DisplayControlReport = 0x24, /* Logical Collection */ kHIDUsage_AD_ClearDisplay = 0x25, /* Dynamic Flag */ kHIDUsage_AD_DisplayEnable = 0x26, /* Dynamic Flag */ kHIDUsage_AD_ScreenSaverDelay = 0x27, /* Static Value */ kHIDUsage_AD_ScreenSaverEnable = 0x28, /* Dynamic Flag */ kHIDUsage_AD_VerticalScroll = 0x29, /* Static Flag */ kHIDUsage_AD_HorizontalScroll = 0x2A, /* Static Flag */ kHIDUsage_AD_CharacterReport = 0x2B, /* Logical Collection */ kHIDUsage_AD_DisplayData = 0x2C, /* Dynamic Value */ kHIDUsage_AD_DisplayStatus = 0x2D, /* Logical Collection */ kHIDUsage_AD_StatNotReady = 0x2E, /* Selector */ kHIDUsage_AD_StatReady = 0x2F, /* Selector */ kHIDUsage_AD_ErrNotaloadablecharacter = 0x30, /* Selector */ kHIDUsage_AD_ErrFontdatacannotberead = 0x31, /* Selector */ kHIDUsage_AD_CursorPositionReport = 0x32, /* Logical Collection */ kHIDUsage_AD_Row = 0x33, /* Dynamic Value */ kHIDUsage_AD_Column = 0x34, /* Dynamic Value */ kHIDUsage_AD_Rows = 0x35, /* Static Value */ kHIDUsage_AD_Columns = 0x36, /* Static Value */ kHIDUsage_AD_CursorPixelPositioning = 0x37, /* Static Flag */ kHIDUsage_AD_CursorMode = 0x38, /* Dynamic Flag */ kHIDUsage_AD_CursorEnable = 0x39, /* Dynamic Flag */ kHIDUsage_AD_CursorBlink = 0x3A, /* Dynamic Flag */ kHIDUsage_AD_FontReport = 0x3B, /* Logical Collection */ kHIDUsage_AD_FontData = 0x3C, /* Buffered Byte */ kHIDUsage_AD_CharacterWidth = 0x3D, /* Static Value */ kHIDUsage_AD_CharacterHeight = 0x3E, /* Static Value */ kHIDUsage_AD_CharacterSpacingHorizontal = 0x3F, /* Static Value */ kHIDUsage_AD_CharacterSpacingVertical = 0x40, /* Static Value */ kHIDUsage_AD_UnicodeCharacterSet = 0x41, /* Static Flag */ /* 0x42 - 0xFFFF Reserved */ kHIDUsage_AD_Reserved = 0xFFFF }; #ifdef __cplusplus } #endif #endif /* __HID__ */