summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/CoreDevice.cpp56
-rw-r--r--Source/Core/InputCommon/ControllerInterface/CoreDevice.h15
2 files changed, 30 insertions, 41 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/CoreDevice.cpp b/Source/Core/InputCommon/ControllerInterface/CoreDevice.cpp
index cfced12e80..377ea4444f 100644
--- a/Source/Core/InputCommon/ControllerInterface/CoreDevice.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/CoreDevice.cpp
@@ -130,39 +130,43 @@ bool Device::Control::IsHidden() const
return false;
}
-ControlState Device::FullAnalogSurface::GetState() const
+class FullAnalogSurface final : public Device::Input
{
- return (1 + std::max(0.0, m_high.GetState()) - std::max(0.0, m_low.GetState())) / 2;
-}
+public:
+ FullAnalogSurface(Input* low, Input* high) : m_low(*low), m_high(*high) {}
-std::string Device::FullAnalogSurface::GetName() const
-{
- // E.g. "Full Axis X+"
- return "Full " + m_high.GetName();
-}
+ ControlState GetState() const override
+ {
+ return (1 + std::max(0.0, m_high.GetState()) - std::max(0.0, m_low.GetState())) / 2;
+ }
-bool Device::FullAnalogSurface::IsDetectable() const
-{
- return m_low.IsDetectable() && m_high.IsDetectable();
-}
+ std::string GetName() const override
+ {
+ // E.g. "Full Axis X+"
+ return "Full " + m_high.GetName();
+ }
-bool Device::FullAnalogSurface::IsHidden() const
-{
- return m_low.IsHidden() && m_high.IsHidden();
-}
+ bool IsDetectable() const override { return m_low.IsDetectable() && m_high.IsDetectable(); }
-bool Device::FullAnalogSurface::IsMatchingName(std::string_view name) const
-{
- if (Control::IsMatchingName(name))
- return true;
+ bool IsHidden() const override { return m_low.IsHidden() && m_high.IsHidden(); }
- // Old naming scheme was "Axis X-+" which is too visually similar to "Axis X+".
- // This has caused countless problems for users with mysterious misconfigurations.
- // We match this old name to support old configurations.
- const auto old_name = m_low.GetName() + *m_high.GetName().rbegin();
+ bool IsMatchingName(std::string_view name) const override
+ {
+ if (Control::IsMatchingName(name))
+ return true;
- return old_name == name;
-}
+ // Old naming scheme was "Axis X-+" which is too visually similar to "Axis X+".
+ // This has caused countless problems for users with mysterious misconfigurations.
+ // We match this old name to support old configurations.
+ const auto old_name = m_low.GetName() + *m_high.GetName().rbegin();
+
+ return old_name == name;
+ }
+
+private:
+ Input& m_low;
+ Input& m_high;
+};
void Device::AddFullAnalogSurfaceInputs(Input* low, Input* high)
{
diff --git a/Source/Core/InputCommon/ControllerInterface/CoreDevice.h b/Source/Core/InputCommon/ControllerInterface/CoreDevice.h
index b34e6a9d15..cd8256396e 100644
--- a/Source/Core/InputCommon/ControllerInterface/CoreDevice.h
+++ b/Source/Core/InputCommon/ControllerInterface/CoreDevice.h
@@ -163,21 +163,6 @@ protected:
void AddInput(Input* const i);
void AddOutput(Output* const o);
- class FullAnalogSurface final : public Input
- {
- public:
- FullAnalogSurface(Input* low, Input* high) : m_low(*low), m_high(*high) {}
- ControlState GetState() const override;
- std::string GetName() const override;
- bool IsDetectable() const override;
- bool IsHidden() const override;
- bool IsMatchingName(std::string_view name) const override;
-
- private:
- Input& m_low;
- Input& m_high;
- };
-
// Pass Inputs for center-neutral (- and +) directions of some axis.
// This function adds those Inputs and also a FullAnalogSurface Input for each direction.
// This is only needed when it's not known if the particular axis is neutral in the center