summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp10
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
277void Controller_NPad::SetSupportedStyleSet(NPadType style_set) { 278void 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}