From 788e19f54d86ba45cdc83d39c0488b17aa1d00dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Thu, 14 Jul 2016 10:25:52 +0200 Subject: 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. --- Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp') 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 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(dev, i, name_counts[GetJoystickName(i)]++); + auto js = std::make_shared(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; -- cgit v1.2.3