Example #1
0
        private void RegisterRawInputDevices()
        {
            int count = 1;
            int size  = Marshal.SizeOf(typeof(RawInput.RAWINPUTDEVICE));

            RawInput.RAWINPUTDEVICE[] devices = new RawInput.RAWINPUTDEVICE[count];

            //for DS4
            //devices[0].usUsagePage = 1;
            //devices[0].usUsage = 5;//Game Pad
            //devices[0].hwndTarget = this.Handle;
            //devices[0].dwFlags = (int)RawInput.RIDEV.INPUTSINK;

            //PSVR
            devices[0].usUsagePage = 0xFF01;
            devices[0].usUsage     = 0x01;//VS
            devices[0].hwndTarget  = this.Handle;
            devices[0].dwFlags     = (int)RawInput.RIDEV.INPUTSINK;

            /*
             *  raw_input_device [0].usUsagePage = 0x0D;
             *  // RIDEV_PAGEONLY specifies all devices whose top level collection is from the specified usUsagePage.
             *  // Note that usUsage must be zero.b
             *  raw_input_device [0].dwFlags = RIDEV_INPUTSINK | RIDEV_PAGEONLY;
             *  raw_input_device [0].usUsage = 0x00;
             *  // route the RAWINPUT messages to our window; this is required for the RIDEV_INPUTSINK option
             *  raw_input_device [0].hwndTarget = hwnd;
             */

            RawInput.RegisterRawInputDevices(devices, (uint)devices.Length, (uint)size);
        }
Example #2
0
        private void UnregisterRawInputDevices()
        {
            int size = Marshal.SizeOf(typeof(RawInput.RAWINPUTDEVICE));

            RawInput.RAWINPUTDEVICE[] devices = new RawInput.RAWINPUTDEVICE[1];

            devices[0].usUsagePage = 0xFF01; //Generic Desktop
            devices[0].usUsage     = 0x01;   //VS
            devices[0].dwFlags     = (int)RawInput.RIDEV.REMOVE;
            RawInput.RegisterRawInputDevices(devices, (uint)devices.Length, (uint)size);
        }
Example #3
0
        private void UnregisterRawInputDevices()
        {
            int size = Marshal.SizeOf(typeof(RawInput.RAWINPUTDEVICE));

            RawInput.RAWINPUTDEVICE[] devices = new RawInput.RAWINPUTDEVICE[1];


            if (ds4Mode)
            {
                // for DS4
                devices[0].usUsagePage = 1;
                devices[0].usUsage     = 5;//Game Pad
                devices[0].dwFlags     = (int)RawInput.RIDEV.REMOVE;
            }
            else
            {
                // for PSVR
                devices[0].usUsagePage = 0xFF01; //Generic Desktop
                devices[0].usUsage     = 0x01;   //VS
                devices[0].dwFlags     = (int)RawInput.RIDEV.REMOVE;
            }
            RawInput.RegisterRawInputDevices(devices, (uint)devices.Length, (uint)size);
        }