mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
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:
@ -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);
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
{
|
||||
|
Reference in New Issue
Block a user