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

@ -9,6 +9,7 @@
#include "Common/Assert.h"
#include "Common/Logging/Log.h"
#include "InputCommon/ControllerInterface/ControllerInterface.h"
#include "InputCommon/ControllerInterface/evdev/evdev.h"
namespace ciface
@ -31,7 +32,7 @@ static std::string GetName(const std::string& devnode)
return res;
}
void Init(std::vector<Core::Device*>& controllerDevices)
void Init()
{
// this is used to number the joysticks
// multiple joysticks with the same name shall get unique ids starting at 0
@ -71,7 +72,7 @@ void Init(std::vector<Core::Device*>& controllerDevices)
if (input->IsInteresting())
{
controllerDevices.push_back(input);
g_controller_interface.AddDevice(input);
num_controllers++;
}
else