summaryrefslogtreecommitdiff
path: root/src/tangara/system_fsm/running.cpp
diff options
context:
space:
mode:
authorayumi <ayumi@noreply.codeberg.org>2025-02-15 02:25:27 +0100
committerayumi <ayumi@noreply.codeberg.org>2025-03-05 08:57:46 +0100
commit9fdf94e9cee5a5180ffefc2b8314f7a9879ebbc6 (patch)
tree80c2ca8003fe32e59eccf2e208a53e1e87c66790 /src/tangara/system_fsm/running.cpp
parent42c2a4f2445ff56a2a0a78c4ef265e5be346d40d (diff)
downloadtangara-fw-9fdf94e9cee5a5180ffefc2b8314f7a9879ebbc6.tar.gz
Allow manually unmounting the SD card
Diffstat (limited to 'src/tangara/system_fsm/running.cpp')
-rw-r--r--src/tangara/system_fsm/running.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/tangara/system_fsm/running.cpp b/src/tangara/system_fsm/running.cpp
index 13f58ef9..87b7f1ac 100644
--- a/src/tangara/system_fsm/running.cpp
+++ b/src/tangara/system_fsm/running.cpp
@@ -59,9 +59,22 @@ void Running::react(const database::event::UpdateFinished&) {
checkIdle();
}
+void Running::react(const ui::UnmountRequest& ev) {
+ events::Audio().Dispatch(audio::TogglePlayPause{.set_to = false});
+ events::Audio().Dispatch(UnmountRequest{.idle = false});
+}
+
+void Running::react(const audio::UnmountReady& ev) {
+ if (ev.idle) {
+ transit<Idle>();
+ } else {
+ unmountStorage();
+ }
+}
+
void Running::react(const internal::UnmountTimeout&) {
if (IdleCondition()) {
- transit<Idle>();
+ events::Audio().Dispatch(UnmountRequest{.idle = true});
}
}