summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/hidbus.cpp
diff options
context:
space:
mode:
authorKelebek1 <eeeedddccc@hotmail.co.uk>2022-07-10 07:59:40 +0200
committerKelebek1 <eeeedddccc@hotmail.co.uk>2022-07-10 07:59:40 +0200
commit240650f6a6336df8d3eb11b410cdcd332d8ad562 (patch)
tree16ae249e6160a22f88bd2238d43b23079c4afb44 /src/core/hle/service/hid/hidbus.cpp
parentMerge pull request #8531 from FernandoS27/core-timing-fix-reg (diff)
downloadyuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar
yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.gz
yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.bz2
yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.lz
yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.xz
yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.zst
yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/hid/hidbus.cpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/core/hle/service/hid/hidbus.cpp b/src/core/hle/service/hid/hidbus.cpp
index fa6153b4c..5e20e6830 100644
--- a/src/core/hle/service/hid/hidbus.cpp
+++ b/src/core/hle/service/hid/hidbus.cpp
@@ -50,12 +50,15 @@ HidBus::HidBus(Core::System& system_)
// Register update callbacks
hidbus_update_event = Core::Timing::CreateEvent(
"Hidbus::UpdateCallback",
- [this](std::uintptr_t user_data, std::chrono::nanoseconds ns_late) {
+ [this](std::uintptr_t user_data, s64 time,
+ std::chrono::nanoseconds ns_late) -> std::optional<std::chrono::nanoseconds> {
const auto guard = LockService();
UpdateHidbus(user_data, ns_late);
+ return std::nullopt;
});
- system_.CoreTiming().ScheduleEvent(hidbus_update_ns, hidbus_update_event);
+ system_.CoreTiming().ScheduleLoopingEvent(std::chrono::nanoseconds(0), hidbus_update_ns,
+ hidbus_update_event);
}
HidBus::~HidBus() {
@@ -63,8 +66,6 @@ HidBus::~HidBus() {
}
void HidBus::UpdateHidbus(std::uintptr_t user_data, std::chrono::nanoseconds ns_late) {
- auto& core_timing = system.CoreTiming();
-
if (is_hidbus_enabled) {
for (std::size_t i = 0; i < devices.size(); ++i) {
if (!devices[i].is_device_initializated) {
@@ -82,13 +83,6 @@ void HidBus::UpdateHidbus(std::uintptr_t user_data, std::chrono::nanoseconds ns_
sizeof(HidbusStatusManagerEntry));
}
}
-
- // If ns_late is higher than the update rate ignore the delay
- if (ns_late > hidbus_update_ns) {
- ns_late = {};
- }
-
- core_timing.ScheduleEvent(hidbus_update_ns - ns_late, hidbus_update_event);
}
std::optional<std::size_t> HidBus::GetDeviceIndexFromHandle(BusHandle handle) const {