From 2184b6c5f7fb026b52508ec1e234c7f32d3ace25 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 6 Feb 2024 08:50:51 +1100 Subject: [PATCH] send a time=0 progress update after opening each file this helps populate things like the now playing screen when a file is opened without unpausing (e.g. when restoring a saved queue after boot) --- src/audio/audio_decoder.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/audio/audio_decoder.cpp b/src/audio/audio_decoder.cpp index bd728e5a..b0a973d9 100644 --- a/src/audio/audio_decoder.cpp +++ b/src/audio/audio_decoder.cpp @@ -138,22 +138,27 @@ auto Decoder::BeginDecoding(std::shared_ptr stream) -> bool { return false; } stream->SetPreambleFinished(); - - timer_.reset(new Timer(std::shared_ptr{new Track{ - .tags = stream->tags(), - .db_info = {}, - .bitrate_kbps = open_res->sample_rate_hz, - .encoding = stream->type(), - }}, - open_res.value())); - current_sink_format_ = IAudioOutput::Format{ .sample_rate = open_res->sample_rate_hz, .num_channels = open_res->num_channels, .bits_per_sample = 16, }; + ESP_LOGI(kTag, "stream started ok"); events::Audio().Dispatch(internal::InputFileOpened{}); + + auto tags = std::make_shared(Track{ + .tags = stream->tags(), + .db_info = {}, + .bitrate_kbps = open_res->sample_rate_hz, + .encoding = stream->type(), + }); + timer_.reset(new Timer(tags, open_res.value())); + + PlaybackUpdate ev{.seconds_elapsed = 0, .track = tags}; + events::Audio().Dispatch(ev); + events::Ui().Dispatch(ev); + return true; }