diff options
| author | skidau <skidau@gmail.com> | 2015-02-28 10:59:18 +1100 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2015-02-28 10:59:18 +1100 |
| commit | 4dd0813dcf5a4533ca258f5f6003aef4bb5ff20e (patch) | |
| tree | 04db5e58f1892e4745d3e250e9f3ebbaa14dbc4f /Source/Core/InputCommon/ControllerInterface | |
| parent | 48e597359eebb05b0e65a6ac1b5dd43c38976da1 (diff) | |
| parent | 1cae151c9c2ef9950855e25f254e8399d6162fe8 (diff) | |
Merge pull request #2133 from randomstuff/hotkeys
Fix hotkeys for Linux
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
| -rw-r--r-- | Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp | 32 |
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; |
