From e456bef163c1b667ff5a045a4bda66b30326ae90 Mon Sep 17 00:00:00 2001 From: Filoppi Date: Wed, 24 May 2023 22:58:30 +0300 Subject: Input: Improve Controller Interface devices threading This specific issue was already addressed by https://github.com/dolphin-emu/dolphin/pull/11635 though I felt like there was something more we could do, and wasn't too happy with the likelihood of devices update calls being skipped (due to `m_devices_population_mutex` being locked). --- Source/Core/InputCommon/ControllerInterface/InputBackend.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Source/Core/InputCommon/ControllerInterface/InputBackend.h') diff --git a/Source/Core/InputCommon/ControllerInterface/InputBackend.h b/Source/Core/InputCommon/ControllerInterface/InputBackend.h index 653bc16df1..80ced7e194 100644 --- a/Source/Core/InputCommon/ControllerInterface/InputBackend.h +++ b/Source/Core/InputCommon/ControllerInterface/InputBackend.h @@ -3,10 +3,19 @@ #pragma once +#include +#include + class ControllerInterface; namespace ciface { + +namespace Core +{ +class Device; +} + class InputBackend { public: @@ -15,7 +24,9 @@ public: virtual ~InputBackend(); virtual void PopulateDevices() = 0; - virtual void UpdateInput(); + // Do NOT directly add/remove devices within here, + // just add them to the removal list if necessary. + virtual void UpdateInput(std::vector>& devices_to_remove); ControllerInterface& GetControllerInterface(); -- cgit v1.2.3