summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp31
-rw-r--r--src/core/hle/service/hid/controllers/npad.h4
2 files changed, 35 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index fd677d281..3eb59599f 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -712,6 +712,37 @@ void Controller_NPad::SetVibrationEnabled(bool can_vibrate) {
712 can_controllers_vibrate = can_vibrate; 712 can_controllers_vibrate = can_vibrate;
713} 713}
714 714
715void Controller_NPad::ClearAllConnectedControllers() {
716 std::for_each(connected_controllers.begin(), connected_controllers.end(),
717 [](ControllerHolder& controller) {
718 if (controller.is_connected && controller.type != NPadControllerType::None) {
719 controller.type = NPadControllerType::None;
720 controller.is_connected = false;
721 }
722 });
723}
724void Controller_NPad::DisconnectAllConnectedControllers() {
725 std::for_each(connected_controllers.begin(), connected_controllers.end(),
726 [](ControllerHolder& controller) { controller.is_connected = false; });
727}
728
729void Controller_NPad::ConnectAllDisconnectedControllers() {
730 std::for_each(connected_controllers.begin(), connected_controllers.end(),
731 [](ControllerHolder& controller) {
732 if (controller.type != NPadControllerType::None && !controller.is_connected) {
733 controller.is_connected = false;
734 }
735 });
736}
737
738void Controller_NPad::ClearAllControllers() {
739 std::for_each(connected_controllers.begin(), connected_controllers.end(),
740 [](ControllerHolder& controller) {
741 controller.type = NPadControllerType::None;
742 controller.is_connected = false;
743 });
744}
745
715bool Controller_NPad::IsControllerSupported(NPadControllerType controller) const { 746bool Controller_NPad::IsControllerSupported(NPadControllerType controller) const {
716 const bool support_handheld = 747 const bool support_handheld =
717 std::find(supported_npad_id_types.begin(), supported_npad_id_types.end(), NPAD_HANDHELD) != 748 std::find(supported_npad_id_types.begin(), supported_npad_id_types.end(), NPAD_HANDHELD) !=
diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h
index f702990c7..7222bca72 100644
--- a/src/core/hle/service/hid/controllers/npad.h
+++ b/src/core/hle/service/hid/controllers/npad.h
@@ -113,6 +113,10 @@ public:
113 void DisconnectNPad(u32 npad_id); 113 void DisconnectNPad(u32 npad_id);
114 LedPattern GetLedPattern(u32 npad_id); 114 LedPattern GetLedPattern(u32 npad_id);
115 void SetVibrationEnabled(bool can_vibrate); 115 void SetVibrationEnabled(bool can_vibrate);
116 void ClearAllConnectedControllers();
117 void DisconnectAllConnectedControllers();
118 void ConnectAllDisconnectedControllers();
119 void ClearAllControllers();
116 120
117private: 121private:
118 struct CommonHeader { 122 struct CommonHeader {