diff options
| author | Léo Lam <leo@innovatetechnologi.es> | 2016-06-12 17:08:04 +0200 |
|---|---|---|
| committer | Léo Lam <leo@innovatetechnologi.es> | 2016-06-25 13:46:53 +0200 |
| commit | fd29e5c4cc26cd853a03ac7b0e08b367b7070c84 (patch) | |
| tree | 5fdf3f210fc09344c829d1fa4b63baa4a423d97e /Source/Core/InputCommon/ControllerInterface/Xlib | |
| parent | 8a1bbaa56382b1bca3b95d79c716fc377c78e591 (diff) | |
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.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/Xlib')
4 files changed, 9 insertions, 9 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp index 79b86a487d..d46f1cf4f6 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp @@ -46,7 +46,7 @@ namespace ciface namespace XInput2 { // This function will add zero or more KeyboardMouse objects to devices. -void Init(std::vector<Core::Device*>& devices, void* const hwnd) +void Init(void* const hwnd) { Display* dpy = XOpenDisplay(nullptr); @@ -78,8 +78,8 @@ void Init(std::vector<Core::Device*>& devices, void* const hwnd) if (current_master->use == XIMasterPointer) // Since current_master is a master pointer, its attachment must // be a master keyboard. - devices.push_back(new KeyboardMouse((Window)hwnd, xi_opcode, current_master->deviceid, - current_master->attachment)); + g_controller_interface.AddDevice(new KeyboardMouse( + (Window)hwnd, xi_opcode, current_master->deviceid, current_master->attachment)); } XCloseDisplay(dpy); diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h index e8f2e2e06b..10499ea22c 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h @@ -12,13 +12,13 @@ extern "C" { #include <X11/keysym.h> } -#include "InputCommon/ControllerInterface/Device.h" +#include "InputCommon/ControllerInterface/ControllerInterface.h" namespace ciface { namespace XInput2 { -void Init(std::vector<Core::Device*>& devices, void* const hwnd); +void Init(void* const hwnd); class KeyboardMouse : public Core::Device { diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp index 71269c74f7..a7d94bbcd0 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp @@ -11,9 +11,9 @@ namespace ciface { namespace Xlib { -void Init(std::vector<Core::Device*>& devices, void* const hwnd) +void Init(void* const hwnd) { - devices.push_back(new KeyboardMouse((Window)hwnd)); + g_controller_interface.AddDevice(new KeyboardMouse((Window)hwnd)); } KeyboardMouse::KeyboardMouse(Window window) : m_window(window) diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h index 94388211c0..18e5bad635 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h @@ -7,13 +7,13 @@ #include <X11/Xlib.h> #include <X11/keysym.h> -#include "InputCommon/ControllerInterface/Device.h" +#include "InputCommon/ControllerInterface/ControllerInterface.h" namespace ciface { namespace Xlib { -void Init(std::vector<Core::Device*>& devices, void* const hwnd); +void Init(void* const hwnd); class KeyboardMouse : public Core::Device { |
