summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2015-02-28 10:59:18 +1100
committerskidau <skidau@gmail.com>2015-02-28 10:59:18 +1100
commit4dd0813dcf5a4533ca258f5f6003aef4bb5ff20e (patch)
tree04db5e58f1892e4745d3e250e9f3ebbaa14dbc4f /Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
parent48e597359eebb05b0e65a6ac1b5dd43c38976da1 (diff)
parent1cae151c9c2ef9950855e25f254e8399d6162fe8 (diff)
Merge pull request #2133 from randomstuff/hotkeys
Fix hotkeys for Linux
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp b/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
index 8c9060e69c..b49d4b8dce 100644
--- a/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
@@ -219,6 +219,33 @@ public:
virtual operator std::string() { return ""; }
};
+class DummyExpression : public ExpressionNode
+{
+public:
+ std::string name;
+
+ DummyExpression(const std::string& name_) : name(name_) {}
+
+ ControlState GetValue() override
+ {
+ return 0.0;
+ }
+
+ void SetValue(ControlState value) override
+ {
+ }
+
+ int CountNumControls() override
+ {
+ return 0;
+ }
+
+ operator std::string() override
+ {
+ return "`" + name + "`";
+ }
+};
+
class ControlExpression : public ExpressionNode
{
public:
@@ -416,7 +443,10 @@ private:
{
Device::Control *control = finder.FindControl(tok.qualifier);
if (control == nullptr)
- return EXPRESSION_PARSE_NO_DEVICE;
+ {
+ *expr_out = new DummyExpression(tok.qualifier);
+ return EXPRESSION_PARSE_SUCCESS;
+ }
*expr_out = new ControlExpression(tok.qualifier, control);
return EXPRESSION_PARSE_SUCCESS;