From fd29e5c4cc26cd853a03ac7b0e08b367b7070c84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 12 Jun 2016 17:08:04 +0200 Subject: 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. --- Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp | 4 ++-- Source/Core/InputCommon/ControllerInterface/XInput/XInput.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'Source/Core/InputCommon/ControllerInterface/XInput') diff --git a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp index d7ed3343a0..982764d4b4 100644 --- a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp +++ b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp @@ -50,7 +50,7 @@ static XInputGetState_t PXInputGetState = nullptr; static bool haveGuideButton = false; -void Init(std::vector& devices) +void Init() { if (!hXInput) { @@ -89,7 +89,7 @@ void Init(std::vector& devices) XINPUT_CAPABILITIES caps; for (int i = 0; i != 4; ++i) if (ERROR_SUCCESS == PXInputGetCapabilities(i, 0, &caps)) - devices.push_back(new Device(caps, i)); + g_controller_interface.AddDevice(new Device(caps, i)); } void DeInit() diff --git a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h index 204b1ecf81..e4a047d53c 100644 --- a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h +++ b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h @@ -12,7 +12,7 @@ #include #include -#include "InputCommon/ControllerInterface/Device.h" +#include "InputCommon/ControllerInterface/ControllerInterface.h" #ifndef XINPUT_DEVSUBTYPE_FLIGHT_STICK #error You are building this module against the wrong version of DirectX. You probably need to remove DXSDK_DIR from your include path and/or _WIN32_WINNT is wrong. @@ -22,7 +22,7 @@ namespace ciface { namespace XInput { -void Init(std::vector& devices); +void Init(); void DeInit(); class Device : public Core::Device -- cgit v1.2.3