diff options
| author | Michael M <mchtly@gmail.com> | 2017-06-07 15:56:49 -0700 |
|---|---|---|
| committer | Michael M <mchtly@gmail.com> | 2017-09-14 12:53:35 -0700 |
| commit | 754efd75c5f8b843e25f2ff8510bfc2a25fd1de1 (patch) | |
| tree | ffc789c1c98a3510823737e4e34c92f47b25bbc4 /Source/Core/InputCommon/ControlReference/ExpressionParser.cpp | |
| parent | f1ff1e3d084c1dd8ae28f2dd8cc409949e378334 (diff) | |
ExpressionParser: remove DummyExpression
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ExpressionParser.cpp')
| -rw-r--r-- | Source/Core/InputCommon/ControlReference/ExpressionParser.cpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp b/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp index 277cfb3c70..4bd4901cdd 100644 --- a/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp +++ b/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp @@ -217,18 +217,6 @@ public: virtual operator std::string() const { return ""; } }; -class DummyExpression : public ExpressionNode -{ -public: - std::string name; - - DummyExpression(const std::string& name_) : name(name_) {} - ControlState GetValue() const override { return 0.0; } - void SetValue(ControlState value) override {} - int CountNumControls() const override { return 0; } - operator std::string() const override { return "`" + name + "`"; } -}; - class ControlExpression : public ExpressionNode { public: @@ -243,9 +231,13 @@ public: { } - ControlState GetValue() const override { return control->ToInput()->GetState(); } - void SetValue(ControlState value) override { control->ToOutput()->SetState(value); } - int CountNumControls() const override { return 1; } + ControlState GetValue() const override { return control ? control->ToInput()->GetState() : 0.0; } + void SetValue(ControlState value) override + { + if (control) + control->ToOutput()->SetState(value); + } + int CountNumControls() const override { return control ? 1 : 0; } operator std::string() const override { return "`" + static_cast<std::string>(qualifier) + "`"; } }; @@ -402,7 +394,7 @@ private: std::shared_ptr<Device> device = finder.FindDevice(tok.qualifier); Device::Control* control = finder.FindControl(tok.qualifier); if (control == nullptr) - return {ParseStatus::NoDevice, std::make_unique<DummyExpression>(tok.qualifier)}; + return {ParseStatus::NoDevice, std::make_unique<ControlExpression>(tok.qualifier, control)}; return {ParseStatus::Successful, std::make_unique<ControlExpression>(tok.qualifier, std::move(device), control)}; |
