anime: rework sleep logic

This commit is contained in:
Luke D. Jones
2023-11-16 09:59:05 +13:00
parent eda1e920df
commit b9c2d929b3

View File

@@ -260,27 +260,19 @@ impl crate::CtrlTask for CtrlAnimeZbus {
async move { async move {
let lock = inner.lock().await; let lock = inner.lock().await;
if lock.config.display_enabled { if lock.config.display_enabled {
if lock.config.off_when_suspended { lock.thread_exit.store(true, Ordering::Release); // ensure clean slate
lock.node lock.node
.write_bytes(&pkt_set_enable_display(!sleeping)) .write_bytes(&pkt_set_enable_display(
.map_err(|err| { !(sleeping && lock.config.off_when_suspended),
warn!("create_sys_event_tasks::off_when_suspended {}", err); ))
}) .map_err(|err| {
.ok(); warn!("create_sys_event_tasks::off_when_suspended {}", err);
} })
if !lock.config.builtin_anims_enabled { .ok();
if sleeping {
lock.thread_exit.store(true, Ordering::Release); if !sleeping && !lock.config.builtin_anims_enabled {
lock.node CtrlAnime::run_thread(inner.clone(), lock.cache.wake.clone(), true)
.write_bytes(&pkt_set_enable_display(!sleeping)) .await;
.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;
}
} }
} }
} }