summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar german772023-09-16 00:17:30 -0600
committerGravatar german772023-09-16 00:31:09 -0600
commitc8b9467f502a37abf2198df556b03510f104732a (patch)
tree868f4bcc77b7aa12c80d3f6b343cae162594580a
parentMerge pull request #11385 from liamwhite/acceptcancel (diff)
downloadyuzu-c8b9467f502a37abf2198df556b03510f104732a.tar.gz
yuzu-c8b9467f502a37abf2198df556b03510f104732a.tar.xz
yuzu-c8b9467f502a37abf2198df556b03510f104732a.zip
service: hid: Ensure state is correct
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index 3b349b4c4..a894af8ea 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -419,9 +419,17 @@ void Controller_NPad::RequestPadStateUpdate(Core::HID::NpadIdType npad_id) {
419 std::scoped_lock lock{mutex}; 419 std::scoped_lock lock{mutex};
420 auto& controller = GetControllerFromNpadIdType(npad_id); 420 auto& controller = GetControllerFromNpadIdType(npad_id);
421 const auto controller_type = controller.device->GetNpadStyleIndex(); 421 const auto controller_type = controller.device->GetNpadStyleIndex();
422
423 if (!controller.device->IsConnected() && controller.is_connected) {
424 DisconnectNpad(npad_id);
425 return;
426 }
422 if (!controller.device->IsConnected()) { 427 if (!controller.device->IsConnected()) {
423 return; 428 return;
424 } 429 }
430 if (controller.device->IsConnected() && !controller.is_connected) {
431 InitNewlyAddedController(npad_id);
432 }
425 433
426 // This function is unique to yuzu for the turbo buttons and motion to work properly 434 // This function is unique to yuzu for the turbo buttons and motion to work properly
427 controller.device->StatusUpdate(); 435 controller.device->StatusUpdate();
@@ -736,14 +744,6 @@ void Controller_NPad::SetSupportedStyleSet(Core::HID::NpadStyleTag style_set) {
736 744
737 // Once SetSupportedStyleSet is called controllers are fully initialized 745 // Once SetSupportedStyleSet is called controllers are fully initialized
738 is_controller_initialized = true; 746 is_controller_initialized = true;
739
740 // Connect all active controllers
741 for (auto& controller : controller_data) {
742 const auto& device = controller.device;
743 if (device->IsConnected()) {
744 AddNewControllerAt(device->GetNpadStyleIndex(), device->GetNpadIdType());
745 }
746 }
747} 747}
748 748
749Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const { 749Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const {