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

@ -4,6 +4,7 @@
#include <algorithm>
#include "InputCommon/ControllerInterface/ControllerInterface.h"
#include "InputCommon/ControllerInterface/DInput/DInput.h"
#include "InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h"
@ -31,7 +32,7 @@ static const struct
// lil silly
static HWND m_hwnd;
void InitKeyboardMouse(IDirectInput8* const idi8, std::vector<Core::Device*>& devices, HWND _hwnd)
void InitKeyboardMouse(IDirectInput8* const idi8, HWND _hwnd)
{
m_hwnd = _hwnd;
@ -56,7 +57,7 @@ void InitKeyboardMouse(IDirectInput8* const idi8, std::vector<Core::Device*>& de
if (SUCCEEDED(
mo_device->SetCooperativeLevel(nullptr, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE)))
{
devices.push_back(new KeyboardMouse(kb_device, mo_device));
g_controller_interface.AddDevice(new KeyboardMouse(kb_device, mo_device));
return;
}
}