summaryrefslogtreecommitdiff
path: root/src/core/hid/emulated_controller.h
diff options
context:
space:
mode:
authorGravatar german772021-10-24 23:23:54 -0500
committerGravatar Narr the Reg2021-11-24 20:30:26 -0600
commit064ddacf49aa7155e26add55983b81fdda997077 (patch)
tree17f6d767233c10578d84d2029014a3dfa4b55396 /src/core/hid/emulated_controller.h
parentinput_common: Add manual update options to input devices (diff)
downloadyuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.gz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.xz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.zip
core/hid: Rework battery mappings
Diffstat (limited to 'src/core/hid/emulated_controller.h')
-rw-r--r--src/core/hid/emulated_controller.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h
index d66768549..eb705a241 100644
--- a/src/core/hid/emulated_controller.h
+++ b/src/core/hid/emulated_controller.h
@@ -18,7 +18,7 @@
18#include "core/hid/motion_input.h" 18#include "core/hid/motion_input.h"
19 19
20namespace Core::HID { 20namespace Core::HID {
21 21const std::size_t max_emulated_controllers = 2;
22struct ControllerMotionInfo { 22struct ControllerMotionInfo {
23 Input::MotionStatus raw_status{}; 23 Input::MotionStatus raw_status{};
24 MotionInput emulated{}; 24 MotionInput emulated{};
@@ -32,23 +32,23 @@ using ControllerMotionDevices =
32 std::array<std::unique_ptr<Input::InputDevice>, Settings::NativeMotion::NumMotions>; 32 std::array<std::unique_ptr<Input::InputDevice>, Settings::NativeMotion::NumMotions>;
33using TriggerDevices = 33using TriggerDevices =
34 std::array<std::unique_ptr<Input::InputDevice>, Settings::NativeTrigger::NumTriggers>; 34 std::array<std::unique_ptr<Input::InputDevice>, Settings::NativeTrigger::NumTriggers>;
35using BatteryDevices = std::array<std::unique_ptr<Input::InputDevice>, 2>; 35using BatteryDevices = std::array<std::unique_ptr<Input::InputDevice>, max_emulated_controllers>;
36using OutputDevices = std::array<std::unique_ptr<Input::OutputDevice>, 2>; 36using OutputDevices = std::array<std::unique_ptr<Input::OutputDevice>, max_emulated_controllers>;
37 37
38using ButtonParams = std::array<Common::ParamPackage, Settings::NativeButton::NumButtons>; 38using ButtonParams = std::array<Common::ParamPackage, Settings::NativeButton::NumButtons>;
39using StickParams = std::array<Common::ParamPackage, Settings::NativeAnalog::NumAnalogs>; 39using StickParams = std::array<Common::ParamPackage, Settings::NativeAnalog::NumAnalogs>;
40using ControllerMotionParams = std::array<Common::ParamPackage, Settings::NativeMotion::NumMotions>; 40using ControllerMotionParams = std::array<Common::ParamPackage, Settings::NativeMotion::NumMotions>;
41using TriggerParams = std::array<Common::ParamPackage, Settings::NativeTrigger::NumTriggers>; 41using TriggerParams = std::array<Common::ParamPackage, Settings::NativeTrigger::NumTriggers>;
42using BatteryParams = std::array<Common::ParamPackage, 2>; 42using BatteryParams = std::array<Common::ParamPackage, max_emulated_controllers>;
43using OutputParams = std::array<Common::ParamPackage, 2>; 43using OutputParams = std::array<Common::ParamPackage, max_emulated_controllers>;
44 44
45using ButtonValues = std::array<Input::ButtonStatus, Settings::NativeButton::NumButtons>; 45using ButtonValues = std::array<Input::ButtonStatus, Settings::NativeButton::NumButtons>;
46using SticksValues = std::array<Input::StickStatus, Settings::NativeAnalog::NumAnalogs>; 46using SticksValues = std::array<Input::StickStatus, Settings::NativeAnalog::NumAnalogs>;
47using TriggerValues = std::array<Input::TriggerStatus, Settings::NativeTrigger::NumTriggers>; 47using TriggerValues = std::array<Input::TriggerStatus, Settings::NativeTrigger::NumTriggers>;
48using ControllerMotionValues = std::array<ControllerMotionInfo, Settings::NativeMotion::NumMotions>; 48using ControllerMotionValues = std::array<ControllerMotionInfo, Settings::NativeMotion::NumMotions>;
49using ColorValues = std::array<Input::BodyColorStatus, 3>; 49using ColorValues = std::array<Input::BodyColorStatus, max_emulated_controllers>;
50using BatteryValues = std::array<Input::BatteryStatus, 3>; 50using BatteryValues = std::array<Input::BatteryStatus, max_emulated_controllers>;
51using VibrationValues = std::array<Input::VibrationStatus, 2>; 51using VibrationValues = std::array<Input::VibrationStatus, max_emulated_controllers>;
52 52
53struct AnalogSticks { 53struct AnalogSticks {
54 AnalogStickState left{}; 54 AnalogStickState left{};
@@ -75,6 +75,13 @@ struct ControllerMotion {
75 bool is_at_rest{}; 75 bool is_at_rest{};
76}; 76};
77 77
78enum DeviceIndex : u8 {
79 LeftIndex,
80 RightIndex,
81 DualIndex,
82 AllDevices,
83};
84
78using MotionState = std::array<ControllerMotion, 2>; 85using MotionState = std::array<ControllerMotion, 2>;
79 86
80struct ControllerStatus { 87struct ControllerStatus {
@@ -189,7 +196,7 @@ public:
189 void RestoreConfig(); 196 void RestoreConfig();
190 197
191 /// Returns a vector of mapped devices from the mapped button and stick parameters 198 /// Returns a vector of mapped devices from the mapped button and stick parameters
192 std::vector<Common::ParamPackage> GetMappedDevices() const; 199 std::vector<Common::ParamPackage> GetMappedDevices(DeviceIndex device_index) const;
193 200
194 // Returns the current mapped button device 201 // Returns the current mapped button device
195 Common::ParamPackage GetButtonParam(std::size_t index) const; 202 Common::ParamPackage GetButtonParam(std::size_t index) const;
@@ -289,6 +296,9 @@ public:
289 void DeleteCallback(int key); 296 void DeleteCallback(int key);
290 297
291private: 298private:
299 /// creates input devices from params
300 void LoadDevices();
301
292 /** 302 /**
293 * Updates the button status of the controller 303 * Updates the button status of the controller
294 * @param callback: A CallbackStatus containing the button status 304 * @param callback: A CallbackStatus containing the button status