diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2013-02-07 19:42:01 -0600 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2013-02-07 20:22:06 -0600 |
| commit | c4df69a342bd37420b61ebe6df6a0c6af915c877 (patch) | |
| tree | d00451f654656768c1b24c94f2a99e5eb206a096 /Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h | |
| parent | a2ca76ebd9c3300735c438b5ddc7bc726001b41a (diff) | |
| parent | 95d08db46fd54b37cb375980f97e1c0e11676419 (diff) | |
Merge branch 'master' into real-wiimote-scanning
Conflicts:
Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp
Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp
Diffstat (limited to 'Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h')
| -rw-r--r-- | Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h index 7c5a236d75..b846bb56e8 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h +++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h @@ -87,7 +87,7 @@ public: Input* ToInput() { return this; } }; - + // // Output // @@ -122,6 +122,36 @@ public: protected: void AddInput(Input* const i); void AddOutput(Output* const o); + + class FullAnalogSurface : public Input + { + public: + FullAnalogSurface(Input* low, Input* high) + : m_low(*low), m_high(*high) + {} + + ControlState GetState() const + { + return (1 + m_high.GetState() - m_low.GetState()) / 2; + } + + std::string GetName() const + { + return m_low.GetName() + *m_high.GetName().rbegin(); + } + + private: + Input& m_low; + Input& m_high; + }; + + void AddAnalogInputs(Input* low, Input* high) + { + AddInput(low); + AddInput(high); + AddInput(new FullAnalogSurface(low, high)); + AddInput(new FullAnalogSurface(high, low)); + } private: std::vector<Input*> m_inputs; |
