Exemple #1
0
        /// <summary>
        /// Retrieves the capabilities of a device.
        /// </summary>
        /// <param name="deviceId">The DeviceID for which to retrieve the capabilities.</param>
        /// <returns>The capabilities of the device.</returns>
        private static JoystickDeviceCaps GetDeviceCaps(int deviceId)
        {
            JOYCAPS joycaps = new JOYCAPS();

            NativeMethods.joyGetDevCaps(deviceId, ref joycaps, Marshal.SizeOf(joycaps.GetType()));
            JoystickDeviceCaps caps = new JoystickDeviceCaps();

            caps.DeviceId     = deviceId;
            caps.Manufacturer = GetManufacturer(joycaps.wMid);
            caps.Name         = joycaps.szPname;
            caps.ProductId    = joycaps.wPid;
            caps.ButtonCount  = joycaps.wNumButtons;
            caps.PeriodMin    = joycaps.wPeriodMin;
            caps.PeriodMax    = joycaps.wPeriodMax;

            var axes = new int[][] {
                new [] { joycaps.wXmin, joycaps.wXmax },
                new [] { joycaps.wYmin, joycaps.wYmax },
                new [] { joycaps.wZmin, joycaps.wZmax },
                new [] { joycaps.wRmin, joycaps.wRmax },
                new [] { joycaps.wUmin, joycaps.wUmax },
                new [] { joycaps.wVmin, joycaps.wVmax }
            };

            caps.Capabilities = joycaps.wCaps;

            return(caps);
        }