summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-28 10:18:02 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-28 10:18:02 +1000
commit8ff93f5467b0eef54d18b35d742de05c8a63da9a (patch)
treeca0215b64d1a779a69c30b71f8d7870f5aa3dbcb /src/audio
parent0f5cf25e73fb2e789b472317966ff80323dddd75 (diff)
downloadtangara-fw-8ff93f5467b0eef54d18b35d742de05c8a63da9a.tar.gz
Make idle state more robust + check playback state
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/audio_fsm.cpp2
-rw-r--r--src/audio/include/audio_events.hpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/audio/audio_fsm.cpp b/src/audio/audio_fsm.cpp
index e68eedaf..cd36b398 100644
--- a/src/audio/audio_fsm.cpp
+++ b/src/audio/audio_fsm.cpp
@@ -144,6 +144,8 @@ void Playback::exit() {
// to drain.
vTaskDelay(pdMS_TO_TICKS(250));
sOutput->SetInUse(false);
+
+ events::System().Dispatch(PlaybackFinished{});
}
void Playback::react(const QueueUpdate& ev) {
diff --git a/src/audio/include/audio_events.hpp b/src/audio/include/audio_events.hpp
index 28e29863..1d3690a4 100644
--- a/src/audio/include/audio_events.hpp
+++ b/src/audio/include/audio_events.hpp
@@ -25,6 +25,8 @@ struct PlaybackUpdate : tinyfsm::Event {
uint32_t seconds_total;
};
+struct PlaybackFinished : tinyfsm::Event {};
+
struct QueueUpdate : tinyfsm::Event {
bool current_changed;
};