Merge pull request #5861 from german77/HandheldFix
hid: Only update motion for npad and prevent over scheduling events
This commit is contained in:
		| @@ -126,14 +126,23 @@ void IAppletResource::UpdateControllers(std::uintptr_t user_data, | ||||
|         controller->OnUpdate(core_timing, shared_mem->GetPointer(), SHARED_MEMORY_SIZE); | ||||
|     } | ||||
|  | ||||
|     // If ns_late is higher than the update rate ignore the delay | ||||
|     if (ns_late > motion_update_ns) { | ||||
|         ns_late = {}; | ||||
|     } | ||||
|  | ||||
|     core_timing.ScheduleEvent(pad_update_ns - ns_late, pad_update_event); | ||||
| } | ||||
|  | ||||
| void IAppletResource::UpdateMotion(std::uintptr_t user_data, std::chrono::nanoseconds ns_late) { | ||||
|     auto& core_timing = system.CoreTiming(); | ||||
|  | ||||
|     for (const auto& controller : controllers) { | ||||
|         controller->OnMotionUpdate(core_timing, shared_mem->GetPointer(), SHARED_MEMORY_SIZE); | ||||
|     controllers[static_cast<size_t>(HidController::NPad)]->OnMotionUpdate( | ||||
|         core_timing, shared_mem->GetPointer(), SHARED_MEMORY_SIZE); | ||||
|  | ||||
|     // If ns_late is higher than the update rate ignore the delay | ||||
|     if (ns_late > motion_update_ns) { | ||||
|         ns_late = {}; | ||||
|     } | ||||
|  | ||||
|     core_timing.ScheduleEvent(motion_update_ns - ns_late, motion_update_event); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user