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. --- .../ControllerInterface/DInput/DInputJoystick.cpp | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp') diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp index ecd1bf1d40..92798a055c 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp @@ -23,10 +23,6 @@ void InitJoystick(IDirectInput8* const idi8, HWND hwnd) idi8->EnumDevices(DI8DEVCLASS_GAMECTRL, DIEnumDevicesCallback, (LPVOID)&joysticks, DIEDFL_ATTACHEDONLY); - // this is used to number the joysticks - // multiple joysticks with the same name shall get unique ids starting at 0 - std::map, int> name_counts; - std::vector xinput_guids; GetXInputGUIDS(&xinput_guids); @@ -58,7 +54,7 @@ void InitJoystick(IDirectInput8* const idi8, HWND hwnd) } } - auto js = std::make_shared(js_device, name_counts[joystick.tszInstanceName]++); + auto js = std::make_shared(js_device); // only add if it has some inputs/outputs if (js->Inputs().size() || js->Outputs().size()) g_controller_interface.AddDevice(std::move(js)); @@ -72,9 +68,8 @@ void InitJoystick(IDirectInput8* const idi8, HWND hwnd) } } -Joystick::Joystick(/*const LPCDIDEVICEINSTANCE lpddi, */ const LPDIRECTINPUTDEVICE8 device, - const unsigned int index) - : m_device(device), m_index(index) +Joystick::Joystick(/*const LPCDIDEVICEINSTANCE lpddi, */ const LPDIRECTINPUTDEVICE8 device) + : m_device(device) //, m_name(TStringToString(lpddi->tszInstanceName)) { // seems this needs to be done before GetCapabilities @@ -167,11 +162,6 @@ std::string Joystick::GetName() const return GetDeviceName(m_device); } -int Joystick::GetId() const -{ - return m_index; -} - std::string Joystick::GetSource() const { return DINPUT_SOURCE_NAME; -- cgit v1.2.3