From b9c2d929b3f368b3de659f1178d58b2a3625b136 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 16 Nov 2023 09:59:05 +1300 Subject: [PATCH] anime: rework sleep logic --- asusd/src/ctrl_anime/trait_impls.rs | 34 +++++++++++------------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/asusd/src/ctrl_anime/trait_impls.rs b/asusd/src/ctrl_anime/trait_impls.rs index bb7869af..08739dab 100644 --- a/asusd/src/ctrl_anime/trait_impls.rs +++ b/asusd/src/ctrl_anime/trait_impls.rs @@ -260,27 +260,19 @@ impl crate::CtrlTask for CtrlAnimeZbus { async move { let lock = inner.lock().await; if lock.config.display_enabled { - if lock.config.off_when_suspended { - lock.node - .write_bytes(&pkt_set_enable_display(!sleeping)) - .map_err(|err| { - warn!("create_sys_event_tasks::off_when_suspended {}", err); - }) - .ok(); - } - if !lock.config.builtin_anims_enabled { - if sleeping { - lock.thread_exit.store(true, Ordering::Release); - lock.node - .write_bytes(&pkt_set_enable_display(!sleeping)) - .map_err(|err| { - warn!("create_sys_event_tasks::off_when_suspended {}", err); - }) - .ok(); - } else { - CtrlAnime::run_thread(inner.clone(), lock.cache.wake.clone(), true) - .await; - } + lock.thread_exit.store(true, Ordering::Release); // ensure clean slate + lock.node + .write_bytes(&pkt_set_enable_display( + !(sleeping && lock.config.off_when_suspended), + )) + .map_err(|err| { + warn!("create_sys_event_tasks::off_when_suspended {}", err); + }) + .ok(); + + if !sleeping && !lock.config.builtin_anims_enabled { + CtrlAnime::run_thread(inner.clone(), lock.cache.wake.clone(), true) + .await; } } }