diff options
| -rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 44b668fbf..a9cd119c4 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp | |||
| @@ -165,13 +165,14 @@ void Controller_NPad::InitNewlyAddedControler(std::size_t controller_idx) { | |||
| 165 | controller.battery_level[0] = BATTERY_FULL; | 165 | controller.battery_level[0] = BATTERY_FULL; |
| 166 | controller.battery_level[1] = BATTERY_FULL; | 166 | controller.battery_level[1] = BATTERY_FULL; |
| 167 | controller.battery_level[2] = BATTERY_FULL; | 167 | controller.battery_level[2] = BATTERY_FULL; |
| 168 | styleset_changed_events[controller_idx].writable->Signal(); | ||
| 168 | } | 169 | } |
| 169 | 170 | ||
| 170 | void Controller_NPad::OnInit() { | 171 | void Controller_NPad::OnInit() { |
| 171 | auto& kernel = system.Kernel(); | 172 | auto& kernel = system.Kernel(); |
| 172 | for (std::size_t i = 0; i < styleset_changed_events.size(); i++) { | 173 | for (std::size_t i = 0; i < styleset_changed_events.size(); i++) { |
| 173 | styleset_changed_events[i] = Kernel::WritableEvent::CreateEventPair( | 174 | styleset_changed_events[i] = Kernel::WritableEvent::CreateEventPair( |
| 174 | kernel, Kernel::ResetType::Automatic, fmt::format("npad:NpadStyleSetChanged_{}", i)); | 175 | kernel, Kernel::ResetType::Manual, fmt::format("npad:NpadStyleSetChanged_{}", i)); |
| 175 | } | 176 | } |
| 176 | 177 | ||
| 177 | if (!IsControllerActivated()) { | 178 | if (!IsControllerActivated()) { |
| @@ -433,7 +434,6 @@ void Controller_NPad::SetSupportedNPadIdTypes(u8* data, std::size_t length) { | |||
| 433 | supported_npad_id_types.clear(); | 434 | supported_npad_id_types.clear(); |
| 434 | supported_npad_id_types.resize(length / sizeof(u32)); | 435 | supported_npad_id_types.resize(length / sizeof(u32)); |
| 435 | std::memcpy(supported_npad_id_types.data(), data, length); | 436 | std::memcpy(supported_npad_id_types.data(), data, length); |
| 436 | bool had_controller_update = false; | ||
| 437 | for (std::size_t i = 0; i < connected_controllers.size(); i++) { | 437 | for (std::size_t i = 0; i < connected_controllers.size(); i++) { |
| 438 | auto& controller = connected_controllers[i]; | 438 | auto& controller = connected_controllers[i]; |
| 439 | if (!controller.is_connected) { | 439 | if (!controller.is_connected) { |
| @@ -452,10 +452,6 @@ void Controller_NPad::SetSupportedNPadIdTypes(u8* data, std::size_t length) { | |||
| 452 | controller.type = requested_controller; | 452 | controller.type = requested_controller; |
| 453 | InitNewlyAddedControler(i); | 453 | InitNewlyAddedControler(i); |
| 454 | } | 454 | } |
| 455 | had_controller_update = true; | ||
| 456 | } | ||
| 457 | if (had_controller_update) { | ||
| 458 | styleset_changed_events[i].writable->Signal(); | ||
| 459 | } | 455 | } |
| 460 | } | 456 | } |
| 461 | } | 457 | } |
| @@ -481,7 +477,6 @@ void Controller_NPad::SetNpadMode(u32 npad_id, NPadAssignments assignment_mode) | |||
| 481 | const std::size_t npad_index = NPadIdToIndex(npad_id); | 477 | const std::size_t npad_index = NPadIdToIndex(npad_id); |
| 482 | ASSERT(npad_index < shared_memory_entries.size()); | 478 | ASSERT(npad_index < shared_memory_entries.size()); |
| 483 | if (shared_memory_entries[npad_index].pad_assignment != assignment_mode) { | 479 | if (shared_memory_entries[npad_index].pad_assignment != assignment_mode) { |
| 484 | styleset_changed_events[npad_index].writable->Signal(); | ||
| 485 | shared_memory_entries[npad_index].pad_assignment = assignment_mode; | 480 | shared_memory_entries[npad_index].pad_assignment = assignment_mode; |
| 486 | } | 481 | } |
| 487 | } | 482 | } |
| @@ -507,7 +502,6 @@ Kernel::SharedPtr<Kernel::ReadableEvent> Controller_NPad::GetStyleSetChangedEven | |||
| 507 | // TODO(ogniK): Figure out the best time to signal this event. This event seems that it should | 502 | // TODO(ogniK): Figure out the best time to signal this event. This event seems that it should |
| 508 | // be signalled at least once, and signaled after a new controller is connected? | 503 | // be signalled at least once, and signaled after a new controller is connected? |
| 509 | const auto& styleset_event = styleset_changed_events[NPadIdToIndex(npad_id)]; | 504 | const auto& styleset_event = styleset_changed_events[NPadIdToIndex(npad_id)]; |
| 510 | styleset_event.writable->Signal(); | ||
| 511 | return styleset_event.readable; | 505 | return styleset_event.readable; |
| 512 | } | 506 | } |
| 513 | 507 | ||