diff -r 312160defeac -r 2d5955694057 Hid/HidEvent.cs --- a/Hid/HidEvent.cs Sun Mar 15 21:26:51 2015 +0100 +++ b/Hid/HidEvent.cs Tue Mar 17 15:35:58 2015 +0100 @@ -115,7 +115,7 @@ /// Initialize an HidEvent from a WM_INPUT message /// /// Device Handle as provided by RAWINPUTHEADER.hDevice, typically accessed as rawinput.header.hDevice - public Event(Message aMessage, HidEventRepeatDelegate aRepeatDelegate) + public Event(Message aMessage, HidEventRepeatDelegate aRepeatDelegate, bool aRepeat) { RepeatCount = 0; IsValid = false; @@ -236,10 +236,10 @@ } // - if (IsButtonDown) + if (IsButtonDown && aRepeat) { //TODO: Make this optional - //StartRepeatTimer(iRepeatDelay); + StartRepeatTimer(iRepeatDelay); } IsValid = true; @@ -527,20 +527,12 @@ } UsagePage usagePage = (UsagePage)UsagePage; - switch (usagePage) + string name = Enum.GetName(Utils.UsageType(usagePage), usage); + if (name == null) { - case Hid.UsagePage.Consumer: - usageText += ((ConsumerControl)usage).ToString(); - break; - - case Hid.UsagePage.WindowsMediaCenterRemoteControl: - usageText += ((WindowsMediaCenterRemoteControl)usage).ToString(); - break; - - default: - usageText += usage.ToString("X2"); - break; + name += usage.ToString("X2"); } + usageText += name; } //If we are a gamepad display axis and dpad values