An XInput device is a controller that is designed for use with the DirectX XInput driver. 'The other devices' are legacy devices that are not designed for use with the XInput driver.
Running a loop of sf::Joystick::isConnected(index) will get me up to 8 supported game controller devices. Running a loop of
bool isXInputControllerConnected(int _index){
XINPUT_STATE state;
ZeroMemory(&state, sizeof(XINPUT_STATE));
DWORD result = XInputGetState(_index, &state);
if(result == ERROR_SUCCESS){
return true;
}
}
will return a list of connected XInput devices. The problem I'm having is that those devices in the XInput list are also in SFML's Joystick list. I have no way to determine if a controller in the XInput device list and a controller in SFML's list are the same controller. I want to use XInput if a controller is compatable, but fall back on legacy support if it is not. The reason for this is because legacy drivers don't allow Xbox 360 controller triggers to properly be independent, which is super lame.