summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference/ExpressionParser.h
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2021-05-23 22:10:12 -0400
committerGitHub <noreply@github.com>2021-05-23 22:10:12 -0400
commit509b24a27f0a417c9139d46d1d5a0ebbf7d678e3 (patch)
tree7977561633ae2ff25bf61f887c4873bc74169ce6 /Source/Core/InputCommon/ControlReference/ExpressionParser.h
parent975f8e2a25653b3a9a4d8db42285f5b4de50b589 (diff)
parent93e3e691f9a3a9913b56ebe71b4bd34fd21ce5c9 (diff)
Merge pull request #9581 from Filoppi/expose_input_expr_vars
Expose Control Expression variables to mappings UI
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ExpressionParser.h')
-rw-r--r--Source/Core/InputCommon/ControlReference/ExpressionParser.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ExpressionParser.h b/Source/Core/InputCommon/ControlReference/ExpressionParser.h
index 14670848ae..d36e00888f 100644
--- a/Source/Core/InputCommon/ControlReference/ExpressionParser.h
+++ b/Source/Core/InputCommon/ControlReference/ExpressionParser.h
@@ -143,7 +143,7 @@ public:
class ControlEnvironment
{
public:
- using VariableContainer = std::map<std::string, ControlState>;
+ using VariableContainer = std::map<std::string, std::shared_ptr<ControlState>>;
ControlEnvironment(const Core::DeviceContainer& container_, const Core::DeviceQualifier& default_,
VariableContainer& vars)
@@ -154,7 +154,10 @@ public:
std::shared_ptr<Core::Device> FindDevice(ControlQualifier qualifier) const;
Core::Device::Input* FindInput(ControlQualifier qualifier) const;
Core::Device::Output* FindOutput(ControlQualifier qualifier) const;
- ControlState* GetVariablePtr(const std::string& name);
+ // Returns an existing variable by the specified name if already existing. Creates it otherwise.
+ std::shared_ptr<ControlState> GetVariablePtr(const std::string& name);
+
+ void CleanUnusedVariables();
private:
VariableContainer& m_variables;