Implement generic Consumer device which returns a button collection
authorChristopher Lees <leezer3@gmail.com>
Thu, 27 Jul 2017 15:39:37 +0000 (16:39 +0100)
committerChristopher Lees <leezer3@gmail.com>
Thu, 27 Jul 2017 15:39:37 +0000 (16:39 +0100)
src/OpenTK/Platform/Common/Hid.cs
src/OpenTK/Platform/Windows/API.cs
src/OpenTK/Platform/Windows/WinRawJoystick.cs

index 2781557..4188469 100644 (file)
@@ -141,7 +141,8 @@ namespace OpenTK.Platform.Common
     // Consumer electronic devices
     internal enum HIDUsageCD
     {
-        ACPan = 0x0238
+        ACPan = 0x0238,
+        ConsumerControl = 0x01
     }
 
     // Generic desktop usage
index 4e84df6..434d298 100644 (file)
@@ -2126,6 +2126,14 @@ namespace OpenTK.Platform.Windows
             Target = target;
         }
 
+        public RawInputDevice(HIDUsageCD usage, RawInputDeviceFlags flags, HWND target)
+        {
+            UsagePage = HIDPage.Consumer;
+            Usage = (short)usage;
+            Flags = flags;
+            Target = target;
+        }
+
         public RawInputDevice(HIDUsageSim usage, RawInputDeviceFlags flags, HWND target)
         {
             UsagePage = HIDPage.Simulation;
index 055456b..fe09fa2 100644 (file)
@@ -194,6 +194,7 @@ namespace OpenTK.Platform.Windows
             {
                 new RawInputDevice(HIDUsageGD.Joystick, RawInputDeviceFlags.DEVNOTIFY | RawInputDeviceFlags.INPUTSINK, window),
                 new RawInputDevice(HIDUsageGD.GamePad, RawInputDeviceFlags.DEVNOTIFY | RawInputDeviceFlags.INPUTSINK, window),
+                new RawInputDevice(HIDUsageCD.ConsumerControl, RawInputDeviceFlags.DEVNOTIFY | RawInputDeviceFlags.INPUTSINK, window),
             };
 
             if (!Functions.RegisterRawInputDevices(DeviceTypes, DeviceTypes.Length, API.RawInputDeviceSize))