summaryrefslogtreecommitdiff
path: root/src/audio/include
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-03-26 16:45:20 +1100
committerjacqueline <me@jacqueline.id.au>2024-03-26 16:45:20 +1100
commit4cec85af2d779ea8f6e3b46dfbea61ef5b0419f8 (patch)
tree05ff61516ea62e0dea7017d7801f29f9320ca260 /src/audio/include
parent078b77d0f796be3c787f62b9b830512e38d3b076 (diff)
downloadtangara-fw-4cec85af2d779ea8f6e3b46dfbea61ef5b0419f8.tar.gz
implement handling of stream/playback ending
Diffstat (limited to 'src/audio/include')
-rw-r--r--src/audio/include/audio_fsm.hpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/audio/include/audio_fsm.hpp b/src/audio/include/audio_fsm.hpp
index c00813ac..60afb321 100644
--- a/src/audio/include/audio_fsm.hpp
+++ b/src/audio/include/audio_fsm.hpp
@@ -67,6 +67,8 @@ class AudioState : public tinyfsm::Fsm<AudioState> {
protected:
auto clearDrainBuffer() -> void;
+ auto awaitEmptyDrainBuffer() -> void;
+
auto playTrack(database::TrackId id) -> void;
auto commitVolume() -> void;
@@ -83,10 +85,12 @@ class AudioState : public tinyfsm::Fsm<AudioState> {
static std::shared_ptr<TrackInfo> sCurrentTrack;
static uint64_t sCurrentSamples;
- static std::optional<IAudioOutput::Format> sCurrentFormat;
+ static std::optional<IAudioOutput::Format> sDrainFormat;
+ static bool sCurrentTrackIsFromQueue;
static std::shared_ptr<TrackInfo> sNextTrack;
static uint64_t sNextTrackCueSamples;
+ static bool sNextTrackIsFromQueue;
static bool sIsResampling;
static bool sIsPaused;