From eadbdd6bc389cd89c3e3e57a31dabaeadf161865 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 9 Mar 2019 09:57:37 -0600 Subject: ControllerInterface/Win32: Prevent devcies from losing their "id" on a hotplug event. --- Source/Core/InputCommon/ControllerInterface/Device.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'Source/Core/InputCommon/ControllerInterface/Device.h') diff --git a/Source/Core/InputCommon/ControllerInterface/Device.h b/Source/Core/InputCommon/ControllerInterface/Device.h index 7d7623ba03..defbb6cd4a 100644 --- a/Source/Core/InputCommon/ControllerInterface/Device.h +++ b/Source/Core/InputCommon/ControllerInterface/Device.h @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -82,7 +83,7 @@ public: class Output : public Control { public: - virtual ~Output() {} + virtual ~Output() = default; virtual void SetState(ControlState state) = 0; Output* ToOutput() override { return this; } }; @@ -95,9 +96,17 @@ public: virtual std::string GetSource() const = 0; std::string GetQualifiedName() const; virtual void UpdateInput() {} + + // May be overridden to implement hotplug removal. + // Currently handled on a per-backend basis but this could change. virtual bool IsValid() const { return true; } + + // (e.g. Xbox 360 controllers have controller number LEDs which should match the ID we use.) + virtual std::optional GetPreferredId() const; + const std::vector& Inputs() const { return m_inputs; } const std::vector& Outputs() const { return m_outputs; } + Input* FindInput(const std::string& name) const; Output* FindOutput(const std::string& name) const; -- cgit v1.2.3