diff options
| -rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 211b8bb60..282953bab 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp | |||
| @@ -104,7 +104,8 @@ void Controller_NPad::OnInit() { | |||
| 104 | } | 104 | } |
| 105 | std::memcpy(supported_npad_id_types.data(), npad_id_list.data(), | 105 | std::memcpy(supported_npad_id_types.data(), npad_id_list.data(), |
| 106 | npad_id_list.size() * sizeof(u32)); | 106 | npad_id_list.size() * sizeof(u32)); |
| 107 | if (controller_count == 0) { | 107 | if (std::none_of(connected_controllers.begin(), connected_controllers.end(), |
| 108 | [](const ControllerHolder& controller) { return controller.is_connected; })) { | ||
| 108 | AddNewController(NPadControllerType::Handheld); | 109 | AddNewController(NPadControllerType::Handheld); |
| 109 | } | 110 | } |
| 110 | } | 111 | } |
| @@ -272,7 +273,7 @@ void Controller_NPad::OnUpdate(u8* data, std::size_t data_len) { | |||
| 272 | } | 273 | } |
| 273 | std::memcpy(data + NPAD_OFFSET, shared_memory_entries.data(), | 274 | std::memcpy(data + NPAD_OFFSET, shared_memory_entries.data(), |
| 274 | shared_memory_entries.size() * sizeof(NPadEntry)); | 275 | shared_memory_entries.size() * sizeof(NPadEntry)); |
| 275 | } | 276 | } // namespace Service::HID |
| 276 | 277 | ||
| 277 | void Controller_NPad::SetSupportedStyleSet(NPadType style_set) { | 278 | void Controller_NPad::SetSupportedStyleSet(NPadType style_set) { |
| 278 | style.raw = style_set.raw; | 279 | style.raw = style_set.raw; |
| @@ -333,6 +334,11 @@ void Controller_NPad::AddNewController(NPadControllerType controller) { | |||
| 333 | LOG_ERROR(Service_HID, "Cannot connect any more controllers!"); | 334 | LOG_ERROR(Service_HID, "Cannot connect any more controllers!"); |
| 334 | return; | 335 | return; |
| 335 | } | 336 | } |
| 337 | if (controller == NPadControllerType::Handheld) { | ||
| 338 | connected_controllers[8] = {controller, true}; | ||
| 339 | InitNewlyAddedControler(8); | ||
| 340 | return; | ||
| 341 | } | ||
| 336 | connected_controllers[controller_count] = {controller, true}; | 342 | connected_controllers[controller_count] = {controller, true}; |
| 337 | InitNewlyAddedControler(controller_count++); | 343 | InitNewlyAddedControler(controller_count++); |
| 338 | } | 344 | } |