aboutsummaryrefslogtreecommitdiff
path: root/src/core/hid/emulated_controller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hid/emulated_controller.cpp')
-rw-r--r--src/core/hid/emulated_controller.cpp38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 52a56ef1a..d12037b11 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -145,7 +145,7 @@ void EmulatedController::LoadDevices() {
motion_devices.begin(), Common::Input::CreateDevice<Common::Input::InputDevice>);
std::transform(trigger_params.begin(), trigger_params.end(), trigger_devices.begin(),
Common::Input::CreateDevice<Common::Input::InputDevice>);
- std::transform(battery_params.begin(), battery_params.begin(), battery_devices.end(),
+ std::transform(battery_params.begin(), battery_params.end(), battery_devices.begin(),
Common::Input::CreateDevice<Common::Input::InputDevice>);
std::transform(output_params.begin(), output_params.end(), output_devices.begin(),
Common::Input::CreateDevice<Common::Input::OutputDevice>);
@@ -351,6 +351,19 @@ void EmulatedController::DisableConfiguration() {
}
}
+void EmulatedController::EnableSystemButtons() {
+ system_buttons_enabled = true;
+}
+
+void EmulatedController::DisableSystemButtons() {
+ system_buttons_enabled = false;
+}
+
+void EmulatedController::ResetSystemButtons() {
+ controller.home_button_state.home.Assign(false);
+ controller.capture_button_state.capture.Assign(false);
+}
+
bool EmulatedController::IsConfiguring() const {
return is_configuring;
}
@@ -600,7 +613,16 @@ void EmulatedController::SetButton(const Common::Input::CallbackStatus& callback
controller.npad_button_state.right_sr.Assign(current_status.value);
break;
case Settings::NativeButton::Home:
+ if (!system_buttons_enabled) {
+ break;
+ }
+ controller.home_button_state.home.Assign(current_status.value);
+ break;
case Settings::NativeButton::Screenshot:
+ if (!system_buttons_enabled) {
+ break;
+ }
+ controller.capture_button_state.capture.Assign(current_status.value);
break;
}
}
@@ -1081,6 +1103,20 @@ BatteryValues EmulatedController::GetBatteryValues() const {
return controller.battery_values;
}
+HomeButtonState EmulatedController::GetHomeButtons() const {
+ if (is_configuring) {
+ return {};
+ }
+ return controller.home_button_state;
+}
+
+CaptureButtonState EmulatedController::GetCaptureButtons() const {
+ if (is_configuring) {
+ return {};
+ }
+ return controller.capture_button_state;
+}
+
NpadButtonState EmulatedController::GetNpadButtons() const {
if (is_configuring) {
return {};