Merge pull request #1923 from Sonicadvance1/remove_sdl_assumption

Remove an assumption in SDL.
This commit is contained in:
Ryan Houdek 2015-01-21 13:29:39 -06:00
commit ca10ce36cc
2 changed files with 23 additions and 16 deletions

View File

@ -38,21 +38,31 @@ void Init( std::vector<Core::Device*>& devices )
// multiple joysticks with the same name shall get unique ids starting at 0
std::map<std::string, int> name_counts;
if (SDL_Init( SDL_INIT_FLAGS ) >= 0)
#ifdef USE_SDL_HAPTIC
if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) >= 0)
{
// joysticks
for (int i = 0; i < SDL_NumJoysticks(); ++i)
// Correctly initialized
}
else
#endif
if (SDL_Init(SDL_INIT_JOYSTICK) < 0)
{
// Failed to initialize
return;
}
// joysticks
for (int i = 0; i < SDL_NumJoysticks(); ++i)
{
SDL_Joystick* dev = SDL_JoystickOpen(i);
if (dev)
{
SDL_Joystick* dev = SDL_JoystickOpen(i);
if (dev)
{
Joystick* js = new Joystick(dev, i, name_counts[GetJoystickName(i)]++);
// only add if it has some inputs/outputs
if (js->Inputs().size() || js->Outputs().size())
devices.push_back( js );
else
delete js;
}
Joystick* js = new Joystick(dev, i, name_counts[GetJoystickName(i)]++);
// only add if it has some inputs/outputs
if (js->Inputs().size() || js->Outputs().size())
devices.push_back( js );
else
delete js;
}
}
}

View File

@ -17,9 +17,6 @@
#ifdef USE_SDL_HAPTIC
#include <SDL_haptic.h>
#define SDL_INIT_FLAGS SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC
#else
#define SDL_INIT_FLAGS SDL_INIT_JOYSTICK
#endif
namespace ciface