Renaming demo application to HID Demo.
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 Collections are special values from our Usage enumeration.
53 /// Thus they are also part of the corresponding Usage enumeration.
55 namespace UsageCollection
58 /// Usage Collection for usage page GenericDesktopControls.
60 public enum GenericDesktop : ushort
68 MultiAxisController = 0x08,
69 TabletPCSystemControls = 0x09,
74 /// Usage Collection for usage page Consumer.
76 public enum Consumer : ushort
78 ConsumerControl = 0x01,
80 ProgrammableButtons = 0x03,
83 GraphicEqualizer = 0x06,
84 FunctionButtons = 0x36,
86 MediaSelection = 0x0087,
88 PlaybackSpeed = 0x00F1,
90 SpeakerSystem = 0x0160,
92 ChannelRight = 0x0162,
93 ChannelCenter = 0x0163,
94 ChannelFront = 0x0164,
95 ChannelCenterFront = 0x0165,
97 ChannelSurrond = 0x0167,
98 ChannelLowFrequencyEnhancement = 0x0168,
100 ChannelUnknown = 0x016A,
101 ApplicationLaunchButtons = 0x016A,
102 GenericGuiApplicationControls = 0x0200,
106 public enum WindowsMediaCenter : ushort
108 WindowsMediaCenterRemoteControl = 0x88
120 public enum WindowsMediaCenterRemoteControl : ushort
123 /// Not defined by the Microsoft specs.
127 ClosedCaptioning = 0x2B,
130 TeletextGreen = 0x5C,
131 TeletextYellow = 0x5D,
147 /// First press action: Ejects a DVD drive.
149 /// Second press action: Repeats first press action.
151 /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
156 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
157 /// Collection (page 0xFFBC, usage 0x88).
159 /// Second press action: Repeats message.
163 /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
165 /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
169 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
170 /// Collection (page 0xFFBC, usage 0x88).
172 /// Second press action: Repeats message.
176 /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
178 /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
182 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
183 /// Collection (page 0xFFBC, usage 0x88).
185 /// Second press action: Repeats message.
189 /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
190 /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
194 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
195 /// Collection (page 0xFFBC, usage 0x88).
197 /// Second press action: Repeats message.
201 /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
219 /// First press action: Generates OEM2 HID message in the Media Center Vendor Specific
220 /// Collection. This button is intended to control the front panel display of home entertainment
221 /// computers. When this button is pressed, the display could be turned on or off, or the display
222 /// mode could change.
224 /// Second press action: Repeats message.
228 /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
232 /// First press action: To be determined.
234 /// Second press action: Repeats message.
239 NetworkSelection = 0x2C,
242 VideoSelection = 0x61
246 /// Those codes come from experimenting with HP remotes.
248 public enum HpWindowsMediaCenterRemoteControl : ushort
251 /// Displays visual imagery that is synchronized to the sound of your music tracks.
253 /// Second press action: Repeats message.
257 /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
259 /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
261 Visualization = WindowsMediaCenterRemoteControl.Ext0,
263 /// Plays a slide show of all the pictures on your hard disk drive.
265 /// Second press action: Repeats message.
269 /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
271 /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
273 SlideShow = WindowsMediaCenterRemoteControl.Ext1,
275 /// Eject optical drive.
277 /// Second press action: Repeats message.
281 /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
282 /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
284 HpEject = WindowsMediaCenterRemoteControl.Ext2,
286 /// Not sure what this should do.
288 /// Second press action: Repeats message.
292 /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
294 InputSelection = WindowsMediaCenterRemoteControl.Ext3,
298 /// Usage Table for Consumer Controls
301 public enum ConsumerControl : ushort
304 ConsumerControl = 0x01,
305 NumericKeyPad = 0x02,
306 ProgrammableButtons = 0x03,
309 GraphicEqualizer = 0x06,
319 FunctionButtons = 0x36,
327 MenuValueIncrease = 0x47,
328 MenuValueDecrease = 0x48,
330 ClosedCaption = 0x61,
331 ClosedCaptionSelect = 0x62,
333 BroadcastMode = 0x64,
337 AssignSelection = 0x81,
343 MediaSelection = 0x87,
344 MediaSelectComputer = 0x88,
345 MediaSelectTv = 0x89,
346 MediaSelectWww = 0x8A,
347 MediaSelectDvd = 0x8B,
348 MediaSelectTelephone = 0x8C,
349 MediaSelectProgramGuide = 0x8D,
350 MediaSelectVideoPhone = 0x8E,
351 MediaSelectGames = 0x8F,
352 MediaSelectMessages = 0x90,
353 MediaSelectCd = 0x91,
354 MediaSelectVcr = 0x92,
355 MediaSelectTuner = 0x93,
358 MediaSelectTape = 0x96,
359 MediaSelectCable = 0x97,
360 MediaSelectSatellite = 0x98,
361 MediaSelectSecurity = 0x99,
362 MediaSelectHome = 0x9A,
363 MediaSelectCall = 0x9B,
364 ChannelIncrement = 0x9C,
365 ChannelDecrement = 0x9D,
366 MediaSelectSap = 0x9E,
377 ScanNextTrack = 0xB5,
378 ScanPreviousTrack = 0xB6,
392 RepeatFromMark = 0xC4,
394 SearchMarkForward = 0xC6,
395 SearchMarkBackwards = 0xC7,
398 TrackingIncrement = 0xCA,
399 TrackingDecrement = 0xCB,
412 VolumeIncrement = 0xE9,
413 VolumeDecrement = 0xEA,
415 PlaybackSpeed = 0xF1,
423 LightIlluminationLevel = 0x103,
424 ClimateControlEnable = 0x104,
425 RoomTemperature = 0x105,
426 SecurityEnable = 0x106,
433 MedicalAlarm = 0x10D,
434 BalanceRight = 0x150,
436 BassIncrement = 0x152,
437 BassDecrement = 0x153,
438 TrebleIncrement = 0x154,
439 TrebleDecrement = 0x155,
440 SpeakerSystem = 0x160,
442 ChannelRight = 0x162,
443 ChannelCenter = 0x163,
444 ChannelFront = 0x164,
445 ChannelCenterFront = 0x165,
447 ChannelSurround = 0x167,
448 ChannelLowFrequencyEnhancement = 0x168,
450 ChannelUnknown = 0x16A,
452 SubChannelIncrement = 0x171,
453 SubChannelDecrement = 0x172,
454 AlternateAudioIncrement = 0x173,
455 AlternateAudioDecrement = 0x174,
456 ApplicationLaunchButtons = 0x180,
457 AppLaunchLaunchButtonConfigurationTool = 0x181,
458 AppLaunchProgrammableButtonConfiguration = 0x182,
459 AppLaunchConsumerControlConfiguration = 0x183,
460 AppLaunchWordProcessor = 0x184,
461 AppLaunchTextEditor = 0x185,
462 AppLaunchSpreadsheet = 0x186,
463 AppLaunchGraphicsEditor = 0x187,
464 AppLaunchPresentationApp = 0x188,
465 AppLaunchDatabaseApp = 0x189,
466 AppLaunchEmailReader = 0x18A,
467 AppLaunchNewsreader = 0x18B,
468 AppLaunchVoicemail = 0x18C,
469 AppLaunchContactsAddressBook = 0x18D,
470 AppLaunchCalendarSchedule = 0x18E,
471 AppLaunchTaskProjectManager = 0x18F,
472 AppLaunchLogJournalTimecard = 0x190,
473 AppLaunchCheckbookFinance = 0x191,
474 AppLaunchCalculator = 0x192,
475 AppLaunchAVCapturePlayback = 0x193,
476 AppLaunchLocalMachineBrowser = 0x194,
477 AppLaunchLanWanBrowser = 0x195,
478 AppLaunchInternetBrowser = 0x196,
479 AppLaunchRemoteNetworkingIspConnect = 0x197,
480 AppLaunchNetworkConference = 0x198,
481 AppLaunchNetworkChat = 0x199,
482 AppLaunchTelephonyDialer = 0x19A,
483 AppLaunchLogon = 0x19B,
484 AppLaunchLogoff = 0x19C,
485 AppLaunchLogonLogoff = 0x19D,
486 AppLaunchTerminalLockScreensaver = 0x19E,
487 AppLaunchControlPanel = 0x19F,
488 AppLaunchCommandLineProcessorRun = 0x1A0,
489 AppLaunchProcessTaskManager = 0x1A1,
490 AppLaunchSelectTaskApplication = 0x1A2,
491 AppLaunchNextTaskApplication = 0x1A3,
492 AppLaunchPreviousTaskApplication = 0x1A4,
493 AppLaunchPreemptiveHaltTaskApplication = 0x1A5,
494 AppLaunchIntegratedHelpCenter = 0x1A6,
495 AppLaunchDocuments = 0x1A7,
496 AppLaunchThesaurus = 0x1A8,
497 AppLaunchDictionary = 0x1A9,
498 AppLaunchDesktop = 0x1AA,
499 AppLaunchSpellCheck = 0x1AB,
500 AppLaunchGrammarCheck = 0x1AC,
501 AppLaunchWirelessStatus = 0x1AD,
502 AppLaunchKeyboardLayout = 0x1AE,
503 AppLaunchVirusProtection = 0x1AF,
504 AppLaunchEncryption = 0x1B0,
505 AppLaunchScreenSaver = 0x1B1,
506 AppLaunchAlarms = 0x1B2,
507 AppLaunchClock = 0x1B3,
508 AppLaunchFileBrowser = 0x1B4,
509 AppLaunchPowerStatus = 0x1B5,
510 AppLaunchImageBrowser = 0x1B6,
511 AppLaunchAudioBrowser = 0x1B7,
512 AppLaunchMovieBrowser = 0x1B8,
513 AppLaunchDigitalRightsManager = 0x1B9,
514 AppLaunchDigitalWallet = 0x1BA,
515 AppLaunchInstantMessaging = 0x1BC,
516 AppLaunchOemFeaturesTipsTutorialBrowser = 0x1BD,
517 AppLaunchOemHelp = 0x1BE,
518 AppLaunchOnlineCommunity = 0x1BF,
519 AppLaunchEntertainmentContentBrowser = 0x1C0,
520 AppLaunchOnlineShoppingBrowser = 0x1C1,
521 AppLaunchSmartcardInformationHelp = 0x1C2,
522 AppLaunchMarketMonitorFinanceBrowser = 0x1C3,
523 AppLaunchCustomizedCorporateNewsBrowser = 0x1C4,
524 AppLaunchOnlineActivityBrowser = 0x1C5,
525 AppLaunchResearchSearchBrowser = 0x1C6,
526 AppLaunchAudioPlayer = 0x1C7,
527 GenericGuiApplicationControls = 0x200,
530 AppCtrlClose = 0x203,
532 AppCtrlMaximize = 0x205,
533 AppCtrlMinimize = 0x206,
535 AppCtrlPrint = 0x208,
536 AppCtrlProperties = 0x209,
540 AppCtrlPaste = 0x21D,
541 AppCtrlSelectAll = 0x21E,
543 AppCtrlFindAndReplace = 0x220,
544 AppCtrlSearch = 0x221,
548 AppCtrlForward = 0x225,
550 AppCtrlRefresh = 0x227,
551 AppCtrlPreviousLink = 0x228,
552 AppCtrlNextLink = 0x229,
553 AppCtrlBookmarks = 0x22A,
554 AppCtrlHistory = 0x22B,
555 AppCtrlSubscriptions = 0x22C,
556 AppCtrlZoomIn = 0x22D,
557 AppCtrlZoomOut = 0x22E,
559 AppCtrlFullScreenView = 0x230,
560 AppCtrlNormalView = 0x231,
561 AppCtrlViewToggle = 0x232,
562 AppCtrlScrollUp = 0x233,
563 AppCtrlScrollDown = 0x234,
564 AppCtrlScroll = 0x235,
565 AppCtrlPanLeft = 0x236,
566 AppCtrlPanRight = 0x237,
568 AppCtrlNewWindow = 0x239,
569 AppCtrlTileHorizontally = 0x23A,
570 AppCtrlTileVertically = 0x23B,
571 AppCtrlFormat = 0x23C,
574 AppCtrlItalics = 0x23F,
575 AppCtrlUnderline = 0x240,
576 AppCtrlStrikethrough = 0x241,
577 AppCtrlSubscript = 0x242,
578 AppCtrlSuperscript = 0x243,
579 AppCtrlAllCaps = 0x244,
580 AppCtrlRotate = 0x245,
581 AppCtrlResize = 0x246,
582 AppCtrlFlipHorizontal = 0x247,
583 AppCtrlFlipVertical = 0x248,
584 AppCtrlMirrorHorizontal = 0x249,
585 AppCtrlMirrorVertical = 0x24A,
586 AppCtrlFontSelect = 0x24B,
587 AppCtrlFontColor = 0x24C,
588 AppCtrlFontSize = 0x24D,
589 AppCtrlJustifyLeft = 0x24E,
590 AppCtrlJustifyCenterH = 0x24F,
591 AppCtrlJustifyRight = 0x250,
592 AppCtrlJustifyBlockH = 0x251,
593 AppCtrlJustifyTop = 0x252,
594 AppCtrlJustifyCenterV = 0x253,
595 AppCtrlJustifyBottom = 0x254,
596 AppCtrlJustifyBlockV = 0x255,
597 AppCtrlIndentDecrease = 0x256,
598 AppCtrlIndentIncrease = 0x257,
599 AppCtrlNumberedList = 0x258,
600 AppCtrlRestartNumbering = 0x259,
601 AppCtrlBulletedList = 0x25A,
602 AppCtrlPromote = 0x25B,
603 AppCtrlDemote = 0x25C,
606 AppCtrlCancel = 0x25F,
607 AppCtrlCatalog = 0x260,
608 AppCtrlBuyCheckout = 0x261,
609 AppCtrlAddToCart = 0x262,
610 AppCtrlExpand = 0x263,
611 AppCtrlExpandAll = 0x264,
612 AppCtrlCollapse = 0x265,
613 AppCtrlCollapseAll = 0x266,
614 AppCtrlPrintPreview = 0x267,
615 AppCtrlPasteSpecial = 0x268,
616 AppCtrlInsertMode = 0x269,
617 AppCtrlDelete = 0x26A,
619 AppCtrlUnlock = 0x26C,
620 AppCtrlProtect = 0x26D,
621 AppCtrlUnprotect = 0x26E,
622 AppCtrlAttachComment = 0x26F,
623 AppCtrlDeleteComment = 0x270,
624 AppCtrlViewComment = 0x271,
625 AppCtrlSelectWord = 0x272,
626 AppCtrlSelectSentence = 0x273,
627 AppCtrlSelectParagraph = 0x274,
628 AppCtrlSelectColumn = 0x275,
629 AppCtrlSelectRow = 0x276,
630 AppCtrlSelectTable = 0x277,
631 AppCtrlSelectObject = 0x278,
632 AppCtrlRedoRepeat = 0x279,
634 AppCtrlSortAscending = 0x27B,
635 AppCtrlSortDescending = 0x27C,
636 AppCtrlFilter = 0x27D,
637 AppCtrlSetClock = 0x27E,
638 AppCtrlViewClock = 0x27F,
639 AppCtrlSelectTimeZone = 0x280,
640 AppCtrlEditTimeZones = 0x281,
641 AppCtrlSetAlarm = 0x282,
642 AppCtrlClearAlarm = 0x283,
643 AppCtrlSnoozeAlarm = 0x284,
644 AppCtrlResetAlarm = 0x285,
645 AppCtrlSynchronize = 0x286,
646 AppCtrlSendReceive = 0x287,
647 AppCtrlSendTo = 0x288,
648 AppCtrlReply = 0x289,
649 AppCtrlReplyAll = 0x28A,
650 AppCtrlForwardMsg = 0x28B,
652 AppCtrlAttachFile = 0x28D,
653 AppCtrlUpload = 0x28E,
654 AppCtrlDownloadSaveTargetAs = 0x28F,
655 AppCtrlSetBorders = 0x290,
656 AppCtrlInsertRow = 0x291,
657 AppCtrlInsertColumn = 0x292,
658 AppCtrlInsertFile = 0x293,
659 AppCtrlInsertPicture = 0x294,
660 AppCtrlInsertObject = 0x295,
661 AppCtrlInsertSymbol = 0x296,
662 AppCtrlSaveAndClose = 0x297,
663 AppCtrlRename = 0x298,
664 AppCtrlMerge = 0x299,
665 AppCtrlSplit = 0x29A,
666 AppCtrlDistributeHorizontally = 0x29B,
667 AppCtrlDistributeVertically = 0x29C
673 enum GenericDesktop : ushort
682 MultiAxisController = 0x08,
683 TabletPcSystemControls = 0x09,
694 CountedBuffer = 0x3A,
706 SystemControl = 0x80,
707 SystemPowerDown = 0x81,
710 SystemContextMenu = 0x84,
711 SystemMainMenu = 0x85,
712 SystemAppMenu = 0x86,
713 SystemMenuHelp = 0x87,
714 SystemMenuExit = 0x88,
715 SystemMenuSelect = 0x89,
716 SystemMenuRight = 0x8A,
717 SystemMenuLeft = 0x8B,
719 SystemMenuDown = 0x8D,
720 SystemColdRestart = 0x8E,
721 SystemWarmRestart = 0x8F,
730 SystemDebuggerBreak = 0xA4,
731 ApplicationBreak = 0xA5,
732 ApplicationDebuggerBreak = 0xA6,
733 SystemSpeakerMute = 0xA7,
734 SystemHibernate = 0xA8,
735 SystemDisplayInvert = 0xB0,
736 SystemDisplayInternal = 0xB1,
737 SystemDisplayExternal = 0xB2,
738 SystemDisplayBoth = 0xB3,
739 SystemDisplayDual = 0xB4,
740 SystemDisplayToggleIntExt = 0xB5,
741 SystemDisplaySwapPrimarySecondary = 0xB6,
742 SystemDisplayLcdAutoscale = 0xB7
748 enum SimulationControl : ushort
751 FlightSimulationDevice = 0x01,
752 AutomobileSimulationDevice = 0x02,
753 TankSimulationDevice = 0x03,
754 SpaceshipSimulationDevice = 0x04,
755 SubmarineSimulationDevice = 0x05,
756 SailingSimulationDevice = 0x06,
757 MotorcycleSimulationDevice = 0x07,
758 SportsSimulationDevice = 0x08,
759 AirplaneSimulationDevice = 0x09,
760 HelicopterSimulationDevice = 0x0A,
761 MagicCarpetSimulationDevice = 0x0B,
762 BicycleSimulationDevice = 0x0C,
763 FlightControlStick = 0x20,
765 CyclicControl = 0x22,
771 AntiTorqueControl = 0xB2,
772 AutopilotEnable = 0xB3,
774 CollectiveControl = 0xB5,
776 ElectronicCountermeasures = 0xB7,
781 FlightCommunications = 0xBC,
787 WeaponsSelect = 0xC2,
794 TurretDirection = 0xC9,
795 BarrelElevation = 0xCA,
807 enum GameControl : ushort
810 GameController3D = 0x01,
811 PinballDevice = 0x02,
814 TurnRightLeft = 0x21,
815 PitchForwardBackward = 0x22,
816 RollRightLeft = 0x23,
817 MoveRightLeft = 0x24,
818 MoveForwardBackward = 0x25,
820 LeanRightLeft = 0x27,
821 LeanForwardBackward = 0x28,
824 SecondaryFlipper = 0x2B,
832 GunSingleShot = 0x33,
836 GamepadFireJump = 0x37,
837 GamepadTrigger = 0x39
843 enum TelephonyDevice : ushort
847 AnsweringMachine = 0x02,
848 MessageControls = 0x03,
851 TelephonyKeyPad = 0x06,
852 ProgrammableButton = 0x07,
862 AlternateFunction = 0x29,
874 PhoneDirectory = 0x53,
880 InsideDialTone = 0x90,
881 OutsideDialTone = 0x91,
882 InsideRingTone = 0x92,
883 OutsideRingTone = 0x93,
884 PriorityRingTone = 0x94,
885 InsideRingback = 0x95,
886 PriorityRingback = 0x96,
889 CallWaitingTone = 0x99,
890 ConfirmationTone1 = 0x9A,
891 ConfirmationTone2 = 0x9B,
893 OutsideRingback = 0x9D,
906 PhoneKeyPound = 0xBB,