Beispiel #1
0
        public void RegisterHidDevices()
        {
            SharpLib.Win32.RAWINPUTDEVICE[] rid = new SharpLib.Win32.RAWINPUTDEVICE[1];

            rid[0].usUsagePage = (ushort)SharpLib.Hid.UsagePage.WindowsMediaCenterRemoteControl;
            rid[0].usUsage     = (ushort)SharpLib.Hid.UsageCollection.WindowsMediaCenter.WindowsMediaCenterRemoteControl;
            rid[0].dwFlags     = RawInputDeviceFlags.RIDEV_EXINPUTSINK;
            rid[0].hwndTarget  = Handle;

            int repeatDelay = -1;
            int repeatSpeed = -1;

            using (Settings settings = new MPSettings())
            {
                repeatDelay = settings.GetValueAsInt("remote", "HidRepeatDelayInMs", repeatDelay);
                repeatSpeed = settings.GetValueAsInt("remote", "HidRepeatSpeedInMs", repeatSpeed);
            }

            _handler = new SharpLib.Hid.Handler(rid, true, repeatDelay, repeatSpeed);

            if (!_handler.IsRegistered)
            {
                Debug.WriteLine("Failed to register raw input devices: " + Marshal.GetLastWin32Error().ToString());
            }

            _handler.OnHidEvent += HandleHidEventThreadSafe;
        }
Beispiel #2
0
        public void RegisterHidDevices()
        {
            SharpLib.Win32.RAWINPUTDEVICE[] rid = new SharpLib.Win32.RAWINPUTDEVICE[1];

            rid[0].usUsagePage = (ushort)SharpLib.Hid.UsagePage.WindowsMediaCenterRemoteControl;
            rid[0].usUsage = (ushort)SharpLib.Hid.UsageCollection.WindowsMediaCenter.WindowsMediaCenterRemoteControl;
            rid[0].dwFlags = Const.RIDEV_EXINPUTSINK;
            rid[0].hwndTarget = Handle;

            int repeatDelay = -1;
            int repeatSpeed = -1;

            using (Settings settings = new MPSettings())
            {
                repeatDelay = settings.GetValueAsInt("remote", "HidRepeatDelayInMs", repeatDelay);
                repeatSpeed = settings.GetValueAsInt("remote", "HidRepeatSpeedInMs", repeatSpeed);
            }

            _handler = new SharpLib.Hid.Handler(rid, true, repeatDelay, repeatSpeed);

            if (!_handler.IsRegistered)
            {
                Debug.WriteLine("Failed to register raw input devices: " + Marshal.GetLastWin32Error().ToString());
            }

            _handler.OnHidEvent += HandleHidEventThreadSafe;
        }