Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
DInputJoystick: Always exclude XInput
Yeah, yeah, it's possible that some guy would try to build DInput
without XInput, but they're crazy, and I doubt it would have worked
since the header file mess was so fragile anyway. Always exclude
DInput devices when we don't have XInput.
  • Loading branch information
magcius committed Jun 27, 2013
1 parent c78a1ec commit cdb5b8b
Showing 1 changed file with 1 addition and 6 deletions.
Expand Up @@ -37,7 +37,6 @@ static const struct

#define DATA_BUFFER_SIZE 32

#ifdef NO_DUPLICATE_DINPUT_XINPUT
//-----------------------------------------------------------------------------
// Modified some MSDN code to get all the XInput device GUID.Data1 values in a vector,
// faster than checking all the devices for each DirectInput device, like MSDN says to do
Expand Down Expand Up @@ -141,7 +140,6 @@ void GetXInputGUIDS( std::vector<DWORD>& guids )
if( bCleanupCOM )
CoUninitialize();
}
#endif

void InitJoystick(IDirectInput8* const idi8, std::vector<Core::Device*>& devices, HWND hwnd)
{
Expand All @@ -152,21 +150,18 @@ void InitJoystick(IDirectInput8* const idi8, std::vector<Core::Device*>& devices
// multiple joysticks with the same name shall get unique ids starting at 0
std::map< std::basic_string<TCHAR>, int> name_counts;

#ifdef NO_DUPLICATE_DINPUT_XINPUT
std::vector<DWORD> xinput_guids;
GetXInputGUIDS( xinput_guids );
#endif

std::list<DIDEVICEINSTANCE>::iterator
i = joysticks.begin(),
e = joysticks.end();
for ( ; i!=e; ++i )
{
#ifdef NO_DUPLICATE_DINPUT_XINPUT
// skip XInput Devices
if ( std::find( xinput_guids.begin(), xinput_guids.end(), i->guidProduct.Data1 ) != xinput_guids.end() )
continue;
#endif

LPDIRECTINPUTDEVICE8 js_device;
if (SUCCEEDED(idi8->CreateDevice(i->guidInstance, &js_device, NULL)))
{
Expand Down

0 comments on commit cdb5b8b

Please sign in to comment.