From 1e60efeb641c83a9436b0a5e258af56ee4ef413d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= Date: Tue, 10 Mar 2020 20:06:08 +0000 Subject: [PATCH] USB HID: refactor usage page identification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current approach to identify the the usage page and usage page usages is not great. It joins both the usage pages and the usages which are supposed to be individual values. The HID usage tables declarations also become harder to read as they hold the constructed value, not the value from the spec. This patch changes the HID usage table declartions from range_string to value_string, making them less bulky and easier to read, and splits out the usage page from the usages. Change-Id: I018406267fae43683d68c1349049e2c7c26f8ad6 Signed-off-by: Filipe LaĆ­ns Reviewed-on: https://code.wireshark.org/review/36362 Petri-Dish: Anders Broman Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/dissectors/packet-usb-hid.c | 3954 +++++++++++++++--------------- 1 file changed, 1977 insertions(+), 1977 deletions(-) diff --git a/epan/dissectors/packet-usb-hid.c b/epan/dissectors/packet-usb-hid.c index ec9f38dfa0..3c99a79d31 100644 --- a/epan/dissectors/packet-usb-hid.c +++ b/epan/dissectors/packet-usb-hid.c @@ -292,1978 +292,1853 @@ static const value_string usb_hid_globalitem_unit_exp_vals[] = { {0xF, "n^-1"}, {0, NULL} }; -static const range_string usb_hid_item_usage_page_vals[] = { - {0x00, 0x00, "Undefined"}, - {0x01, 0x01, "Generic desktop controls"}, - {0x02, 0x02, "Simulation controls"}, - {0x03, 0x03, "VR controls"}, - {0x04, 0x04, "Sport controls"}, - {0x05, 0x05, "Game controls"}, - {0x06, 0x06, "Generic device controls"}, - {0x07, 0x07, "Keyboard/keypad"}, - {0x08, 0x08, "LEDs"}, - {0x09, 0x09, "Button"}, - {0x0A, 0x0A, "Ordinal"}, - {0x0B, 0x0B, "Telephony"}, - {0x0C, 0x0C, "Consumer"}, - {0x0D, 0x0D, "Digitizer"}, - {0x0E, 0x0E, "[Reserved]"}, - {0x0F, 0x0F, "Physical Interface Device (PID) page"}, - {0x10, 0x10, "Unicode"}, - {0x11, 0x13, "[Reserved]"}, - {0x14, 0x14, "Alphanumeric display"}, - {0x15, 0x3F, "[Reserved]"}, - {0x40, 0x40, "Medical instruments"}, - {0x41, 0x7F, "[Reserved]"}, - {0x80, 0x83, "Monitor page"}, - {0x84, 0x87, "Power page"}, - {0x88, 0x8B, "[Reserved]"}, - {0x8C, 0x8C, "Bar code scanner page"}, - {0x8D, 0x8D, "Scale page"}, - {0x8E, 0x8E, "Magnetic Stripe Reading (MSR) devices"}, - {0x8F, 0x8F, "[Reserved Point of Sale page]"}, - {0x90, 0x90, "Camera control page"}, - {0x91, 0x91, "Arcade page"}, - {0x92, 0xFEFF, "[Reserved]"}, - {0xFF00, 0xFFFF, "[Vendor-defined]"}, - {0, 0, NULL} + +#define GENERIC_DESKTOP_CONTROLS_PAGE 0x01 +#define SIMULATION_CONTROLS_PAGE 0x02 +#define VR_CONTROLS_PAGE 0x03 +#define SPORT_CONTROLS_PAGE 0x04 +#define GAME_CONTROLS_PAGE 0x05 +#define GENERIC_DEVICE_CONTROLS_PAGE 0x06 +#define KEYBOARD_KEYPAD_PAGE 0x07 +#define LED_PAGE 0x08 +#define BUTTON_PAGE 0x09 +#define ORDINAL_PAGE 0x0A +#define TELEPHONY_PAGE 0x0B +#define CONSUMER_PAGE 0x0C +#define DIGITIZER_PAGE 0x0D +#define PID_PAGE 0x0F +#define UNICODE_PAGE 0x10 +#define ALPHANUMERIC_DISPLAY_PAGE 0x14 +#define MEDICAL_INSTRUMENTS_PAGE 0x40 +#define USB_MONITOR_PAGE 0x80 +#define USB_ENUMERATED_VALUES_PAGE 0x81 +#define VESA_VIRTUAL_CONTROLS_PAGE 0x82 +#define POWER_DEVICE_PAGE 0x84 +#define BATTERY_SYSTEM_PAGE 0x85 +#define BARCODE_SCANNER_PAGE 0x8C +#define WEIGHING_PAGE 0x8D +#define MSR_PAGE 0x8E +#define RESERVED_POS_PAGE 0x8F +#define CAMERA_CONTROL_PAGE 0x90 +#define ARCADE_PAGE 0x91 +#define VENDOR_PAGE_HBYTE 0xFF00 +static const value_string usb_hid_item_usage_page_vals[] = { + {0x00, "Undefined"}, + {GENERIC_DESKTOP_CONTROLS_PAGE, "Generic Desktop Controls"}, + {SIMULATION_CONTROLS_PAGE, "Simulation Controls"}, + {VR_CONTROLS_PAGE, "VR Controls"}, + {SPORT_CONTROLS_PAGE, "Sport Controls"}, + {GAME_CONTROLS_PAGE, "Game Controls"}, + {GENERIC_DEVICE_CONTROLS_PAGE, "Generic Device Controls"}, + {KEYBOARD_KEYPAD_PAGE, "Keyboard/Keypad"}, + {LED_PAGE, "LED"}, + {BUTTON_PAGE, "Button"}, + {ORDINAL_PAGE, "Ordinal"}, + {TELEPHONY_PAGE, "Telephony"}, + {CONSUMER_PAGE, "Consumer"}, + {DIGITIZER_PAGE, "Digitizer"}, + {PID_PAGE, "Physical Interface Device (PID)"}, + {UNICODE_PAGE, "Unicode"}, + {ALPHANUMERIC_DISPLAY_PAGE, "Alphanumeric Display"}, + {MEDICAL_INSTRUMENTS_PAGE, "Medical Instruments"}, + {USB_MONITOR_PAGE, "USB Monitor"}, + {USB_ENUMERATED_VALUES_PAGE, "USB Enumerated Values"}, + {VESA_VIRTUAL_CONTROLS_PAGE, "VESA Virtual Controls"}, + {POWER_DEVICE_PAGE, "Power Device"}, + {BATTERY_SYSTEM_PAGE, "Battery Device"}, + {BARCODE_SCANNER_PAGE, "Barcode Scanner"}, + {WEIGHING_PAGE, "Weighing"}, + {MSR_PAGE, "Magnetic Stripe Reading (MSR) Devices"}, + {RESERVED_POS_PAGE, "[Reserved Point of Sale page]"}, + {CAMERA_CONTROL_PAGE, "Camera Control Page"}, + {ARCADE_PAGE, "Arcade"}, + {0, NULL} }; -static const range_string usb_hid_item_usage_vals[] = { - {0x000000, 0x00FFFF, "Undefined"}, - // Generic desktop controls - {0x010000, 0x010000, "Undefined"}, - {0x010001, 0x010001, "Pointer"}, - {0x010002, 0x010002, "Mouse"}, - {0x010003, 0x010003, "Reserved"}, - {0x010004, 0x010004, "Joystick"}, - {0x010005, 0x010005, "Game Pad"}, - {0x010006, 0x010006, "Keyboard"}, - {0x010007, 0x010007, "Keypad"}, - {0x010008, 0x010008, "Multi-axis Controller"}, - {0x010009, 0x010009, "Tablet PC System Controls"}, - {0x01000A, 0x01002F, "Reserved"}, - {0x010030, 0x010030, "X"}, - {0x010031, 0x010031, "Y"}, - {0x010032, 0x010032, "Z"}, - {0x010033, 0x010033, "Rx"}, - {0x010034, 0x010034, "Ry"}, - {0x010035, 0x010035, "Rz"}, - {0x010036, 0x010036, "Slider"}, - {0x010037, 0x010037, "Dial"}, - {0x010038, 0x010038, "Wheel"}, - {0x010039, 0x010039, "Hat switch"}, - {0x01003A, 0x01003A, "Counted Buffer"}, - {0x01003B, 0x01003B, "Byte Count"}, - {0x01003C, 0x01003C, "Motion Wakeup"}, - {0x01003D, 0x01003D, "Start"}, - {0x01003E, 0x01003E, "Select"}, - {0x01003F, 0x01003F, "Reserved"}, - {0x010040, 0x010040, "Vx"}, - {0x010041, 0x010041, "Vy"}, - {0x010042, 0x010042, "Vz"}, - {0x010043, 0x010043, "Vbrx"}, - {0x010044, 0x010044, "Vbry"}, - {0x010045, 0x010045, "Vbrz"}, - {0x010046, 0x010046, "Vno"}, - {0x010047, 0x010047, "Feature Notification"}, - {0x010048, 0x010048, "Resolution Multiplier"}, - {0x010049, 0x01007F, "Reserved"}, - {0x010080, 0x010080, "System Control"}, - {0x010081, 0x010081, "System Power Down"}, - {0x010082, 0x010082, "System Sleep"}, - {0x010083, 0x010083, "System Wake Up"}, - {0x010084, 0x010084, "System Context Menu"}, - {0x010085, 0x010085, "System Main Menu"}, - {0x010086, 0x010086, "System App Menu"}, - {0x010087, 0x010087, "System Menu Help"}, - {0x010088, 0x010088, "System Menu Exit"}, - {0x010089, 0x010089, "System Menu Select"}, - {0x01008A, 0x01008A, "System Menu Right"}, - {0x01008B, 0x01008B, "System Menu Left"}, - {0x01008C, 0x01008C, "System Menu Up"}, - {0x01008D, 0x01008D, "System Menu Down"}, - {0x01008E, 0x01008E, "System Cold Restart"}, - {0x01008F, 0x01008F, "System Warm Restart"}, - {0x010090, 0x010090, "D-pad Up"}, - {0x010091, 0x010091, "D-pad Down"}, - {0x010092, 0x010092, "D-pad Right"}, - {0x010093, 0x010093, "D-pad Left"}, - {0x010094, 0x01009F, "Reserved"}, - {0x0100A0, 0x0100A0, "System Dock"}, - {0x0100A1, 0x0100A1, "System Undock"}, - {0x0100A2, 0x0100A2, "System Setup"}, - {0x0100A3, 0x0100A3, "System Break"}, - {0x0100A4, 0x0100A4, "System Debugger Break"}, - {0x0100A5, 0x0100A5, "Application Break"}, - {0x0100A6, 0x0100A6, "Application Debugger Break"}, - {0x0100A7, 0x0100A7, "System Speaker Mute"}, - {0x0100A8, 0x0100A8, "System Hibernate"}, - {0x0100A9, 0x0100AF, "Reserved"}, - {0x0100B0, 0x0100B0, "System Display Invert"}, - {0x0100B1, 0x0100B1, "System Display Internal"}, - {0x0100B2, 0x0100B2, "System Display External"}, - {0x0100B3, 0x0100B3, "System Display Both"}, - {0x0100B4, 0x0100B4, "System Display Dual"}, - {0x0100B5, 0x0100B5, "System Display Toggle Int/Ext"}, - {0x0100B6, 0x0100B6, "System Display Swap Primary/Secondary"}, - {0x0100B7, 0x0100B7, "System Display LCD Autoscale"}, - {0x0100B8, 0x01FFFF, "Reserved"}, - - // Simulation controls - {0x020000, 0x020000, "Undefined"}, - {0x020001, 0x020001, "Flight Simulation Device"}, - {0x020002, 0x020002, "Automobile Simulation Device"}, - {0x020003, 0x020003, "Tank Simulation Device"}, - {0x020004, 0x020004, "Spaceship Simulation Device"}, - {0x020005, 0x020005, "Submarine Simulation Device"}, - {0x020006, 0x020006, "Sailing Simulation Device"}, - {0x020007, 0x020007, "Motorcycle Simulation Device"}, - {0x020008, 0x020008, "Sports Simulation Device"}, - {0x020009, 0x020009, "Airplane Simulation Device"}, - {0x02000A, 0x02000A, "Helicopter Simulation Device"}, - {0x02000B, 0x02000B, "Magic Carpet Simulation Device"}, - {0x02000C, 0x02000C, "Bicycle Simulation Device"}, - {0x02000D, 0x02001F, "Reserved"}, - {0x020020, 0x020020, "Flight Control Stick"}, - {0x020021, 0x020021, "Flight Stick"}, - {0x020022, 0x020022, "Cyclic Control"}, - {0x020023, 0x020023, "Cyclic Trim"}, - {0x020024, 0x020024, "Flight Yoke"}, - {0x020025, 0x020025, "Track Control"}, - {0x020026, 0x0200AF, "Reserved"}, - {0x0200B0, 0x0200B0, "Aileron"}, - {0x0200B1, 0x0200B1, "Aileron Trim"}, - {0x0200B2, 0x0200B2, "Anti-Torque Control"}, - {0x0200B3, 0x0200B3, "Autopilot Enable"}, - {0x0200B4, 0x0200B4, "Chaff Release"}, - {0x0200B5, 0x0200B5, "Collective Control"}, - {0x0200B6, 0x0200B6, "Dive Brake"}, - {0x0200B7, 0x0200B7, "Electronic Countermeasures"}, - {0x0200B8, 0x0200B8, "Elevator"}, - {0x0200B9, 0x0200B9, "Elevator Trim"}, - {0x0200BA, 0x0200BA, "Rudder"}, - {0x0200BB, 0x0200BB, "Throttle"}, - {0x0200BC, 0x0200BC, "Flight Communications"}, - {0x0200BD, 0x0200BD, "Flare Release"}, - {0x0200BE, 0x0200BE, "Landing Gear"}, - {0x0200BF, 0x0200BF, "Toe Brake"}, - {0x0200C0, 0x0200C0, "Trigger"}, - {0x0200C1, 0x0200C1, "Weapons Arm"}, - {0x0200C2, 0x0200C2, "Weapons Select"}, - {0x0200C3, 0x0200C3, "Wing Flaps"}, - {0x0200C4, 0x0200C4, "Accelerator"}, - {0x0200C5, 0x0200C5, "Brake"}, - {0x0200C6, 0x0200C6, "Clutch"}, - {0x0200C7, 0x0200C7, "Shifter"}, - {0x0200C8, 0x0200C8, "Steering"}, - {0x0200C9, 0x0200C9, "Turret Direction"}, - {0x0200CA, 0x0200CA, "Barrel Elevation"}, - {0x0200CB, 0x0200CB, "Dive Plane"}, - {0x0200CC, 0x0200CC, "Ballast"}, - {0x0200CD, 0x0200CD, "Bicycle Crank"}, - {0x0200CE, 0x0200CE, "Handle Bars"}, - {0x0200CF, 0x0200CF, "Front Brake"}, - {0x0200D0, 0x0200D0, "Rear Brake"}, - {0x0200D1, 0x02FFFF, "Reserved"}, - - // VR controls - {0x030000, 0x030000, "Unidentified"}, - {0x030001, 0x030001, "Belt"}, - {0x030002, 0x030002, "Body Suit"}, - {0x030003, 0x030003, "Flexor"}, - {0x030004, 0x030004, "Glove"}, - {0x030005, 0x030005, "Head Tracker"}, - {0x030006, 0x030006, "Head Mounted Display"}, - {0x030007, 0x030007, "Hand Tracker"}, - {0x030008, 0x030008, "Oculometer"}, - {0x030009, 0x030009, "Vest"}, - {0x03000A, 0x03000A, "Animatronic Device"}, - {0x03000B, 0x03001F, "Reserved"}, - {0x030020, 0x030020, "Stereo Enable"}, - {0x030021, 0x030021, "Display Enable"}, - {0x030022, 0x03FFFF, "Reserved"}, - - // Sport controls - {0x040000, 0x040000, "Unidentified"}, - {0x040001, 0x040001, "Baseball Bat"}, - {0x040002, 0x040002, "Golf Club"}, - {0x040003, 0x040003, "Rowing Machine"}, - {0x040004, 0x040004, "Treadmill"}, - {0x040005, 0x04002F, "Reserved"}, - {0x040030, 0x040030, "Oar"}, - {0x040031, 0x040031, "Slope"}, - {0x040032, 0x040032, "Rate"}, - {0x040033, 0x040033, "Stick Speed"}, - {0x040034, 0x040034, "Stick Face Angle"}, - {0x040035, 0x040035, "Stick Heel/Toe"}, - {0x040036, 0x040036, "Stick Follow Through"}, - {0x040037, 0x040037, "Stick Tempo"}, - {0x040038, 0x040038, "Stick Type"}, - {0x040039, 0x040039, "Stick Height"}, - {0x04003A, 0x04004F, "Reserved"}, - {0x040050, 0x040050, "Putter"}, - {0x040051, 0x040051, "1 Iron"}, - {0x040052, 0x040052, "2 Iron"}, - {0x040053, 0x040053, "3 Iron"}, - {0x040054, 0x040054, "4 Iron"}, - {0x040055, 0x040055, "5 Iron"}, - {0x040056, 0x040056, "6 Iron"}, - {0x040057, 0x040057, "7 Iron"}, - {0x040058, 0x040058, "8 Iron"}, - {0x040059, 0x040059, "9 Iron"}, - {0x04005A, 0x04005A, "10 Iron"}, - {0x04005B, 0x04005B, "11 Iron"}, - {0x04005C, 0x04005C, "Sand Wedge"}, - {0x04005D, 0x04005D, "Loft Wedge"}, - {0x04005E, 0x04005E, "Power Wedge"}, - {0x04005F, 0x04005F, "1 Wood"}, - {0x040060, 0x040060, "3 Wood"}, - {0x040061, 0x040061, "5 Wood"}, - {0x040062, 0x040062, "7 Wood"}, - {0x040063, 0x040063, "9 Wood"}, - {0x040064, 0x04FFFF, "Reserved"}, - - // Game controls - {0x050000, 0x050000, "Undefined"}, - {0x050001, 0x050001, "3D Game Controller"}, - {0x050002, 0x050002, "Pinball Device"}, - {0x050003, 0x050003, "Gun Device"}, - {0x050004, 0x05001F, "Reserved"}, - {0x050020, 0x050020, "Point of View"}, - {0x050021, 0x050021, "Turn Right/Left"}, - {0x050022, 0x050022, "Pitch Forward/Backward"}, - {0x050023, 0x050023, "Roll Right/Left"}, - {0x050024, 0x050024, "Move Right/Left"}, - {0x050025, 0x050025, "Move Forward/Backward"}, - {0x050026, 0x050026, "Move Up/Down"}, - {0x050027, 0x050027, "Lean Right/Left"}, - {0x050028, 0x050028, "Lean Forward/Backward"}, - {0x050029, 0x050029, "Height of POV"}, - {0x05002A, 0x05002A, "Flipper"}, - {0x05002B, 0x05002B, "Secondary Flipper"}, - {0x05002C, 0x05002C, "Bump"}, - {0x05002D, 0x05002D, "New Game"}, - {0x05002E, 0x05002E, "Shoot Ball"}, - {0x05002F, 0x05002F, "Player"}, - {0x050030, 0x050030, "Gun Bolt"}, - {0x050031, 0x050031, "Gun Clip"}, - {0x050032, 0x050032, "Gun Selector"}, - {0x050033, 0x050033, "Gun Single Shot"}, - {0x050034, 0x050034, "Gun Burst"}, - {0x050035, 0x050035, "Gun Automatic"}, - {0x050036, 0x050036, "Gun Safety"}, - {0x050037, 0x050037, "Gamepad Fire/Jump"}, - {0x050038, 0x050038, "[Undefined]"}, - {0x050039, 0x050039, "Gamepad Trigger"}, - {0x05003A, 0x05FFFF, "Reserved"}, - - // Generic device controls - {0x060000, 0x060000, "Unidentified"}, - {0x060001, 0x06001F, "Reserved"}, - {0x060020, 0x060020, "Battery Strength"}, - {0x060021, 0x060021, "Wireless Channel"}, - {0x060022, 0x060022, "Wireless ID"}, - {0x060023, 0x060023, "Discover Wireless Control"}, - {0x060024, 0x060024, "Security Code Character Entered"}, - {0x060025, 0x060025, "Security Code Character Erased"}, - {0x060026, 0x060026, "Security Code Cleared"}, - {0x060027, 0x06FFFF, "Reserved"}, - - // Keyboard/keypad - {0x070000, 0x070000, "Reserved (no event indicated)"}, - {0x070001, 0x070001, "Keyboard ErrorRollOver"}, - {0x070002, 0x070002, "Keyboard POSTFail"}, - {0x070003, 0x070003, "Keyboard ErrorUndefined"}, - {0x070004, 0x070004, "Keyboard a and A"}, - {0x070005, 0x070005, "Keyboard b and B"}, - {0x070006, 0x070006, "Keyboard c and C"}, - {0x070007, 0x070007, "Keyboard d and D"}, - {0x070008, 0x070008, "Keyboard e and E"}, - {0x070009, 0x070009, "Keyboard f and F"}, - {0x07000A, 0x07000A, "Keyboard g and G"}, - {0x07000B, 0x07000B, "Keyboard h and H"}, - {0x07000C, 0x07000C, "Keyboard i and I"}, - {0x07000D, 0x07000D, "Keyboard j and J"}, - {0x07000E, 0x07000E, "Keyboard k and K"}, - {0x07000F, 0x07000F, "Keyboard l and L"}, - {0x070010, 0x070010, "Keyboard m and M"}, - {0x070011, 0x070011, "Keyboard n and N"}, - {0x070012, 0x070012, "Keyboard o and O"}, - {0x070013, 0x070013, "Keyboard p and P"}, - {0x070014, 0x070014, "Keyboard q and Q"}, - {0x070015, 0x070015, "Keyboard r and R"}, - {0x070016, 0x070016, "Keyboard s and S"}, - {0x070017, 0x070017, "Keyboard t and T"}, - {0x070018, 0x070018, "Keyboard u and U"}, - {0x070019, 0x070019, "Keyboard v and V"}, - {0x07001A, 0x07001A, "Keyboard w and W"}, - {0x07001B, 0x07001B, "Keyboard x and X"}, - {0x07001C, 0x07001C, "Keyboard y and Y"}, - {0x07001D, 0x07001D, "Keyboard z and Z"}, - {0x07001E, 0x07001E, "Keyboard 1 and !"}, - {0x07001F, 0x07001F, "Keyboard 2 and @"}, - {0x070020, 0x070020, "Keyboard 3 and #"}, - {0x070021, 0x070021, "Keyboard 4 and $"}, - {0x070022, 0x070022, "Keyboard 5 and %"}, - {0x070023, 0x070023, "Keyboard 6 and ^"}, - {0x070024, 0x070024, "Keyboard 7 and &"}, - {0x070025, 0x070025, "Keyboard 8 and *"}, - {0x070026, 0x070026, "Keyboard 9 and ("}, - {0x070027, 0x070027, "Keyboard 0 and )"}, - {0x070028, 0x070028, "Keyboard Return (ENTER)"}, - {0x070029, 0x070029, "Keyboard ESCAPE"}, - {0x07002A, 0x07002A, "Keyboard DELETE (Backspace)"}, - {0x07002B, 0x07002B, "Keyboard Tab"}, - {0x07002C, 0x07002C, "Keyboard Spacebar"}, - {0x07002D, 0x07002D, "Keyboard - and (underscore)"}, - {0x07002E, 0x07002E, "Keyboard = and +"}, - {0x07002F, 0x07002F, "Keyboard [ and {"}, - {0x070030, 0x070030, "Keyboard ] and }"}, - {0x070031, 0x070031, "Keyboard \\ and |"}, - {0x070032, 0x070032, "Keyboard Non-US # and ~"}, - {0x070033, 0x070033, "Keyboard ; and :"}, - {0x070034, 0x070034, "Keyboard ' and \""}, - {0x070035, 0x070035, "Keyboard Grave Accent and Tilde"}, - {0x070036, 0x070036, "Keyboard , and <"}, - {0x070037, 0x070037, "Keyboard . and >"}, - {0x070038, 0x070038, "Keyboard / and ?"}, - {0x070039, 0x070039, "Keyboard Caps Lock"}, - {0x07003A, 0x07003A, "Keyboard F1"}, - {0x07003B, 0x07003B, "Keyboard F2"}, - {0x07003C, 0x07003C, "Keyboard F3"}, - {0x07003D, 0x07003D, "Keyboard F4"}, - {0x07003E, 0x07003E, "Keyboard F5"}, - {0x07003F, 0x07003F, "Keyboard F6"}, - {0x070040, 0x070040, "Keyboard F7"}, - {0x070041, 0x070041, "Keyboard F8"}, - {0x070042, 0x070042, "Keyboard F9"}, - {0x070043, 0x070043, "Keyboard F11"}, - {0x070044, 0x070044, "Keyboard F12"}, - {0x070045, 0x070045, "Keyboard F13"}, - {0x070046, 0x070046, "Keyboard PrintScreen"}, - {0x070047, 0x070047, "Keyboard Scroll Lock"}, - {0x070048, 0x070048, "Keyboard Pause"}, - {0x070049, 0x070049, "Keyboard Insert"}, - {0x07004A, 0x07004A, "Keyboard Home"}, - {0x07004B, 0x07004B, "Keyboard PageUp"}, - {0x07004C, 0x07004C, "Keyboard Delete Forward"}, - {0x07004D, 0x07004D, "Keyboard End"}, - {0x07004E, 0x07004E, "Keyboard PageDown"}, - {0x07004F, 0x07004F, "Keyboard RightArrow"}, - {0x070050, 0x070050, "Keyboard LeftArrow"}, - {0x070051, 0x070051, "Keyboard DownArrow"}, - {0x070052, 0x070052, "Keyboard UpArrow"}, - {0x070053, 0x070053, "Keypad Num Lock and Clear"}, - {0x070054, 0x070054, "Keypad /"}, - {0x070055, 0x070055, "Keypad *"}, - {0x070056, 0x070056, "Keypad -"}, - {0x070057, 0x070057, "Keypad +"}, - {0x070058, 0x070058, "Keypad ENTER"}, - {0x070059, 0x070059, "Keypad 1 and End"}, - {0x07005A, 0x07005A, "Keypad 2 and Down Arrow"}, - {0x07005B, 0x07005B, "Keypad 3 and PageDn"}, - {0x07005C, 0x07005C, "Keypad 4 and Left Arrow"}, - {0x07005D, 0x07005D, "Keypad 5"}, - {0x07005E, 0x07005E, "Keypad 6 and Right Arrow"}, - {0x07005F, 0x07005F, "Keypad 7 and Home"}, - {0x070060, 0x070060, "Keypad 8 and Up Arrow"}, - {0x070061, 0x070061, "Keypad 9 and PageUp"}, - {0x070062, 0x070062, "Keypad 0 and Insert"}, - {0x070063, 0x070063, "Keypad . and Delete"}, - {0x070064, 0x070064, "Keyboard Non-US \\ and |"}, - {0x070065, 0x070065, "Keyboard Application"}, - {0x070066, 0x070066, "Keyboard Power"}, - {0x070067, 0x070067, "Keypad ="}, - {0x070068, 0x070068, "Keyboard F13"}, - {0x070069, 0x070069, "Keyboard F14"}, - {0x07006A, 0x07006A, "Keyboard F15"}, - {0x07006B, 0x07006B, "Keyboard F16"}, - {0x07006C, 0x07006C, "Keyboard F17"}, - {0x07006D, 0x07006D, "Keyboard F18"}, - {0x07006E, 0x07006E, "Keyboard F19"}, - {0x07006F, 0x07006F, "Keyboard F20"}, - {0x070070, 0x070070, "Keyboard F21"}, - {0x070071, 0x070071, "Keyboard F22"}, - {0x070072, 0x070072, "Keyboard F23"}, - {0x070073, 0x070073, "Keyboard F24"}, - {0x070074, 0x070074, "Keyboard Execute"}, - {0x070075, 0x070075, "Keyboard Help"}, - {0x070076, 0x070076, "Keyboard Menu"}, - {0x070077, 0x070077, "Keyboard Select"}, - {0x070078, 0x070078, "Keyboard Stop"}, - {0x070079, 0x070079, "Keyboard Again"}, - {0x07007A, 0x07007A, "Keyboard Undo"}, - {0x07007B, 0x07007B, "Keyboard Cut"}, - {0x07007C, 0x07007C, "Keyboard Copy"}, - {0x07007D, 0x07007D, "Keyboard Paste"}, - {0x07007E, 0x07007E, "Keyboard Find"}, - {0x07007F, 0x07007F, "Keyboard Mute"}, - {0x070080, 0x070080, "Keyboard Volume Up"}, - {0x070081, 0x070081, "Keyboard Volume Down"}, - {0x070082, 0x070082, "Keyboard Locking Caps Lock"}, - {0x070083, 0x070083, "Keyboard Locking Num Lock"}, - {0x070084, 0x070084, "Keyboard Locking Scroll Lock"}, - {0x070085, 0x070085, "Keypad Comma"}, - {0x070086, 0x070086, "Keypad Equal Sign"}, - {0x070087, 0x070087, "Keyboard International1"}, - {0x070088, 0x070088, "Keyboard International2"}, - {0x070089, 0x070089, "Keyboard International3"}, - {0x07008A, 0x07008A, "Keyboard International4"}, - {0x07008B, 0x07008B, "Keyboard International5"}, - {0x07008C, 0x07008C, "Keyboard International6"}, - {0x07008D, 0x07008D, "Keyboard International7"}, - {0x07008E, 0x07008E, "Keyboard International8"}, - {0x07008F, 0x07008F, "Keyboard International9"}, - {0x070090, 0x070090, "Keyboard LANG1"}, - {0x070091, 0x070091, "Keyboard LANG2"}, - {0x070092, 0x070092, "Keyboard LANG3"}, - {0x070093, 0x070093, "Keyboard LANG4"}, - {0x070094, 0x070094, "Keyboard LANG5"}, - {0x070095, 0x070095, "Keyboard LANG6"}, - {0x070096, 0x070096, "Keyboard LANG7"}, - {0x070097, 0x070097, "Keyboard LANG8"}, - {0x070098, 0x070098, "Keyboard LANG9"}, - {0x070099, 0x070099, "Keyboard Alternate Erase"}, - {0x07009A, 0x07009A, "Keyboard SysReq/Attention"}, - {0x07009B, 0x07009B, "Keyboard Cancel"}, - {0x07009C, 0x07009C, "Keyboard Clear"}, - {0x07009D, 0x07009D, "Keyboard Prior"}, - {0x07009E, 0x07009E, "Keyboard Return"}, - {0x07009F, 0x07009F, "Keyboard Separator"}, - {0x0700A0, 0x0700A0, "Keyboard Out"}, - {0x0700A1, 0x0700A1, "Keyboard Oper"}, - {0x0700A2, 0x0700A2, "Keyboard Clear/Again"}, - {0x0700A3, 0x0700A3, "Keyboard CrSel/Props"}, - {0x0700A4, 0x0700A4, "Keyboard ExSel"}, - {0x0700A5, 0x0700AF, "Reserved"}, - {0x0700B0, 0x0700B0, "Keypad 00"}, - {0x0700B1, 0x0700B1, "Keypad 000"}, - {0x0700B2, 0x0700B2, "Thousands Separator"}, - {0x0700B3, 0x0700B3, "Decimal Separator"}, - {0x0700B4, 0x0700B4, "Currency Unit"}, - {0x0700B5, 0x0700B5, "Currency Sub-unit"}, - {0x0700B6, 0x0700B6, "Keypad ("}, - {0x0700B7, 0x0700B7, "Keypad )"}, - {0x0700B8, 0x0700B8, "Keypad {"}, - {0x0700B9, 0x0700B9, "Keypad }"}, - {0x0700BA, 0x0700BA, "Keypad Tab"}, - {0x0700BB, 0x0700BB, "Keypad Backspace"}, - {0x0700BC, 0x0700BC, "Keypad A"}, - {0x0700BD, 0x0700BD, "Keypad B"}, - {0x0700BE, 0x0700BE, "Keypad C"}, - {0x0700BF, 0x0700BF, "Keypad D"}, - {0x0700C0, 0x0700C0, "Keypad E"}, - {0x0700C1, 0x0700C1, "Keypad F"}, - {0x0700C2, 0x0700C2, "Keypad XOR"}, - {0x0700C3, 0x0700C3, "Keypad ^"}, - {0x0700C4, 0x0700C4, "Keypad %"}, - {0x0700C5, 0x0700C5, "Keypad <"}, - {0x0700C6, 0x0700C6, "Keypad >"}, - {0x0700C7, 0x0700C7, "Keypad &"}, - {0x0700C8, 0x0700C8, "Keypad &&"}, - {0x0700C9, 0x0700C9, "Keypad |"}, - {0x0700CA, 0x0700CA, "Keypad ||"}, - {0x0700CB, 0x0700CB, "Keypad :"}, - {0x0700CC, 0x0700CC, "Keypad #"}, - {0x0700CD, 0x0700CD, "Keypad Space"}, - {0x0700CE, 0x0700CE, "Keypad @"}, - {0x0700CF, 0x0700CF, "Keypad !"}, - {0x0700D0, 0x0700D0, "Keypad Memory Store"}, - {0x0700D1, 0x0700D1, "Keypad Memory Recall"}, - {0x0700D2, 0x0700D2, "Keypad Memory Clear"}, - {0x0700D3, 0x0700D3, "Keypad Memory Add"}, - {0x0700D4, 0x0700D4, "Keypad Memory Subtract"}, - {0x0700D5, 0x0700D5, "Keypad Memory Multiply"}, - {0x0700D6, 0x0700D6, "Keypad Memory Divide"}, - {0x0700D7, 0x0700D7, "Keypad +/-"}, - {0x0700D8, 0x0700D8, "Keypad Clear"}, - {0x0700D9, 0x0700D9, "Keypad Clear Entry"}, - {0x0700DA, 0x0700DA, "Keypad Binary"}, - {0x0700DB, 0x0700DB, "Keypad Octal"}, - {0x0700DC, 0x0700DC, "Keypad Decimal"}, - {0x0700DD, 0x0700DD, "Keypad Hexadecimal"}, - {0x0700DE, 0x0700DF, "Reserved"}, - {0x0700E0, 0x0700E0, "Keyboard LeftControl"}, - {0x0700E1, 0x0700E1, "Keyboard LeftShift"}, - {0x0700E2, 0x0700E2, "Keyboard LeftAlt"}, - {0x0700E3, 0x0700E3, "Keyboard Left GUI"}, - {0x0700E4, 0x0700E4, "Keyboard RightControl"}, - {0x0700E5, 0x0700E5, "Keyboard RightShift"}, - {0x0700E6, 0x0700E6, "Keyboard RightAlt"}, - {0x0700E7, 0x0700E7, "Keyboard Right GUI"}, - {0x0700E8, 0x07FFFF, "Reserved"}, - - // LEDs - {0x080000, 0x080000, "Undefined"}, - {0x080001, 0x080001, "Num Lock"}, - {0x080002, 0x080002, "Caps Lock"}, - {0x080003, 0x080003, "Scroll Lock"}, - {0x080004, 0x080004, "Compose"}, - {0x080005, 0x080005, "Kana"}, - {0x080006, 0x080006, "Power"}, - {0x080007, 0x080007, "Shift"}, - {0x080008, 0x080008, "Do Not Disturb"}, - {0x080009, 0x080009, "Mute"}, - {0x08000A, 0x08000A, "Tone Enable"}, - {0x08000B, 0x08000B, "High Cut Filter"}, - {0x08000C, 0x08000C, "Low Cut Filter"}, - {0x08000D, 0x08000D, "Equalizer Enable"}, - {0x08000E, 0x08000E, "Sound Field On"}, - {0x08000F, 0x08000F, "Surround On"}, - {0x080010, 0x080010, "Repeat"}, - {0x080011, 0x080011, "Stereo"}, - {0x080012, 0x080012, "Sampling Rate Detect"}, - {0x080013, 0x080013, "Spinning"}, - {0x080014, 0x080014, "CAV"}, - {0x080015, 0x080015, "CLV"}, - {0x080016, 0x080016, "Recording Format Detect"}, - {0x080017, 0x080017, "Off-Hook"}, - {0x080018, 0x080018, "Ring"}, - {0x080019, 0x080019, "Message Waiting"}, - {0x08001A, 0x08001A, "Data Mode"}, - {0x08001B, 0x08001B, "Battery Operation"}, - {0x08001C, 0x08001C, "Battery OK"}, - {0x08001D, 0x08001D, "Battery Low"}, - {0x08001E, 0x08001E, "Speaker"}, - {0x08001F, 0x08001F, "Head Set"}, - {0x080020, 0x080020, "Hold"}, - {0x080021, 0x080021, "Microphone"}, - {0x080022, 0x080022, "Coverage"}, - {0x080023, 0x080023, "Night Mode"}, - {0x080024, 0x080024, "Send Calls"}, - {0x080025, 0x080025, "Call Pickup"}, - {0x080026, 0x080026, "Conference"}, - {0x080027, 0x080027, "Stand-by"}, - {0x080028, 0x080028, "Camera On"}, - {0x080029, 0x080029, "Camera Off"}, - {0x08002A, 0x08002A, "On-Line"}, - {0x08002B, 0x08002B, "Off-Line"}, - {0x08002C, 0x08002C, "Busy"}, - {0x08002D, 0x08002D, "Ready"}, - {0x08002E, 0x08002E, "Paper-Out"}, - {0x08002F, 0x08002F, "Paper-Jam"}, - {0x080030, 0x080030, "Remote"}, - {0x080031, 0x080031, "Forward"}, - {0x080032, 0x080032, "Reverse"}, - {0x080033, 0x080033, "Stop"}, - {0x080034, 0x080034, "Rewind"}, - {0x080035, 0x080035, "Fast Forward"}, - {0x080036, 0x080036, "Play"}, - {0x080037, 0x080037, "Pause"}, - {0x080038, 0x080038, "Record"}, - {0x080039, 0x080039, "Error"}, - {0x08003A, 0x08003A, "Usage Selected Indicator"}, - {0x08003B, 0x08003B, "Usage In Use Indicator"}, - {0x08003C, 0x08003C, "Usage Multi Mode Indicator"}, - {0x08003D, 0x08003D, "Indicator On"}, - {0x08003E, 0x08003E, "Indicator Flash"}, - {0x08003F, 0x08003F, "Indicator Slow Blink"}, - {0x080040, 0x080040, "Indicator Fast Blink"}, - {0x080041, 0x080041, "Indicator Off"}, - {0x080042, 0x080042, "Flash On Time"}, - {0x080043, 0x080043, "Slow Blink On Time"}, - {0x080044, 0x080044, "Slow Blink Off Time"}, - {0x080045, 0x080045, "Fast Blink On Time"}, - {0x080046, 0x080046, "Fast Blink Off Time"}, - {0x080047, 0x080047, "Usage Indicator Color"}, - {0x080048, 0x080048, "Indicator Red"}, - {0x080049, 0x080049, "Indicator Green"}, - {0x08004A, 0x08004A, "Indicator Amber"}, - {0x08004B, 0x08004B, "Generic Indicator"}, - {0x08004C, 0x08004C, "System Suspend"}, - {0x08004D, 0x08004D, "External Power Connected"}, - {0x08004E, 0x08FFFF, "Reserved"}, - - // Button - {0x090000, 0x090000, "No button pressed"}, - {0x090001, 0x09FFFF, "Button #"}, - - // Ordinal - {0x0A0000, 0x0A0000, "Reserved"}, - {0x0A0001, 0x0AFFFF, "Instance #"}, - - // Telephony - {0x0B0000, 0x0B0000, "Unassigned"}, - {0x0B0001, 0x0B0001, "Phone"}, - {0x0B0002, 0x0B0002, "Answering Machine"}, - {0x0B0003, 0x0B0003, "Message Controls"}, - {0x0B0004, 0x0B0004, "Handset"}, - {0x0B0005, 0x0B0005, "Headset"}, - {0x0B0006, 0x0B0006, "Telephony Key Pad"}, - {0x0B0007, 0x0B0007, "Programmable Button"}, - {0x0B0008, 0x0B001F, "Reserved"}, - {0x0B0020, 0x0B0020, "Hook Switch"}, - {0x0B0021, 0x0B0021, "Flash"}, - {0x0B0022, 0x0B0022, "Feature"}, - {0x0B0023, 0x0B0023, "Hold"}, - {0x0B0024, 0x0B0024, "Redial"}, - {0x0B0025, 0x0B0025, "Transfer"}, - {0x0B0026, 0x0B0026, "Drop"}, - {0x0B0027, 0x0B0027, "Park"}, - {0x0B0028, 0x0B0028, "Forward Calls"}, - {0x0B0029, 0x0B0029, "Alternate Function"}, - {0x0B002A, 0x0B002A, "Line"}, - {0x0B002B, 0x0B002B, "Speaker Phone"}, - {0x0B002C, 0x0B002C, "Conference"}, - {0x0B002D, 0x0B002D, "Ring Enable"}, - {0x0B002E, 0x0B002E, "Ring Select"}, - {0x0B002F, 0x0B002F, "Phone Mute"}, - {0x0B0030, 0x0B0030, "Caller ID"}, - {0x0B0031, 0x0B0031, "Send"}, - {0x0B0032, 0x0B004F, "Reserved"}, - {0x0B0050, 0x0B0050, "Speed Dial"}, - {0x0B0051, 0x0B0051, "Store Number"}, - {0x0B0052, 0x0B0052, "Recall Number"}, - {0x0B0053, 0x0B0053, "Phone Directory"}, - {0x0B0054, 0x0B006F, "Reserved"}, - {0x0B0070, 0x0B0070, "Voice Mail"}, - {0x0B0071, 0x0B0071, "Screen Calls"}, - {0x0B0072, 0x0B0072, "Do Not Disturb"}, - {0x0B0073, 0x0B0073, "Message"}, - {0x0B0074, 0x0B0074, "Answer On/Off"}, - {0x0B0075, 0x0B008F, "Reserved"}, - {0x0B0090, 0x0B0090, "Inside Dial Tone"}, - {0x0B0091, 0x0B0091, "Outside Dial Tone"}, - {0x0B0092, 0x0B0092, "Inside Ring Tone"}, - {0x0B0093, 0x0B0093, "Outside Ring Tone"}, - {0x0B0094, 0x0B0094, "Priority Ring Tone"}, - {0x0B0095, 0x0B0095, "Inside Ringback"}, - {0x0B0096, 0x0B0096, "Priority Ringback"}, - {0x0B0097, 0x0B0097, "Line Busy Tone"}, - {0x0B0098, 0x0B0098, "Reorder Tone"}, - {0x0B0099, 0x0B0099, "Call Waiting Tone"}, - {0x0B009A, 0x0B009A, "Confirmation Tone 1"}, - {0x0B009B, 0x0B009B, "Confirmation Tone 2"}, - {0x0B009C, 0x0B009C, "Tones Off"}, - {0x0B009D, 0x0B009D, "Outside Ringback"}, - {0x0B009E, 0x0B009E, "Ringer"}, - {0x0B009F, 0x0B00AF, "Reserved"}, - {0x0B00B0, 0x0B00B0, "Phone Key 0"}, - {0x0B00B1, 0x0B00B1, "Phone Key 1"}, - {0x0B00B2, 0x0B00B2, "Phone Key 2"}, - {0x0B00B3, 0x0B00B3, "Phone Key 3"}, - {0x0B00B4, 0x0B00B4, "Phone Key 4"}, - {0x0B00B5, 0x0B00B5, "Phone Key 5"}, - {0x0B00B6, 0x0B00B6, "Phone Key 6"}, - {0x0B00B7, 0x0B00B7, "Phone Key 7"}, - {0x0B00B8, 0x0B00B8, "Phone Key 8"}, - {0x0B00B9, 0x0B00B9, "Phone Key 9"}, - {0x0B00BA, 0x0B00BA, "Phone Key Star"}, - {0x0B00BB, 0x0B00BB, "Phone Key Pound"}, - {0x0B00BC, 0x0B00BC, "Phone Key A"}, - {0x0B00BD, 0x0B00BD, "Phone Key B"}, - {0x0B00BE, 0x0B00BE, "Phone Key C"}, - {0x0B00BF, 0x0B00BF, "Phone Key D"}, - {0x0B00C0, 0x0BFFFF, "Reserved"}, - - // Consumer - {0x0C0000, 0x0C0000, "Unassigned"}, - {0x0C0001, 0x0C0001, "Consumer Control"}, - {0x0C0002, 0x0C0002, "Numeric Key Pad"}, - {0x0C0003, 0x0C0003, "Programmable Buttons"}, - {0x0C0004, 0x0C0004, "Microphone"}, - {0x0C0005, 0x0C0005, "Headphone"}, - {0x0C0006, 0x0C0006, "Graphic Equalizer"}, - {0x0C0007, 0x0C001F, "Reserved"}, - {0x0C0020, 0x0C0020, "+10"}, - {0x0C0021, 0x0C0021, "+100"}, - {0x0C0022, 0x0C0022, "AM/PM"}, - {0x0C0023, 0x0C002F, "Reserved"}, - {0x0C0030, 0x0C0030, "Power"}, - {0x0C0031, 0x0C0031, "Reset"}, - {0x0C0032, 0x0C0032, "Sleep"}, - {0x0C0033, 0x0C0033, "Sleep After"}, - {0x0C0034, 0x0C0034, "Sleep Mode"}, - {0x0C0035, 0x0C0035, "Illumination"}, - {0x0C0036, 0x0C0036, "Function Buttons"}, - {0x0C0037, 0x0C003F, "Reserved"}, - {0x0C0040, 0x0C0040, "Menu"}, - {0x0C0041, 0x0C0041, "Menu Pick"}, - {0x0C0042, 0x0C0042, "Menu Up"}, - {0x0C0043, 0x0C0043, "Menu Down"}, - {0x0C0044, 0x0C0044, "Menu Left"}, - {0x0C0045, 0x0C0045, "Menu Right"}, - {0x0C0046, 0x0C0046, "Menu Escape"}, - {0x0C0047, 0x0C0047, "Menu Value Increase"}, - {0x0C0048, 0x0C0048, "Menu Value Decrease"}, - {0x0C0049, 0x0C005F, "Reserved"}, - {0x0C0060, 0x0C0060, "Data On Screen"}, - {0x0C0061, 0x0C0061, "Closed Caption"}, - {0x0C0062, 0x0C0062, "Closed Caption Select"}, - {0x0C0063, 0x0C0063, "VCR/TV"}, - {0x0C0064, 0x0C0064, "Broadcast Mode"}, - {0x0C0065, 0x0C0065, "Snapshot"}, - {0x0C0066, 0x0C0066, "Still"}, - {0x0C0067, 0x0C007F, "Reserved"}, - {0x0C0080, 0x0C0080, "Selection"}, - {0x0C0081, 0x0C0081, "Assign Selection"}, - {0x0C0082, 0x0C0082, "Mode Step"}, - {0x0C0083, 0x0C0083, "Recall Last"}, - {0x0C0084, 0x0C0084, "Enter Channel"}, - {0x0C0085, 0x0C0085, "Order Movie"}, - {0x0C0086, 0x0C0086, "Channel"}, - {0x0C0087, 0x0C0087, "Media Selection"}, - {0x0C0088, 0x0C0088, "Media Select Computer"}, - {0x0C0089, 0x0C0089, "Media Select TV"}, - {0x0C008A, 0x0C008A, "Media Select WWW"}, - {0x0C008B, 0x0C008B, "Media Select DVD"}, - {0x0C008C, 0x0C008C, "Media Select Telephone"}, - {0x0C008D, 0x0C008D, "Media Select Program Guide"}, - {0x0C008E, 0x0C008E, "Media Select Video Phone"}, - {0x0C008F, 0x0C008F, "Media Select Games"}, - {0x0C0090, 0x0C0090, "Media Select Messages"}, - {0x0C0091, 0x0C0091, "Media Select CD "}, - {0x0C0092, 0x0C0092, "Media Select VCR"}, - {0x0C0093, 0x0C0093, "Media Select Tuner"}, - {0x0C0094, 0x0C0094, "Quit"}, - {0x0C0095, 0x0C0095, "Help"}, - {0x0C0096, 0x0C0096, "Media Select Tape"}, - {0x0C0097, 0x0C0097, "Media Select Cable"}, - {0x0C0098, 0x0C0098, "Media Select Satellite"}, - {0x0C0099, 0x0C0099, "Media Select Security"}, - {0x0C009A, 0x0C009A, "Media Select Home"}, - {0x0C009B, 0x0C009B, "Media Select Call"}, - {0x0C009C, 0x0C009C, "Channel Increment"}, - {0x0C009D, 0x0C009D, "Channel Decrement"}, - {0x0C009E, 0x0C009E, "Media Select SAP"}, - {0x0C009F, 0x0C009F, "Reserved"}, - {0x0C00A0, 0x0C00A0, "VCR Plus"}, - {0x0C00A1, 0x0C00A1, "Once"}, - {0x0C00A2, 0x0C00A2, "Daily"}, - {0x0C00A3, 0x0C00A3, "Weekly"}, - {0x0C00A4, 0x0C00A4, "Monthly"}, - {0x0C00A5, 0x0C00AF, "Reserved"}, - {0x0C00B0, 0x0C00B0, "Play"}, - {0x0C00B1, 0x0C00B1, "Pause"}, - {0x0C00B2, 0x0C00B2, "Record"}, - {0x0C00B3, 0x0C00B3, "Fast Forward"}, - {0x0C00B4, 0x0C00B4, "Rewind"}, - {0x0C00B5, 0x0C00B5, "Scan Next Track"}, - {0x0C00B6, 0x0C00B6, "Scan Previous Track"}, - {0x0C00B7, 0x0C00B7, "Stop"}, - {0x0C00B8, 0x0C00B8, "Eject"}, - {0x0C00B9, 0x0C00B9, "Random Play"}, - {0x0C00BA, 0x0C00BA, "Select Disc"}, - {0x0C00BB, 0x0C00BB, "Enter Disc"}, - {0x0C00BC, 0x0C00BC, "Repeat"}, - {0x0C00BD, 0x0C00BD, "Tracking"}, - {0x0C00BE, 0x0C00BE, "Track Normal"}, - {0x0C00BF, 0x0C00BF, "Slow Tracking"}, - {0x0C00C0, 0x0C00C0, "Frame Forward"}, - {0x0C00C1, 0x0C00C1, "Frame Back"}, - {0x0C00C2, 0x0C00C2, "Mark"}, - {0x0C00C3, 0x0C00C3, "Clear Mark"}, - {0x0C00C4, 0x0C00C4, "Repeat From Mark"}, - {0x0C00C5, 0x0C00C5, "Return To Mark"}, - {0x0C00C6, 0x0C00C6, "Search Mark Forward"}, - {0x0C00C7, 0x0C00C7, "Search Mark Backwards"}, - {0x0C00C8, 0x0C00C8, "Counter Reset"}, - {0x0C00C9, 0x0C00C9, "Show Counter"}, - {0x0C00CA, 0x0C00CA, "Tracking Increment"}, - {0x0C00CB, 0x0C00CB, "Tracking Decrement"}, - {0x0C00CC, 0x0C00CC, "Stop/Eject"}, - {0x0C00CD, 0x0C00CD, "Play/Pause"}, - {0x0C00CE, 0x0C00CE, "Play/Skip"}, - {0x0C00CF, 0x0C00DF, "Reserved"}, - {0x0C00E0, 0x0C00E0, "Volume"}, - {0x0C00E1, 0x0C00E1, "Balance"}, - {0x0C00E2, 0x0C00E2, "Mute"}, - {0x0C00E3, 0x0C00E3, "Bass"}, - {0x0C00E4, 0x0C00E4, "Treble"}, - {0x0C00E5, 0x0C00E5, "Bass Boost"}, - {0x0C00E6, 0x0C00E6, "Surround Mode"}, - {0x0C00E7, 0x0C00E7, "Loudness"}, - {0x0C00E8, 0x0C00E8, "MPX"}, - {0x0C00E9, 0x0C00E9, "Volume Increment"}, - {0x0C00EA, 0x0C00EA, "Volume Decrement"}, - {0x0C00EB, 0x0C00EF, "Reserved"}, - {0x0C00F0, 0x0C00F0, "Speed Select"}, - {0x0C00F1, 0x0C00F1, "Playback Speed"}, - {0x0C00F2, 0x0C00F2, "Standard Play"}, - {0x0C00F3, 0x0C00F3, "Long Play"}, - {0x0C00F4, 0x0C00F4, "Extended Play"}, - {0x0C00F5, 0x0C00F5, "Slow"}, - {0x0C00F6, 0x0C00FF, "Reserved"}, - {0x0C0100, 0x0C0100, "Fan Enable"}, - {0x0C0101, 0x0C0101, "Fan Speed"}, - {0x0C0102, 0x0C0102, "Light Enable"}, - {0x0C0103, 0x0C0103, "Light Illumination Level"}, - {0x0C0104, 0x0C0104, "Climate Control Enable"}, - {0x0C0105, 0x0C0105, "Room Temperature"}, - {0x0C0106, 0x0C0106, "Security Enable"}, - {0x0C0107, 0x0C0107, "Fire Alarm"}, - {0x0C0108, 0x0C0108, "Police Alarm"}, - {0x0C0109, 0x0C0109, "Proximity"}, - {0x0C010A, 0x0C010A, "Motion"}, - {0x0C010B, 0x0C010B, "Duress Alarm"}, - {0x0C010C, 0x0C010C, "Holdup Alarm"}, - {0x0C010D, 0x0C010D, "Medical Alarm"}, - {0x0C010E, 0x0C014F, "Reserved"}, - {0x0C0150, 0x0C0150, "Balance Right"}, - {0x0C0151, 0x0C0151, "Balance Left"}, - {0x0C0152, 0x0C0152, "Bass Increment"}, - {0x0C0153, 0x0C0153, "Bass Decrement"}, - {0x0C0154, 0x0C0154, "Treble Increment"}, - {0x0C0155, 0x0C0155, "Treble Decrement"}, - {0x0C0156, 0x0C015F, "Reserved"}, - {0x0C0160, 0x0C0160, "Speaker System"}, - {0x0C0161, 0x0C0161, "Channel Left"}, - {0x0C0162, 0x0C0162, "Channel Right"}, - {0x0C0163, 0x0C0163, "Channel Center"}, - {0x0C0164, 0x0C0164, "Channel Front"}, - {0x0C0165, 0x0C0165, "Channel Center Front"}, - {0x0C0166, 0x0C0166, "Channel Side"}, - {0x0C0167, 0x0C0167, "Channel Surround"}, - {0x0C0168, 0x0C0168, "Channel Low Frequency Enhancement"}, - {0x0C0169, 0x0C0169, "Channel Top"}, - {0x0C016A, 0x0C016A, "Channel Unknown"}, - {0x0C016B, 0x0C016F, "Reserved"}, - {0x0C0170, 0x0C0170, "Sub-channel"}, - {0x0C0171, 0x0C0171, "Sub-channel Increment"}, - {0x0C0172, 0x0C0172, "Sub-channel Decrement"}, - {0x0C0173, 0x0C0173, "Alternate Audio Increment"}, - {0x0C0174, 0x0C0174, "Alternate Audio Decrement"}, - {0x0C0175, 0x0C017F, "Reserved"}, - {0x0C0180, 0x0C0180, "Application Launch Buttons"}, - {0x0C0181, 0x0C0181, "AL Launch Button Configuration Tool"}, - {0x0C0182, 0x0C0182, "AL Programmable Button Configuration"}, - {0x0C0183, 0x0C0183, "AL Consumer Control Configuration"}, - {0x0C0184, 0x0C0184, "AL Word Processor"}, - {0x0C0185, 0x0C0185, "AL Text Editor"}, - {0x0C0186, 0x0C0186, "AL Spreadsheet"}, - {0x0C0187, 0x0C0187, "AL Graphics Editor"}, - {0x0C0188, 0x0C0188, "AL Presentation App"}, - {0x0C0189, 0x0C0189, "AL Database App"}, - {0x0C018A, 0x0C018A, "AL Email Reader"}, - {0x0C018B, 0x0C018B, "AL Newsreader"}, - {0x0C018C, 0x0C018C, "AL Voicemail"}, - {0x0C018D, 0x0C018D, "AL Contacts/Address Book"}, - {0x0C018E, 0x0C018E, "AL Calendar/Schedule"}, - {0x0C018F, 0x0C018F, "AL Task/Project Manager"}, - {0x0C0190, 0x0C0190, "AL Log/Journal/Timecard"}, - {0x0C0191, 0x0C0191, "AL Checkbook/Finance"}, - {0x0C0192, 0x0C0192, "AL Calculator"}, - {0x0C0193, 0x0C0193, "AL A/V Capture/Playback"}, - {0x0C0194, 0x0C0194, "AL Local Machine Browser"}, - {0x0C0195, 0x0C0195, "AL LAN/WAN Browser"}, - {0x0C0196, 0x0C0196, "AL Internet Browser"}, - {0x0C0197, 0x0C0197, "AL Remote Networking/ISP Connect"}, - {0x0C0198, 0x0C0198, "AL Network Conference"}, - {0x0C0199, 0x0C0199, "AL Network Chat"}, - {0x0C019A, 0x0C019A, "AL Telephony/Dialer"}, - {0x0C019B, 0x0C019B, "AL Logon"}, - {0x0C019C, 0x0C019C, "AL Logoff"}, - {0x0C019D, 0x0C019D, "AL Logon/Logoff"}, - {0x0C019E, 0x0C019E, "AL Terminal Lock/Screensaver"}, - {0x0C019F, 0x0C019F, "AL Control Panel"}, - {0x0C01A0, 0x0C01A0, "AL Command Line Processor/Run"}, - {0x0C01A1, 0x0C01A1, "AL Process/Task Manager"}, - {0x0C01A2, 0x0C01A2, "AL Select Task/Application"}, - {0x0C01A3, 0x0C01A3, "AL Next Task/Application"}, - {0x0C01A4, 0x0C01A4, "AL Previous Task/Application"}, - {0x0C01A5, 0x0C01A5, "AL Preemptive Halt Task/Application"}, - {0x0C01A6, 0x0C01A6, "AL Integrated Help Center"}, - {0x0C01A7, 0x0C01A7, "AL Documents"}, - {0x0C01A8, 0x0C01A8, "AL Thesaurus"}, - {0x0C01A9, 0x0C01A9, "AL Dictionary"}, - {0x0C01AA, 0x0C01AA, "AL Desktop"}, - {0x0C01AB, 0x0C01AB, "AL Spell Check"}, - {0x0C01AC, 0x0C01AC, "AL Grammar Check"}, - {0x0C01AD, 0x0C01AD, "AL Wireless Status"}, - {0x0C01AE, 0x0C01AE, "AL Keyboard Layout"}, - {0x0C01AF, 0x0C01AF, "AL Virus Protection"}, - {0x0C01B0, 0x0C01B0, "AL Encryption"}, - {0x0C01B1, 0x0C01B1, "AL Screen Saver"}, - {0x0C01B2, 0x0C01B2, "AL Alarms"}, - {0x0C01B3, 0x0C01B3, "AL Clock"}, - {0x0C01B4, 0x0C01B4, "AL File Browser"}, - {0x0C01B5, 0x0C01B5, "AL Power Status"}, - {0x0C01B6, 0x0C01B6, "AL Image Browser"}, - {0x0C01B7, 0x0C01B7, "AL Audio Browser"}, - {0x0C01B8, 0x0C01B8, "AL Movie Browser"}, - {0x0C01B9, 0x0C01B9, "AL Digital Rights Manager"}, - {0x0C01BA, 0x0C01BA, "AL Digital Wallet"}, - {0x0C01BB, 0x0C01BB, "Reserved"}, - {0x0C01BC, 0x0C01BC, "AL Instant Messaging"}, - {0x0C01BD, 0x0C01BD, "AL OEM Features/ Tips/Tutorial Browser"}, - {0x0C01BE, 0x0C01BE, "AL OEM Help"}, - {0x0C01BF, 0x0C01BF, "AL Online Community"}, - {0x0C01C0, 0x0C01C0, "AL Entertainment Content Browser"}, - {0x0C01C1, 0x0C01C1, "AL Online Shopping Browser"}, - {0x0C01C2, 0x0C01C2, "AL SmartCard Information/Help"}, - {0x0C01C3, 0x0C01C3, "AL Market Monitor/Finance Browser"}, - {0x0C01C4, 0x0C01C4, "AL Customized Corporate News Browser"}, - {0x0C01C5, 0x0C01C5, "AL Online Activity Browser"}, - {0x0C01C6, 0x0C01C6, "AL Research/Search Browser"}, - {0x0C01C7, 0x0C01C7, "AL Audio Player"}, - {0x0C01C8, 0x0C01FF, "Reserved"}, - {0x0C0200, 0x0C0200, "Generic GUI Application Controls"}, - {0x0C0201, 0x0C0201, "AC New"}, - {0x0C0202, 0x0C0202, "AC Open"}, - {0x0C0203, 0x0C0203, "AC Close"}, - {0x0C0204, 0x0C0204, "AC Exit"}, - {0x0C0205, 0x0C0205, "AC Maximize"}, - {0x0C0206, 0x0C0206, "AC Minimize"}, - {0x0C0207, 0x0C0207, "AC Save"}, - {0x0C0208, 0x0C0208, "AC Print"}, - {0x0C0209, 0x0C0209, "AC Properties"}, - {0x0C020A, 0x0C0219, "[Undefined]"}, - {0x0C021A, 0x0C021A, "AC Undo"}, - {0x0C021B, 0x0C021B, "AC Copy"}, - {0x0C021C, 0x0C021C, "AC Cut"}, - {0x0C021D, 0x0C021D, "AC Paste"}, - {0x0C021E, 0x0C021E, "AC Select All"}, - {0x0C021F, 0x0C021F, "AC Find"}, - {0x0C0220, 0x0C0220, "AC Find and Replace"}, - {0x0C0221, 0x0C0221, "AC Search"}, - {0x0C0222, 0x0C0222, "AC Go To"}, - {0x0C0223, 0x0C0223, "AC Home"}, - {0x0C0224, 0x0C0224, "AC Back"}, - {0x0C0225, 0x0C0225, "AC Forward"}, - {0x0C0226, 0x0C0226, "AC Stop"}, - {0x0C0227, 0x0C0227, "AC Refresh"}, - {0x0C0228, 0x0C0228, "AC Previous Link"}, - {0x0C0229, 0x0C0229, "AC Next Link"}, - {0x0C022A, 0x0C022A, "AC Bookmarks"}, - {0x0C022B, 0x0C022B, "AC History"}, - {0x0C022C, 0x0C022C, "AC Subscriptions"}, - {0x0C022D, 0x0C022D, "AC Zoom In"}, - {0x0C022E, 0x0C022E, "AC Zoom Out"}, - {0x0C022F, 0x0C022F, "AC Zoom"}, - {0x0C0230, 0x0C0230, "AC Full Screen View"}, - {0x0C0231, 0x0C0231, "AC Normal View"}, - {0x0C0232, 0x0C0232, "AC View Toggle"}, - {0x0C0233, 0x0C0233, "AC Scroll Up"}, - {0x0C0234, 0x0C0234, "AC Scroll Down"}, - {0x0C0235, 0x0C0235, "AC Scroll"}, - {0x0C0236, 0x0C0236, "AC Pan Left"}, - {0x0C0237, 0x0C0237, "AC Pan Right"}, - {0x0C0238, 0x0C0238, "AC Pan"}, - {0x0C0239, 0x0C0239, "AC New Window"}, - {0x0C023A, 0x0C023A, "AC Tile Horizontally"}, - {0x0C023B, 0x0C023B, "AC Tile Vertically"}, - {0x0C023C, 0x0C023C, "AC Format"}, - {0x0C023D, 0x0C023D, "AC Edit"}, - {0x0C023E, 0x0C023E, "AC Bold"}, - {0x0C023F, 0x0C023F, "AC Italics"}, - {0x0C0240, 0x0C0240, "AC Underline"}, - {0x0C0241, 0x0C0241, "AC Strikethrough"}, - {0x0C0242, 0x0C0242, "AC Subscript"}, - {0x0C0243, 0x0C0243, "AC Superscript"}, - {0x0C0244, 0x0C0244, "AC All Caps"}, - {0x0C0245, 0x0C0245, "AC Rotate"}, - {0x0C0246, 0x0C0246, "AC Resize"}, - {0x0C0247, 0x0C0247, "AC Flip horizontal"}, - {0x0C0248, 0x0C0248, "AC Flip Vertical"}, - {0x0C0249, 0x0C0249, "AC Mirror Horizontal"}, - {0x0C024A, 0x0C024A, "AC Mirror Vertical"}, - {0x0C024B, 0x0C024B, "AC Font Select"}, - {0x0C024C, 0x0C024C, "AC Font Color"}, - {0x0C024D, 0x0C024D, "AC Font Size"}, - {0x0C024E, 0x0C024E, "AC Justify Left"}, - {0x0C024F, 0x0C024F, "AC Justify Center H"}, - {0x0C0250, 0x0C0250, "AC Justify Right"}, - {0x0C0251, 0x0C0251, "AC Justify Block H"}, - {0x0C0252, 0x0C0252, "AC Justify Top"}, - {0x0C0253, 0x0C0253, "AC Justify Center V"}, - {0x0C0254, 0x0C0254, "AC Justify Bottom"}, - {0x0C0255, 0x0C0255, "AC Justify Block V"}, - {0x0C0256, 0x0C0256, "AC Indent Decrease"}, - {0x0C0257, 0x0C0257, "AC Indent Increase"}, - {0x0C0258, 0x0C0258, "AC Numbered List"}, - {0x0C0259, 0x0C0259, "AC Restart Numbering"}, - {0x0C025A, 0x0C025A, "AC Bulleted List"}, - {0x0C025B, 0x0C025B, "AC Promote"}, - {0x0C025C, 0x0C025C, "AC Demote"}, - {0x0C025D, 0x0C025D, "AC Yes"}, - {0x0C025E, 0x0C025E, "AC No"}, - {0x0C025F, 0x0C025F, "AC Cancel"}, - {0x0C0260, 0x0C0260, "AC Catalog"}, - {0x0C0261, 0x0C0261, "AC Buy/Checkout"}, - {0x0C0262, 0x0C0262, "AC Add to Cart"}, - {0x0C0263, 0x0C0263, "AC Expand"}, - {0x0C0264, 0x0C0264, "AC Expand All"}, - {0x0C0265, 0x0C0265, "AC Collapse"}, - {0x0C0266, 0x0C0266, "AC Collapse All"}, - {0x0C0267, 0x0C0267, "AC Print Preview"}, - {0x0C0268, 0x0C0268, "AC Paste Special"}, - {0x0C0269, 0x0C0269, "AC Insert Mode"}, - {0x0C026A, 0x0C026A, "AC Delete"}, - {0x0C026B, 0x0C026B, "AC Lock"}, - {0x0C026C, 0x0C026C, "AC Unlock"}, - {0x0C026D, 0x0C026D, "AC Protect"}, - {0x0C026E, 0x0C026E, "AC Unprotect"}, - {0x0C026F, 0x0C026F, "AC Attach Comment"}, - {0x0C0270, 0x0C0270, "AC Delete Comment"}, - {0x0C0271, 0x0C0271, "AC View Comment"}, - {0x0C0272, 0x0C0272, "AC Select Word"}, - {0x0C0273, 0x0C0273, "AC Select Sentence"}, - {0x0C0274, 0x0C0274, "AC Select Paragraph"}, - {0x0C0275, 0x0C0275, "AC Select Column"}, - {0x0C0276, 0x0C0276, "AC Select Row"}, - {0x0C0277, 0x0C0277, "AC Select Table"}, - {0x0C0278, 0x0C0278, "AC Select Object"}, - {0x0C0279, 0x0C0279, "AC Redo/Repeat"}, - {0x0C027A, 0x0C027A, "AC Sort"}, - {0x0C027B, 0x0C027B, "AC Sort Ascending"}, - {0x0C027C, 0x0C027C, "AC Sort Descending"}, - {0x0C027D, 0x0C027D, "AC Filter"}, - {0x0C027E, 0x0C027E, "AC Set Clock"}, - {0x0C027F, 0x0C027F, "AC View Clock"}, - {0x0C0280, 0x0C0280, "AC Select Time Zone"}, - {0x0C0281, 0x0C0281, "AC Edit Time Zones"}, - {0x0C0282, 0x0C0282, "AC Set Alarm"}, - {0x0C0283, 0x0C0283, "AC Clear Alarm"}, - {0x0C0284, 0x0C0284, "AC Snooze Alarm"}, - {0x0C0285, 0x0C0285, "AC Reset Alarm"}, - {0x0C0286, 0x0C0286, "AC Synchronize"}, - {0x0C0287, 0x0C0287, "AC Send/Receive"}, - {0x0C0288, 0x0C0288, "AC Send To"}, - {0x0C0289, 0x0C0289, "AC Reply"}, - {0x0C028A, 0x0C028A, "AC Reply All"}, - {0x0C028B, 0x0C028B, "AC Forward Msg"}, - {0x0C028C, 0x0C028C, "AC Send"}, - {0x0C028D, 0x0C028D, "AC Attach File"}, - {0x0C028E, 0x0C028E, "AC Upload"}, - {0x0C028F, 0x0C028F, "AC Download (Save Target As)"}, - {0x0C0290, 0x0C0290, "AC Set Borders"}, - {0x0C0291, 0x0C0291, "AC Insert Row"}, - {0x0C0292, 0x0C0292, "AC Insert Column"}, - {0x0C0293, 0x0C0293, "AC Insert File"}, - {0x0C0294, 0x0C0294, "AC Insert Picture"}, - {0x0C0295, 0x0C0295, "AC Insert Object"}, - {0x0C0296, 0x0C0296, "AC Insert Symbol"}, - {0x0C0297, 0x0C0297, "AC Save and Close"}, - {0x0C0298, 0x0C0298, "AC Rename"}, - {0x0C0299, 0x0C0299, "AC Merge"}, - {0x0C029A, 0x0C029A, "AC Split"}, - {0x0C029B, 0x0C029B, "AC Disribute Horizontally"}, - {0x0C029C, 0x0C029C, "AC Distribute Vertically"}, - {0x0C029D, 0x0CFFFF, "Reserved"}, - - // Digitizer - {0x0D0000, 0x0D0000, "Undefined"}, - {0x0D0001, 0x0D0001, "Digitizer"}, - {0x0D0002, 0x0D0002, "Pen"}, - {0x0D0003, 0x0D0003, "Light Pen"}, - {0x0D0004, 0x0D0004, "Touch Screen"}, - {0x0D0005, 0x0D0005, "Touch Pad"}, - {0x0D0006, 0x0D0006, "White Board"}, - {0x0D0007, 0x0D0007, "Coordinate Measuring Machine"}, - {0x0D0008, 0x0D0008, "3D Digitizer"}, - {0x0D0009, 0x0D0009, "Stereo Plotter"}, - {0x0D000A, 0x0D000A, "Articulated Arm"}, - {0x0D000B, 0x0D000B, "Armature"}, - {0x0D000C, 0x0D000C, "Multiple Point Digitizer"}, - {0x0D000D, 0x0D000D, "Free Space Wand"}, - {0x0D000E, 0x0D001F, "Reserved"}, - {0x0D0020, 0x0D0020, "Stylus"}, - {0x0D0021, 0x0D0021, "Puck"}, - {0x0D0022, 0x0D0022, "Finger"}, - {0x0D0023, 0x0D002F, "Reserved"}, - {0x0D0030, 0x0D0030, "Tip Pressure"}, - {0x0D0031, 0x0D0031, "Barrel Pressure"}, - {0x0D0032, 0x0D0032, "In Range"}, - {0x0D0033, 0x0D0033, "Touch"}, - {0x0D0034, 0x0D0034, "Untouch"}, - {0x0D0035, 0x0D0035, "Tap"}, - {0x0D0036, 0x0D0036, "Quality"}, - {0x0D0037, 0x0D0037, "Data Valid"}, - {0x0D0038, 0x0D0038, "Transducer Index"}, - {0x0D0039, 0x0D0039, "Tablet Function Keys"}, - {0x0D003A, 0x0D003A, "Program Change Keys"}, - {0x0D003B, 0x0D003B, "Battery Strength"}, - {0x0D003C, 0x0D003C, "Invert"}, - {0x0D003D, 0x0D003D, "X Tilt"}, - {0x0D003E, 0x0D003E, "Y Tilt"}, - {0x0D003F, 0x0D003F, "Azimuth"}, - {0x0D0040, 0x0D0040, "Altitude"}, - {0x0D0041, 0x0D0041, "Twist"}, - {0x0D0042, 0x0D0042, "Tip Switch"}, - {0x0D0043, 0x0D0043, "Secondary Tip Switch"}, - {0x0D0044, 0x0D0044, "Barrel Switch"}, - {0x0D0045, 0x0D0045, "Eraser"}, - {0x0D0046, 0x0D0046, "Tablet Pick"}, - {0x0D0047, 0x0DFFFF, "Reserved"}, - - {0x0E0000, 0x0EFFFF, "[Reserved]"}, - - // Physical Interface Device (PID) page - {0x0F0000, 0x0F0000, "Undefined"}, - {0x0F0001, 0x0F0001, "Physical Interface Device"}, - {0x0F0002, 0x0F001F, "Reserved"}, - {0x0F0020, 0x0F0020, "Normal"}, - {0x0F0021, 0x0F0021, "Set Effect Report"}, - {0x0F0022, 0x0F0022, "Effect Block Index"}, - {0x0F0023, 0x0F0023, "Parameter Block Offset"}, - {0x0F0024, 0x0F0024, "ROM Flag"}, - {0x0F0025, 0x0F0025, "Effect Type"}, - {0x0F0026, 0x0F0026, "ET Constant Force"}, - {0x0F0027, 0x0F0027, "ET Ramp"}, - {0x0F0028, 0x0F0028, "ET Custom Force Data"}, - {0x0F0029, 0x0F002F, "Reserved"}, - {0x0F0030, 0x0F0030, "ET Square"}, - {0x0F0031, 0x0F0031, "ET Sine"}, - {0x0F0032, 0x0F0032, "ET Triangle"}, - {0x0F0033, 0x0F0033, "ET Sawtooth Up"}, - {0x0F0034, 0x0F0034, "ET Sawtooth Down"}, - {0x0F0035, 0x0F003F, "Reserved"}, - {0x0F0040, 0x0F0040, "ET Spring"}, - {0x0F0041, 0x0F0041, "ET Damper"}, - {0x0F0042, 0x0F0042, "ET Inertia"}, - {0x0F0043, 0x0F0043, "ET Friction"}, - {0x0F0044, 0x0F004F, "Reserved"}, - {0x0F0050, 0x0F0050, "Duration"}, - {0x0F0051, 0x0F0051, "Sample Period"}, - {0x0F0052, 0x0F0052, "Gain"}, - {0x0F0053, 0x0F0053, "Trigger Button"}, - {0x0F0054, 0x0F0054, "Trigger Repeat Interval"}, - {0x0F0055, 0x0F0055, "Axes Enable"}, - {0x0F0056, 0x0F0056, "Direction Enable"}, - {0x0F0057, 0x0F0057, "Direction"}, - {0x0F0058, 0x0F0058, "Type Specific Block Offset"}, - {0x0F0059, 0x0F0059, "Block Type"}, - {0x0F005A, 0x0F005A, "Set Envelope Report"}, - {0x0F005B, 0x0F005B, "Attack Level"}, - {0x0F005C, 0x0F005C, "Attack Time"}, - {0x0F005D, 0x0F005D, "Fade Level"}, - {0x0F005E, 0x0F005E, "Fade Time"}, - {0x0F005F, 0x0F005F, "Set Condition Report"}, - {0x0F0060, 0x0F0060, "CP Offset"}, - {0x0F0061, 0x0F0061, "Positive Coefficient"}, - {0x0F0062, 0x0F0062, "Negative Coefficient"}, - {0x0F0063, 0x0F0063, "Positive Saturation"}, - {0x0F0064, 0x0F0064, "Negative Saturation"}, - {0x0F0065, 0x0F0065, "Dead Band"}, - {0x0F0066, 0x0F0066, "Download Force Sample"}, - {0x0F0067, 0x0F0067, "Isoch Custom Force Enable"}, - {0x0F0068, 0x0F0068, "Custom Force Data Report"}, - {0x0F0069, 0x0F0069, "Custom Force Data"}, - {0x0F006A, 0x0F006A, "Custom Force Vendor Defined Data"}, - {0x0F006B, 0x0F006B, "Set Custom Force Report"}, - {0x0F006C, 0x0F006C, "Custom Force Data Offset"}, - {0x0F006D, 0x0F006D, "Sample Count"}, - {0x0F006E, 0x0F006E, "Set Periodic Report"}, - {0x0F006F, 0x0F006F, "Offset"}, - {0x0F0070, 0x0F0070, "Magnitude"}, - {0x0F0071, 0x0F0071, "Phase"}, - {0x0F0072, 0x0F0072, "Period"}, - {0x0F0073, 0x0F0073, "Set Constant Force Report"}, - {0x0F0074, 0x0F0074, "Set Ramp Force Report"}, - {0x0F0075, 0x0F0075, "Ramp Start"}, - {0x0F0076, 0x0F0076, "Ramp End"}, - {0x0F0077, 0x0F0077, "Effect Operation Report"}, - {0x0F0078, 0x0F0078, "Effect Operation"}, - {0x0F0079, 0x0F0079, "Op Effect Start"}, - {0x0F007A, 0x0F007A, "Op Effect Start Solo"}, - {0x0F007B, 0x0F007B, "Op Effect Stop"}, - {0x0F007C, 0x0F007C, "Loop Count"}, - {0x0F007D, 0x0F007D, "Device Gain Report"}, - {0x0F007E, 0x0F007E, "Device Gain"}, - {0x0F007F, 0x0F007F, "PID Pool Report"}, - {0x0F0080, 0x0F0080, "RAM Pool Size"}, - {0x0F0081, 0x0F0081, "ROM Pool Size"}, - {0x0F0082, 0x0F0082, "ROM Effect Block Count"}, - {0x0F0083, 0x0F0083, "Simultaneous Effects Max"}, - {0x0F0084, 0x0F0084, "Pool Alignment"}, - {0x0F0085, 0x0F0085, "PID Pool Move Report"}, - {0x0F0086, 0x0F0086, "Move Source"}, - {0x0F0087, 0x0F0087, "Move Destination"}, - {0x0F0088, 0x0F0088, "Move Length"}, - {0x0F0089, 0x0F0089, "PID Block Load Report"}, - {0x0F008A, 0x0F008A, "Reserved"}, - {0x0F008B, 0x0F008B, "Block Load Status"}, - {0x0F008C, 0x0F008C, "Block Load Success"}, - {0x0F008D, 0x0F008D, "Block Load Full"}, - {0x0F008E, 0x0F008E, "Block Load Error"}, - {0x0F008F, 0x0F008F, "Block Handle"}, - {0x0F0090, 0x0F0090, "PID Block Free Report"}, - {0x0F0091, 0x0F0091, "Type Specific Block Handle"}, - {0x0F0092, 0x0F0092, "PID State Report"}, - {0x0F0093, 0x0F0093, "Reserved"}, - {0x0F0094, 0x0F0094, "Effect Playing"}, - {0x0F0095, 0x0F0095, "PID Device Control Report"}, - {0x0F0096, 0x0F0096, "PID Device Control"}, - {0x0F0097, 0x0F0097, "DC Enable Actuators"}, - {0x0F0098, 0x0F0098, "DC Disable Actuators"}, - {0x0F0099, 0x0F0099, "DC Stop All Effects"}, - {0x0F009A, 0x0F009A, "DC Device Reset"}, - {0x0F009B, 0x0F009B, "DC Device Pause"}, - {0x0F009C, 0x0F009C, "DC Device Continue"}, - {0x0F009D, 0x0F009D, "Reserved"}, - {0x0F009E, 0x0F009E, "Reserved"}, - {0x0F009F, 0x0F009F, "Device Paused"}, - {0x0F00A0, 0x0F00A0, "Actuators Enabled"}, - {0x0F00A1, 0x0F00A3, "Reserved"}, - {0x0F00A4, 0x0F00A4, "Safety Switch"}, - {0x0F00A5, 0x0F00A5, "Actuator Override Switch"}, - {0x0F00A6, 0x0F00A6, "Actuator Power"}, - {0x0F00A7, 0x0F00A7, "Start Delay"}, - {0x0F00A8, 0x0F00A8, "Parameter Block Size"}, - {0x0F00A9, 0x0F00A9, "Device Managed Pool"}, - {0x0F00AA, 0x0F00AA, "Shared Parameter Blocks"}, - {0x0F00AB, 0x0F00AB, "Create New Effect Report"}, - {0x0F00AC, 0x0F00AC, "RAM Pool Available"}, - {0x0F00AD, 0x0FFFFF, "Reserved"}, - - {0x100000, 0x10FFFF, "Unicode Page"}, - {0x110000, 0x13FFFF, "[Reserved]"}, - - // Alphanumeric display - {0x140000, 0x140000, "Undefined"}, - {0x140001, 0x140001, "Alphanumeric Display"}, - {0x140002, 0x140002, "Bitmapped Display"}, - {0x140003, 0x14001F, "Reserved"}, - {0x140020, 0x140020, "Display Attributes Report"}, - {0x140021, 0x140021, "ASCII Character Set"}, - {0x140022, 0x140022, "Data Read Back"}, - {0x140023, 0x140023, "Font Read Back"}, - {0x140024, 0x140024, "Display Control Report"}, - {0x140025, 0x140025, "Clear Display"}, - {0x140026, 0x140026, "Display Enable"}, - {0x140027, 0x140027, "Screen Saver Delay"}, - {0x140028, 0x140028, "Screen Saver Enable"}, - {0x140029, 0x140029, "Vertical Scroll"}, - {0x14002A, 0x14002A, "Horizontal Scroll"}, - {0x14002B, 0x14002B, "Character Report"}, - {0x14002C, 0x14002C, "Display Data"}, - {0x14002D, 0x14002D, "Display Status"}, - {0x14002E, 0x14002E, "Stat Not Ready"}, - {0x14002F, 0x14002F, "Stat Ready"}, - {0x140030, 0x140030, "Err Not a loadable character"}, - {0x140031, 0x140031, "Err Font data cannot be read"}, - {0x140032, 0x140032, "Cursor Position Report"}, - {0x140033, 0x140033, "Row"}, - {0x140034, 0x140034, "Column"}, - {0x140035, 0x140035, "Rows"}, - {0x140036, 0x140036, "Columns"}, - {0x140037, 0x140037, "Cursor Pixel Positioning"}, - {0x140038, 0x140038, "Cursor Mode"}, - {0x140039, 0x140039, "Cursor Enable"}, - {0x14003A, 0x14003A, "Cursor Blink"}, - {0x14003B, 0x14003B, "Font Report"}, - {0x14003C, 0x14003C, "Font Data"}, - {0x14003D, 0x14003D, "Character Width"}, - {0x14003E, 0x14003E, "Character Height"}, - {0x14003F, 0x14003F, "Character Spacing Horizontal"}, - {0x140040, 0x140040, "Character Spacing Vertical"}, - {0x140041, 0x140041, "Unicode Character Set"}, - {0x140042, 0x140042, "Font 7-Segment"}, - {0x140043, 0x140043, "7-Segment Direct Map"}, - {0x140044, 0x140044, "Font 14-Segment"}, - {0x140045, 0x140045, "14-Segment Direct Map"}, - {0x140046, 0x140046, "Display Brightness"}, - {0x140047, 0x140047, "Display Contrast"}, - {0x140048, 0x140048, "Character Attribute"}, - {0x140049, 0x140049, "Attribute Readback"}, - {0x14004A, 0x14004A, "Attribute Data"}, - {0x14004B, 0x14004B, "Char Attr Enhance"}, - {0x14004C, 0x14004C, "Char Attr Underline"}, - {0x14004D, 0x14004D, "Char Attr Blink"}, - {0x14004E, 0x14007F, "Reserved"}, - {0x140080, 0x140080, "Bitmap Size X"}, - {0x140081, 0x140081, "Bitmap Size Y"}, - {0x140082, 0x140082, "Reserved"}, - {0x140083, 0x140083, "Bit Depth Format"}, - {0x140084, 0x140084, "Display Orientation"}, - {0x140085, 0x140085, "Palette Report"}, - {0x140086, 0x140086, "Palette Data Size"}, - {0x140087, 0x140087, "Palette Data Offset"}, - {0x140088, 0x140088, "Palette Data"}, - {0x140089, 0x140089, "[Undefined]"}, - {0x14008A, 0x14008A, "Blit Report"}, - {0x14008B, 0x14008B, "Blit Rectangle X1"}, - {0x14008C, 0x14008C, "Blit Rectangle Y1"}, - {0x14008D, 0x14008D, "Blit Rectangle X2"}, - {0x14008E, 0x14008E, "Blit Rectangle Y2"}, - {0x14008F, 0x14008F, "Blit Data"}, - {0x140090, 0x140090, "Soft Button"}, - {0x140091, 0x140091, "Soft Button ID"}, - {0x140092, 0x140092, "Soft Button Side"}, - {0x140093, 0x140093, "Soft Button Offset 1"}, - {0x140094, 0x140094, "Soft Button Offset 2"}, - {0x140095, 0x140095, "Soft Button Report"}, - {0x140096, 0x14FFFF, "Reserved"}, - - {0x150000, 0x3FFFFF, "[Reserved]"}, - - // Medical instruments - {0x400000, 0x400000, "Undefined"}, - {0x400001, 0x400001, "Medical Ultrasound"}, - {0x400002, 0x40001F, "Reserved"}, - {0x400020, 0x400020, "VCR/Acquisition"}, - {0x400021, 0x400021, "Freeze/Thaw"}, - {0x400022, 0x400022, "Clip Store"}, - {0x400023, 0x400023, "Update"}, - {0x400024, 0x400024, "Next"}, - {0x400025, 0x400025, "Save"}, - {0x400026, 0x400026, "Print"}, - {0x400027, 0x400027, "Microphone Enable"}, - {0x400028, 0x40003F, "Reserved"}, - {0x400040, 0x400040, "Cine"}, - {0x400041, 0x400041, "Transmit Power"}, - {0x400042, 0x400042, "Volume"}, - {0x400043, 0x400043, "Focus"}, - {0x400044, 0x400044, "Depth"}, - {0x400045, 0x40005F, "Reserved"}, - {0x400060, 0x400060, "Soft Step - Primary"}, - {0x400061, 0x400061, "Soft Step - Secondary"}, - {0x400062, 0x40006F, "Reserved"}, - {0x400070, 0x400070, "Depth Gain Compensation"}, - {0x400071, 0x40007F, "Reserved"}, - {0x400080, 0x400080, "Zoom Select"}, - {0x400081, 0x400081, "Zoom Adjust"}, - {0x400082, 0x400082, "Spectral Doppler Mode Select"}, - {0x400083, 0x400083, "Spectral Doppler Adjust"}, - {0x400084, 0x400084, "Color Doppler Mode Select"}, - {0x400085, 0x400085, "Color Doppler Adjust"}, - {0x400086, 0x400086, "Motion Mode Select"}, - {0x400087, 0x400087, "Motion Mode Adjust"}, - {0x400088, 0x400088, "2-D Mode Select"}, - {0x400089, 0x400089, "2-D Mode Adjust"}, - {0x40008A, 0x40009F, "Reserved"}, - {0x4000A0, 0x4000A0, "Soft Control Select"}, - {0x4000A1, 0x4000A1, "Soft Control Adjust"}, - {0x4000A2, 0x40FFFF, "Reserved"}, - - {0x410000, 0x7FFFFF, "[Reserved]"}, - - // Monitor page - // USB Monitor Usage Page - {0x800000, 0x800000, "Reserved"}, - {0x800001, 0x800001, "Monitor Control"}, - {0x800002, 0x800002, "EDID Information"}, - {0x800003, 0x800003, "VDIF Information"}, - {0x800004, 0x800004, "VESA Version"}, - {0x800005, 0x80FFFF, "[Undefined]"}, - // Monitor Enumerated Values [Usage Page] - {0x810000, 0x81FFFF, "ENUM_#"}, - // VESA Virtual Control Usage Page - {0x820000, 0x820000, "Reserved"}, - {0x820001, 0x820001, "Degauss"}, - {0x820002, 0x82000F, "Reserved"}, - {0x820010, 0x820010, "Brightness"}, - {0x820011, 0x820011, "Reserved"}, - {0x820012, 0x820012, "Contrast"}, - {0x820013, 0x820015, "Reserved"}, - {0x820016, 0x820016, "Red Video Gain"}, - {0x820017, 0x820017, "Reserved"}, - {0x820018, 0x820018, "Green Video Gain"}, - {0x820019, 0x820019, "Reserved"}, - {0x82001A, 0x82001A, "Blue Video Gain"}, - {0x82001B, 0x82001B, "Reserved"}, - {0x82001C, 0x82001C, "Focus"}, - {0x82001D, 0x82001F, "Reserved"}, - {0x820020, 0x820020, "Horizontal Position"}, - {0x820021, 0x820021, "Reserved"}, - {0x820022, 0x820022, "Horizontal Size"}, - {0x820023, 0x820023, "Reserved"}, - {0x820024, 0x820024, "Horizontal Pincushion"}, - {0x820025, 0x820025, "Reserved"}, - {0x820026, 0x820026, "Horizontal Pincushion Balance"}, - {0x820027, 0x820027, "Reserved"}, - {0x820028, 0x820028, "Horizontal Misconvergence"}, - {0x820029, 0x820029, "Reserved"}, - {0x82002A, 0x82002A, "Horizontal Linearity"}, - {0x82002B, 0x82002B, "Reserved"}, - {0x82002C, 0x82002C, "Horizontal Linearity Balance"}, - {0x82002D, 0x82002F, "Reserved"}, - {0x820030, 0x820030, "Vertical Position"}, - {0x820031, 0x820031, "Reserved"}, - {0x820032, 0x820032, "Vertical Size"}, - {0x820033, 0x820033, "Reserved"}, - {0x820034, 0x820034, "Vertical Pincushion"}, - {0x820035, 0x820035, "Reserved"}, - {0x820036, 0x820036, "Vertical Pincushion Balance"}, - {0x820037, 0x820037, "Reserved"}, - {0x820038, 0x820038, "Vertical Misconvergence"}, - {0x820039, 0x820039, "Reserved"}, - {0x82003A, 0x82003A, "Vertical Linearity"}, - {0x82003B, 0x82003B, "Reserved"}, - {0x82003C, 0x82003C, "Vertical Linearity Balance"}, - {0x82003D, 0x82003F, "Reserved"}, - {0x820040, 0x820040, "Parallelogram Distortion (Key Balance)"}, - {0x820041, 0x820041, "Reserved"}, - {0x820042, 0x820042, "Trapezoidal Distortion (Key)"}, - {0x820043, 0x820043, "Reserved"}, - {0x820044, 0x820044, "Tilt (Rotation)"}, - {0x820045, 0x820045, "Reserved"}, - {0x820046, 0x820046, "Top Corner Distortion Control"}, - {0x820047, 0x820047, "Reserved"}, - {0x820048, 0x820048, "Top Corner Distortion Balance"}, - {0x820049, 0x820049, "Reserved"}, - {0x82004A, 0x82004A, "Bottom Corner Distortion Control"}, - {0x82004B, 0x82004B, "Reserved"}, - {0x82004C, 0x82004C, "Bottom Corner Distortion Balance"}, - {0x82004D, 0x820055, "Reserved"}, - {0x820056, 0x820056, "Horizontal Moire"}, - {0x820057, 0x820057, "Reserved"}, - {0x820058, 0x820058, "Vertical Moire"}, - {0x820059, 0x82005D, "Reserved"}, - {0x82005E, 0x82005E, "Input Level Select"}, - {0x82005F, 0x82005F, "Reserved"}, - {0x820060, 0x820060, "Input Source Select"}, - {0x820061, 0x82006B, "Reserved"}, - {0x82006C, 0x82006C, "Red Video Black Level"}, - {0x82006D, 0x82006D, "Reserved"}, - {0x82006E, 0x82006E, "Green Video Black Level"}, - {0x82006F, 0x82006F, "Reserved"}, - {0x820070, 0x820070, "Blue Video Black Level"}, - {0x820071, 0x8200A1, "Reserved"}, - {0x8200A2, 0x8200A2, "Auto Size Center"}, - {0x8200A3, 0x8200A3, "Reserved"}, - {0x8200A4, 0x8200A4, "Polarity Horizontal Synchronization"}, - {0x8200A5, 0x8200A5, "Reserved"}, - {0x8200A6, 0x8200A6, "Polarity Vertical Synchronization"}, - {0x8200A7, 0x8200A7, "Reserved"}, - {0x8200A8, 0x8200A8, "Synchronization Type"}, - {0x8200A9, 0x8200A9, "Reserved"}, - {0x8200AA, 0x8200AA, "Screen Orientation"}, - {0x8200AB, 0x8200AB, "Reserved"}, - {0x8200AC, 0x8200AC, "Horizontal Frequency"}, - {0x8200AD, 0x8200AD, "Reserved"}, - {0x8200AE, 0x8200AE, "Vertical Frequency"}, - {0x8200AF, 0x8200AF, "Reserved"}, - {0x8200B0, 0x8200B0, "Settings"}, - {0x8200B1, 0x8200C9, "Reserved"}, - {0x8200CA, 0x8200CA, "On Screen Display"}, - {0x8200CB, 0x8200D3, "Reserved"}, - {0x8200D4, 0x8200D4, "StereoMode"}, - {0x8200D5, 0x82FFFF, "Reserved"}, - // Monitor page Reserved - {0x830000, 0x83FFFF, "Reserved"}, - - // Power page - // Power Device Page - {0x840000, 0x840000, "Undefined"}, - {0x840001, 0x840001, "iName"}, - {0x840002, 0x840002, "PresentStatus"}, - {0x840003, 0x840003, "ChangedStatus"}, - {0x840004, 0x840004, "UPS"}, - {0x840005, 0x840005, "PowerSupply"}, - {0x840006, 0x84000F, "Reserved"}, - {0x840010, 0x840010, "BatterySystem"}, - {0x840011, 0x840011, "BatterySystemID"}, - {0x840012, 0x840012, "Battery"}, - {0x840013, 0x840013, "BatteryID"}, - {0x840014, 0x840014, "Charger"}, - {0x840015, 0x840015, "ChargerID"}, - {0x840016, 0x840016, "PowerConverter"}, - {0x840017, 0x840017, "PowerConverterID"}, - {0x840018, 0x840018, "OutletSystem"}, - {0x840019, 0x840019, "OutletSystemID"}, - {0x84001A, 0x84001A, "Input"}, - {0x84001B, 0x84001B, "InputID"}, - {0x84001C, 0x84001C, "Output"}, - {0x84001D, 0x84001D, "OutputID"}, - {0x84001E, 0x84001E, "Flow"}, - {0x84001F, 0x84001F, "FlowID"}, - {0x840020, 0x840020, "Outlet"}, - {0x840021, 0x840021, "OutletID"}, - {0x840022, 0x840022, "Gang"}, - {0x840023, 0x840023, "GangID"}, - {0x840024, 0x840024, "PowerSummary"}, - {0x840025, 0x840025, "PowerSummaryID"}, - {0x840026, 0x84002F, "Reserved"}, - {0x840030, 0x840030, "Voltage"}, - {0x840031, 0x840031, "Current"}, - {0x840032, 0x840032, "Frequency"}, - {0x840033, 0x840033, "ApparentPower"}, - {0x840034, 0x840034, "ActivePower"}, - {0x840035, 0x840035, "PercentLoad"}, - {0x840036, 0x840036, "Temperature"}, - {0x840037, 0x840037, "Humidity"}, - {0x840038, 0x840038, "BadCount"}, - {0x840039, 0x84003F, "Reserved"}, - {0x840040, 0x840040, "ConfigVoltage"}, - {0x840041, 0x840041, "ConfigCurrent"}, - {0x840042, 0x840042, "ConfigFrequency"}, - {0x840043, 0x840043, "ConfigApparentPower"}, - {0x840044, 0x840044, "ConfigActivePower"}, - {0x840045, 0x840045, "ConfigPercentLoad"}, - {0x840046, 0x840046, "ConfigTemperature"}, - {0x840047, 0x840047, "ConfigHumidity"}, - {0x840048, 0x84004F, "Reserved"}, - {0x840050, 0x840050, "SwitchOnControl"}, - {0x840051, 0x840051, "SwitchOffControl"}, - {0x840052, 0x840052, "ToggleControl"}, - {0x840053, 0x840053, "LowVoltageTransfer"}, - {0x840054, 0x840054, "HighVoltageTransfer"}, - {0x840055, 0x840055, "DelayBeforeReboot"}, - {0x840056, 0x840056, "DelayBeforeStartup"}, - {0x840057, 0x840057, "DelayBeforeShutdown"}, - {0x840058, 0x840058, "Test"}, - {0x840059, 0x840059, "ModuleReset"}, - {0x84005A, 0x84005A, "AudibleAlarmControl"}, - {0x84005B, 0x84005F, "Reserved"}, - {0x840060, 0x840060, "Present"}, - {0x840061, 0x840061, "Good"}, - {0x840062, 0x840062, "InternalFailure"}, - {0x840063, 0x840063, "VoltageOutOfRange"}, - {0x840064, 0x840064, "FrequencyOutOfRange"}, - {0x840065, 0x840065, "Overload"}, - {0x840066, 0x840066, "OverCharged"}, - {0x840067, 0x840067, "OverTemperature"}, - {0x840068, 0x840068, "ShutdownRequested"}, - {0x840069, 0x840069, "ShutdownImminent"}, - {0x84006A, 0x84006A, "Reserved"}, - {0x84006B, 0x84006B, "SwitchOn/Off"}, - {0x84006C, 0x84006C, "Switchable"}, - {0x84006D, 0x84006D, "Used"}, - {0x84006E, 0x84006E, "Boost"}, - {0x84006F, 0x84006F, "Buck"}, - {0x840070, 0x840070, "Initialized"}, - {0x840071, 0x840071, "Tested"}, - {0x840072, 0x840072, "AwaitingPower"}, - {0x840073, 0x840073, "CommunicationLost"}, - {0x840074, 0x8400FC, "Reserved"}, - {0x8400FD, 0x8400FD, "iManufacturer"}, - {0x8400FE, 0x8400FE, "iProduct"}, - {0x8400FF, 0x8400FF, "iserialNumber"}, - {0x840100, 0x84FEFF, "Reserved"}, - {0x84FF00, 0x84FFFF, "Vendor-specific"}, - // Battery System Page - {0x850000, 0x850000, "Undefined"}, - {0x850001, 0x850001, "SMBBatteryMode"}, - {0x850002, 0x850002, "SMBBatteryStatus"}, - {0x850003, 0x850003, "SMBAlarmWarning"}, - {0x850004, 0x850004, "SMBChargerMode"}, - {0x850005, 0x850005, "SMBChargerStatus"}, - {0x850006, 0x850006, "SMBChargerSpecInfo"}, - {0x850007, 0x850007, "SMBSelectorState"}, - {0x850008, 0x850008, "SMBSelectorPresets"}, - {0x850009, 0x850009, "SMBSelectorInfo"}, - {0x85000A, 0x85000F, "Reserved"}, - {0x850010, 0x850010, "OptionalMfgFunction1"}, - {0x850011, 0x850011, "OptionalMfgFunction2"}, - {0x850012, 0x850012, "OptionalMfgFunction3"}, - {0x850013, 0x850013, "OptionalMfgFunction4"}, - {0x850014, 0x850014, "OptionalMfgFunction5"}, - {0x850015, 0x850015, "ConnectionToSMBus"}, - {0x850016, 0x850016, "OutputConnection"}, - {0x850017, 0x850017, "ChargerConnection"}, - {0x850018, 0x850018, "BatteryInsertion"}, - {0x850019, 0x850019, "Usenext"}, - {0x85001A, 0x85001A, "OKToUse"}, - {0x85001B, 0x85001B, "BatterySupported"}, - {0x85001C, 0x85001C, "SelectorRevision"}, - {0x85001D, 0x85001D, "ChargingIndicator"}, - {0x85001E, 0x850027, "Reserved"}, - {0x850028, 0x850028, "ManufacturerAccess"}, - {0x850029, 0x850029, "RemainingCapacityLimit"}, - {0x85002A, 0x85002A, "RemainingTimeLimit"}, - {0x85002B, 0x85002B, "AtRate"}, - {0x85002C, 0x85002C, "CapacityMode"}, - {0x85002D, 0x85002D, "BroadcastToCharger"}, - {0x85002E, 0x85002E, "PrimaryBattery"}, - {0x85002F, 0x85002F, "ChargeController"}, - {0x850030, 0x85003F, "Reserved"}, - {0x850040, 0x850040, "TerminateCharge"}, - {0x850041, 0x850041, "TerminateDischarge"}, - {0x850042, 0x850042, "BelowRemainingCapacityLimit"}, - {0x850043, 0x850043, "RemainingTimeLimitExpired"}, - {0x850044, 0x850044, "Charging"}, - {0x850045, 0x850045, "Discharging"}, - {0x850046, 0x850046, "FullyCharged"}, - {0x850047, 0x850047, "FullyDischarged"}, - {0x850048, 0x850048, "ConditioningFlag"}, - {0x850049, 0x850049, "AtRateOK"}, - {0x85004A, 0x85004A, "SMBErrorCode"}, - {0x85004B, 0x85004B, "NeedReplacement"}, - {0x85004C, 0x85005F, "Reserved"}, - {0x850060, 0x850060, "AtRateTimeToFull"}, - {0x850061, 0x850061, "AtRateTimeToEmpty"}, - {0x850062, 0x850062, "AverageCurrent"}, - {0x850063, 0x850063, "Maxerror"}, - {0x850064, 0x850064, "RelativeStateOfCharge"}, - {0x850065, 0x850065, "AbsoluteStateOfCharge"}, - {0x850066, 0x850066, "RemainingCapacity"}, - {0x850067, 0x850067, "FullChargeCapacity"}, - {0x850068, 0x850068, "RunTimeToEmpty"}, - {0x850069, 0x850069, "AverageTimeToEmpty"}, - {0x85006A, 0x85006A, "AverageTimeToFull"}, - {0x85006B, 0x85006B, "CycleCount"}, - {0x85006C, 0x85007F, "Reserved"}, - {0x850080, 0x850080, "BattPackModelLevel"}, - {0x850081, 0x850081, "InternalChargeController"}, - {0x850082, 0x850082, "PrimaryBatterySupport"}, - {0x850083, 0x850083, "DesignCapacity"}, - {0x850084, 0x850084, "SpecificationInfo"}, - {0x850085, 0x850085, "ManufacturerDate"}, - {0x850086, 0x850086, "SerialNumber"}, - {0x850087, 0x850087, "iManufacturerName"}, - {0x850088, 0x850088, "iDevicename"}, - {0x850089, 0x850089, "iDeviceChemistery"}, - {0x85008A, 0x85008A, "ManufacturerData"}, - {0x85008B, 0x85008B, "Rechargable"}, - {0x85008C, 0x85008C, "WarningCapacityLimit"}, - {0x85008D, 0x85008D, "CapacityGranularity1"}, - {0x85008E, 0x85008E, "CapacityGranularity2"}, - {0x85008F, 0x85008F, "iOEMInformation"}, - {0x850090, 0x8500BF, "Reserved"}, - {0x8500C0, 0x8500C0, "InhibitCharge"}, - {0x8500C1, 0x8500C1, "EnablePolling"}, - {0x8500C2, 0x8500C2, "ResetToZero"}, - {0x8500C3, 0x8500CF, "Reserved"}, - {0x8500D0, 0x8500D0, "ACPresent"}, - {0x8500D1, 0x8500D1, "BatteryPresent"}, - {0x8500D2, 0x8500D2, "PowerFail"}, - {0x8500D3, 0x8500D3, "AlarmInhibited"}, - {0x8500D4, 0x8500D4, "ThermistorUnderRange"}, - {0x8500D5, 0x8500D5, "ThermistorHot"}, - {0x8500D6, 0x8500D6, "ThermistorCold"}, - {0x8500D7, 0x8500D7, "ThermistorOverRange"}, - {0x8500D8, 0x8500D8, "VoltageOutOfRange"}, - {0x8500D9, 0x8500D9, "CurrentOutOfRange"}, - {0x8500DA, 0x8500DA, "CurrentNotRegulated"}, - {0x8500DB, 0x8500DB, "VoltageNotRegulated"}, - {0x8500DC, 0x8500DC, "MasterMode"}, - {0x8500DD, 0x8500EF, "Reserved"}, - {0x8500F0, 0x8500F0, "ChargerSelectorSupport"}, - {0x8500F1, 0x8500F1, "ChargerSpec"}, - {0x8500F2, 0x8500F2, "Level2"}, - {0x8500F3, 0x8500F3, "Level3"}, - {0x8500F4, 0x8500FF, "Reserved"}, - {0x850100, 0x85FEFF, "Reserved"}, - {0x85FF00, 0x85FFFF, "Vendor-specific"}, - // Power page reserved - {0x860000, 0x87FFFF, "Reserved"}, - - {0x880000, 0x8BFFFF, "[Reserved]"}, - - // Bar code scanner page - {0x8C0000, 0x8C0000, "Undefined"}, - {0x8C0001, 0x8C0001, "Bar Code Badge Reader"}, - {0x8C0002, 0x8C0002, "Bar Code Scanner"}, - {0x8C0003, 0x8C0003, "Dumb Bar Code Scanner"}, - {0x8C0004, 0x8C0004, "Cordless Scanner Base"}, - {0x8C0005, 0x8C0005, "Bar Code Scanner Cradle"}, - {0x8C0006, 0x8C000F, "Reserved"}, - {0x8C0010, 0x8C0010, "Attribute Report"}, - {0x8C0011, 0x8C0011, "Settings Report"}, - {0x8C0012, 0x8C0012, "Scanned Data Report"}, - {0x8C0013, 0x8C0013, "Raw Scanned Data Report"}, - {0x8C0014, 0x8C0014, "Trigger Report"}, - {0x8C0015, 0x8C0015, "Status Report"}, - {0x8C0016, 0x8C0016, "UPC/EAN Control Report"}, - {0x8C0017, 0x8C0017, "EAN 2/3 Label Control Report"}, - {0x8C0018, 0x8C0018, "Code 39 Control Report"}, - {0x8C0019, 0x8C0019, "Interleaved 2 of 5 Control Report"}, - {0x8C001A, 0x8C001A, "Standard 2 of 5 Control Report"}, - {0x8C001B, 0x8C001B, "MSI Plessey Control Report"}, - {0x8C001C, 0x8C001C, "Codabar Control Report"}, - {0x8C001D, 0x8C001D, "Code 128 Control Report"}, - {0x8C001E, 0x8C001E, "Misc 1D Control Report"}, - {0x8C001F, 0x8C001F, "2D Control Report"}, - {0x8C0020, 0x8C002F, "Reserved"}, - {0x8C0030, 0x8C0030, "Aiming/Pointer Mode"}, - {0x8C0031, 0x8C0031, "Bar Code Present Sensor"}, - {0x8C0032, 0x8C0032, "Class 1A Laser"}, - {0x8C0033, 0x8C0033, "Class 2 Laser"}, - {0x8C0034, 0x8C0034, "Heater Present"}, - {0x8C0035, 0x8C0035, "Contact Scanner"}, - {0x8C0036, 0x8C0036, "Electronic Article Surveillance Notification"}, - {0x8C0037, 0x8C0037, "Constant Electronic Article Surveillance"}, - {0x8C0038, 0x8C0038, "Error Indication"}, - {0x8C0039, 0x8C0039, "Fixed Beeper"}, - {0x8C003A, 0x8C003A, "Good Decode Indication"}, - {0x8C003B, 0x8C003B, "Hands Free Scanning"}, - {0x8C003C, 0x8C003C, "Intrinsically Safe"}, - {0x8C003D, 0x8C003D, "Klasse Eins Laser"}, - {0x8C003E, 0x8C003E, "Long Range Scanner"}, - {0x8C003F, 0x8C003F, "Mirror Speed Control"}, - {0x8C0040, 0x8C0040, "Not On File Indication"}, - {0x8C0041, 0x8C0041, "Programmable Beeper"}, - {0x8C0042, 0x8C0042, "Triggerless"}, - {0x8C0043, 0x8C0043, "Wand"}, - {0x8C0044, 0x8C0044, "Water Resistant"}, - {0x8C0045, 0x8C0045, "Multi-Range Scanner"}, - {0x8C0046, 0x8C0046, "Proximity Sensor"}, - {0x8C0047, 0x8C004C, "Reserved"}, - {0x8C004D, 0x8C004D, "Fragment Decoding"}, - {0x8C004E, 0x8C004E, "Scanner Read Confidence"}, - {0x8C004F, 0x8C004F, "Data Prefix"}, - {0x8C0050, 0x8C0050, "Prefix AIMI"}, - {0x8C0051, 0x8C0051, "Prefix None"}, - {0x8C0052, 0x8C0052, "Prefix Proprietary"}, - {0x8C0053, 0x8C0054, "Reserved"}, - {0x8C0055, 0x8C0055, "Active Time"}, - {0x8C0056, 0x8C0056, "Aiming Laser Pattern"}, - {0x8C0057, 0x8C0057, "Bar Code Present"}, - {0x8C0058, 0x8C0058, "Beeper State"}, - {0x8C0059, 0x8C0059, "Laser On Time"}, - {0x8C005A, 0x8C005A, "Laser State"}, - {0x8C005B, 0x8C005B, "Lockout Time"}, - {0x8C005C, 0x8C005C, "Motor State"}, - {0x8C005D, 0x8C005D, "Motor Timeout"}, - {0x8C005E, 0x8C005E, "Power On Reset Scanner"}, - {0x8C005F, 0x8C005F, "Prevent Read of Barcodes"}, - {0x8C0060, 0x8C0060, "Initiate Barcode Read"}, - {0x8C0061, 0x8C0061, "Trigger State"}, - {0x8C0062, 0x8C0062, "Trigger Mode"}, - {0x8C0063, 0x8C0063, "Trigger Mode Blinking Laser On"}, - {0x8C0064, 0x8C0064, "Trigger Mode Continuous Laser On"}, - {0x8C0065, 0x8C0065, "Trigger Mode Laser on while Pulled"}, - {0x8C0066, 0x8C0066, "Trigger Mode Laser stays on after Trigger release"}, - {0x8C0067, 0x8C006C, "Reserved"}, - {0x8C006D, 0x8C006D, "Commit Parameters to NVM"}, - {0x8C006E, 0x8C006E, "Parameter Scanning"}, - {0x8C006F, 0x8C006F, "Parameters Changed"}, - {0x8C0070, 0x8C0070, "Set parameter default values"}, - {0x8C0071, 0x8C0074, "Reserved"}, - {0x8C0075, 0x8C0075, "Scanner In Cradle"}, - {0x8C0076, 0x8C0076, "Scanner In Range"}, - {0x8C0077, 0x8C0079, "Reserved"}, - {0x8C007A, 0x8C007A, "Aim Duration"}, - {0x8C007B, 0x8C007B, "Good Read Lamp Duration"}, - {0x8C007C, 0x8C007C, "Good Read Lamp Intensity"}, - {0x8C007D, 0x8C007D, "Good Read LED"}, - {0x8C007E, 0x8C007E, "Good Read Tone Frequency"}, - {0x8C007F, 0x8C007F, "Good Read Tone Length"}, - {0x8C0080, 0x8C0080, "Good Read Tone Volume"}, - {0x8C0081, 0x8C0081, "Reserved"}, - {0x8C0082, 0x8C0082, "No Read Message"}, - {0x8C0083, 0x8C0083, "Not on File Volume"}, - {0x8C0084, 0x8C0084, "Powerup Beep"}, - {0x8C0085, 0x8C0085, "Sound Error Beep"}, - {0x8C0086, 0x8C0086, "Sound Good Read Beep"}, - {0x8C0087, 0x8C0087, "Sound Not On File Beep"}, - {0x8C0088, 0x8C0088, "Good Read When to Write"}, - {0x8C0089, 0x8C0089, "GRWTI After Decode"}, - {0x8C008A, 0x8C008A, "GRWTI Beep/Lamp after transmit"}, - {0x8C008B, 0x8C008B, "GRWTI No Beep/Lamp use at all"}, - {0x8C008C, 0x8C0090, "Reserved"}, - {0x8C0091, 0x8C0091, "Bookland EAN"}, - {0x8C0092, 0x8C0092, "Convert EAN 8 to 13 Type"}, - {0x8C0093, 0x8C0093, "Convert UPC A to EAN-13"}, - {0x8C0094, 0x8C0094, "Convert UPC-E to A"}, - {0x8C0095, 0x8C0095, "EAN-13"}, - {0x8C0096, 0x8C0096, "EAN-8"}, - {0x8C0097, 0x8C0097, "EAN-99 128_Mandatory"}, - {0x8C0098, 0x8C0098, "EAN-99 P5/128_Optional"}, - {0x8C0099, 0x8C0099, "Reserved"}, - {0x8C009A, 0x8C009A, "UPC/EAN"}, - {0x8C009B, 0x8C009B, "UPC/EAN Coupon Code"}, - {0x8C009C, 0x8C009C, "UPC/EAN Periodicals"}, - {0x8C009D, 0x8C009D, "UPC-A"}, - {0x8C009E, 0x8C009E, "UPC-A with 128 Mandatory"}, - {0x8C009F, 0x8C009F, "UPC-A with 128 Optional"}, - {0x8C00A0, 0x8C00A0, "UPC-A with P5 Optional"}, - {0x8C00A1, 0x8C00A1, "UPC-E"}, - {0x8C00A2, 0x8C00A2, "UPC-E1"}, - {0x8C00A3, 0x8C00A8, "Reserved"}, - {0x8C00A9, 0x8C00A9, "Periodical"}, - {0x8C00AA, 0x8C00AA, "Periodical Auto-Discriminate + 2"}, - {0x8C00AB, 0x8C00AB, "Periodical Only Decode with + 2"}, - {0x8C00AC, 0x8C00AC, "Periodical Ignore + 2"}, - {0x8C00AD, 0x8C00AD, "Periodical Auto-Discriminate + 5"}, - {0x8C00AE, 0x8C00AE, "Periodical Only Decode with + 5"}, - {0x8C00AF, 0x8C00AF, "Periodical Ignore + 5"}, - {0x8C00B0, 0x8C00B0, "Check"}, - {0x8C00B1, 0x8C00B1, "Check Disable Price"}, - {0x8C00B2, 0x8C00B2, "Check Enable 4 digit Price"}, - {0x8C00B3, 0x8C00B3, "Check Enable 5 digit Price"}, - {0x8C00B4, 0x8C00B4, "Check Enable European 4 digit Price"}, - {0x8C00B5, 0x8C00B5, "Check Enable European 5 digit Price"}, - {0x8C00B6, 0x8C00B6, "Reserved"}, - {0x8C00B7, 0x8C00B7, "EAN Two Label"}, - {0x8C00B8, 0x8C00B8, "EAN Three Label"}, - {0x8C00B9, 0x8C00B9, "EAN 8 Flag Digit 1"}, - {0x8C00BA, 0x8C00BA, "EAN 8 Flag Digit 2"}, - {0x8C00BB, 0x8C00BB, "EAN 8 Flag Digit 3"}, - {0x8C00BC, 0x8C00BC, "EAN 13 Flag Digit 1"}, - {0x8C00BD, 0x8C00BD, "EAN 13 Flag Digit 2"}, - {0x8C00BE, 0x8C00BE, "EAN 13 Flag Digit 3"}, - {0x8C00BF, 0x8C00BF, "Add EAN 2/3 Label Definition"}, - {0x8C00C0, 0x8C00C0, "Clear all EAN 2/3 Label Definitions"}, - {0x8C00C1, 0x8C00C1, "Reserved"}, - {0x8C00C2, 0x8C00C2, "Reserved"}, - {0x8C00C3, 0x8C00C3, "Codabar"}, - {0x8C00C4, 0x8C00C4, "Code 128"}, - {0x8C00C5, 0x8C00C6, "Reserved"}, - {0x8C00C7, 0x8C00C7, "Code 39"}, - {0x8C00C8, 0x8C00C8, "Code 93 "}, - {0x8C00C9, 0x8C00C9, "Full ASCII Conversion"}, - {0x8C00CA, 0x8C00CA, "Interleaved 2 of 5"}, - {0x8C00CB, 0x8C00CB, "Italian Pharmacy Code"}, - {0x8C00CC, 0x8C00CC, "MSI/Plessey"}, - {0x8C00CD, 0x8C00CD, "Standard 2 of 5 IATA"}, - {0x8C00CE, 0x8C00CE, "Standard 2 of 5"}, - {0x8C00CF, 0x8C00CF, "Reserved"}, - {0x8C00D0, 0x8C00D0, "Reserved"}, - {0x8C00D1, 0x8C00D1, "Reserved"}, - {0x8C00D2, 0x8C00D2, "Reserved"}, - {0x8C00D3, 0x8C00D3, "Transmit Start/Stop"}, - {0x8C00D4, 0x8C00D4, "Tri-Optic"}, - {0x8C00D5, 0x8C00D5, "UCC/EAN-128"}, - {0x8C00D6, 0x8C00D6, "Check Digit"}, - {0x8C00D7, 0x8C00D7, "Check Digit Disable"}, - {0x8C00D8, 0x8C00D8, "Check Digit Enable Interleaved 2 of 5 OPCC"}, - {0x8C00D9, 0x8C00D9, "Check Digit Enable Interleaved 2 of 5 USS"}, - {0x8C00DA, 0x8C00DA, "Check Digit Enable Standard 2 of 5 OPCC"}, - {0x8C00DB, 0x8C00DB, "Check Digit Enable Standard 2 of 5 USS"}, - {0x8C00DC, 0x8C00DC, "Check Digit Enable One MSI Plessey"}, - {0x8C00DD, 0x8C00DD, "Check Digit Enable Two MSI Plessey"}, - {0x8C00DE, 0x8C00DE, "Check Digit Codabar Enable"}, - {0x8C00DF, 0x8C00DF, "Check Digit Code 39 Enable"}, - {0x8C00E0, 0x8C00EF, "Reserved"}, - {0x8C00F0, 0x8C00F0, "Transmit Check Digit"}, - {0x8C00F1, 0x8C00F1, "Disable Check Digit Transmit"}, - {0x8C00F2, 0x8C00F2, "Enable Check Digit Transmit"}, - {0x8C00F3, 0x8C00FA, "Reserved"}, - {0x8C00FB, 0x8C00FB, "Symbology Identifier 1"}, - {0x8C00FC, 0x8C00FC, "Symbology Identifier 2"}, - {0x8C00FD, 0x8C00FD, "Symbology Identifier 3"}, - {0x8C00FE, 0x8C00FE, "Decoded Data"}, - {0x8C00FF, 0x8C00FF, "Decode Data Continued"}, - {0x8C0100, 0x8C0100, "Bar Space Data"}, - {0x8C0101, 0x8C0101, "Scanner Data Accuracy"}, - {0x8C0102, 0x8C0102, "Raw Data Polarity"}, - {0x8C0103, 0x8C0103, "Polarity Inverted Bar Code"}, - {0x8C0104, 0x8C0104, "Polarity Normal Bar Code"}, - {0x8C0105, 0x8C0105, "Reserved"}, - {0x8C0106, 0x8C0106, "Minimum Length to Decode"}, - {0x8C0107, 0x8C0107, "Maximum Length to Decode"}, - {0x8C0108, 0x8C0108, "First Discrete Length to Decode"}, - {0x8C0109, 0x8C0109, "Second Discrete Length to Decode"}, - {0x8C010A, 0x8C010A, "Data Length Method"}, - {0x8C010B, 0x8C010B, "DL Method Read any"}, - {0x8C010C, 0x8C010C, "DL Method Check in Range"}, - {0x8C010D, 0x8C010D, "DL Method Check for Discrete"}, - {0x8C010E, 0x8C010F, "Reserved"}, - {0x8C0110, 0x8C0110, "Aztec Code"}, - {0x8C0111, 0x8C0111, "BC412"}, - {0x8C0112, 0x8C0112, "Channel Code"}, - {0x8C0113, 0x8C0113, "Code 16"}, - {0x8C0114, 0x8C0114, "Code 32"}, - {0x8C0115, 0x8C0115, "Code 49"}, - {0x8C0116, 0x8C0116, "Code One"}, - {0x8C0117, 0x8C0117, "Colorcode"}, - {0x8C0118, 0x8C0118, "Data Matrix"}, - {0x8C0119, 0x8C0119, "MaxiCode"}, - {0x8C011A, 0x8C011A, "MicroPDF"}, - {0x8C011B, 0x8C011B, "PDF-417"}, - {0x8C011C, 0x8C011C, "PosiCode"}, - {0x8C011D, 0x8C011D, "QR Code"}, - {0x8C011E, 0x8C011E, "SuperCode"}, - {0x8C011F, 0x8C011F, "UltraCode"}, - {0x8C0120, 0x8C0120, "USD-5 (Slug Code)"}, - {0x8C0121, 0x8C0121, "VeriCode"}, - {0x8C0122, 0x8CFFFF, "Reserved"}, - - // Scale page - {0x8D0000, 0x8D0000, "Undefined"}, - {0x8D0001, 0x8D0001, "Weighing Device"}, - {0x8D0002, 0x8D001F, "Reserved"}, - {0x8D0020, 0x8D0020, "Scale Device"}, - {0x8D0021, 0x8D0021, "Scale Class I Metric"}, - {0x8D0022, 0x8D0022, "Scale Class I Metric"}, - {0x8D0023, 0x8D0023, "Scale Class II Metric"}, - {0x8D0024, 0x8D0024, "Scale Class III Metric"}, - {0x8D0025, 0x8D0025, "Scale Class IIIL Metric"}, - {0x8D0026, 0x8D0026, "Scale Class IV Metric"}, - {0x8D0027, 0x8D0027, "Scale Class III English"}, - {0x8D0028, 0x8D0028, "Scale Class IIIL English"}, - {0x8D0029, 0x8D0029, "Scale Class IV English"}, - {0x8D002A, 0x8D002A, "Scale Class Generic"}, - {0x8D002B, 0x8D002F, "Reserved"}, - {0x8D0030, 0x8D0030, "Scale Attribute Report"}, - {0x8D0031, 0x8D0031, "Scale Control Report"}, - {0x8D0032, 0x8D0032, "Scale Data Report"}, - {0x8D0033, 0x8D0033, "Scale Status Report"}, - {0x8D0034, 0x8D0034, "Scale Weight Limit Report"}, - {0x8D0035, 0x8D0035, "Scale Statistics Report"}, - {0x8D0036, 0x8D003F, "Reserved"}, - {0x8D0040, 0x8D0040, "Data Weight"}, - {0x8D0041, 0x8D0041, "Data Scaling"}, - {0x8D0042, 0x8D004F, "Reserved"}, - {0x8D0050, 0x8D0050, "Weight Unit"}, - {0x8D0051, 0x8D0051, "Weight Unit Milligram"}, - {0x8D0052, 0x8D0052, "Weight Unit Gram"}, - {0x8D0053, 0x8D0053, "Weight Unit Kilogram"}, - {0x8D0054, 0x8D0054, "Weight Unit Carats"}, - {0x8D0055, 0x8D0055, "Weight Unit Taels"}, - {0x8D0056, 0x8D0056, "Weight Unit Grains"}, - {0x8D0057, 0x8D0057, "Weight Unit Pennyweights"}, - {0x8D0058, 0x8D0058, "Weight Unit Metric Ton"}, - {0x8D0059, 0x8D0059, "Weight Unit Avoir Ton"}, - {0x8D005A, 0x8D005A, "Weight Unit Troy Ounce"}, - {0x8D005B, 0x8D005B, "Weight Unit Ounce"}, - {0x8D005C, 0x8D005C, "Weight Unit Pound"}, - {0x8D005D, 0x8D005F, "Reserved"}, - {0x8D0060, 0x8D0060, "Calibration Count"}, - {0x8D0061, 0x8D0061, "Re-Zero Count"}, - {0x8D0062, 0x8D006F, "Reserved"}, - {0x8D0070, 0x8D0070, "Scale Status"}, - {0x8D0071, 0x8D0071, "Scale Status Fault"}, - {0x8D0072, 0x8D0072, "Scale Status Stable at Center of Zero"}, - {0x8D0073, 0x8D0073, "Scale Status In Motion"}, - {0x8D0074, 0x8D0074, "Scale Status Weight Stable"}, - {0x8D0075, 0x8D0075, "Scale Status Under Zero"}, - {0x8D0076, 0x8D0076, "Scale Status Over Weight Limit"}, - {0x8D0077, 0x8D0077, "Scale Status Requires Calibration"}, - {0x8D0078, 0x8D0078, "Scale Status Requires Re- zeroing"}, - {0x8D0079, 0x8D007F, "Reserved"}, - {0x8D0080, 0x8D0080, "Zero Scale"}, - {0x8D0081, 0x8D0081, "Enforced Zero Return"}, - {0x8D0082, 0x8DFFFF, "Reserved"}, - - // Magnetic Stripe Reading (MSR) devices - {0x8E0000, 0x8E0000, "Undefined"}, - {0x8E0001, 0x8E0001, "MSR Device Read-Only"}, - {0x8E0002, 0x8E0010, "Reserved"}, - {0x8E0011, 0x8E0011, "Track 1 Length"}, - {0x8E0012, 0x8E0012, "Track 2 Length"}, - {0x8E0013, 0x8E0013, "Track 3 Length"}, - {0x8E0014, 0x8E0014, "Track JIS Length"}, - {0x8E0015, 0x8E001F, "Reserved"}, - {0x8E0020, 0x8E0020, "Track Data"}, - {0x8E0021, 0x8E0021, "Track 1 Data"}, - {0x8E0022, 0x8E0022, "Track 2 Data"}, - {0x8E0023, 0x8E0023, "Track 3 Data"}, - {0x8E0024, 0x8E0024, "Track JIS Data"}, - {0x8E0025, 0x8EFFFF, "Reserved"}, - - {0x8F0000, 0x8FFFFF, "[Reserved Point of Sale page]"}, - {0x900000, 0x90FFFF, "Camera control page"}, - - // Arcade page - {0x910000, 0x910000, "Undefined"}, - {0x910001, 0x910001, "General Purpose IO Card"}, - {0x910002, 0x910002, "Coin Door"}, - {0x910003, 0x910003, "Watchdog Timer"}, - {0x910004, 0x91002F, "Reserved"}, - {0x910030, 0x910030, "General Purpose Analog Input State"}, - {0x910031, 0x910031, "General Purpose Digital Input State"}, - {0x910032, 0x910032, "General Purpose Optical Input State"}, - {0x910033, 0x910033, "General Purpose Digital Output State"}, - {0x910034, 0x910034, "Number of Coin Doors"}, - {0x910035, 0x910035, "Coin Drawer Drop Count"}, - {0x910036, 0x910036, "Coin Drawer Start"}, - {0x910037, 0x910037, "Coin Drawer Service"}, - {0x910038, 0x910038, "Coin Drawer Tilt"}, - {0x910039, 0x910039, "Coin Door Test"}, - {0x91003A, 0x91003F, "[Undefined]"}, - {0x910040, 0x910040, "Coin Door Lockout"}, - {0x910041, 0x910041, "Watchdog Timeout"}, - {0x910042, 0x910042, "Watchdog Action"}, - {0x910043, 0x910043, "Watchdog Reboot"}, - {0x910044, 0x910044, "Watchdog Restart"}, - {0x910045, 0x910045, "Alarm Input"}, - {0x910046, 0x910046, "Coin Door Counter"}, - {0x910047, 0x910047, "I/O Direction Mapping"}, - {0x910048, 0x910048, "Set I/O Direction"}, - {0x910049, 0x910049, "Extended Optical Input State"}, - {0x91004A, 0x91004A, "Pin Pad Input State"}, - {0x91004B, 0x91004B, "Pin Pad Status"}, - {0x91004C, 0x91004C, "Pin Pad Output"}, - {0x91004D, 0x91004D, "Pin Pad Command"}, - {0x91004E, 0x91FFFF, "Reserved"}, - - {0x920000, 0xFEFFFFFF, "[Reserved]"}, - {0xFF000000, 0xFFFFFFFF, "[Vendor-defined]"}, - {0, 0, NULL} +static const value_string usb_hid_generic_desktop_controls_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Pointer"}, + {0x02, "Mouse"}, + {0x04, "Joystick"}, + {0x05, "Game Pad"}, + {0x06, "Keyboard"}, + {0x07, "Keypad"}, + {0x08, "Multi-axis Controller"}, + {0x09, "Tablet PC System Controls"}, + {0x30, "X"}, + {0x31, "Y"}, + {0x32, "Z"}, + {0x33, "Rx"}, + {0x34, "Ry"}, + {0x35, "Rz"}, + {0x36, "Slider"}, + {0x37, "Dial"}, + {0x38, "Wheel"}, + {0x39, "Hat switch"}, + {0x3A, "Counted Buffer"}, + {0x3B, "Byte Count"}, + {0x3C, "Motion Wakeup"}, + {0x3D, "Start"}, + {0x3E, "Select"}, + {0x40, "Vx"}, + {0x41, "Vy"}, + {0x42, "Vz"}, + {0x43, "Vbrx"}, + {0x44, "Vbry"}, + {0x45, "Vbrz"}, + {0x46, "Vno"}, + {0x47, "Feature Notification"}, + {0x48, "Resolution Multiplier"}, + {0x80, "System Control"}, + {0x81, "System Power Down"}, + {0x82, "System Sleep"}, + {0x83, "System Wake Up"}, + {0x84, "System Context Menu"}, + {0x85, "System Main Menu"}, + {0x86, "System App Menu"}, + {0x87, "System Menu Help"}, + {0x88, "System Menu Exit"}, + {0x89, "System Menu Select"}, + {0x8A, "System Menu Right"}, + {0x8B, "System Menu Left"}, + {0x8C, "System Menu Up"}, + {0x8D, "System Menu Down"}, + {0x8E, "System Cold Restart"}, + {0x8F, "System Warm Restart"}, + {0x90, "D-pad Up"}, + {0x91, "D-pad Down"}, + {0x92, "D-pad Right"}, + {0x93, "D-pad Left"}, + {0x9F, "Reserved"}, + {0xA0, "System Dock"}, + {0xA1, "System Undock"}, + {0xA2, "System Setup"}, + {0xA3, "System Break"}, + {0xA4, "System Debugger Break"}, + {0xA5, "Application Break"}, + {0xA6, "Application Debugger Break"}, + {0xA7, "System Speaker Mute"}, + {0xA8, "System Hibernate"}, + {0xB0, "System Display Invert"}, + {0xB1, "System Display Internal"}, + {0xB2, "System Display External"}, + {0xB3, "System Display Both"}, + {0xB4, "System Display Dual"}, + {0xB5, "System Display Toggle Int/Ext"}, + {0xB6, "System Display Swap Primary/Secondary"}, + {0xB7, "System Display LCD Autoscale"}, + {0, NULL} +}; +static const value_string usb_hid_simulation_control_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Flight Simulation Device"}, + {0x02, "Automobile Simulation Device"}, + {0x03, "Tank Simulation Device"}, + {0x04, "Spaceship Simulation Device"}, + {0x05, "Submarine Simulation Device"}, + {0x06, "Sailing Simulation Device"}, + {0x07, "Motorcycle Simulation Device"}, + {0x08, "Sports Simulation Device"}, + {0x09, "Airplane Simulation Device"}, + {0x0A, "Helicopter Simulation Device"}, + {0x0B, "Magic Carpet Simulation Device"}, + {0x0C, "Bicycle Simulation Device"}, + {0x20, "Flight Control Stick"}, + {0x21, "Flight Stick"}, + {0x22, "Cyclic Control"}, + {0x23, "Cyclic Trim"}, + {0x24, "Flight Yoke"}, + {0x25, "Track Control"}, + {0xB0, "Aileron"}, + {0xB1, "Aileron Trim"}, + {0xB2, "Anti-Torque Control"}, + {0xB3, "Autopilot Enable"}, + {0xB4, "Chaff Release"}, + {0xB5, "Collective Control"}, + {0xB6, "Dive Brake"}, + {0xB7, "Electronic Countermeasures"}, + {0xB8, "Elevator"}, + {0xB9, "Elevator Trim"}, + {0xBA, "Rudder"}, + {0xBB, "Throttle"}, + {0xBC, "Flight Communications"}, + {0xBD, "Flare Release"}, + {0xBE, "Landing Gear"}, + {0xBF, "Toe Brake"}, + {0xC0, "Trigger"}, + {0xC1, "Weapons Arm"}, + {0xC2, "Weapons Select"}, + {0xC3, "Wing Flaps"}, + {0xC4, "Accelerator"}, + {0xC5, "Brake"}, + {0xC6, "Clutch"}, + {0xC7, "Shifter"}, + {0xC8, "Steering"}, + {0xC9, "Turret Direction"}, + {0xCA, "Barrel Elevation"}, + {0xCB, "Dive Plane"}, + {0xCC, "Ballast"}, + {0xCD, "Bicycle Crank"}, + {0xCE, "Handle Bars"}, + {0xCF, "Front Brake"}, + {0xD0, "Rear Brake"}, + {0, NULL} +}; +static const value_string usb_hid_vr_controls_usage_page_vals[] = { + {0x00, "Unidentified"}, + {0x01, "Belt"}, + {0x02, "Body Suit"}, + {0x03, "Flexor"}, + {0x04, "Glove"}, + {0x05, "Head Tracker"}, + {0x06, "Head Mounted Display"}, + {0x07, "Hand Tracker"}, + {0x08, "Oculometer"}, + {0x09, "Vest"}, + {0x0A, "Animatronic Device"}, + {0x20, "Stereo Enable"}, + {0x21, "Display Enable"}, + {0, NULL} +}; +static const value_string usb_hid_sport_controls_usage_page_vals[] = { + {0x00, "Unidentified"}, + {0x01, "Baseball Bat"}, + {0x02, "Golf Club"}, + {0x03, "Rowing Machine"}, + {0x04, "Treadmill"}, + {0x30, "Oar"}, + {0x31, "Slope"}, + {0x32, "Rate"}, + {0x33, "Stick Speed"}, + {0x34, "Stick Face Angle"}, + {0x35, "Stick Heel/Toe"}, + {0x36, "Stick Follow Through"}, + {0x37, "Stick Tempo"}, + {0x38, "Stick Type"}, + {0x39, "Stick Height"}, + {0x50, "Putter"}, + {0x51, "1 Iron"}, + {0x52, "2 Iron"}, + {0x53, "3 Iron"}, + {0x54, "4 Iron"}, + {0x55, "5 Iron"}, + {0x56, "6 Iron"}, + {0x57, "7 Iron"}, + {0x58, "8 Iron"}, + {0x59, "9 Iron"}, + {0x5A, "10 Iron"}, + {0x5B, "11 Iron"}, + {0x5C, "Sand Wedge"}, + {0x5D, "Loft Wedge"}, + {0x5E, "Power Wedge"}, + {0x5F, "1 Wood"}, + {0x60, "3 Wood"}, + {0x61, "5 Wood"}, + {0x62, "7 Wood"}, + {0x63, "9 Wood"}, + {0, NULL} +}; +static const value_string usb_hid_game_controls_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "3D Game Controller"}, + {0x02, "Pinball Device"}, + {0x03, "Gun Device"}, + {0x20, "Point of View"}, + {0x21, "Turn Right/Left"}, + {0x22, "Pitch Forward/Backward"}, + {0x23, "Roll Right/Left"}, + {0x24, "Move Right/Left"}, + {0x25, "Move Forward/Backward"}, + {0x26, "Move Up/Down"}, + {0x27, "Lean Right/Left"}, + {0x28, "Lean Forward/Backward"}, + {0x29, "Height of POV"}, + {0x2A, "Flipper"}, + {0x2B, "Secondary Flipper"}, + {0x2C, "Bump"}, + {0x2D, "New Game"}, + {0x2E, "Shoot Ball"}, + {0x2F, "Player"}, + {0x30, "Gun Bolt"}, + {0x31, "Gun Clip"}, + {0x32, "Gun Selector"}, + {0x33, "Gun Single Shot"}, + {0x34, "Gun Burst"}, + {0x35, "Gun Automatic"}, + {0x36, "Gun Safety"}, + {0x37, "Gamepad Fire/Jump"}, + {0x38, "[Undefined]"}, + {0x39, "Gamepad Trigger"}, + {0, NULL} +}; +static const value_string usb_hid_generic_device_controls_usage_page_vals[] = { + {0x00, "Unidentified"}, + {0x20, "Battery Strength"}, + {0x21, "Wireless Channel"}, + {0x22, "Wireless ID"}, + {0x23, "Discover Wireless Control"}, + {0x24, "Security Code Character Entered"}, + {0x25, "Security Code Character Erased"}, + {0x26, "Security Code Cleared"}, + {0, NULL} +}; +static const value_string usb_hid_keyboard_keypad_usage_page_vals[] = { + {0x00, "Reserved (no event indicated)"}, + {0x01, "Keyboard ErrorRollOver"}, + {0x02, "Keyboard POSTFail"}, + {0x03, "Keyboard ErrorUndefined"}, + {0x04, "Keyboard a and A"}, + {0x05, "Keyboard b and B"}, + {0x06, "Keyboard c and C"}, + {0x07, "Keyboard d and D"}, + {0x08, "Keyboard e and E"}, + {0x09, "Keyboard f and F"}, + {0x0A, "Keyboard g and G"}, + {0x0B, "Keyboard h and H"}, + {0x0C, "Keyboard i and I"}, + {0x0D, "Keyboard j and J"}, + {0x0E, "Keyboard k and K"}, + {0x0F, "Keyboard l and L"}, + {0x10, "Keyboard m and M"}, + {0x11, "Keyboard n and N"}, + {0x12, "Keyboard o and O"}, + {0x13, "Keyboard p and P"}, + {0x14, "Keyboard q and Q"}, + {0x15, "Keyboard r and R"}, + {0x16, "Keyboard s and S"}, + {0x17, "Keyboard t and T"}, + {0x18, "Keyboard u and U"}, + {0x19, "Keyboard v and V"}, + {0x1A, "Keyboard w and W"}, + {0x1B, "Keyboard x and X"}, + {0x1C, "Keyboard y and Y"}, + {0x1D, "Keyboard z and Z"}, + {0x1E, "Keyboard 1 and !"}, + {0x1F, "Keyboard 2 and @"}, + {0x20, "Keyboard 3 and #"}, + {0x21, "Keyboard 4 and $"}, + {0x22, "Keyboard 5 and %"}, + {0x23, "Keyboard 6 and ^"}, + {0x24, "Keyboard 7 and &"}, + {0x25, "Keyboard 8 and *"}, + {0x26, "Keyboard 9 and ("}, + {0x27, "Keyboard 0 and )"}, + {0x28, "Keyboard Return (ENTER)"}, + {0x29, "Keyboard ESCAPE"}, + {0x2A, "Keyboard DELETE (Backspace)"}, + {0x2B, "Keyboard Tab"}, + {0x2C, "Keyboard Spacebar"}, + {0x2D, "Keyboard - and (underscore)"}, + {0x2E, "Keyboard = and +"}, + {0x2F, "Keyboard [ and {"}, + {0x30, "Keyboard ] and }"}, + {0x31, "Keyboard \\ and |"}, + {0x32, "Keyboard Non-US # and ~"}, + {0x33, "Keyboard ; and :"}, + {0x34, "Keyboard ' and \""}, + {0x35, "Keyboard Grave Accent and Tilde"}, + {0x36, "Keyboard , and <"}, + {0x37, "Keyboard . and >"}, + {0x38, "Keyboard / and ?"}, + {0x39, "Keyboard Caps Lock"}, + {0x3A, "Keyboard F1"}, + {0x3B, "Keyboard F2"}, + {0x3C, "Keyboard F3"}, + {0x3D, "Keyboard F4"}, + {0x3E, "Keyboard F5"}, + {0x3F, "Keyboard F6"}, + {0x40, "Keyboard F7"}, + {0x41, "Keyboard F8"}, + {0x42, "Keyboard F9"}, + {0x43, "Keyboard F11"}, + {0x44, "Keyboard F12"}, + {0x45, "Keyboard F13"}, + {0x46, "Keyboard PrintScreen"}, + {0x47, "Keyboard Scroll Lock"}, + {0x48, "Keyboard Pause"}, + {0x49, "Keyboard Insert"}, + {0x4A, "Keyboard Home"}, + {0x4B, "Keyboard PageUp"}, + {0x4C, "Keyboard Delete Forward"}, + {0x4D, "Keyboard End"}, + {0x4E, "Keyboard PageDown"}, + {0x4F, "Keyboard RightArrow"}, + {0x50, "Keyboard LeftArrow"}, + {0x51, "Keyboard DownArrow"}, + {0x52, "Keyboard UpArrow"}, + {0x53, "Keypad Num Lock and Clear"}, + {0x54, "Keypad /"}, + {0x55, "Keypad *"}, + {0x56, "Keypad -"}, + {0x57, "Keypad +"}, + {0x58, "Keypad ENTER"}, + {0x59, "Keypad 1 and End"}, + {0x5A, "Keypad 2 and Down Arrow"}, + {0x5B, "Keypad 3 and PageDn"}, + {0x5C, "Keypad 4 and Left Arrow"}, + {0x5D, "Keypad 5"}, + {0x5E, "Keypad 6 and Right Arrow"}, + {0x5F, "Keypad 7 and Home"}, + {0x60, "Keypad 8 and Up Arrow"}, + {0x61, "Keypad 9 and PageUp"}, + {0x62, "Keypad 0 and Insert"}, + {0x63, "Keypad . and Delete"}, + {0x64, "Keyboard Non-US \\ and |"}, + {0x65, "Keyboard Application"}, + {0x66, "Keyboard Power"}, + {0x67, "Keypad ="}, + {0x68, "Keyboard F13"}, + {0x69, "Keyboard F14"}, + {0x6A, "Keyboard F15"}, + {0x6B, "Keyboard F16"}, + {0x6C, "Keyboard F17"}, + {0x6D, "Keyboard F18"}, + {0x6E, "Keyboard F19"}, + {0x6F, "Keyboard F20"}, + {0x70, "Keyboard F21"}, + {0x71, "Keyboard F22"}, + {0x72, "Keyboard F23"}, + {0x73, "Keyboard F24"}, + {0x74, "Keyboard Execute"}, + {0x75, "Keyboard Help"}, + {0x76, "Keyboard Menu"}, + {0x77, "Keyboard Select"}, + {0x78, "Keyboard Stop"}, + {0x79, "Keyboard Again"}, + {0x7A, "Keyboard Undo"}, + {0x7B, "Keyboard Cut"}, + {0x7C, "Keyboard Copy"}, + {0x7D, "Keyboard Paste"}, + {0x7E, "Keyboard Find"}, + {0x7F, "Keyboard Mute"}, + {0x80, "Keyboard Volume Up"}, + {0x81, "Keyboard Volume Down"}, + {0x82, "Keyboard Locking Caps Lock"}, + {0x83, "Keyboard Locking Num Lock"}, + {0x84, "Keyboard Locking Scroll Lock"}, + {0x85, "Keypad Comma"}, + {0x86, "Keypad Equal Sign"}, + {0x87, "Keyboard International1"}, + {0x88, "Keyboard International2"}, + {0x89, "Keyboard International3"}, + {0x8A, "Keyboard International4"}, + {0x8B, "Keyboard International5"}, + {0x8C, "Keyboard International6"}, + {0x8D, "Keyboard International7"}, + {0x8E, "Keyboard International8"}, + {0x8F, "Keyboard International9"}, + {0x90, "Keyboard LANG1"}, + {0x91, "Keyboard LANG2"}, + {0x92, "Keyboard LANG3"}, + {0x93, "Keyboard LANG4"}, + {0x94, "Keyboard LANG5"}, + {0x95, "Keyboard LANG6"}, + {0x96, "Keyboard LANG7"}, + {0x97, "Keyboard LANG8"}, + {0x98, "Keyboard LANG9"}, + {0x99, "Keyboard Alternate Erase"}, + {0x9A, "Keyboard SysReq/Attention"}, + {0x9B, "Keyboard Cancel"}, + {0x9C, "Keyboard Clear"}, + {0x9D, "Keyboard Prior"}, + {0x9E, "Keyboard Return"}, + {0x9F, "Keyboard Separator"}, + {0xA0, "Keyboard Out"}, + {0xA1, "Keyboard Oper"}, + {0xA2, "Keyboard Clear/Again"}, + {0xA3, "Keyboard CrSel/Props"}, + {0xA4, "Keyboard ExSel"}, + {0xB0, "Keypad 00"}, + {0xB1, "Keypad 000"}, + {0xB2, "Thousands Separator"}, + {0xB3, "Decimal Separator"}, + {0xB4, "Currency Unit"}, + {0xB5, "Currency Sub-unit"}, + {0xB6, "Keypad ("}, + {0xB7, "Keypad )"}, + {0xB8, "Keypad {"}, + {0xB9, "Keypad }"}, + {0xBA, "Keypad Tab"}, + {0xBB, "Keypad Backspace"}, + {0xBC, "Keypad A"}, + {0xBD, "Keypad B"}, + {0xBE, "Keypad C"}, + {0xBF, "Keypad D"}, + {0xC0, "Keypad E"}, + {0xC1, "Keypad F"}, + {0xC2, "Keypad XOR"}, + {0xC3, "Keypad ^"}, + {0xC4, "Keypad %"}, + {0xC5, "Keypad <"}, + {0xC6, "Keypad >"}, + {0xC7, "Keypad &"}, + {0xC8, "Keypad &&"}, + {0xC9, "Keypad |"}, + {0xCA, "Keypad ||"}, + {0xCB, "Keypad :"}, + {0xCC, "Keypad #"}, + {0xCD, "Keypad Space"}, + {0xCE, "Keypad @"}, + {0xCF, "Keypad !"}, + {0xD0, "Keypad Memory Store"}, + {0xD1, "Keypad Memory Recall"}, + {0xD2, "Keypad Memory Clear"}, + {0xD3, "Keypad Memory Add"}, + {0xD4, "Keypad Memory Subtract"}, + {0xD5, "Keypad Memory Multiply"}, + {0xD6, "Keypad Memory Divide"}, + {0xD7, "Keypad +/-"}, + {0xD8, "Keypad Clear"}, + {0xD9, "Keypad Clear Entry"}, + {0xDA, "Keypad Binary"}, + {0xDB, "Keypad Octal"}, + {0xDC, "Keypad Decimal"}, + {0xDD, "Keypad Hexadecimal"}, + {0xDF, "Reserved"}, + {0xE0, "Keyboard LeftControl"}, + {0xE1, "Keyboard LeftShift"}, + {0xE2, "Keyboard LeftAlt"}, + {0xE3, "Keyboard Left GUI"}, + {0xE4, "Keyboard RightControl"}, + {0xE5, "Keyboard RightShift"}, + {0xE6, "Keyboard RightAlt"}, + {0xE7, "Keyboard Right GUI"}, + {0, NULL} +}; +static const value_string usb_hid_led_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Num Lock"}, + {0x02, "Caps Lock"}, + {0x03, "Scroll Lock"}, + {0x04, "Compose"}, + {0x05, "Kana"}, + {0x06, "Power"}, + {0x07, "Shift"}, + {0x08, "Do Not Disturb"}, + {0x09, "Mute"}, + {0x0A, "Tone Enable"}, + {0x0B, "High Cut Filter"}, + {0x0C, "Low Cut Filter"}, + {0x0D, "Equalizer Enable"}, + {0x0E, "Sound Field On"}, + {0x0F, "Surround On"}, + {0x10, "Repeat"}, + {0x11, "Stereo"}, + {0x12, "Sampling Rate Detect"}, + {0x13, "Spinning"}, + {0x14, "CAV"}, + {0x15, "CLV"}, + {0x16, "Recording Format Detect"}, + {0x17, "Off-Hook"}, + {0x18, "Ring"}, + {0x19, "Message Waiting"}, + {0x1A, "Data Mode"}, + {0x1B, "Battery Operation"}, + {0x1C, "Battery OK"}, + {0x1D, "Battery Low"}, + {0x1E, "Speaker"}, + {0x1F, "Head Set"}, + {0x20, "Hold"}, + {0x21, "Microphone"}, + {0x22, "Coverage"}, + {0x23, "Night Mode"}, + {0x24, "Send Calls"}, + {0x25, "Call Pickup"}, + {0x26, "Conference"}, + {0x27, "Stand-by"}, + {0x28, "Camera On"}, + {0x29, "Camera Off"}, + {0x2A, "On-Line"}, + {0x2B, "Off-Line"}, + {0x2C, "Busy"}, + {0x2D, "Ready"}, + {0x2E, "Paper-Out"}, + {0x2F, "Paper-Jam"}, + {0x30, "Remote"}, + {0x31, "Forward"}, + {0x32, "Reverse"}, + {0x33, "Stop"}, + {0x34, "Rewind"}, + {0x35, "Fast Forward"}, + {0x36, "Play"}, + {0x37, "Pause"}, + {0x38, "Record"}, + {0x39, "Error"}, + {0x3A, "Usage Selected Indicator"}, + {0x3B, "Usage In Use Indicator"}, + {0x3C, "Usage Multi Mode Indicator"}, + {0x3D, "Indicator On"}, + {0x3E, "Indicator Flash"}, + {0x3F, "Indicator Slow Blink"}, + {0x40, "Indicator Fast Blink"}, + {0x41, "Indicator Off"}, + {0x42, "Flash On Time"}, + {0x43, "Slow Blink On Time"}, + {0x44, "Slow Blink Off Time"}, + {0x45, "Fast Blink On Time"}, + {0x46, "Fast Blink Off Time"}, + {0x47, "Usage Indicator Color"}, + {0x48, "Indicator Red"}, + {0x49, "Indicator Green"}, + {0x4A, "Indicator Amber"}, + {0x4B, "Generic Indicator"}, + {0x4C, "System Suspend"}, + {0x4D, "External Power Connected"}, + {0, NULL} +}; +static const value_string usb_hid_button_usage_page_vals[] = { + {0x00, "No button pressed"}, + {0x01, "Button 1 (primary/trigger)"}, + {0x02, "Button 2 (secondary)"}, + {0x03, "Button 3 (tertiary)"}, + {0, NULL} +}; +static const value_string usb_hid_ordinal_usage_page_vals[] = { + {0x00, "Reserved"}, + {0, NULL} +}; +static const value_string usb_hid_telephony_device_usage_page_vals[] = { + {0x00, "Unassigned"}, + {0x01, "Phone"}, + {0x02, "Answering Machine"}, + {0x03, "Message Controls"}, + {0x04, "Handset"}, + {0x05, "Headset"}, + {0x06, "Telephony Key Pad"}, + {0x07, "Programmable Button"}, + {0x20, "Hook Switch"}, + {0x21, "Flash"}, + {0x22, "Feature"}, + {0x23, "Hold"}, + {0x24, "Redial"}, + {0x25, "Transfer"}, + {0x26, "Drop"}, + {0x27, "Park"}, + {0x28, "Forward Calls"}, + {0x29, "Alternate Function"}, + {0x2A, "Line"}, + {0x2B, "Speaker Phone"}, + {0x2C, "Conference"}, + {0x2D, "Ring Enable"}, + {0x2E, "Ring Select"}, + {0x2F, "Phone Mute"}, + {0x30, "Caller ID"}, + {0x31, "Send"}, + {0x50, "Speed Dial"}, + {0x51, "Store Number"}, + {0x52, "Recall Number"}, + {0x53, "Phone Directory"}, + {0x70, "Voice Mail"}, + {0x71, "Screen Calls"}, + {0x72, "Do Not Disturb"}, + {0x73, "Message"}, + {0x74, "Answer On/Off"}, + {0x90, "Inside Dial Tone"}, + {0x91, "Outside Dial Tone"}, + {0x92, "Inside Ring Tone"}, + {0x93, "Outside Ring Tone"}, + {0x94, "Priority Ring Tone"}, + {0x95, "Inside Ringback"}, + {0x96, "Priority Ringback"}, + {0x97, "Line Busy Tone"}, + {0x98, "Reorder Tone"}, + {0x99, "Call Waiting Tone"}, + {0x9A, "Confirmation Tone 1"}, + {0x9B, "Confirmation Tone 2"}, + {0x9C, "Tones Off"}, + {0x9D, "Outside Ringback"}, + {0x9E, "Ringer"}, + {0xB0, "Phone Key 0"}, + {0xB1, "Phone Key 1"}, + {0xB2, "Phone Key 2"}, + {0xB3, "Phone Key 3"}, + {0xB4, "Phone Key 4"}, + {0xB5, "Phone Key 5"}, + {0xB6, "Phone Key 6"}, + {0xB7, "Phone Key 7"}, + {0xB8, "Phone Key 8"}, + {0xB9, "Phone Key 9"}, + {0xBA, "Phone Key Star"}, + {0xBB, "Phone Key Pound"}, + {0xBC, "Phone Key A"}, + {0xBD, "Phone Key B"}, + {0xBE, "Phone Key C"}, + {0xBF, "Phone Key D"}, + {0, NULL} +}; +static const value_string usb_hid_consumer_usage_page_vals[] = { + {0x000, "Unassigned"}, + {0x001, "Consumer Control"}, + {0x002, "Numeric Key Pad"}, + {0x003, "Programmable Buttons"}, + {0x004, "Microphone"}, + {0x005, "Headphone"}, + {0x006, "Graphic Equalizer"}, + {0x01F, "Reserved"}, + {0x020, "+10"}, + {0x021, "+100"}, + {0x022, "AM/PM"}, + {0x02F, "Reserved"}, + {0x030, "Power"}, + {0x031, "Reset"}, + {0x032, "Sleep"}, + {0x033, "Sleep After"}, + {0x034, "Sleep Mode"}, + {0x035, "Illumination"}, + {0x036, "Function Buttons"}, + {0x03F, "Reserved"}, + {0x040, "Menu"}, + {0x041, "Menu Pick"}, + {0x042, "Menu Up"}, + {0x043, "Menu Down"}, + {0x044, "Menu Left"}, + {0x045, "Menu Right"}, + {0x046, "Menu Escape"}, + {0x047, "Menu Value Increase"}, + {0x048, "Menu Value Decrease"}, + {0x05F, "Reserved"}, + {0x060, "Data On Screen"}, + {0x061, "Closed Caption"}, + {0x062, "Closed Caption Select"}, + {0x063, "VCR/TV"}, + {0x064, "Broadcast Mode"}, + {0x065, "Snapshot"}, + {0x066, "Still"}, + {0x07F, "Reserved"}, + {0x080, "Selection"}, + {0x081, "Assign Selection"}, + {0x082, "Mode Step"}, + {0x083, "Recall Last"}, + {0x084, "Enter Channel"}, + {0x085, "Order Movie"}, + {0x086, "Channel"}, + {0x087, "Media Selection"}, + {0x088, "Media Select Computer"}, + {0x089, "Media Select TV"}, + {0x08A, "Media Select WWW"}, + {0x08B, "Media Select DVD"}, + {0x08C, "Media Select Telephone"}, + {0x08D, "Media Select Program Guide"}, + {0x08E, "Media Select Video Phone"}, + {0x08F, "Media Select Games"}, + {0x090, "Media Select Messages"}, + {0x091, "Media Select CD "}, + {0x092, "Media Select VCR"}, + {0x093, "Media Select Tuner"}, + {0x094, "Quit"}, + {0x095, "Help"}, + {0x096, "Media Select Tape"}, + {0x097, "Media Select Cable"}, + {0x098, "Media Select Satellite"}, + {0x099, "Media Select Security"}, + {0x09A, "Media Select Home"}, + {0x09B, "Media Select Call"}, + {0x09C, "Channel Increment"}, + {0x09D, "Channel Decrement"}, + {0x09E, "Media Select SAP"}, + {0x09F, "Reserved"}, + {0x0A0, "VCR Plus"}, + {0x0A1, "Once"}, + {0x0A2, "Daily"}, + {0x0A3, "Weekly"}, + {0x0A4, "Monthly"}, + {0x0AF, "Reserved"}, + {0x0B0, "Play"}, + {0x0B1, "Pause"}, + {0x0B2, "Record"}, + {0x0B3, "Fast Forward"}, + {0x0B4, "Rewind"}, + {0x0B5, "Scan Next Track"}, + {0x0B6, "Scan Previous Track"}, + {0x0B7, "Stop"}, + {0x0B8, "Eject"}, + {0x0B9, "Random Play"}, + {0x0BA, "Select Disc"}, + {0x0BB, "Enter Disc"}, + {0x0BC, "Repeat"}, + {0x0BD, "Tracking"}, + {0x0BE, "Track Normal"}, + {0x0BF, "Slow Tracking"}, + {0x0C0, "Frame Forward"}, + {0x0C1, "Frame Back"}, + {0x0C2, "Mark"}, + {0x0C3, "Clear Mark"}, + {0x0C4, "Repeat From Mark"}, + {0x0C5, "Return To Mark"}, + {0x0C6, "Search Mark Forward"}, + {0x0C7, "Search Mark Backwards"}, + {0x0C8, "Counter Reset"}, + {0x0C9, "Show Counter"}, + {0x0CA, "Tracking Increment"}, + {0x0CB, "Tracking Decrement"}, + {0x0CC, "Stop/Eject"}, + {0x0CD, "Play/Pause"}, + {0x0CE, "Play/Skip"}, + {0x0DF, "Reserved"}, + {0x0E0, "Volume"}, + {0x0E1, "Balance"}, + {0x0E2, "Mute"}, + {0x0E3, "Bass"}, + {0x0E4, "Treble"}, + {0x0E5, "Bass Boost"}, + {0x0E6, "Surround Mode"}, + {0x0E7, "Loudness"}, + {0x0E8, "MPX"}, + {0x0E9, "Volume Increment"}, + {0x0EA, "Volume Decrement"}, + {0x0EF, "Reserved"}, + {0x0F0, "Speed Select"}, + {0x0F1, "Playback Speed"}, + {0x0F2, "Standard Play"}, + {0x0F3, "Long Play"}, + {0x0F4, "Extended Play"}, + {0x0F5, "Slow"}, + {0x0FF, "Reserved"}, + {0x100, "Fan Enable"}, + {0x101, "Fan Speed"}, + {0x102, "Light Enable"}, + {0x103, "Light Illumination Level"}, + {0x104, "Climate Control Enable"}, + {0x105, "Room Temperature"}, + {0x106, "Security Enable"}, + {0x107, "Fire Alarm"}, + {0x108, "Police Alarm"}, + {0x109, "Proximity"}, + {0x10A, "Motion"}, + {0x10B, "Duress Alarm"}, + {0x10C, "Holdup Alarm"}, + {0x10D, "Medical Alarm"}, + {0x14F, "Reserved"}, + {0x150, "Balance Right"}, + {0x151, "Balance Left"}, + {0x152, "Bass Increment"}, + {0x153, "Bass Decrement"}, + {0x154, "Treble Increment"}, + {0x155, "Treble Decrement"}, + {0x15F, "Reserved"}, + {0x160, "Speaker System"}, + {0x161, "Channel Left"}, + {0x162, "Channel Right"}, + {0x163, "Channel Center"}, + {0x164, "Channel Front"}, + {0x165, "Channel Center Front"}, + {0x166, "Channel Side"}, + {0x167, "Channel Surround"}, + {0x168, "Channel Low Frequency Enhancement"}, + {0x169, "Channel Top"}, + {0x16A, "Channel Unknown"}, + {0x16F, "Reserved"}, + {0x170, "Sub-channel"}, + {0x171, "Sub-channel Increment"}, + {0x172, "Sub-channel Decrement"}, + {0x173, "Alternate Audio Increment"}, + {0x174, "Alternate Audio Decrement"}, + {0x17F, "Reserved"}, + {0x180, "Application Launch Buttons"}, + {0x181, "AL Launch Button Configuration Tool"}, + {0x182, "AL Programmable Button Configuration"}, + {0x183, "AL Consumer Control Configuration"}, + {0x184, "AL Word Processor"}, + {0x185, "AL Text Editor"}, + {0x186, "AL Spreadsheet"}, + {0x187, "AL Graphics Editor"}, + {0x188, "AL Presentation App"}, + {0x189, "AL Database App"}, + {0x18A, "AL Email Reader"}, + {0x18B, "AL Newsreader"}, + {0x18C, "AL Voicemail"}, + {0x18D, "AL Contacts/Address Book"}, + {0x18E, "AL Calendar/Schedule"}, + {0x18F, "AL Task/Project Manager"}, + {0x190, "AL Log/Journal/Timecard"}, + {0x191, "AL Checkbook/Finance"}, + {0x192, "AL Calculator"}, + {0x193, "AL A/V Capture/Playback"}, + {0x194, "AL Local Machine Browser"}, + {0x195, "AL LAN/WAN Browser"}, + {0x196, "AL Internet Browser"}, + {0x197, "AL Remote Networking/ISP Connect"}, + {0x198, "AL Network Conference"}, + {0x199, "AL Network Chat"}, + {0x19A, "AL Telephony/Dialer"}, + {0x19B, "AL Logon"}, + {0x19C, "AL Logoff"}, + {0x19D, "AL Logon/Logoff"}, + {0x19E, "AL Terminal Lock/Screensaver"}, + {0x19F, "AL Control Panel"}, + {0x1A0, "AL Command Line Processor/Run"}, + {0x1A1, "AL Process/Task Manager"}, + {0x1A2, "AL Select Task/Application"}, + {0x1A3, "AL Next Task/Application"}, + {0x1A4, "AL Previous Task/Application"}, + {0x1A5, "AL Preemptive Halt Task/Application"}, + {0x1A6, "AL Integrated Help Center"}, + {0x1A7, "AL Documents"}, + {0x1A8, "AL Thesaurus"}, + {0x1A9, "AL Dictionary"}, + {0x1AA, "AL Desktop"}, + {0x1AB, "AL Spell Check"}, + {0x1AC, "AL Grammar Check"}, + {0x1AD, "AL Wireless Status"}, + {0x1AE, "AL Keyboard Layout"}, + {0x1AF, "AL Virus Protection"}, + {0x1B0, "AL Encryption"}, + {0x1B1, "AL Screen Saver"}, + {0x1B2, "AL Alarms"}, + {0x1B3, "AL Clock"}, + {0x1B4, "AL File Browser"}, + {0x1B5, "AL Power Status"}, + {0x1B6, "AL Image Browser"}, + {0x1B7, "AL Audio Browser"}, + {0x1B8, "AL Movie Browser"}, + {0x1B9, "AL Digital Rights Manager"}, + {0x1BA, "AL Digital Wallet"}, + {0x1BB, "Reserved"}, + {0x1BC, "AL Instant Messaging"}, + {0x1BD, "AL OEM Features/ Tips/Tutorial Browser"}, + {0x1BE, "AL OEM Help"}, + {0x1BF, "AL Online Community"}, + {0x1C0, "AL Entertainment Content Browser"}, + {0x1C1, "AL Online Shopping Browser"}, + {0x1C2, "AL SmartCard Information/Help"}, + {0x1C3, "AL Market Monitor/Finance Browser"}, + {0x1C4, "AL Customized Corporate News Browser"}, + {0x1C5, "AL Online Activity Browser"}, + {0x1C6, "AL Research/Search Browser"}, + {0x1C7, "AL Audio Player"}, + {0x1FF, "Reserved"}, + {0x200, "Generic GUI Application Controls"}, + {0x201, "AC New"}, + {0x202, "AC Open"}, + {0x203, "AC Close"}, + {0x204, "AC Exit"}, + {0x205, "AC Maximize"}, + {0x206, "AC Minimize"}, + {0x207, "AC Save"}, + {0x208, "AC Print"}, + {0x209, "AC Properties"}, + {0x219, "[Undefined]"}, + {0x21A, "AC Undo"}, + {0x21B, "AC Copy"}, + {0x21C, "AC Cut"}, + {0x21D, "AC Paste"}, + {0x21E, "AC Select All"}, + {0x21F, "AC Find"}, + {0x220, "AC Find and Replace"}, + {0x221, "AC Search"}, + {0x222, "AC Go To"}, + {0x223, "AC Home"}, + {0x224, "AC Back"}, + {0x225, "AC Forward"}, + {0x226, "AC Stop"}, + {0x227, "AC Refresh"}, + {0x228, "AC Previous Link"}, + {0x229, "AC Next Link"}, + {0x22A, "AC Bookmarks"}, + {0x22B, "AC History"}, + {0x22C, "AC Subscriptions"}, + {0x22D, "AC Zoom In"}, + {0x22E, "AC Zoom Out"}, + {0x22F, "AC Zoom"}, + {0x230, "AC Full Screen View"}, + {0x231, "AC Normal View"}, + {0x232, "AC View Toggle"}, + {0x233, "AC Scroll Up"}, + {0x234, "AC Scroll Down"}, + {0x235, "AC Scroll"}, + {0x236, "AC Pan Left"}, + {0x237, "AC Pan Right"}, + {0x238, "AC Pan"}, + {0x239, "AC New Window"}, + {0x23A, "AC Tile Horizontally"}, + {0x23B, "AC Tile Vertically"}, + {0x23C, "AC Format"}, + {0x23D, "AC Edit"}, + {0x23E, "AC Bold"}, + {0x23F, "AC Italics"}, + {0x240, "AC Underline"}, + {0x241, "AC Strikethrough"}, + {0x242, "AC Subscript"}, + {0x243, "AC Superscript"}, + {0x244, "AC All Caps"}, + {0x245, "AC Rotate"}, + {0x246, "AC Resize"}, + {0x247, "AC Flip horizontal"}, + {0x248, "AC Flip Vertical"}, + {0x249, "AC Mirror Horizontal"}, + {0x24A, "AC Mirror Vertical"}, + {0x24B, "AC Font Select"}, + {0x24C, "AC Font Color"}, + {0x24D, "AC Font Size"}, + {0x24E, "AC Justify Left"}, + {0x24F, "AC Justify Center H"}, + {0x250, "AC Justify Right"}, + {0x251, "AC Justify Block H"}, + {0x252, "AC Justify Top"}, + {0x253, "AC Justify Center V"}, + {0x254, "AC Justify Bottom"}, + {0x255, "AC Justify Block V"}, + {0x256, "AC Indent Decrease"}, + {0x257, "AC Indent Increase"}, + {0x258, "AC Numbered List"}, + {0x259, "AC Restart Numbering"}, + {0x25A, "AC Bulleted List"}, + {0x25B, "AC Promote"}, + {0x25C, "AC Demote"}, + {0x25D, "AC Yes"}, + {0x25E, "AC No"}, + {0x25F, "AC Cancel"}, + {0x260, "AC Catalog"}, + {0x261, "AC Buy/Checkout"}, + {0x262, "AC Add to Cart"}, + {0x263, "AC Expand"}, + {0x264, "AC Expand All"}, + {0x265, "AC Collapse"}, + {0x266, "AC Collapse All"}, + {0x267, "AC Print Preview"}, + {0x268, "AC Paste Special"}, + {0x269, "AC Insert Mode"}, + {0x26A, "AC Delete"}, + {0x26B, "AC Lock"}, + {0x26C, "AC Unlock"}, + {0x26D, "AC Protect"}, + {0x26E, "AC Unprotect"}, + {0x26F, "AC Attach Comment"}, + {0x270, "AC Delete Comment"}, + {0x271, "AC View Comment"}, + {0x272, "AC Select Word"}, + {0x273, "AC Select Sentence"}, + {0x274, "AC Select Paragraph"}, + {0x275, "AC Select Column"}, + {0x276, "AC Select Row"}, + {0x277, "AC Select Table"}, + {0x278, "AC Select Object"}, + {0x279, "AC Redo/Repeat"}, + {0x27A, "AC Sort"}, + {0x27B, "AC Sort Ascending"}, + {0x27C, "AC Sort Descending"}, + {0x27D, "AC Filter"}, + {0x27E, "AC Set Clock"}, + {0x27F, "AC View Clock"}, + {0x280, "AC Select Time Zone"}, + {0x281, "AC Edit Time Zones"}, + {0x282, "AC Set Alarm"}, + {0x283, "AC Clear Alarm"}, + {0x284, "AC Snooze Alarm"}, + {0x285, "AC Reset Alarm"}, + {0x286, "AC Synchronize"}, + {0x287, "AC Send/Receive"}, + {0x288, "AC Send To"}, + {0x289, "AC Reply"}, + {0x28A, "AC Reply All"}, + {0x28B, "AC Forward Msg"}, + {0x28C, "AC Send"}, + {0x28D, "AC Attach File"}, + {0x28E, "AC Upload"}, + {0x28F, "AC Download (Save Target As)"}, + {0x290, "AC Set Borders"}, + {0x291, "AC Insert Row"}, + {0x292, "AC Insert Column"}, + {0x293, "AC Insert File"}, + {0x294, "AC Insert Picture"}, + {0x295, "AC Insert Object"}, + {0x296, "AC Insert Symbol"}, + {0x297, "AC Save and Close"}, + {0x298, "AC Rename"}, + {0x299, "AC Merge"}, + {0x29A, "AC Split"}, + {0x29B, "AC Disribute Horizontally"}, + {0x29C, "AC Distribute Vertically"}, + {0, NULL} +}; +static const value_string usb_hid_digitizers_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Digitizer"}, + {0x02, "Pen"}, + {0x03, "Light Pen"}, + {0x04, "Touch Screen"}, + {0x05, "Touch Pad"}, + {0x06, "White Board"}, + {0x07, "Coordinate Measuring Machine"}, + {0x08, "3D Digitizer"}, + {0x09, "Stereo Plotter"}, + {0x0A, "Articulated Arm"}, + {0x0B, "Armature"}, + {0x0C, "Multiple Point Digitizer"}, + {0x0D, "Free Space Wand"}, + {0x20, "Stylus"}, + {0x21, "Puck"}, + {0x22, "Finger"}, + {0x30, "Tip Pressure"}, + {0x31, "Barrel Pressure"}, + {0x32, "In Range"}, + {0x33, "Touch"}, + {0x34, "Untouch"}, + {0x35, "Tap"}, + {0x36, "Quality"}, + {0x37, "Data Valid"}, + {0x38, "Transducer Index"}, + {0x39, "Tablet Function Keys"}, + {0x3A, "Program Change Keys"}, + {0x3B, "Battery Strength"}, + {0x3C, "Invert"}, + {0x3D, "X Tilt"}, + {0x3E, "Y Tilt"}, + {0x3F, "Azimuth"}, + {0x40, "Altitude"}, + {0x41, "Twist"}, + {0x42, "Tip Switch"}, + {0x43, "Secondary Tip Switch"}, + {0x44, "Barrel Switch"}, + {0x45, "Eraser"}, + {0x46, "Tablet Pick"}, + {0, NULL} +}; +static const value_string usb_hid_physical_input_device_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Physical Interface Device"}, + {0x20, "Normal"}, + {0x21, "Set Effect Report"}, + {0x22, "Effect Block Index"}, + {0x23, "Parameter Block Offset"}, + {0x24, "ROM Flag"}, + {0x25, "Effect Type"}, + {0x26, "ET Constant Force"}, + {0x27, "ET Ramp"}, + {0x28, "ET Custom Force Data"}, + {0x30, "ET Square"}, + {0x31, "ET Sine"}, + {0x32, "ET Triangle"}, + {0x33, "ET Sawtooth Up"}, + {0x34, "ET Sawtooth Down"}, + {0x40, "ET Spring"}, + {0x41, "ET Damper"}, + {0x42, "ET Inertia"}, + {0x43, "ET Friction"}, + {0x50, "Duration"}, + {0x51, "Sample Period"}, + {0x52, "Gain"}, + {0x53, "Trigger Button"}, + {0x54, "Trigger Repeat Interval"}, + {0x55, "Axes Enable"}, + {0x56, "Direction Enable"}, + {0x57, "Direction"}, + {0x58, "Type Specific Block Offset"}, + {0x59, "Block Type"}, + {0x5A, "Set Envelope Report"}, + {0x5B, "Attack Level"}, + {0x5C, "Attack Time"}, + {0x5D, "Fade Level"}, + {0x5E, "Fade Time"}, + {0x5F, "Set Condition Report"}, + {0x60, "CP Offset"}, + {0x61, "Positive Coefficient"}, + {0x62, "Negative Coefficient"}, + {0x63, "Positive Saturation"}, + {0x64, "Negative Saturation"}, + {0x65, "Dead Band"}, + {0x66, "Download Force Sample"}, + {0x67, "Isoch Custom Force Enable"}, + {0x68, "Custom Force Data Report"}, + {0x69, "Custom Force Data"}, + {0x6A, "Custom Force Vendor Defined Data"}, + {0x6B, "Set Custom Force Report"}, + {0x6C, "Custom Force Data Offset"}, + {0x6D, "Sample Count"}, + {0x6E, "Set Periodic Report"}, + {0x6F, "Offset"}, + {0x70, "Magnitude"}, + {0x71, "Phase"}, + {0x72, "Period"}, + {0x73, "Set Constant Force Report"}, + {0x74, "Set Ramp Force Report"}, + {0x75, "Ramp Start"}, + {0x76, "Ramp End"}, + {0x77, "Effect Operation Report"}, + {0x78, "Effect Operation"}, + {0x79, "Op Effect Start"}, + {0x7A, "Op Effect Start Solo"}, + {0x7B, "Op Effect Stop"}, + {0x7C, "Loop Count"}, + {0x7D, "Device Gain Report"}, + {0x7E, "Device Gain"}, + {0x7F, "PID Pool Report"}, + {0x80, "RAM Pool Size"}, + {0x81, "ROM Pool Size"}, + {0x82, "ROM Effect Block Count"}, + {0x83, "Simultaneous Effects Max"}, + {0x84, "Pool Alignment"}, + {0x85, "PID Pool Move Report"}, + {0x86, "Move Source"}, + {0x87, "Move Destination"}, + {0x88, "Move Length"}, + {0x89, "PID Block Load Report"}, + {0x8B, "Block Load Status"}, + {0x8C, "Block Load Success"}, + {0x8D, "Block Load Full"}, + {0x8E, "Block Load Error"}, + {0x8F, "Block Handle"}, + {0x90, "PID Block Free Report"}, + {0x91, "Type Specific Block Handle"}, + {0x92, "PID State Report"}, + {0x94, "Effect Playing"}, + {0x95, "PID Device Control Report"}, + {0x96, "PID Device Control"}, + {0x97, "DC Enable Actuators"}, + {0x98, "DC Disable Actuators"}, + {0x99, "DC Stop All Effects"}, + {0x9A, "DC Device Reset"}, + {0x9B, "DC Device Pause"}, + {0x9C, "DC Device Continue"}, + {0x9F, "Device Paused"}, + {0xA0, "Actuators Enabled"}, + {0xA4, "Safety Switch"}, + {0xA5, "Actuator Override Switch"}, + {0xA6, "Actuator Power"}, + {0xA7, "Start Delay"}, + {0xA8, "Parameter Block Size"}, + {0xA9, "Device Managed Pool"}, + {0xAA, "Shared Parameter Blocks"}, + {0xAB, "Create New Effect Report"}, + {0xAC, "RAM Pool Available"}, + {0, NULL} +}; +static const value_string usb_hid_alphanumeric_display_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Alphanumeric Display"}, + {0x02, "Bitmapped Display"}, + {0x20, "Display Attributes Report"}, + {0x21, "ASCII Character Set"}, + {0x22, "Data Read Back"}, + {0x23, "Font Read Back"}, + {0x24, "Display Control Report"}, + {0x25, "Clear Display"}, + {0x26, "Display Enable"}, + {0x27, "Screen Saver Delay"}, + {0x28, "Screen Saver Enable"}, + {0x29, "Vertical Scroll"}, + {0x2A, "Horizontal Scroll"}, + {0x2B, "Character Report"}, + {0x2C, "Display Data"}, + {0x2D, "Display Status"}, + {0x2E, "Stat Not Ready"}, + {0x2F, "Stat Ready"}, + {0x30, "Err Not a loadable character"}, + {0x31, "Err Font data cannot be read"}, + {0x32, "Cursor Position Report"}, + {0x33, "Row"}, + {0x34, "Column"}, + {0x35, "Rows"}, + {0x36, "Columns"}, + {0x37, "Cursor Pixel Positioning"}, + {0x38, "Cursor Mode"}, + {0x39, "Cursor Enable"}, + {0x3A, "Cursor Blink"}, + {0x3B, "Font Report"}, + {0x3C, "Font Data"}, + {0x3D, "Character Width"}, + {0x3E, "Character Height"}, + {0x3F, "Character Spacing Horizontal"}, + {0x40, "Character Spacing Vertical"}, + {0x41, "Unicode Character Set"}, + {0x42, "Font 7-Segment"}, + {0x43, "7-Segment Direct Map"}, + {0x44, "Font 14-Segment"}, + {0x45, "14-Segment Direct Map"}, + {0x46, "Display Brightness"}, + {0x47, "Display Contrast"}, + {0x48, "Character Attribute"}, + {0x49, "Attribute Readback"}, + {0x4A, "Attribute Data"}, + {0x4B, "Char Attr Enhance"}, + {0x4C, "Char Attr Underline"}, + {0x4D, "Char Attr Blink"}, + {0x80, "Bitmap Size X"}, + {0x81, "Bitmap Size Y"}, + {0x83, "Bit Depth Format"}, + {0x84, "Display Orientation"}, + {0x85, "Palette Report"}, + {0x86, "Palette Data Size"}, + {0x87, "Palette Data Offset"}, + {0x88, "Palette Data"}, + {0x89, "[Undefined]"}, + {0x8A, "Blit Report"}, + {0x8B, "Blit Rectangle X1"}, + {0x8C, "Blit Rectangle Y1"}, + {0x8D, "Blit Rectangle X2"}, + {0x8E, "Blit Rectangle Y2"}, + {0x8F, "Blit Data"}, + {0x90, "Soft Button"}, + {0x91, "Soft Button ID"}, + {0x92, "Soft Button Side"}, + {0x93, "Soft Button Offset 1"}, + {0x94, "Soft Button Offset 2"}, + {0x95, "Soft Button Report"}, + {0, NULL} +}; +static const value_string usb_hid_medical_instrument_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Medical Ultrasound"}, + {0x20, "VCR/Acquisition"}, + {0x21, "Freeze/Thaw"}, + {0x22, "Clip Store"}, + {0x23, "Update"}, + {0x24, "Next"}, + {0x25, "Save"}, + {0x26, "Print"}, + {0x27, "Microphone Enable"}, + {0x3F, "Reserved"}, + {0x40, "Cine"}, + {0x41, "Transmit Power"}, + {0x42, "Volume"}, + {0x43, "Focus"}, + {0x44, "Depth"}, + {0x60, "Soft Step - Primary"}, + {0x61, "Soft Step - Secondary"}, + {0x6F, "Reserved"}, + {0x70, "Depth Gain Compensation"}, + {0x80, "Zoom Select"}, + {0x81, "Zoom Adjust"}, + {0x82, "Spectral Doppler Mode Select"}, + {0x83, "Spectral Doppler Adjust"}, + {0x84, "Color Doppler Mode Select"}, + {0x85, "Color Doppler Adjust"}, + {0x86, "Motion Mode Select"}, + {0x87, "Motion Mode Adjust"}, + {0x88, "2-D Mode Select"}, + {0x89, "2-D Mode Adjust"}, + {0xA0, "Soft Control Select"}, + {0xA1, "Soft Control Adjust"}, + {0, NULL} +}; +static const value_string usb_hid_monitor_usage_page_vals[] = { + {0x00, "Reserved"}, + {0x01, "Monitor Control"}, + {0x02, "EDID Information"}, + {0x03, "VDIF Information"}, + {0x04, "VESA Version"}, + {0, NULL} +}; +static const value_string usb_hid_vesa_virtual_control_usage_page_vals[] = { + /* Contiguous Controls */ + {0x10, "Brightness"}, + {0x12, "Contrast"}, + {0x16, "Red Video Gain"}, + {0x18, "Green Video Gain"}, + {0x1A, "Blue Video Gain"}, + {0x1C, "Focus"}, + {0x20, "Horizontal Position"}, + {0x22, "Horizontal Size"}, + {0x24, "Horizontal Pincushion"}, + {0x26, "Horizontal Pincushion Balance"}, + {0x28, "Horizontal Misconvergence"}, + {0x2A, "Horizontal Linearity"}, + {0x2C, "Horizontal Linearity Balance"}, + {0x30, "Vertical Position"}, + {0x32, "Vertical Size"}, + {0x34, "Vertical Pincushion"}, + {0x36, "Vertical Pincushion Balance"}, + {0x38, "Vertical Misconvergence"}, + {0x3A, "Vertical Linearity"}, + {0x3C, "Vertical Linearity Balance"}, + {0x40, "Parallelogram Distortion (Key Balance)"}, + {0x42, "Trapezoidal Distortion (Key)"}, + {0x44, "Tilt (Rotation)"}, + {0x46, "Top Corner Distortion Control"}, + {0x48, "Top Corner Distortion Balance"}, + {0x4A, "Bottom Corner Distortion Control"}, + {0x4C, "Bottom Corner Distortion Balance"}, + {0x56, "Horizontal Moire"}, + {0x58, "Vertical Moire"}, + {0x6C, "Red Video Black Level"}, + {0x6E, "Green Video Black Level"}, + {0x70, "Blue Video Black Level"}, + /* Non-contiguous Controls (Read/Write) */ + {0x5E, "Input Level Select"}, + {0x60, "Input Source Select"}, + {0xCA, "On Screen Display"}, + {0xD4, "StereoMode"}, + /* Non-contiguous Controls (Read-only) */ + {0xA2, "Auto Size Center"}, + {0xA4, "Polarity Horizontal Synchronization"}, + {0xA6, "Polarity Vertical Synchronization"}, + {0xA8, "Synchronization Type"}, + {0xAA, "Screen Orientation"}, + {0xAC, "Horizontal Frequency"}, + {0xAE, "Vertical Frequency"}, + /* Non-contiguous Controls (Write-only) */ + {0x01, "Degauss"}, + {0xB0, "Settings"}, + {0, NULL} +}; +static const value_string usb_hid_power_device_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "iName"}, + {0x02, "PresentStatus"}, + {0x03, "ChangedStatus"}, + {0x04, "UPS"}, + {0x05, "PowerSupply"}, + {0x10, "BatterySystem"}, + {0x11, "BatterySystemID"}, + {0x12, "Battery"}, + {0x13, "BatteryID"}, + {0x14, "Charger"}, + {0x15, "ChargerID"}, + {0x16, "PowerConverter"}, + {0x17, "PowerConverterID"}, + {0x18, "OutletSystem"}, + {0x19, "OutletSystemID"}, + {0x1A, "Input"}, + {0x1B, "InputID"}, + {0x1C, "Output"}, + {0x1D, "OutputID"}, + {0x1E, "Flow"}, + {0x1F, "FlowID"}, + {0x20, "Outlet"}, + {0x21, "OutletID"}, + {0x22, "Gang"}, + {0x23, "GangID"}, + {0x24, "PowerSummary"}, + {0x25, "PowerSummaryID"}, + {0x30, "Voltage"}, + {0x31, "Current"}, + {0x32, "Frequency"}, + {0x33, "ApparentPower"}, + {0x34, "ActivePower"}, + {0x35, "PercentLoad"}, + {0x36, "Temperature"}, + {0x37, "Humidity"}, + {0x38, "BadCount"}, + {0x40, "ConfigVoltage"}, + {0x41, "ConfigCurrent"}, + {0x42, "ConfigFrequency"}, + {0x43, "ConfigApparentPower"}, + {0x44, "ConfigActivePower"}, + {0x45, "ConfigPercentLoad"}, + {0x46, "ConfigTemperature"}, + {0x47, "ConfigHumidity"}, + {0x50, "SwitchOnControl"}, + {0x51, "SwitchOffControl"}, + {0x52, "ToggleControl"}, + {0x53, "LowVoltageTransfer"}, + {0x54, "HighVoltageTransfer"}, + {0x55, "DelayBeforeReboot"}, + {0x56, "DelayBeforeStartup"}, + {0x57, "DelayBeforeShutdown"}, + {0x58, "Test"}, + {0x59, "ModuleReset"}, + {0x5A, "AudibleAlarmControl"}, + {0x60, "Present"}, + {0x61, "Good"}, + {0x62, "InternalFailure"}, + {0x63, "VoltageOutOfRange"}, + {0x64, "FrequencyOutOfRange"}, + {0x65, "Overload"}, + {0x66, "OverCharged"}, + {0x67, "OverTemperature"}, + {0x68, "ShutdownRequested"}, + {0x69, "ShutdownImminent"}, + {0x6B, "SwitchOn/Off"}, + {0x6C, "Switchable"}, + {0x6D, "Used"}, + {0x6E, "Boost"}, + {0x6F, "Buck"}, + {0x70, "Initialized"}, + {0x71, "Tested"}, + {0x72, "AwaitingPower"}, + {0x73, "CommunicationLost"}, + {0xFD, "iManufacturer"}, + {0xFE, "iProduct"}, + {0xFF, "iserialNumber"}, + {0, NULL} +}; +static const value_string usb_hid_battery_system_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "SMBBatteryMode"}, + {0x02, "SMBBatteryStatus"}, + {0x03, "SMBAlarmWarning"}, + {0x04, "SMBChargerMode"}, + {0x05, "SMBChargerStatus"}, + {0x06, "SMBChargerSpecInfo"}, + {0x07, "SMBSelectorState"}, + {0x08, "SMBSelectorPresets"}, + {0x09, "SMBSelectorInfo"}, + {0x10, "OptionalMfgFunction1"}, + {0x11, "OptionalMfgFunction2"}, + {0x12, "OptionalMfgFunction3"}, + {0x13, "OptionalMfgFunction4"}, + {0x14, "OptionalMfgFunction5"}, + {0x15, "ConnectionToSMBus"}, + {0x16, "OutputConnection"}, + {0x17, "ChargerConnection"}, + {0x18, "BatteryInsertion"}, + {0x19, "Usenext"}, + {0x1A, "OKToUse"}, + {0x1B, "BatterySupported"}, + {0x1C, "SelectorRevision"}, + {0x1D, "ChargingIndicator"}, + {0x28, "ManufacturerAccess"}, + {0x29, "RemainingCapacityLimit"}, + {0x2A, "RemainingTimeLimit"}, + {0x2B, "AtRate"}, + {0x2C, "CapacityMode"}, + {0x2D, "BroadcastToCharger"}, + {0x2E, "PrimaryBattery"}, + {0x2F, "ChargeController"}, + {0x40, "TerminateCharge"}, + {0x41, "TerminateDischarge"}, + {0x42, "BelowRemainingCapacityLimit"}, + {0x43, "RemainingTimeLimitExpired"}, + {0x44, "Charging"}, + {0x45, "Discharging"}, + {0x46, "FullyCharged"}, + {0x47, "FullyDischarged"}, + {0x48, "ConditioningFlag"}, + {0x49, "AtRateOK"}, + {0x4A, "SMBErrorCode"}, + {0x4B, "NeedReplacement"}, + {0x60, "AtRateTimeToFull"}, + {0x61, "AtRateTimeToEmpty"}, + {0x62, "AverageCurrent"}, + {0x63, "Maxerror"}, + {0x64, "RelativeStateOfCharge"}, + {0x65, "AbsoluteStateOfCharge"}, + {0x66, "RemainingCapacity"}, + {0x67, "FullChargeCapacity"}, + {0x68, "RunTimeToEmpty"}, + {0x69, "AverageTimeToEmpty"}, + {0x6A, "AverageTimeToFull"}, + {0x6B, "CycleCount"}, + {0x80, "BattPackModelLevel"}, + {0x81, "InternalChargeController"}, + {0x82, "PrimaryBatterySupport"}, + {0x83, "DesignCapacity"}, + {0x84, "SpecificationInfo"}, + {0x85, "ManufacturerDate"}, + {0x86, "SerialNumber"}, + {0x87, "iManufacturerName"}, + {0x88, "iDevicename"}, + {0x89, "iDeviceChemistery"}, + {0x8A, "ManufacturerData"}, + {0x8B, "Rechargable"}, + {0x8C, "WarningCapacityLimit"}, + {0x8D, "CapacityGranularity1"}, + {0x8E, "CapacityGranularity2"}, + {0x8F, "iOEMInformation"}, + {0xC0, "InhibitCharge"}, + {0xC1, "EnablePolling"}, + {0xC2, "ResetToZero"}, + {0xD0, "ACPresent"}, + {0xD1, "BatteryPresent"}, + {0xD2, "PowerFail"}, + {0xD3, "AlarmInhibited"}, + {0xD4, "ThermistorUnderRange"}, + {0xD5, "ThermistorHot"}, + {0xD6, "ThermistorCold"}, + {0xD7, "ThermistorOverRange"}, + {0xD8, "VoltageOutOfRange"}, + {0xD9, "CurrentOutOfRange"}, + {0xDA, "CurrentNotRegulated"}, + {0xDB, "VoltageNotRegulated"}, + {0xDC, "MasterMode"}, + {0xF0, "ChargerSelectorSupport"}, + {0xF1, "ChargerSpec"}, + {0xF2, "Level2"}, + {0xF3, "Level3"}, + {0, NULL} +}; +static const value_string usb_hid_barcode_scanner_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Bar Code Badge Reader"}, + {0x02, "Bar Code Scanner"}, + {0x03, "Dumb Bar Code Scanner"}, + {0x04, "Cordless Scanner Base"}, + {0x05, "Bar Code Scanner Cradle"}, + {0x10, "Attribute Report"}, + {0x11, "Settings Report"}, + {0x12, "Scanned Data Report"}, + {0x13, "Raw Scanned Data Report"}, + {0x14, "Trigger Report"}, + {0x15, "Status Report"}, + {0x16, "UPC/EAN Control Report"}, + {0x17, "EAN 2/3 Label Control Report"}, + {0x18, "Code 39 Control Report"}, + {0x19, "Interleaved 2 of 5 Control Report"}, + {0x1A, "Standard 2 of 5 Control Report"}, + {0x1B, "MSI Plessey Control Report"}, + {0x1C, "Codabar Control Report"}, + {0x1D, "Code 128 Control Report"}, + {0x1E, "Misc 1D Control Report"}, + {0x1F, "2D Control Report"}, + {0x30, "Aiming/Pointer Mode"}, + {0x31, "Bar Code Present Sensor"}, + {0x32, "Class 1A Laser"}, + {0x33, "Class 2 Laser"}, + {0x34, "Heater Present"}, + {0x35, "Contact Scanner"}, + {0x36, "Electronic Article Surveillance Notification"}, + {0x37, "Constant Electronic Article Surveillance"}, + {0x38, "Error Indication"}, + {0x39, "Fixed Beeper"}, + {0x3A, "Good Decode Indication"}, + {0x3B, "Hands Free Scanning"}, + {0x3C, "Intrinsically Safe"}, + {0x3D, "Klasse Eins Laser"}, + {0x3E, "Long Range Scanner"}, + {0x3F, "Mirror Speed Control"}, + {0x40, "Not On File Indication"}, + {0x41, "Programmable Beeper"}, + {0x42, "Triggerless"}, + {0x43, "Wand"}, + {0x44, "Water Resistant"}, + {0x45, "Multi-Range Scanner"}, + {0x46, "Proximity Sensor"}, + {0x4D, "Fragment Decoding"}, + {0x4E, "Scanner Read Confidence"}, + {0x4F, "Data Prefix"}, + {0x50, "Prefix AIMI"}, + {0x51, "Prefix None"}, + {0x52, "Prefix Proprietary"}, + {0x55, "Active Time"}, + {0x56, "Aiming Laser Pattern"}, + {0x57, "Bar Code Present"}, + {0x58, "Beeper State"}, + {0x59, "Laser On Time"}, + {0x5A, "Laser State"}, + {0x5B, "Lockout Time"}, + {0x5C, "Motor State"}, + {0x5D, "Motor Timeout"}, + {0x5E, "Power On Reset Scanner"}, + {0x5F, "Prevent Read of Barcodes"}, + {0x60, "Initiate Barcode Read"}, + {0x61, "Trigger State"}, + {0x62, "Trigger Mode"}, + {0x63, "Trigger Mode Blinking Laser On"}, + {0x64, "Trigger Mode Continuous Laser On"}, + {0x65, "Trigger Mode Laser on while Pulled"}, + {0x66, "Trigger Mode Laser stays on after Trigger release"}, + {0x6D, "Commit Parameters to NVM"}, + {0x6E, "Parameter Scanning"}, + {0x6F, "Parameters Changed"}, + {0x70, "Set parameter default values"}, + {0x75, "Scanner In Cradle"}, + {0x76, "Scanner In Range"}, + {0x7A, "Aim Duration"}, + {0x7B, "Good Read Lamp Duration"}, + {0x7C, "Good Read Lamp Intensity"}, + {0x7D, "Good Read LED"}, + {0x7E, "Good Read Tone Frequency"}, + {0x7F, "Good Read Tone Length"}, + {0x80, "Good Read Tone Volume"}, + {0x82, "No Read Message"}, + {0x83, "Not on File Volume"}, + {0x84, "Powerup Beep"}, + {0x85, "Sound Error Beep"}, + {0x86, "Sound Good Read Beep"}, + {0x87, "Sound Not On File Beep"}, + {0x88, "Good Read When to Write"}, + {0x89, "GRWTI After Decode"}, + {0x8A, "GRWTI Beep/Lamp after transmit"}, + {0x8B, "GRWTI No Beep/Lamp use at all"}, + {0x91, "Bookland EAN"}, + {0x92, "Convert EAN 8 to 13 Type"}, + {0x93, "Convert UPC A to EAN-13"}, + {0x94, "Convert UPC-E to A"}, + {0x95, "EAN-13"}, + {0x96, "EAN-8"}, + {0x97, "EAN-99 128_Mandatory"}, + {0x98, "EAN-99 P5/128_Optional"}, + {0x9A, "UPC/EAN"}, + {0x9B, "UPC/EAN Coupon Code"}, + {0x9C, "UPC/EAN Periodicals"}, + {0x9D, "UPC-A"}, + {0x9E, "UPC-A with 128 Mandatory"}, + {0x9F, "UPC-A with 128 Optional"}, + {0xA0, "UPC-A with P5 Optional"}, + {0xA1, "UPC-E"}, + {0xA2, "UPC-E1"}, + {0xA9, "Periodical"}, + {0xAA, "Periodical Auto-Discriminate + 2"}, + {0xAB, "Periodical Only Decode with + 2"}, + {0xAC, "Periodical Ignore + 2"}, + {0xAD, "Periodical Auto-Discriminate + 5"}, + {0xAE, "Periodical Only Decode with + 5"}, + {0xAF, "Periodical Ignore + 5"}, + {0xB0, "Check"}, + {0xB1, "Check Disable Price"}, + {0xB2, "Check Enable 4 digit Price"}, + {0xB3, "Check Enable 5 digit Price"}, + {0xB4, "Check Enable European 4 digit Price"}, + {0xB5, "Check Enable European 5 digit Price"}, + {0xB7, "EAN Two Label"}, + {0xB8, "EAN Three Label"}, + {0xB9, "EAN 8 Flag Digit 1"}, + {0xBA, "EAN 8 Flag Digit 2"}, + {0xBB, "EAN 8 Flag Digit 3"}, + {0xBC, "EAN 13 Flag Digit 1"}, + {0xBD, "EAN 13 Flag Digit 2"}, + {0xBE, "EAN 13 Flag Digit 3"}, + {0xBF, "Add EAN 2/3 Label Definition"}, + {0xC0, "Clear all EAN 2/3 Label Definitions"}, + {0xC3, "Codabar"}, + {0xC4, "Code 128"}, + {0xC7, "Code 39"}, + {0xC8, "Code 93 "}, + {0xC9, "Full ASCII Conversion"}, + {0xCA, "Interleaved 2 of 5"}, + {0xCB, "Italian Pharmacy Code"}, + {0xCC, "MSI/Plessey"}, + {0xCD, "Standard 2 of 5 IATA"}, + {0xCE, "Standard 2 of 5"}, + {0xD3, "Transmit Start/Stop"}, + {0xD4, "Tri-Optic"}, + {0xD5, "UCC/EAN-128"}, + {0xD6, "Check Digit"}, + {0xD7, "Check Digit Disable"}, + {0xD8, "Check Digit Enable Interleaved 2 of 5 OPCC"}, + {0xD9, "Check Digit Enable Interleaved 2 of 5 USS"}, + {0xDA, "Check Digit Enable Standard 2 of 5 OPCC"}, + {0xDB, "Check Digit Enable Standard 2 of 5 USS"}, + {0xDC, "Check Digit Enable One MSI Plessey"}, + {0xDD, "Check Digit Enable Two MSI Plessey"}, + {0xDE, "Check Digit Codabar Enable"}, + {0xDF, "Check Digit Code 39 Enable"}, + {0xF0, "Transmit Check Digit"}, + {0xF1, "Disable Check Digit Transmit"}, + {0xF2, "Enable Check Digit Transmit"}, + {0xFB, "Symbology Identifier 1"}, + {0xFC, "Symbology Identifier 2"}, + {0xFD, "Symbology Identifier 3"}, + {0xFE, "Decoded Data"}, + {0xFF, "Decode Data Continued"}, + {0x00, "Bar Space Data"}, + {0x01, "Scanner Data Accuracy"}, + {0x02, "Raw Data Polarity"}, + {0x03, "Polarity Inverted Bar Code"}, + {0x04, "Polarity Normal Bar Code"}, + {0x06, "Minimum Length to Decode"}, + {0x07, "Maximum Length to Decode"}, + {0x08, "First Discrete Length to Decode"}, + {0x09, "Second Discrete Length to Decode"}, + {0x0A, "Data Length Method"}, + {0x0B, "DL Method Read any"}, + {0x0C, "DL Method Check in Range"}, + {0x0D, "DL Method Check for Discrete"}, + {0x10, "Aztec Code"}, + {0x11, "BC412"}, + {0x12, "Channel Code"}, + {0x13, "Code 16"}, + {0x14, "Code 32"}, + {0x15, "Code 49"}, + {0x16, "Code One"}, + {0x17, "Colorcode"}, + {0x18, "Data Matrix"}, + {0x19, "MaxiCode"}, + {0x1A, "MicroPDF"}, + {0x1B, "PDF-417"}, + {0x1C, "PosiCode"}, + {0x1D, "QR Code"}, + {0x1E, "SuperCode"}, + {0x1F, "UltraCode"}, + {0x20, "USD-5 (Slug Code)"}, + {0x21, "VeriCode"}, + {0, NULL} +}; +static const value_string usb_hid_weighing_devices_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "Weighing Device"}, + {0x20, "Scale Device"}, + {0x21, "Scale Class I Metric"}, + {0x22, "Scale Class I Metric"}, + {0x23, "Scale Class II Metric"}, + {0x24, "Scale Class III Metric"}, + {0x25, "Scale Class IIIL Metric"}, + {0x26, "Scale Class IV Metric"}, + {0x27, "Scale Class III English"}, + {0x28, "Scale Class IIIL English"}, + {0x29, "Scale Class IV English"}, + {0x2A, "Scale Class Generic"}, + {0x30, "Scale Attribute Report"}, + {0x31, "Scale Control Report"}, + {0x32, "Scale Data Report"}, + {0x33, "Scale Status Report"}, + {0x34, "Scale Weight Limit Report"}, + {0x35, "Scale Statistics Report"}, + {0x40, "Data Weight"}, + {0x41, "Data Scaling"}, + {0x50, "Weight Unit"}, + {0x51, "Weight Unit Milligram"}, + {0x52, "Weight Unit Gram"}, + {0x53, "Weight Unit Kilogram"}, + {0x54, "Weight Unit Carats"}, + {0x55, "Weight Unit Taels"}, + {0x56, "Weight Unit Grains"}, + {0x57, "Weight Unit Pennyweights"}, + {0x58, "Weight Unit Metric Ton"}, + {0x59, "Weight Unit Avoir Ton"}, + {0x5A, "Weight Unit Troy Ounce"}, + {0x5B, "Weight Unit Ounce"}, + {0x5C, "Weight Unit Pound"}, + {0x60, "Calibration Count"}, + {0x61, "Re-Zero Count"}, + {0x70, "Scale Status"}, + {0x71, "Scale Status Fault"}, + {0x72, "Scale Status Stable at Center of Zero"}, + {0x73, "Scale Status In Motion"}, + {0x74, "Scale Status Weight Stable"}, + {0x75, "Scale Status Under Zero"}, + {0x76, "Scale Status Over Weight Limit"}, + {0x77, "Scale Status Requires Calibration"}, + {0x78, "Scale Status Requires Re- zeroing"}, + {0x80, "Zero Scale"}, + {0x81, "Enforced Zero Return"}, + {0, NULL} +}; +static const value_string usb_hid_magnetic_stripe_reader_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "MSR Device Read-Only"}, + {0x11, "Track 1 Length"}, + {0x12, "Track 2 Length"}, + {0x13, "Track 3 Length"}, + {0x14, "Track JIS Length"}, + {0x20, "Track Data"}, + {0x21, "Track 1 Data"}, + {0x22, "Track 2 Data"}, + {0x23, "Track 3 Data"}, + {0x24, "Track JIS Data"}, + {0, NULL} +}; +static const value_string usb_hid_arcade_usage_page_vals[] = { + {0x00, "Undefined"}, + {0x01, "General Purpose IO Card"}, + {0x02, "Coin Door"}, + {0x03, "Watchdog Timer"}, + {0x30, "General Purpose Analog Input State"}, + {0x31, "General Purpose Digital Input State"}, + {0x32, "General Purpose Optical Input State"}, + {0x33, "General Purpose Digital Output State"}, + {0x34, "Number of Coin Doors"}, + {0x35, "Coin Drawer Drop Count"}, + {0x36, "Coin Drawer Start"}, + {0x37, "Coin Drawer Service"}, + {0x38, "Coin Drawer Tilt"}, + {0x39, "Coin Door Test"}, + {0x3F, "[Undefined]"}, + {0x40, "Coin Door Lockout"}, + {0x41, "Watchdog Timeout"}, + {0x42, "Watchdog Action"}, + {0x43, "Watchdog Reboot"}, + {0x44, "Watchdog Restart"}, + {0x45, "Alarm Input"}, + {0x46, "Coin Door Counter"}, + {0x47, "I/O Direction Mapping"}, + {0x48, "Set I/O Direction"}, + {0x49, "Extended Optical Input State"}, + {0x4A, "Pin Pad Input State"}, + {0x4B, "Pin Pad Status"}, + {0x4C, "Pin Pad Output"}, + {0x4D, "Pin Pad Command"}, + {0, NULL} }; static const value_string keycode_vals[] = { @@ -2507,6 +2382,123 @@ static const value_string keycode_vals[] = { }; value_string_ext keycode_vals_ext = VALUE_STRING_EXT_INIT(keycode_vals); +/* Returns usage page string */ +static const char* +get_usage_page_string(guint32 usage_page) +{ + const char *str; + + str = try_val_to_str(usage_page, usb_hid_item_usage_page_vals); + if (!str) { + if ((usage_page & VENDOR_PAGE_HBYTE) == VENDOR_PAGE_HBYTE) + str = "Vendor"; + else + str = "Reserved"; + } + + return str; +} + +/* Returns usage page item string */ +static gchar* +get_usage_page_item_string(guint32 usage_page, guint32 id) +{ + const char *str = NULL; + + switch (usage_page) + { + case GENERIC_DESKTOP_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_generic_desktop_controls_usage_page_vals); + break; + case SIMULATION_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_simulation_control_usage_page_vals); + break; + case VR_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_vr_controls_usage_page_vals); + break; + case SPORT_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_sport_controls_usage_page_vals); + break; + case GAME_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_game_controls_usage_page_vals); + break; + case GENERIC_DEVICE_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_generic_device_controls_usage_page_vals); + break; + case KEYBOARD_KEYPAD_PAGE: + str = try_val_to_str(id, usb_hid_keyboard_keypad_usage_page_vals); + break; + case LED_PAGE: + str = try_val_to_str(id, usb_hid_led_usage_page_vals); + break; + case BUTTON_PAGE: + str = try_val_to_str(id, usb_hid_button_usage_page_vals); + if (!str) + str = "Button %u"; + break; + case ORDINAL_PAGE: + str = try_val_to_str(id, usb_hid_ordinal_usage_page_vals); + break; + case TELEPHONY_PAGE: + str = try_val_to_str(id, usb_hid_telephony_device_usage_page_vals); + break; + case CONSUMER_PAGE: + str = try_val_to_str(id, usb_hid_consumer_usage_page_vals); + if (!str) + str = "Instance %u"; + break; + case DIGITIZER_PAGE: + str = try_val_to_str(id, usb_hid_digitizers_usage_page_vals); + break; + case PID_PAGE: + str = try_val_to_str(id, usb_hid_physical_input_device_usage_page_vals); + break; + case ALPHANUMERIC_DISPLAY_PAGE: + str = try_val_to_str(id, usb_hid_alphanumeric_display_usage_page_vals); + break; + case MEDICAL_INSTRUMENTS_PAGE: + str = try_val_to_str(id, usb_hid_medical_instrument_usage_page_vals); + break; + case USB_MONITOR_PAGE: + str = try_val_to_str(id, usb_hid_monitor_usage_page_vals); + break; + case USB_ENUMERATED_VALUES_PAGE: + str = "ENUM_%u"; + break; + case VESA_VIRTUAL_CONTROLS_PAGE: + str = try_val_to_str(id, usb_hid_vesa_virtual_control_usage_page_vals); + break; + case POWER_DEVICE_PAGE: + str = try_val_to_str(id, usb_hid_power_device_usage_page_vals); + break; + case BATTERY_SYSTEM_PAGE: + str = try_val_to_str(id, usb_hid_battery_system_usage_page_vals); + break; + case BARCODE_SCANNER_PAGE: + str = try_val_to_str(id, usb_hid_barcode_scanner_usage_page_vals); + break; + case WEIGHING_PAGE: + str = try_val_to_str(id, usb_hid_weighing_devices_usage_page_vals); + break; + case MSR_PAGE: + str = try_val_to_str(id, usb_hid_magnetic_stripe_reader_usage_page_vals); + break; + case ARCADE_PAGE: + str = try_val_to_str(id, usb_hid_arcade_usage_page_vals); + break; + default: + if ((usage_page & VENDOR_PAGE_HBYTE) == VENDOR_PAGE_HBYTE) + str = "Vendor"; + break; + } + + if (!str) { + str = "Reserved"; + } + + return g_strdup_printf(str, id); +} + /* Dissector for the data in a HID main report. */ static int dissect_usb_hid_report_mainitem_data(packet_info *pinfo _U_, proto_tree *tree, tvbuff_t *tvb, int offset, unsigned int bSize, unsigned int bTag) @@ -2551,6 +2543,8 @@ dissect_usb_hid_report_mainitem_data(packet_info *pinfo _U_, proto_tree *tree, t static int dissect_usb_hid_report_globalitem_data(packet_info *pinfo _U_, proto_tree *tree, tvbuff_t *tvb, int offset, unsigned int bSize, unsigned int bTag, struct usb_hid_global_state *global) { + const char *str = NULL; + switch (bTag) { case USBHID_GLOBALITEM_TAG_USAGE_PAGE: switch (bSize) { @@ -2560,7 +2554,8 @@ dissect_usb_hid_report_globalitem_data(packet_info *pinfo _U_, proto_tree *tree, case 4: global->usage_page = tvb_get_letohl(tvb, offset); break; default: global->usage_page = 0; break; } - proto_tree_add_item(tree, hf_usb_hid_globalitem_usage, tvb, offset, bSize, ENC_LITTLE_ENDIAN); + str = get_usage_page_string(global->usage_page); + proto_tree_add_uint_format(tree, hf_usb_hid_globalitem_usage, tvb, offset, bSize, global->usage_page, "Usage Page: %s (0x%02x)", str, global->usage_page); break; case USBHID_GLOBALITEM_TAG_LOG_MIN: proto_tree_add_item(tree, hf_usb_hid_globalitem_log_min, tvb, offset, bSize, ENC_LITTLE_ENDIAN); @@ -2613,7 +2608,8 @@ dissect_usb_hid_report_globalitem_data(packet_info *pinfo _U_, proto_tree *tree, static int dissect_usb_hid_report_localitem_data(packet_info *pinfo _U_, proto_tree *tree, tvbuff_t *tvb, int offset, unsigned int bSize, unsigned int bTag, struct usb_hid_global_state *global) { - unsigned int usage_page = 0xffffffff; /* in case bSize == 0 */ + guint32 id = 0xffff; + gchar *str = NULL; switch (bTag) { case USBHID_LOCALITEM_TAG_USAGE_PAGE: @@ -2623,10 +2619,11 @@ dissect_usb_hid_report_localitem_data(packet_info *pinfo _U_, proto_tree *tree, } else { /* Only lower few bits given, need to combine with last global ID */ if (bSize == 1) - usage_page = global->usage_page<<16 | tvb_get_guint8(tvb, offset); + id = tvb_get_guint8(tvb, offset); else if (bSize == 2) - usage_page = global->usage_page<<16 | tvb_get_ntohs(tvb, offset); - proto_tree_add_uint(tree, hf_usb_hid_localitem_usage, tvb, offset, bSize, usage_page); + id = tvb_get_ntohs(tvb, offset); + str = get_usage_page_item_string(global->usage_page, id); + proto_tree_add_uint_format(tree, hf_usb_hid_localitem_usage, tvb, offset, bSize, id, "Usage: %s (0x%02x)", str, id); } break; case USBHID_LOCALITEM_TAG_USAGE_MIN: @@ -2661,6 +2658,9 @@ dissect_usb_hid_report_localitem_data(packet_info *pinfo _U_, proto_tree *tree, break; } offset += bSize; + + g_free(str); + return offset; } @@ -3515,7 +3515,7 @@ proto_register_usb_hid(void) { &hf_usb_hid_globalitem_usage, { "Usage page", "usbhid.item.global.usage", FT_UINT8, BASE_RANGE_STRING|BASE_HEX, - RVALS(usb_hid_item_usage_page_vals), 0, NULL, HFILL }}, + NULL, 0, NULL, HFILL }}, { &hf_usb_hid_globalitem_log_min, { "Logical minimum", "usbhid.item.global.log_min", FT_UINT8, BASE_DEC, @@ -3589,7 +3589,7 @@ proto_register_usb_hid(void) { &hf_usb_hid_localitem_usage, { "Usage", "usbhid.item.local.usage", FT_UINT8, BASE_RANGE_STRING|BASE_HEX, - RVALS(usb_hid_item_usage_vals), 0, NULL, HFILL }}, + NULL, 0, NULL, HFILL }}, { &hf_usb_hid_localitem_usage_min, { "Usage minimum", "usbhid.item.local.usage_min", FT_UINT8, BASE_HEX,