ControllerInterface: Gate the input based on our new background input setting

This commit is contained in:
Jasper St. Pierre
2014-07-11 10:53:51 -04:00
parent 5abc028ace
commit 74f3083381
3 changed files with 36 additions and 2 deletions

View File

@ -42,6 +42,8 @@ public:
virtual std::string GetName() const = 0;
virtual ~Control() {}
bool InputGateOn();
virtual Input* ToInput() { return nullptr; }
virtual Output* ToOutput() { return nullptr; }
};
@ -59,6 +61,16 @@ public:
virtual ControlState GetState() const = 0;
bool ShouldHaveInput();
ControlState GetGatedState()
{
if (InputGateOn())
return GetState();
else
return 0.0;
}
Input* ToInput() override { return this; }
};
@ -74,6 +86,12 @@ public:
virtual void SetState(ControlState state) = 0;
void SetGatedState(ControlState state)
{
if (InputGateOn())
SetState(state);
}
Output* ToOutput() override { return this; }
};