public static List <DeviceInfo> GetAvailableDevices() { List <DeviceInfo> list = new List <DeviceInfo>(); int cbjc = Marshal.SizeOf(typeof(JoystickAPI.JOYCAPS)); int num = JoystickAPI.joyGetNumDevs(); for (int i = 0; i < num; i++) { JoystickAPI.JOYCAPS jOYCAPS = new JoystickAPI.JOYCAPS(); if (JoystickAPI.joyGetDevCapsW(i, jOYCAPS, cbjc) == JoystickAPI.ResultCode.NoError) { list.Add(new DeviceInfo(i, jOYCAPS)); } } return(list); }
/// <summary> /// Get list of available joysticks connected to the system. /// </summary> /// /// <returns>Returns list containing information about available joysticks connected to /// the system.</returns> /// public static List <DeviceInfo> GetAvailableDevices() { var devices = new List <DeviceInfo>(); var joyCapsSize = System.Runtime.InteropServices.Marshal.SizeOf(typeof(JoystickAPI.JOYCAPS)); // get number of devices var devicesCount = JoystickAPI.joyGetNumDevs(); // check all devices for (var i = 0; i < devicesCount; i++) { var joyCaps = new JoystickAPI.JOYCAPS(); if (JoystickAPI.joyGetDevCapsW(i, joyCaps, joyCapsSize) == JoystickAPI.ResultCode.NoError) { devices.Add(new DeviceInfo(i, joyCaps)); } } return(devices); }