summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-02-06 08:50:51 +1100
committerjacqueline <me@jacqueline.id.au>2024-02-06 08:50:51 +1100
commit2184b6c5f7fb026b52508ec1e234c7f32d3ace25 (patch)
tree8615717697d28bc3d9dba2b312a74bcaaafe193b /src
parent177277334ff81f3f5f1a69a5216b67b9c3561b4f (diff)
downloadtangara-fw-2184b6c5f7fb026b52508ec1e234c7f32d3ace25.tar.gz
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)
Diffstat (limited to 'src')
-rw-r--r--src/audio/audio_decoder.cpp23
1 files 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<TaggedStream> stream) -> bool {
return false;
}
stream->SetPreambleFinished();
-
- timer_.reset(new Timer(std::shared_ptr<Track>{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>(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;
}