summaryrefslogtreecommitdiffstats
path: root/src/core/hid/emulated_controller.cpp
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-10-25 06:23:54 +0200
committerNarr the Reg <juangerman-13@hotmail.com>2021-11-25 03:30:26 +0100
commit064ddacf49aa7155e26add55983b81fdda997077 (patch)
tree17f6d767233c10578d84d2029014a3dfa4b55396 /src/core/hid/emulated_controller.cpp
parentinput_common: Add manual update options to input devices (diff)
downloadyuzu-064ddacf49aa7155e26add55983b81fdda997077.tar
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.gz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.bz2
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.lz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.xz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.zst
yuzu-064ddacf49aa7155e26add55983b81fdda997077.zip
Diffstat (limited to 'src/core/hid/emulated_controller.cpp')
-rw-r--r--src/core/hid/emulated_controller.cpp50
1 files changed, 30 insertions, 20 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 48add394b..83ced5635 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -87,11 +87,23 @@ void EmulatedController::ReloadFromSettings() {
ReloadInput();
}
+void EmulatedController::LoadDevices() {
+ const auto left_joycon = button_params[Settings::NativeButton::ZL];
+ const auto right_joycon = button_params[Settings::NativeButton::ZR];
-void EmulatedController::ReloadInput() {
- // If you load any device here add the equivalent to the UnloadInput() function
- const auto left_side = button_params[Settings::NativeButton::ZL];
- const auto right_side = button_params[Settings::NativeButton::ZR];
+ // Triggers for GC controllers
+ trigger_params[LeftIndex] = button_params[Settings::NativeButton::ZL];
+ trigger_params[RightIndex] = button_params[Settings::NativeButton::ZR];
+
+ battery_params[LeftIndex] = left_joycon;
+ battery_params[RightIndex] = right_joycon;
+ battery_params[LeftIndex].Set("battery", true);
+ battery_params[RightIndex].Set("battery", true);
+
+ output_params[LeftIndex] = left_joycon;
+ output_params[RightIndex] = right_joycon;
+ output_params[LeftIndex].Set("output", true);
+ output_params[RightIndex].Set("output", true);
std::transform(button_params.begin() + Settings::NativeButton::BUTTON_HID_BEGIN,
button_params.begin() + Settings::NativeButton::BUTTON_NS_END,
@@ -102,19 +114,17 @@ void EmulatedController::ReloadInput() {
std::transform(motion_params.begin() + Settings::NativeMotion::MOTION_HID_BEGIN,
motion_params.begin() + Settings::NativeMotion::MOTION_HID_END,
motion_devices.begin(), Input::CreateDevice<Input::InputDevice>);
+ std::transform(trigger_params.begin(), trigger_params.end(), trigger_devices.begin(),
+ Input::CreateDevice<Input::InputDevice>);
+ std::transform(battery_params.begin(), battery_params.begin(), battery_devices.end(),
+ Input::CreateDevice<Input::InputDevice>);
+ std::transform(output_params.begin(), output_params.end(), output_devices.begin(),
+ Input::CreateDevice<Input::OutputDevice>);
+}
- trigger_devices[0] =
- Input::CreateDevice<Input::InputDevice>(button_params[Settings::NativeButton::ZL]);
- trigger_devices[1] =
- Input::CreateDevice<Input::InputDevice>(button_params[Settings::NativeButton::ZR]);
-
- battery_devices[0] = Input::CreateDevice<Input::InputDevice>(left_side);
- battery_devices[1] = Input::CreateDevice<Input::InputDevice>(right_side);
-
- button_params[Settings::NativeButton::ZL].Set("output", true);
- output_devices[0] =
- Input::CreateDevice<Input::OutputDevice>(button_params[Settings::NativeButton::ZL]);
-
+void EmulatedController::ReloadInput() {
+ // If you load any device here add the equivalent to the UnloadInput() function
+ LoadDevices();
for (std::size_t index = 0; index < button_devices.size(); ++index) {
if (!button_devices[index]) {
continue;
@@ -241,7 +251,7 @@ void EmulatedController::RestoreConfig() {
ReloadFromSettings();
}
-std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices() const {
+std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(DeviceIndex device_index) const {
std::vector<Common::ParamPackage> devices;
for (const auto& param : button_params) {
if (!param.Has("engine")) {
@@ -612,21 +622,21 @@ void EmulatedController::SetBattery(Input::CallbackStatus callback, std::size_t
}
switch (index) {
- case 0:
+ case LeftIndex:
controller.battery_state.left = {
.is_powered = is_powered,
.is_charging = is_charging,
.battery_level = battery_level,
};
break;
- case 1:
+ case RightIndex:
controller.battery_state.right = {
.is_powered = is_powered,
.is_charging = is_charging,
.battery_level = battery_level,
};
break;
- case 2:
+ case DualIndex:
controller.battery_state.dual = {
.is_powered = is_powered,
.is_charging = is_charging,