sl@8: // sl@8: // sl@8: // sl@8: sl@8: namespace Hid sl@8: { sl@8: /// sl@8: /// From USB HID usage tables. sl@8: /// http://www.usb.org/developers/hidpage#HID_Usage sl@8: /// http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf sl@8: /// sl@8: public enum UsagePage : ushort sl@8: { sl@8: Undefined = 0, sl@8: GenericDesktopControl, sl@8: SimulationControl, sl@8: VirtualRealityControl, sl@8: SportControl, sl@8: GameControl, sl@8: GenericDeviceControl, sl@8: Keyboard, sl@8: LightEmittingDiode, sl@8: Button, sl@8: Ordinal, sl@8: Telephony, sl@8: Consumer, sl@8: Digitiser, sl@8: PhysicalInterfaceDevice = 0x0f, sl@8: Unicode = 0x10, sl@8: AlphaNumericDisplay = 0x14, sl@8: MedicalInstruments = 0x40, sl@8: MonitorPage0 = 0x80, sl@8: MonitorPage1, sl@8: MonitorPage2, sl@8: MonitorPage3, sl@8: PowerPage0, sl@8: PowerPage1, sl@8: PowerPage2, sl@8: PowerPage3, sl@8: BarCodeScanner = 0x8c, sl@8: Scale, sl@8: MagneticStripeReader, sl@8: ReservedPointOfSale, sl@8: CameraControl, sl@8: Arcade, sl@8: // http://msdn.microsoft.com/en-us/library/windows/desktop/bb417079.aspx sl@8: MceRemote = 0xffbc, sl@8: TerraTecRemote = 0xffcc sl@8: } sl@8: sl@21: public enum UsageIdGenericDesktop : ushort sl@21: { sl@21: Pointer = 0x01, sl@21: Mouse = 0x02, sl@21: Joystick = 0x04, sl@21: GamePad = 0x05, sl@21: Keyboard = 0x06, sl@21: KeyPad = 0x07, sl@21: MultiAxisController = 0x08, sl@21: TabletPCSystemControls = 0x09, sl@21: SystemControl = 0x80 sl@21: } sl@21: sl@21: public enum UsageIdConsumer : ushort sl@8: { sl@21: ConsumerControl = 0x01, sl@21: NumericKeyPad = 0x02, sl@21: ProgrammableButtons = 0x03, sl@21: Microphone = 0x04, sl@21: Headphone = 0x05, sl@21: GraphicEqualizer = 0x06, sl@21: Selection = 0x80, sl@21: } sl@21: sl@21: sl@21: public enum UsageIdMce: ushort sl@21: { sl@21: MceRemote = 0x88 sl@8: } sl@8: sl@8: sl@8: sl@8: namespace UsageTables sl@8: { sl@8: /// sl@8: /// sl@8: /// sl@11: public enum MceButton: ushort sl@8: { sl@8: /// sl@8: /// Not defined by the Microsoft specs. sl@8: /// sl@8: Null = 0x00, sl@8: GreenStart = 0x0D, sl@8: ClosedCaptioning = 0x2B, sl@8: Teletext = 0x5A, sl@8: TeletextRed = 0x5B, sl@8: TeletextGreen = 0x5C, sl@8: TeletextYellow = 0x5D, sl@8: TeletextBlue = 0x5E, sl@8: LiveTv = 0x25, sl@8: Music = 0x47, sl@8: RecordedTv = 0x48, sl@8: Pictures = 0x49, sl@8: Videos = 0x4A, sl@8: FmRadio = 0x50, sl@8: Extras = 0x3C, sl@8: ExtrasApp = 0x3D, sl@8: DvdMenu = 0x24, sl@8: DvdAngle = 0x4B, sl@8: DvdAudio = 0x4C, sl@8: DvdSubtitle = 0x4D, sl@8: /// sl@8: /// First press action: Ejects a DVD drive. sl@8: /// sl@8: /// Second press action: Repeats first press action. sl@8: /// sl@8: /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application. sl@8: /// sl@8: Eject = 0x28, sl@8: DvdTopMenu = 0x43, sl@8: /// sl@8: /// First press action: Generates EXTn HID message in the Media Center Vendor Specific sl@8: /// Collection (page 0xFFBC, usage 0x88). sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// sl@8: /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks. sl@8: /// sl@8: Ext0 = 0x32, sl@8: /// sl@8: /// First press action: Generates EXTn HID message in the Media Center Vendor Specific sl@8: /// Collection (page 0xFFBC, usage 0x88). sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// sl@8: /// According to HP specs it plays a slide show of all the pictures on your hard disk drive. sl@8: /// sl@8: Ext1 = 0x33, sl@8: /// sl@8: /// First press action: Generates EXTn HID message in the Media Center Vendor Specific sl@8: /// Collection (page 0xFFBC, usage 0x88). sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310). sl@8: /// sl@8: Ext2 = 0x34, sl@8: /// sl@8: /// First press action: Generates EXTn HID message in the Media Center Vendor Specific sl@8: /// Collection (page 0xFFBC, usage 0x88). sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// sl@8: Ext3 = 0x35, sl@8: Ext4 = 0x36, sl@8: Ext5 = 0x37, sl@8: Ext6 = 0x38, sl@8: Ext7 = 0x39, sl@8: Ext8 = 0x3A, sl@8: Ext9 = 0x80, sl@8: Ext10 = 0x81, sl@8: Ext11 = 0x6F, sl@8: Zoom = 0x27, sl@8: ChannelInput = 0x42, sl@8: SubAudio = 0x2D, sl@8: Channel10 = 0x3E, sl@8: Channel11 = 0x3F, sl@8: Channel12 = 0x40, sl@8: /// sl@8: /// First press action: Generates OEM2 HID message in the Media Center Vendor Specific sl@8: /// Collection. This button is intended to control the front panel display of home entertainment sl@8: /// computers. When this button is pressed, the display could be turned on or off, or the display sl@8: /// mode could change. sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application. sl@8: /// sl@8: Display = 0x4F, sl@8: /// sl@8: /// First press action: To be determined. sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: Kiosk = 0x6A, sl@8: NetworkSelection = 0x2C, sl@8: BlueRayTool = 0x78, sl@8: ChannelInfo = 0x41, sl@8: VideoSelection = 0x61 sl@8: } sl@8: sl@11: /// sl@11: /// Those codes come from experimenting with HP remotes. sl@11: /// sl@8: public enum HpMceButton: ushort sl@8: { sl@8: /// sl@8: /// Displays visual imagery that is synchronized to the sound of your music tracks. sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// sl@8: /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks. sl@8: /// sl@8: Visualization = MceButton.Ext0, sl@8: /// sl@8: /// Plays a slide show of all the pictures on your hard disk drive. sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// sl@8: /// According to HP specs it plays a slide show of all the pictures on your hard disk drive. sl@8: /// sl@8: SlideShow = MceButton.Ext1, sl@8: /// sl@8: /// Eject optical drive. sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310). sl@8: /// sl@8: Eject = MceButton.Ext2, sl@8: /// sl@8: /// Not sure what this should do. sl@8: /// sl@8: /// Second press action: Repeats message. sl@8: /// sl@8: /// Auto-repeat: No sl@8: /// sl@8: /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08). sl@8: /// sl@8: InputSelection = MceButton.Ext3, sl@8: } sl@8: sl@8: /// sl@8: /// Usage Table for Consumer Controls sl@8: /// 0x0C 0X01 sl@8: /// sl@8: public enum ConsumerControl: ushort sl@8: { sl@19: Null = 0x0000, sl@19: // sl@19: Channel = 0x0086, sl@19: MediaSelection = 0x0087, sl@19: MediaSelectComputer = 0x0088, sl@19: MediaSelectTV = 0x0089, sl@19: MediaSelectWWW = 0x008A, sl@19: MediaSelectDVD = 0x008B, sl@19: MediaSelectTelephone = 0x008C, sl@19: MediaSelectProgramGuide = 0x008D, sl@19: MediaSelectVideoPhone = 0x008E, sl@19: MediaSelectGames = 0x008F, sl@19: MediaSelectMessages = 0x0090, sl@19: MediaSelectCD = 0x0091, sl@19: MediaSelectVCR = 0x0092, sl@19: MediaSelectTuner = 0x0093, sl@19: Quit = 0x0094, sl@19: Help = 0x0095, sl@19: MediaSelectTape = 0x0096, sl@19: MediaSelectCable = 0x0097, sl@19: MediaSelectSatellite = 0x0098, sl@19: MediaSelectSecurity = 0x0099, sl@19: MediaSelectHome = 0x009A, sl@19: MediaSelectCall = 0x009B, sl@19: ChannelIncrement = 0x009C, sl@19: ChannelDecrement = 0x009D, sl@19: MediaSelectSAP = 0x009E, sl@19: // sl@19: Play = 0x00B0, sl@19: Pause = 0x00B1, sl@19: Record = 0x00B2, sl@19: FastForward = 0x00B3, sl@19: Rewind = 0x00B4, sl@19: ScanNextTrack = 0x00B5, sl@19: ScanPreviousTrack = 0x00B6, sl@19: Stop = 0x00B7, sl@19: Eject = 0x00B8, sl@19: RandomPlay = 0x00B9, sl@19: SelectDisc = 0x00BA, sl@19: EnterDisc = 0x00BB, sl@19: Repeat = 0x00BC, sl@19: Tracking = 0x00BD, sl@19: TrackNormal = 0x00BE, sl@19: SlowTracking = 0x00BF, sl@19: FrameForward = 0x00C0, sl@19: FrameBack = 0x00C1, sl@19: Mark = 0x00C2, sl@19: ClearMark = 0x00C3, sl@19: RepeatFromMark = 0x00C4, sl@19: ReturnToMark = 0x00C5, sl@19: SearchMarkForward = 0x00C6, sl@19: SearchMarkBackwards = 0x00C7, sl@19: CounterReset = 0x00C8, sl@19: ShowCounter = 0x00C9, sl@19: TrackingIncrement = 0x00CA, sl@19: TrackingDecrement = 0x00CB, sl@19: StopEject = 0x00CC, sl@19: PlayPause = 0x00CD, sl@19: PlaySkip = 0x00CE, sl@19: sl@8: /// sl@19: /// Audio controls sl@8: /// sl@19: Volume = 0x00E0, sl@19: Balance = 0x00E1, sl@19: Mute = 0x00E2, sl@19: Bass = 0x00E3, sl@19: Treble = 0x00E4, sl@19: BassBoost = 0x00E5, sl@19: SurroundMode = 0x00E6, sl@19: Loudness = 0x00E7, sl@19: MPX = 0x00E8, sl@19: VolumeIncrement = 0x00E9, sl@19: VolumeDecrement = 0x00EA, sl@19: sl@19: //Generic GUI Application Controls sl@19: GenericGUIApplicationControls = 0x0200, sl@19: AppCtrlNew = 0x0201, sl@19: AppCtrlOpen = 0x0202, sl@19: AppCtrlClose = 0x0203, sl@19: AppCtrlExit = 0x0204, sl@19: AppCtrlMaximize = 0x0205, sl@19: AppCtrlMinimize = 0x0206, sl@19: AppCtrlSave = 0x0207, sl@8: AppCtrlPrint = 0x0208, sl@19: AppCtrlProperties = 0x0209, sl@19: AppCtrlUndo = 0x021A, sl@19: AppCtrlCopy = 0x021B, sl@19: AppCtrlCut = 0x021C, sl@19: AppCtrlPaste = 0x021D, sl@19: AppCtrlSelectAll = 0x021E, sl@19: AppCtrlFind = 0x021F, sl@19: AppCtrlFindAndReplace = 0x0220, sl@19: AppCtrlSearch = 0x0221, sl@19: AppCtrlGoTo = 0x0222, sl@19: AppCtrlHome = 0x0223, sl@19: AppCtrlBack = 0x0224, sl@19: AppCtrlForward = 0x0225, sl@19: AppCtrlStop = 0x0226, sl@19: AppCtrlRefresh = 0x0227, sl@19: AppCtrlPreviousLink = 0x0228, sl@19: AppCtrlNextLink = 0x0229, sl@19: AppCtrlBookmarks = 0x022A, sl@19: AppCtrlHistory = 0x022B, sl@19: AppCtrlSubscriptions = 0x022C, sl@19: AppCtrlZoomIn = 0x022D, sl@19: AppCtrlZoomOut = 0x022E, sl@19: AppCtrlZoom = 0x022F, sl@19: AppCtrlFullScreenView = 0x0230, sl@19: AppCtrlNormalView = 0x0231, sl@19: AppCtrlViewToggle = 0x0232, sl@19: AppCtrlScrollUp = 0x0233, sl@19: AppCtrlScrollDown = 0x0234, sl@19: AppCtrlScroll = 0x0235, sl@19: AppCtrlPanLeft = 0x0236, sl@19: AppCtrlPanRight = 0x0237, sl@19: AppCtrlPan = 0x0238, sl@19: AppCtrlNewWindow = 0x0239, sl@19: AppCtrlTileHorizontally = 0x023A, sl@19: AppCtrlTileVertically = 0x023B, sl@19: AppCtrlFormat = 0x023C, sl@19: AppCtrlEdit = 0x023D, sl@19: sl@8: } sl@8: } sl@8: }