summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@innovatetechnologi.es>2016-07-14 10:25:52 +0200
committerLéo Lam <leo@innovatetechnologi.es>2016-07-14 10:50:53 +0200
commit788e19f54d86ba45cdc83d39c0488b17aa1d00dd (patch)
tree38cf7b1db29bbcdb400d717806fb5900ff6bcaed /Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp
parent89a03174ccfcc0dc80c9f59b84338f508919a555 (diff)
ControllerInterface: Make the ID assigning code common
This makes the device ID assigning code common to all backends, by moving it to AddDevice() instead of copy-pasting or replicating the logic in the backends. Also, to prepare for hotplugging, instead of relying on a name usage count, the new ID assigning system always starts from ID 0 and tries to assign the first ID that is not used.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp
index a31abd3055..8f8265e8d0 100644
--- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp
@@ -35,10 +35,6 @@ static std::string GetJoystickName(int index)
void Init()
{
- // this is used to number the joysticks
- // multiple joysticks with the same name shall get unique ids starting at 0
- std::map<std::string, int> name_counts;
-
#ifdef USE_SDL_HAPTIC
if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) >= 0)
{
@@ -58,7 +54,7 @@ void Init()
SDL_Joystick* dev = SDL_JoystickOpen(i);
if (dev)
{
- auto js = std::make_shared<Joystick>(dev, i, name_counts[GetJoystickName(i)]++);
+ auto js = std::make_shared<Joystick>(dev, i);
// only add if it has some inputs/outputs
if (js->Inputs().size() || js->Outputs().size())
g_controller_interface.AddDevice(std::move(js));
@@ -66,8 +62,8 @@ void Init()
}
}
-Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index, const unsigned int index)
- : m_joystick(joystick), m_sdl_index(sdl_index), m_index(index)
+Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index)
+ : m_joystick(joystick), m_sdl_index(sdl_index)
{
// really bad HACKS:
// to not use SDL for an XInput device
@@ -290,11 +286,6 @@ std::string Joystick::GetSource() const
return "SDL";
}
-int Joystick::GetId() const
-{
- return m_index;
-}
-
std::string Joystick::Button::GetName() const
{
std::ostringstream ss;