public static List<DeviceInfo> GetAvailableDevices( )
{
List<DeviceInfo> devices = new List<DeviceInfo>( );
int joyCapsSize = System.Runtime.InteropServices.Marshal.SizeOf( typeof( JoystickAPI.JOYCAPS ) );
// get number of devices
int devicesCount = JoystickAPI.joyGetNumDevs( );
// check all devices
for ( int i = 0; i < devicesCount; i++ )
{
JoystickAPI.JOYCAPS joyCaps = new JoystickAPI.JOYCAPS( );
if ( JoystickAPI.joyGetDevCapsW( i, joyCaps, joyCapsSize ) == JoystickAPI.ResultCode.NoError )
{
devices.Add( new DeviceInfo( i, joyCaps ) );
}
}
return devices;
}