diff options
author | german77 <juangerman-13@hotmail.com> | 2021-10-11 00:43:11 -0500 |
---|---|---|
committer | Narr the Reg <juangerman-13@hotmail.com> | 2021-11-24 20:30:24 -0600 |
commit | 06a5ef5874144a70e30e577a83ba68d1dad79e78 (patch) | |
tree | 867fa1153c7285c858cdb5bd7f60f08266532a88 /src/common/input.h | |
parent | e14ae06391ac724e4be4557df0568846687a3662 (diff) |
core/hid: Add output devices
Diffstat (limited to 'src/common/input.h')
-rw-r--r-- | src/common/input.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/common/input.h b/src/common/input.h index 6eefc55f9c..3a28b77a7b 100644 --- a/src/common/input.h +++ b/src/common/input.h @@ -38,6 +38,27 @@ enum class BatteryLevel { Charging, }; +enum class PollingMode { + Active, + Pasive, + Camera, + NCF, + IR, +}; + +enum class VibrationError { + None, + NotSupported, + Disabled, + Unknown, +}; + +enum class PollingError { + None, + NotSupported, + Unknown, +}; + struct AnalogProperties { float deadzone{}; float range{1.0f}; @@ -149,6 +170,24 @@ private: InputCallback callback; }; +/// An abstract class template for an output device (rumble, LED pattern, polling mode). +class OutputDevice { +public: + virtual ~OutputDevice() = default; + + virtual void SetLED([[maybe_unused]] LedStatus led_status) { + return; + } + + virtual VibrationError SetVibration([[maybe_unused]] VibrationStatus vibration_status) { + return VibrationError::NotSupported; + } + + virtual PollingError SetPollingMode([[maybe_unused]] PollingMode polling_mode) { + return PollingError::NotSupported; + } +}; + /// An abstract class template for a factory that can create input devices. template <typename InputDeviceType> class Factory { |