diff -r 72885c950813 -r cdc5f8f1b79e HidHandler.cs
--- a/HidHandler.cs Sun Mar 15 16:56:31 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-//
-// Copyright (C) 2014-2015 Stéphane Lenclud.
-//
-// This file is part of SharpLibHid.
-//
-// SharpDisplayManager is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// SharpDisplayManager is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with SharpDisplayManager. If not, see .
-//
-
-
-using System;
-using System.Windows.Forms;
-using System.Runtime.InteropServices;
-using System.Diagnostics;
-using System.Text;
-using Microsoft.Win32.SafeHandles;
-using SharpLib.Win32;
-using System.Collections.Generic;
-
-
-namespace SharpLib.Hid
-{
- ///
- /// Our HID handler manages raw input registrations, processes WM_INPUT messages and broadcasts HID events in return.
- ///
- public class HidHandler
- {
- public delegate void HidEventHandler(object aSender, HidEvent aHidEvent);
- public event HidEventHandler OnHidEvent;
- List iHidEvents;
-
-
- public bool IsRegistered { get; private set; }
-
- public HidHandler(RAWINPUTDEVICE[] aRawInputDevices)
- {
- iHidEvents=new List();
- IsRegistered = Function.RegisterRawInputDevices(aRawInputDevices, (uint)aRawInputDevices.Length, (uint)Marshal.SizeOf(aRawInputDevices[0]));
- }
-
- ///
- /// Process a WM_INPUT message.
- ///
- ///
- public void ProcessInput(ref Message aMessage)
- {
- if (aMessage.Msg != Const.WM_INPUT)
- {
- //We only process WM_INPUT messages
- return;
- }
-
- HidEvent hidEvent = new HidEvent(aMessage, OnHidEventRepeat);
- hidEvent.DebugWrite();
-
- if (!hidEvent.IsValid || !hidEvent.IsGeneric)
- {
- Debug.WriteLine("Skipping HID message.");
- return;
- }
-
- //
- if (hidEvent.IsButtonUp)
- {
- //This is a key up event
- //We need to discard any events belonging to the same page and collection
- for (int i = (iHidEvents.Count-1); i >= 0; i--)
- {
- if (iHidEvents[i].UsageId == hidEvent.UsageId)
- {
- iHidEvents[i].Dispose();
- iHidEvents.RemoveAt(i);
- }
- }
- }
- else
- {
- //Keep that event until we get a key up message
- iHidEvents.Add(hidEvent);
- }
-
- //Broadcast our events
- OnHidEvent(this, hidEvent);
- }
-
- public void OnHidEventRepeat(HidEvent aHidEvent)
- {
- //Broadcast our events
- OnHidEvent(this, aHidEvent);
- }
-
- }
-
-}
\ No newline at end of file