summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/audio_fsm.cpp16
-rw-r--r--src/audio/audio_task.cpp8
2 files changed, 7 insertions, 17 deletions
diff --git a/src/audio/audio_fsm.cpp b/src/audio/audio_fsm.cpp
index b8c20584..fc263351 100644
--- a/src/audio/audio_fsm.cpp
+++ b/src/audio/audio_fsm.cpp
@@ -99,7 +99,7 @@ void Standby::react(const internal::InputFileOpened& ev) {
void Standby::react(const QueueUpdate& ev) {
auto current_track = sTrackQueue->GetCurrent();
- if (!current_track) {
+ if (!current_track || (sCurrentTrack && *sCurrentTrack == *current_track)) {
return;
}
@@ -156,19 +156,7 @@ void Playback::react(const PlaybackUpdate& ev) {
void Playback::react(const internal::InputFileOpened& ev) {}
-void Playback::react(const internal::InputFileClosed& ev) {
- ESP_LOGI(kTag, "finished reading file");
- auto upcoming = sTrackQueue->GetUpcoming(1);
- if (upcoming.empty()) {
- return;
- }
- auto db = sDatabase.lock();
- if (!db) {
- return;
- }
- ESP_LOGI(kTag, "preemptively opening next file");
- sFileSource->SetPath(db->GetTrackPath(upcoming.front()));
-}
+void Playback::react(const internal::InputFileClosed& ev) {}
void Playback::react(const internal::InputFileFinished& ev) {
ESP_LOGI(kTag, "finished playing file");
diff --git a/src/audio/audio_task.cpp b/src/audio/audio_task.cpp
index b6eff550..751366c1 100644
--- a/src/audio/audio_task.cpp
+++ b/src/audio/audio_task.cpp
@@ -81,10 +81,12 @@ auto Timer::AddBytes(std::size_t bytes) -> void {
total_duration_seconds_ = current_seconds_;
}
- events::Audio().Dispatch(PlaybackUpdate{
+ PlaybackUpdate ev{
.seconds_elapsed = current_seconds_,
- .seconds_total = total_duration_seconds_,
- });
+ .seconds_total = total_duration_seconds_
+ };
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
}