summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference/ControlReference.h
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2020-02-09 01:37:30 +0000
committerGitHub <noreply@github.com>2020-02-09 01:37:30 +0000
commit2e2540317e8752b8fe2e4d549a0b5c1ab1911041 (patch)
treec5997fb92fc14a5dbbc061a5b572da18d0877e86 /Source/Core/InputCommon/ControlReference/ControlReference.h
parent7fe11c95782a305e1e03a401e54d819700b39805 (diff)
parent0a1634bedf17f7b27a3781d8e5ac6bafb20cd546 (diff)
Merge pull request #8417 from jordan-woyak/setting-expressions
InputCommon: Allow controller settings specified with input expresions.
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ControlReference.h')
-rw-r--r--Source/Core/InputCommon/ControlReference/ControlReference.h16
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
//