HidDevice: Adding friendly name property.
8 /// From USB HID usage tables.
9 /// http://www.usb.org/developers/hidpage#HID_Usage
10 /// http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf
12 public enum UsagePage : ushort
15 GenericDesktopControls,
17 VirtualRealityControls,
20 GenericDeviceControls,
28 PhysicalInterfaceDevice = 0x0f,
30 AlphaNumericDisplay = 0x14,
31 MedicalInstruments = 0x40,
40 BarCodeScanner = 0x8c,
46 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb417079.aspx
47 WindowsMediaCenterRemoteControl = 0xffbc,
48 TerraTecRemote = 0xffcc
52 /// Usage Collection for usage page GenericDesktopControls.
54 public enum UsageCollectionGenericDesktop : ushort
62 MultiAxisController = 0x08,
63 TabletPCSystemControls = 0x09,
68 /// Usage Collection for usage page Consumer.
70 public enum UsageCollectionConsumer : ushort
72 ConsumerControl = 0x01,
74 ProgrammableButtons = 0x03,
77 GraphicEqualizer = 0x06,
78 FunctionButtons = 0x36,
80 MediaSelection = 0x0087,
82 PlaybackSpeed = 0x00F1,
84 SpeakerSystem = 0x0160,
86 ChannelRight = 0x0162,
87 ChannelCenter = 0x0163,
88 ChannelFront = 0x0164,
89 ChannelCenterFront = 0x0165,
91 ChannelSurrond = 0x0167,
92 ChannelLowFrequencyEnhancement = 0x0168,
94 ChannelUnknown = 0x016A,
95 ApplicationLaunchButtons = 0x016A,
96 GenericGuiApplicationControls = 0x0200,
100 public enum UsageCollectionWindowsMediaCenter : ushort
102 WindowsMediaCenterRemoteControl = 0x88
107 namespace UsageTables
112 public enum WindowsMediaCenterRemoteControl : ushort
115 /// Not defined by the Microsoft specs.
119 ClosedCaptioning = 0x2B,
122 TeletextGreen = 0x5C,
123 TeletextYellow = 0x5D,
139 /// First press action: Ejects a DVD drive.
141 /// Second press action: Repeats first press action.
143 /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
148 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
149 /// Collection (page 0xFFBC, usage 0x88).
151 /// Second press action: Repeats message.
155 /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
157 /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
161 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
162 /// Collection (page 0xFFBC, usage 0x88).
164 /// Second press action: Repeats message.
168 /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
170 /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
174 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
175 /// Collection (page 0xFFBC, usage 0x88).
177 /// Second press action: Repeats message.
181 /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
182 /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
186 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
187 /// Collection (page 0xFFBC, usage 0x88).
189 /// Second press action: Repeats message.
193 /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
211 /// First press action: Generates OEM2 HID message in the Media Center Vendor Specific
212 /// Collection. This button is intended to control the front panel display of home entertainment
213 /// computers. When this button is pressed, the display could be turned on or off, or the display
214 /// mode could change.
216 /// Second press action: Repeats message.
220 /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
224 /// First press action: To be determined.
226 /// Second press action: Repeats message.
231 NetworkSelection = 0x2C,
234 VideoSelection = 0x61
238 /// Those codes come from experimenting with HP remotes.
240 public enum HpWindowsMediaCenterRemoteControl : ushort
243 /// Displays visual imagery that is synchronized to the sound of your music tracks.
245 /// Second press action: Repeats message.
249 /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
251 /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
253 Visualization = WindowsMediaCenterRemoteControl.Ext0,
255 /// Plays a slide show of all the pictures on your hard disk drive.
257 /// Second press action: Repeats message.
261 /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
263 /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
265 SlideShow = WindowsMediaCenterRemoteControl.Ext1,
267 /// Eject optical drive.
269 /// Second press action: Repeats message.
273 /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
274 /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
276 HpEject = WindowsMediaCenterRemoteControl.Ext2,
278 /// Not sure what this should do.
280 /// Second press action: Repeats message.
284 /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
286 InputSelection = WindowsMediaCenterRemoteControl.Ext3,
290 /// Usage Table for Consumer Controls
293 public enum ConsumerControl : ushort
296 ConsumerControl = 0x01,
297 NumericKeyPad = 0x02,
298 ProgrammableButtons = 0x03,
301 GraphicEqualizer = 0x06,
311 FunctionButtons = 0x36,
319 MenuValueIncrease = 0x47,
320 MenuValueDecrease = 0x48,
322 ClosedCaption = 0x61,
323 ClosedCaptionSelect = 0x62,
325 BroadcastMode = 0x64,
329 AssignSelection = 0x81,
335 MediaSelection = 0x87,
336 MediaSelectComputer = 0x88,
337 MediaSelectTv = 0x89,
338 MediaSelectWww = 0x8A,
339 MediaSelectDvd = 0x8B,
340 MediaSelectTelephone = 0x8C,
341 MediaSelectProgramGuide = 0x8D,
342 MediaSelectVideoPhone = 0x8E,
343 MediaSelectGames = 0x8F,
344 MediaSelectMessages = 0x90,
345 MediaSelectCd = 0x91,
346 MediaSelectVcr = 0x92,
347 MediaSelectTuner = 0x93,
350 MediaSelectTape = 0x96,
351 MediaSelectCable = 0x97,
352 MediaSelectSatellite = 0x98,
353 MediaSelectSecurity = 0x99,
354 MediaSelectHome = 0x9A,
355 MediaSelectCall = 0x9B,
356 ChannelIncrement = 0x9C,
357 ChannelDecrement = 0x9D,
358 MediaSelectSap = 0x9E,
369 ScanNextTrack = 0xB5,
370 ScanPreviousTrack = 0xB6,
384 RepeatFromMark = 0xC4,
386 SearchMarkForward = 0xC6,
387 SearchMarkBackwards = 0xC7,
390 TrackingIncrement = 0xCA,
391 TrackingDecrement = 0xCB,
404 VolumeIncrement = 0xE9,
405 VolumeDecrement = 0xEA,
407 PlaybackSpeed = 0xF1,
415 LightIlluminationLevel = 0x103,
416 ClimateControlEnable = 0x104,
417 RoomTemperature = 0x105,
418 SecurityEnable = 0x106,
425 MedicalAlarm = 0x10D,
426 BalanceRight = 0x150,
428 BassIncrement = 0x152,
429 BassDecrement = 0x153,
430 TrebleIncrement = 0x154,
431 TrebleDecrement = 0x155,
432 SpeakerSystem = 0x160,
434 ChannelRight = 0x162,
435 ChannelCenter = 0x163,
436 ChannelFront = 0x164,
437 ChannelCenterFront = 0x165,
439 ChannelSurround = 0x167,
440 ChannelLowFrequencyEnhancement = 0x168,
442 ChannelUnknown = 0x16A,
444 SubChannelIncrement = 0x171,
445 SubChannelDecrement = 0x172,
446 AlternateAudioIncrement = 0x173,
447 AlternateAudioDecrement = 0x174,
448 ApplicationLaunchButtons = 0x180,
449 AppLaunchLaunchButtonConfigurationTool = 0x181,
450 AppLaunchProgrammableButtonConfiguration = 0x182,
451 AppLaunchConsumerControlConfiguration = 0x183,
452 AppLaunchWordProcessor = 0x184,
453 AppLaunchTextEditor = 0x185,
454 AppLaunchSpreadsheet = 0x186,
455 AppLaunchGraphicsEditor = 0x187,
456 AppLaunchPresentationApp = 0x188,
457 AppLaunchDatabaseApp = 0x189,
458 AppLaunchEmailReader = 0x18A,
459 AppLaunchNewsreader = 0x18B,
460 AppLaunchVoicemail = 0x18C,
461 AppLaunchContactsAddressBook = 0x18D,
462 AppLaunchCalendarSchedule = 0x18E,
463 AppLaunchTaskProjectManager = 0x18F,
464 AppLaunchLogJournalTimecard = 0x190,
465 AppLaunchCheckbookFinance = 0x191,
466 AppLaunchCalculator = 0x192,
467 AppLaunchAVCapturePlayback = 0x193,
468 AppLaunchLocalMachineBrowser = 0x194,
469 AppLaunchLanWanBrowser = 0x195,
470 AppLaunchInternetBrowser = 0x196,
471 AppLaunchRemoteNetworkingIspConnect = 0x197,
472 AppLaunchNetworkConference = 0x198,
473 AppLaunchNetworkChat = 0x199,
474 AppLaunchTelephonyDialer = 0x19A,
475 AppLaunchLogon = 0x19B,
476 AppLaunchLogoff = 0x19C,
477 AppLaunchLogonLogoff = 0x19D,
478 AppLaunchTerminalLockScreensaver = 0x19E,
479 AppLaunchControlPanel = 0x19F,
480 AppLaunchCommandLineProcessorRun = 0x1A0,
481 AppLaunchProcessTaskManager = 0x1A1,
482 AppLaunchSelectTaskApplication = 0x1A2,
483 AppLaunchNextTaskApplication = 0x1A3,
484 AppLaunchPreviousTaskApplication = 0x1A4,
485 AppLaunchPreemptiveHaltTaskApplication = 0x1A5,
486 AppLaunchIntegratedHelpCenter = 0x1A6,
487 AppLaunchDocuments = 0x1A7,
488 AppLaunchThesaurus = 0x1A8,
489 AppLaunchDictionary = 0x1A9,
490 AppLaunchDesktop = 0x1AA,
491 AppLaunchSpellCheck = 0x1AB,
492 AppLaunchGrammarCheck = 0x1AC,
493 AppLaunchWirelessStatus = 0x1AD,
494 AppLaunchKeyboardLayout = 0x1AE,
495 AppLaunchVirusProtection = 0x1AF,
496 AppLaunchEncryption = 0x1B0,
497 AppLaunchScreenSaver = 0x1B1,
498 AppLaunchAlarms = 0x1B2,
499 AppLaunchClock = 0x1B3,
500 AppLaunchFileBrowser = 0x1B4,
501 AppLaunchPowerStatus = 0x1B5,
502 AppLaunchImageBrowser = 0x1B6,
503 AppLaunchAudioBrowser = 0x1B7,
504 AppLaunchMovieBrowser = 0x1B8,
505 AppLaunchDigitalRightsManager = 0x1B9,
506 AppLaunchDigitalWallet = 0x1BA,
507 AppLaunchInstantMessaging = 0x1BC,
508 AppLaunchOemFeaturesTipsTutorialBrowser = 0x1BD,
509 AppLaunchOemHelp = 0x1BE,
510 AppLaunchOnlineCommunity = 0x1BF,
511 AppLaunchEntertainmentContentBrowser = 0x1C0,
512 AppLaunchOnlineShoppingBrowser = 0x1C1,
513 AppLaunchSmartcardInformationHelp = 0x1C2,
514 AppLaunchMarketMonitorFinanceBrowser = 0x1C3,
515 AppLaunchCustomizedCorporateNewsBrowser = 0x1C4,
516 AppLaunchOnlineActivityBrowser = 0x1C5,
517 AppLaunchResearchSearchBrowser = 0x1C6,
518 AppLaunchAudioPlayer = 0x1C7,
519 GenericGuiApplicationControls = 0x200,
522 AppCtrlClose = 0x203,
524 AppCtrlMaximize = 0x205,
525 AppCtrlMinimize = 0x206,
527 AppCtrlPrint = 0x208,
528 AppCtrlProperties = 0x209,
532 AppCtrlPaste = 0x21D,
533 AppCtrlSelectAll = 0x21E,
535 AppCtrlFindAndReplace = 0x220,
536 AppCtrlSearch = 0x221,
540 AppCtrlForward = 0x225,
542 AppCtrlRefresh = 0x227,
543 AppCtrlPreviousLink = 0x228,
544 AppCtrlNextLink = 0x229,
545 AppCtrlBookmarks = 0x22A,
546 AppCtrlHistory = 0x22B,
547 AppCtrlSubscriptions = 0x22C,
548 AppCtrlZoomIn = 0x22D,
549 AppCtrlZoomOut = 0x22E,
551 AppCtrlFullScreenView = 0x230,
552 AppCtrlNormalView = 0x231,
553 AppCtrlViewToggle = 0x232,
554 AppCtrlScrollUp = 0x233,
555 AppCtrlScrollDown = 0x234,
556 AppCtrlScroll = 0x235,
557 AppCtrlPanLeft = 0x236,
558 AppCtrlPanRight = 0x237,
560 AppCtrlNewWindow = 0x239,
561 AppCtrlTileHorizontally = 0x23A,
562 AppCtrlTileVertically = 0x23B,
563 AppCtrlFormat = 0x23C,
566 AppCtrlItalics = 0x23F,
567 AppCtrlUnderline = 0x240,
568 AppCtrlStrikethrough = 0x241,
569 AppCtrlSubscript = 0x242,
570 AppCtrlSuperscript = 0x243,
571 AppCtrlAllCaps = 0x244,
572 AppCtrlRotate = 0x245,
573 AppCtrlResize = 0x246,
574 AppCtrlFlipHorizontal = 0x247,
575 AppCtrlFlipVertical = 0x248,
576 AppCtrlMirrorHorizontal = 0x249,
577 AppCtrlMirrorVertical = 0x24A,
578 AppCtrlFontSelect = 0x24B,
579 AppCtrlFontColor = 0x24C,
580 AppCtrlFontSize = 0x24D,
581 AppCtrlJustifyLeft = 0x24E,
582 AppCtrlJustifyCenterH = 0x24F,
583 AppCtrlJustifyRight = 0x250,
584 AppCtrlJustifyBlockH = 0x251,
585 AppCtrlJustifyTop = 0x252,
586 AppCtrlJustifyCenterV = 0x253,
587 AppCtrlJustifyBottom = 0x254,
588 AppCtrlJustifyBlockV = 0x255,
589 AppCtrlIndentDecrease = 0x256,
590 AppCtrlIndentIncrease = 0x257,
591 AppCtrlNumberedList = 0x258,
592 AppCtrlRestartNumbering = 0x259,
593 AppCtrlBulletedList = 0x25A,
594 AppCtrlPromote = 0x25B,
595 AppCtrlDemote = 0x25C,
598 AppCtrlCancel = 0x25F,
599 AppCtrlCatalog = 0x260,
600 AppCtrlBuyCheckout = 0x261,
601 AppCtrlAddToCart = 0x262,
602 AppCtrlExpand = 0x263,
603 AppCtrlExpandAll = 0x264,
604 AppCtrlCollapse = 0x265,
605 AppCtrlCollapseAll = 0x266,
606 AppCtrlPrintPreview = 0x267,
607 AppCtrlPasteSpecial = 0x268,
608 AppCtrlInsertMode = 0x269,
609 AppCtrlDelete = 0x26A,
611 AppCtrlUnlock = 0x26C,
612 AppCtrlProtect = 0x26D,
613 AppCtrlUnprotect = 0x26E,
614 AppCtrlAttachComment = 0x26F,
615 AppCtrlDeleteComment = 0x270,
616 AppCtrlViewComment = 0x271,
617 AppCtrlSelectWord = 0x272,
618 AppCtrlSelectSentence = 0x273,
619 AppCtrlSelectParagraph = 0x274,
620 AppCtrlSelectColumn = 0x275,
621 AppCtrlSelectRow = 0x276,
622 AppCtrlSelectTable = 0x277,
623 AppCtrlSelectObject = 0x278,
624 AppCtrlRedoRepeat = 0x279,
626 AppCtrlSortAscending = 0x27B,
627 AppCtrlSortDescending = 0x27C,
628 AppCtrlFilter = 0x27D,
629 AppCtrlSetClock = 0x27E,
630 AppCtrlViewClock = 0x27F,
631 AppCtrlSelectTimeZone = 0x280,
632 AppCtrlEditTimeZones = 0x281,
633 AppCtrlSetAlarm = 0x282,
634 AppCtrlClearAlarm = 0x283,
635 AppCtrlSnoozeAlarm = 0x284,
636 AppCtrlResetAlarm = 0x285,
637 AppCtrlSynchronize = 0x286,
638 AppCtrlSendReceive = 0x287,
639 AppCtrlSendTo = 0x288,
640 AppCtrlReply = 0x289,
641 AppCtrlReplyAll = 0x28A,
642 AppCtrlForwardMsg = 0x28B,
644 AppCtrlAttachFile = 0x28D,
645 AppCtrlUpload = 0x28E,
646 AppCtrlDownloadSaveTargetAs = 0x28F,
647 AppCtrlSetBorders = 0x290,
648 AppCtrlInsertRow = 0x291,
649 AppCtrlInsertColumn = 0x292,
650 AppCtrlInsertFile = 0x293,
651 AppCtrlInsertPicture = 0x294,
652 AppCtrlInsertObject = 0x295,
653 AppCtrlInsertSymbol = 0x296,
654 AppCtrlSaveAndClose = 0x297,
655 AppCtrlRename = 0x298,
656 AppCtrlMerge = 0x299,
657 AppCtrlSplit = 0x29A,
658 AppCtrlDistributeHorizontally = 0x29B,
659 AppCtrlDistributeVertically = 0x29C
665 enum GenericDesktop : ushort
674 MultiAxisController = 0x08,
675 TabletPcSystemControls = 0x09,
686 CountedBuffer = 0x3A,
698 SystemControl = 0x80,
699 SystemPowerDown = 0x81,
702 SystemContextMenu = 0x84,
703 SystemMainMenu = 0x85,
704 SystemAppMenu = 0x86,
705 SystemMenuHelp = 0x87,
706 SystemMenuExit = 0x88,
707 SystemMenuSelect = 0x89,
708 SystemMenuRight = 0x8A,
709 SystemMenuLeft = 0x8B,
711 SystemMenuDown = 0x8D,
712 SystemColdRestart = 0x8E,
713 SystemWarmRestart = 0x8F,
722 SystemDebuggerBreak = 0xA4,
723 ApplicationBreak = 0xA5,
724 ApplicationDebuggerBreak = 0xA6,
725 SystemSpeakerMute = 0xA7,
726 SystemHibernate = 0xA8,
727 SystemDisplayInvert = 0xB0,
728 SystemDisplayInternal = 0xB1,
729 SystemDisplayExternal = 0xB2,
730 SystemDisplayBoth = 0xB3,
731 SystemDisplayDual = 0xB4,
732 SystemDisplayToggleIntExt = 0xB5,
733 SystemDisplaySwapPrimarySecondary = 0xB6,
734 SystemDisplayLcdAutoscale = 0xB7
740 enum SimulationControl : ushort
743 FlightSimulationDevice = 0x01,
744 AutomobileSimulationDevice = 0x02,
745 TankSimulationDevice = 0x03,
746 SpaceshipSimulationDevice = 0x04,
747 SubmarineSimulationDevice = 0x05,
748 SailingSimulationDevice = 0x06,
749 MotorcycleSimulationDevice = 0x07,
750 SportsSimulationDevice = 0x08,
751 AirplaneSimulationDevice = 0x09,
752 HelicopterSimulationDevice = 0x0A,
753 MagicCarpetSimulationDevice = 0x0B,
754 BicycleSimulationDevice = 0x0C,
755 FlightControlStick = 0x20,
757 CyclicControl = 0x22,
763 AntiTorqueControl = 0xB2,
764 AutopilotEnable = 0xB3,
766 CollectiveControl = 0xB5,
768 ElectronicCountermeasures = 0xB7,
773 FlightCommunications = 0xBC,
779 WeaponsSelect = 0xC2,
786 TurretDirection = 0xC9,
787 BarrelElevation = 0xCA,
799 enum GameControl : ushort
802 GameController3D = 0x01,
803 PinballDevice = 0x02,
806 TurnRightLeft = 0x21,
807 PitchForwardBackward = 0x22,
808 RollRightLeft = 0x23,
809 MoveRightLeft = 0x24,
810 MoveForwardBackward = 0x25,
812 LeanRightLeft = 0x27,
813 LeanForwardBackward = 0x28,
816 SecondaryFlipper = 0x2B,
824 GunSingleShot = 0x33,
828 GamepadFireJump = 0x37,
829 GamepadTrigger = 0x39
835 enum TelephonyDevice : ushort
839 AnsweringMachine = 0x02,
840 MessageControls = 0x03,
843 TelephonyKeyPad = 0x06,
844 ProgrammableButton = 0x07,
854 AlternateFunction = 0x29,
866 PhoneDirectory = 0x53,
872 InsideDialTone = 0x90,
873 OutsideDialTone = 0x91,
874 InsideRingTone = 0x92,
875 OutsideRingTone = 0x93,
876 PriorityRingTone = 0x94,
877 InsideRingback = 0x95,
878 PriorityRingback = 0x96,
881 CallWaitingTone = 0x99,
882 ConfirmationTone1 = 0x9A,
883 ConfirmationTone2 = 0x9B,
885 OutsideRingback = 0x9D,
898 PhoneKeyPound = 0xBB,