diff options
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ControlReference.h')
| -rw-r--r-- | Source/Core/InputCommon/ControlReference/ControlReference.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.h b/Source/Core/InputCommon/ControlReference/ControlReference.h index 539c7f4927..80c4a65d51 100644 --- a/Source/Core/InputCommon/ControlReference/ControlReference.h +++ b/Source/Core/InputCommon/ControlReference/ControlReference.h @@ -7,6 +7,7 @@ #include <memory> #include "InputCommon/ControlReference/ExpressionParser.h" +#include "InputCommon/ControlReference/FunctionExpression.h" #include "InputCommon/ControllerInterface/Device.h" // ControlReference @@ -30,6 +31,9 @@ public: virtual ControlState State(const ControlState state = 0) = 0; virtual bool IsInput() const = 0; + template <typename T> + T GetState(); + int BoundCount() const; ciface::ExpressionParser::ParseStatus GetParseStatus() const; void UpdateReference(ciface::ExpressionParser::ControlEnvironment& env); @@ -45,6 +49,18 @@ protected: ciface::ExpressionParser::ParseStatus m_parse_status; }; +template <> +inline bool ControlReference::GetState<bool>() +{ + return State() > ciface::ExpressionParser::CONDITION_THRESHOLD; +} + +template <typename T> +T ControlReference::GetState() +{ + return State(); +} + // // InputReference // |
