ControllerInterface: Don't pass m_devices to the backends

Previously, the devices vector would be passed to all backends. They
would then manually push_back to it to add new devices. This was fine
but caused issues when trying to add synchronisation.

Instead, backends now call AddDevice() to fill m_devices so that it is
not accessible from the outside.
This commit is contained in:
Léo Lam 2016-06-12 17:08:04 +02:00
parent 8a1bbaa563
commit fd29e5c4cc
24 changed files with 69 additions and 72 deletions

View file

@ -2,9 +2,9 @@
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include "Common/StringUtil.h"
#include "InputCommon/ControllerInterface/DInput/DInput.h"
#include "Common/StringUtil.h"
#include "InputCommon/ControllerInterface/ControllerInterface.h"
#include "InputCommon/ControllerInterface/DInput/DInputJoystick.h"
#include "InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h"
@ -44,7 +44,7 @@ std::string GetDeviceName(const LPDIRECTINPUTDEVICE8 device)
return result;
}
void Init(std::vector<Core::Device*>& devices, HWND hwnd)
void Init(HWND hwnd)
{
IDirectInput8* idi8;
if (FAILED(DirectInput8Create(GetModuleHandle(nullptr), DIRECTINPUT_VERSION, IID_IDirectInput8,
@ -53,8 +53,8 @@ void Init(std::vector<Core::Device*>& devices, HWND hwnd)
return;
}
InitKeyboardMouse(idi8, devices, hwnd);
InitJoystick(idi8, devices, hwnd);
InitKeyboardMouse(idi8, hwnd);
InitJoystick(idi8, hwnd);
idi8->Release();
}