diff options
Diffstat (limited to 'src/core')
| -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) {      std::scoped_lock lock{mutex};      auto& controller = GetControllerFromNpadIdType(npad_id);      const auto controller_type = controller.device->GetNpadStyleIndex(); + +    if (!controller.device->IsConnected() && controller.is_connected) { +        DisconnectNpad(npad_id); +        return; +    }      if (!controller.device->IsConnected()) {          return;      } +    if (controller.device->IsConnected() && !controller.is_connected) { +        InitNewlyAddedController(npad_id); +    }      // This function is unique to yuzu for the turbo buttons and motion to work properly      controller.device->StatusUpdate(); @@ -736,14 +744,6 @@ void Controller_NPad::SetSupportedStyleSet(Core::HID::NpadStyleTag style_set) {      // Once SetSupportedStyleSet is called controllers are fully initialized      is_controller_initialized = true; - -    // Connect all active controllers -    for (auto& controller : controller_data) { -        const auto& device = controller.device; -        if (device->IsConnected()) { -            AddNewControllerAt(device->GetNpadStyleIndex(), device->GetNpadIdType()); -        } -    }  }  Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const { | 
