Beispiel #1
0
        static void UpdateGamepad(DJHControllerMap Map)
        {
            iReport.bDevice = (byte)1;
            if (Map.TT_normal != 0)
            {
                iReport.AxisY = (Map.TT_normal - 0x80) * 0x1FF + 0x3FFF;
            }
            iReport.Dial   = ((Map.Filter_step * 0x1FFF) + (Map.Filter_normal * 0x20) - 0x100) * 3;
            iReport.Slider = (Map.Slider_step * 0x1FFF) + (Map.Slider_normal * 0x20);

            int a = 0x0;

            if (Map.PS >= 0x10)
            {
                a       = 0x40;
                Map.PS -= 0x10;
            }
            else
            {
                a = 0x0;
            }
            iReport.Buttons = (uint)Map.Buttons + (uint)(Map.PS << 0x04) + (uint)a;

            if (Map.DPAD == 0x0F)
            {
                iReport.bHats = 0xFFFFFF;
            }
            else
            {
                iReport.bHats = (uint)4487 * Map.DPAD;
            }

            // Feed the driver
            Gamepad.UpdateVJD(1, ref iReport);
        }
Beispiel #2
0
        static void ReadDJHDevice(string DevicePath)
        {
            // Create handle to the device
            HIDDevice DJH = new HIDDevice(DevicePath, false);

            // Read bytes & map DJH
            DJHControllerMap Map = new DJHControllerMap();

            while (true)
            {
                byte[] DJHBytes = DJH.read();

                // Map
                Map.Buttons = DJHBytes[1];
                Map.DPAD    = DJHBytes[3];
                Map.PS      = DJHBytes[2];

                Map.TT_normal     = DJHBytes[7];
                Map.Filter_normal = DJHBytes[20];
                Map.Filter_step   = DJHBytes[21];
                Map.Slider_normal = DJHBytes[22];
                Map.Slider_step   = DJHBytes[23];

                // Print
                Console.Write("\rButton: {0}\t DPAD: {1}\t PS: {2}\t TT: {3}\t Filter: {4}|{5}\tSlider: {6}|{7}\t",
                              Map.Buttons, Map.DPAD, Map.PS, Map.TT_normal, Map.Filter_normal, Map.Filter_step, Map.Slider_normal, Map.Slider_step);

                // Report vJoy
                UpdateGamepad(Map);
            }
        }