diff options
| -rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 16 |
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 | ||
| 749 | Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const { | 749 | Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const { |