#region License // // Hid.cs // // Author: // Stefanos A. // // Copyright (c) 2014 Stefanos Apostolopoulos // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // #endregion using System; using System.Collections.Generic; using System.Text; namespace OpenTK.Platform.Common { enum HIDPage : ushort { Undefined = 0x00, GenericDesktop = 0x01, Simulation = 0x02, VR = 0x03, Sport = 0x04, Game = 0x05, // Reserved 0x06 KeyboardOrKeypad = 0x07, // USB Device Class Definition for Human Interface Devices (HID). Note: the usage type for all key codes is Selector (Sel). LEDs = 0x08, Button = 0x09, Ordinal = 0x0A, Telephony = 0x0B, Consumer = 0x0C, Digitizer = 0x0D, // Reserved 0x0E PID = 0x0F, // USB Physical Interface Device definitions for force feedback and related devices. Unicode = 0x10, // Reserved 0x11 - 0x13 AlphanumericDisplay = 0x14, // Reserved 0x15 - 0x7F // Monitor 0x80 - 0x83 USB Device Class Definition for Monitor Devices // Power 0x84 - 0x87 USB Device Class Definition for Power Devices PowerDevice = 0x84, // Power Device Page BatterySystem = 0x85, // Battery System Page // Reserved 0x88 - 0x8B BarCodeScanner = 0x8C, // (Point of Sale) USB Device Class Definition for Bar Code Scanner Devices WeighingDevice = 0x8D, // (Point of Sale) USB Device Class Definition for Weighing Devices Scale = 0x8D, // (Point of Sale) USB Device Class Definition for Scale Devices MagneticStripeReader = 0x8E, // ReservedPointofSalepages 0x8F CameraControl = 0x90, // USB Device Class Definition for Image Class Devices Arcade = 0x91, // OAAF Definitions for arcade and coinop related Devices // Reserved 0x92 - 0xFEFF // VendorDefined 0xFF00 - 0xFFFF VendorDefinedStart = 0xFF00 } // Generic desktop usage enum HIDUsageGD : ushort { Pointer = 0x01, // Physical Collection Mouse = 0x02, // Application Collection // 0x03 Reserved Joystick = 0x04, // Application Collection GamePad = 0x05, // Application Collection Keyboard = 0x06, // Application Collection Keypad = 0x07, // Application Collection MultiAxisController = 0x08, // Application Collection // 0x09 - 0x2F Reserved X = 0x30, // Dynamic Value Y = 0x31, // Dynamic Value Z = 0x32, // Dynamic Value Rx = 0x33, // Dynamic Value Ry = 0x34, // Dynamic Value Rz = 0x35, // Dynamic Value Slider = 0x36, // Dynamic Value Dial = 0x37, // Dynamic Value Wheel = 0x38, // Dynamic Value Hatswitch = 0x39, // Dynamic Value CountedBuffer = 0x3A, // Logical Collection ByteCount = 0x3B, // Dynamic Value MotionWakeup = 0x3C, // One-Shot Control Start = 0x3D, // On/Off Control Select = 0x3E, // On/Off Control // 0x3F Reserved Vx = 0x40, // Dynamic Value Vy = 0x41, // Dynamic Value Vz = 0x42, // Dynamic Value Vbrx = 0x43, // Dynamic Value Vbry = 0x44, // Dynamic Value Vbrz = 0x45, // Dynamic Value Vno = 0x46, // Dynamic Value // 0x47 - 0x7F Reserved SystemControl = 0x80, // Application Collection SystemPowerDown = 0x81, // One-Shot Control SystemSleep = 0x82, // One-Shot Control SystemWakeUp = 0x83, // One-Shot Control SystemContextMenu = 0x84, // One-Shot Control SystemMainMenu = 0x85, // One-Shot Control SystemAppMenu = 0x86, // One-Shot Control SystemMenuHelp = 0x87, // One-Shot Control SystemMenuExit = 0x88, // One-Shot Control SystemMenu = 0x89, // Selector SystemMenuRight = 0x8A, // Re-Trigger Control SystemMenuLeft = 0x8B, // Re-Trigger Control SystemMenuUp = 0x8C, // Re-Trigger Control SystemMenuDown = 0x8D, // Re-Trigger Control // 0x8E - 0x8F Reserved DPadUp = 0x90, // On/Off Control DPadDown = 0x91, // On/Off Control DPadRight = 0x92, // On/Off Control DPadLeft = 0x93, // On/Off Control // 0x94 - 0xFFFF Reserved Reserved = 0xFFFF } enum HIDUsageSim : ushort { FlightSimulationDevice = 0x01, // Application Collection AutomobileSimulationDevice = 0x02, // Application Collection TankSimulationDevice = 0x03, // Application Collection SpaceshipSimulationDevice = 0x04, // Application Collection SubmarineSimulationDevice = 0x05, // Application Collection SailingSimulationDevice = 0x06, // Application Collection MotorcycleSimulationDevice = 0x07, // Application Collection SportsSimulationDevice = 0x08, // Application Collection AirplaneSimulationDevice = 0x09, // Application Collection HelicopterSimulationDevice = 0x0A, // Application Collection MagicCarpetSimulationDevice = 0x0B, // Application Collection BicycleSimulationDevice = 0x0C, // Application Collection // 0x0D - 0x1F Reserved FlightControlStick = 0x20, // Application Collection FlightStick = 0x21, // Application Collection CyclicControl = 0x22, // Physical Collection CyclicTrim = 0x23, // Physical Collection FlightYoke = 0x24, // Application Collection TrackControl = 0x25, // Physical Collection // 0x26 - 0xAF Reserved Aileron = 0xB0, // Dynamic Value AileronTrim = 0xB1, // Dynamic Value AntiTorqueControl = 0xB2, // Dynamic Value AutopilotEnable = 0xB3, // On/Off Control ChaffRelease = 0xB4, // One-Shot Control CollectiveControl = 0xB5, // Dynamic Value DiveBrake = 0xB6, // Dynamic Value ElectronicCountermeasures = 0xB7, // On/Off Control Elevator = 0xB8, // Dynamic Value ElevatorTrim = 0xB9, // Dynamic Value Rudder = 0xBA, // Dynamic Value Throttle = 0xBB, // Dynamic Value FlightCommunications = 0xBC, // On/Off Control FlareRelease = 0xBD, // One-Shot Control LandingGear = 0xBE, // On/Off Control ToeBrake = 0xBF, // Dynamic Value Trigger = 0xC0, // Momentary Control WeaponsArm = 0xC1, // On/Off Control Weapons = 0xC2, // Selector WingFlaps = 0xC3, // Dynamic Value Accelerator = 0xC4, // Dynamic Value Brake = 0xC5, // Dynamic Value Clutch = 0xC6, // Dynamic Value Shifter = 0xC7, // Dynamic Value Steering = 0xC8, // Dynamic Value TurretDirection = 0xC9, // Dynamic Value BarrelElevation = 0xCA, // Dynamic Value DivePlane = 0xCB, // Dynamic Value Ballast = 0xCC, // Dynamic Value BicycleCrank = 0xCD, // Dynamic Value HandleBars = 0xCE, // Dynamic Value FrontBrake = 0xCF, // Dynamic Value RearBrake = 0xD0, // Dynamic Value // 0xD1 - 0xFFFF Reserved Reserved = 0xFFFF } }