aboutsummaryrefslogtreecommitdiff
path: root/src/common/input.h
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-10-11 00:43:11 -0500
committerNarr the Reg <juangerman-13@hotmail.com>2021-11-24 20:30:24 -0600
commit66cf94709ae0d28d0c62d2745b3365fc18658cd5 (patch)
tree867fa1153c7285c858cdb5bd7f60f08266532a88 /src/common/input.h
parenta197599d08f9dc155fd003ace681e68b3d4abb9f (diff)
core/hid: Add output devices
Diffstat (limited to 'src/common/input.h')
-rw-r--r--src/common/input.h39
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 {