summaryrefslogtreecommitdiffstats
path: root/src/hid_core/resources/system_buttons/sleep_button.cpp
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2024-01-29 02:19:21 +0100
committergerman77 <juangerman-13@hotmail.com>2024-01-29 02:28:37 +0100
commitb8f16f3538fac8d4434905d531885b9862706bd0 (patch)
tree2e582d1d36fbc340f0175ad816362faccb20eee8 /src/hid_core/resources/system_buttons/sleep_button.cpp
parentMerge pull request #12555 from flodavid/fix-gamemode-setting (diff)
downloadyuzu-b8f16f3538fac8d4434905d531885b9862706bd0.tar
yuzu-b8f16f3538fac8d4434905d531885b9862706bd0.tar.gz
yuzu-b8f16f3538fac8d4434905d531885b9862706bd0.tar.bz2
yuzu-b8f16f3538fac8d4434905d531885b9862706bd0.tar.lz
yuzu-b8f16f3538fac8d4434905d531885b9862706bd0.tar.xz
yuzu-b8f16f3538fac8d4434905d531885b9862706bd0.tar.zst
yuzu-b8f16f3538fac8d4434905d531885b9862706bd0.zip
Diffstat (limited to 'src/hid_core/resources/system_buttons/sleep_button.cpp')
-rw-r--r--src/hid_core/resources/system_buttons/sleep_button.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/hid_core/resources/system_buttons/sleep_button.cpp b/src/hid_core/resources/system_buttons/sleep_button.cpp
index 22adf501f..159663246 100644
--- a/src/hid_core/resources/system_buttons/sleep_button.cpp
+++ b/src/hid_core/resources/system_buttons/sleep_button.cpp
@@ -17,10 +17,6 @@ void SleepButton::OnInit() {}
void SleepButton::OnRelease() {}
void SleepButton::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
- if (!smart_update) {
- return;
- }
-
std::scoped_lock shared_lock{*shared_mutex};
const u64 aruid = applet_resource->GetActiveAruid();
auto* data = applet_resource->GetAruidData(aruid);
@@ -29,11 +25,20 @@ void SleepButton::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
return;
}
- auto& header = data->shared_memory_format->capture_button.header;
- header.timestamp = core_timing.GetGlobalTimeNs().count();
- header.total_entry_count = 17;
- header.entry_count = 0;
- header.last_entry_index = 0;
+ auto& shared_memory = data->shared_memory_format->sleep_button;
+
+ if (!IsControllerActivated()) {
+ shared_memory.sleep_lifo.buffer_count = 0;
+ shared_memory.sleep_lifo.buffer_tail = 0;
+ return;
+ }
+
+ const auto& last_entry = shared_memory.sleep_lifo.ReadCurrentEntry().state;
+ next_state.sampling_number = last_entry.sampling_number + 1;
+
+ next_state.buttons.raw = 0;
+
+ shared_memory.sleep_lifo.WriteNextEntry(next_state);
}
} // namespace Service::HID