# HG changeset patch # User StephaneLenclud # Date 1424028526 -3600 # Node ID bc92e26482203a59e01d3ca62a5023295a9d55dd # Parent 60bfe508372135d2da2c7f5ff486c24e1845e6e7 Device list now showing usage collection string. diff -r 60bfe5083721 -r bc92e2648220 HidUtils.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HidUtils.cs Sun Feb 15 20:28:46 2015 +0100 @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Hid +{ + static class Utils + { + /// + /// Provide the type for the usage collection corresponding to the given usage page. + /// + /// + /// + public static Type UsageCollectionType(UsagePage aUsagePage) + { + switch (aUsagePage) + { + case UsagePage.GenericDesktopControls: + return typeof(UsageCollectionGenericDesktop); + + case UsagePage.Consumer: + return typeof(UsageCollectionConsumer); + + case UsagePage.WindowsMediaCenterRemoteControl: + return typeof(UsageCollectionWindowsMediaCenter); + + default: + return null; + } + } + } +} diff -r 60bfe5083721 -r bc92e2648220 RawInput.cs --- a/RawInput.cs Sun Feb 15 19:53:27 2015 +0100 +++ b/RawInput.cs Sun Feb 15 20:28:46 2015 +0100 @@ -183,6 +183,7 @@ //Work out proper suffix for our device root node. //That allows users to see in a glance what kind of device this is. string suffix = ""; + Type usageCollectionType=null; if (hidDevice.Info.dwType == RawInputDeviceType.RIM_TYPEHID) { //Process usage page @@ -191,6 +192,7 @@ //We know this usage page, add its name Hid.UsagePage usagePage = (Hid.UsagePage)hidDevice.Info.hid.usUsagePage; suffix += " ( " + usagePage.ToString() + ", "; + usageCollectionType = Hid.Utils.UsageCollectionType(usagePage); } else { @@ -198,9 +200,18 @@ suffix += " ( 0x" + hidDevice.Info.hid.usUsagePage.ToString("X4") + ", "; } - //Process usage + //Process usage collection //We don't know this usage page, add its value - suffix += "0x" + hidDevice.Info.hid.usUsage.ToString("X4") + " )"; + if (usageCollectionType == null || !Enum.IsDefined(usageCollectionType, hidDevice.Info.hid.usUsage)) + { + //Show Hexa + suffix += "0x" + hidDevice.Info.hid.usUsage.ToString("X4") + " )"; + } + else + { + //We know this usage page, add its name + suffix += Enum.GetName(usageCollectionType, hidDevice.Info.hid.usUsage) + " )"; + } } else if (hidDevice.Info.dwType == RawInputDeviceType.RIM_TYPEKEYBOARD) { diff -r 60bfe5083721 -r bc92e2648220 RemoteControlSample.csproj --- a/RemoteControlSample.csproj Sun Feb 15 19:53:27 2015 +0100 +++ b/RemoteControlSample.csproj Sun Feb 15 20:28:46 2015 +0100 @@ -128,6 +128,7 @@ + Form