Seeking working with hardcoded event, wav only

custom
ailurux 1 year ago
parent 62f6179abe
commit a49d754da6
  1. 2
      src/audio/audio_decoder.cpp
  2. 4
      src/audio/audio_fsm.cpp
  3. 8
      src/codecs/wav.cpp

@ -155,7 +155,7 @@ auto Decoder::BeginDecoding(std::shared_ptr<TaggedStream> stream) -> bool {
.bitrate_kbps = open_res->sample_rate_hz,
.encoding = stream->type(),
});
timer_.reset(new Timer(tags, open_res.value()));
timer_.reset(new Timer(tags, open_res.value(), stream->Offset()));
// TODO: How does *this?* need to change?
PlaybackUpdate ev{.seconds_elapsed = stream->Offset(), .track = tags};

@ -244,11 +244,13 @@ void Uninitialised::react(const system_fsm::BootComplete& ev) {
}
void Standby::react(const PlayFile& ev) {
sCurrentTrack = 0;
sIsPlaybackAllowed = true;
sFileSource->SetPath(ev.filename, 10);
}
void Playback::react(const PlayFile& ev) {
sFileSource->SetPath(ev.filename, 15);
sFileSource->SetPath(ev.filename, 10);
}
void Standby::react(const SeekFile& ev) {

@ -199,7 +199,7 @@ auto WavDecoder::OpenStream(std::shared_ptr<IStream> input,uint32_t offset)
return cpp::fail(Error::kUnsupportedFormat);
}
auto data_offset = offset * samples_per_second * bits_per_sample;
int64_t data_offset = offset * samples_per_second * bytes_per_sample_;
// Seek track to start of data
input->SeekTo(data_chunk_index + 8 + data_offset, IStream::SeekFrom::kStartOfStream);
@ -218,6 +218,7 @@ auto WavDecoder::DecodeTo(cpp::span<sample::Sample> output)
buffer_.ConsumeBytes([&](cpp::span<std::byte> buf) -> size_t {
size_t bytes_read = buf.size_bytes();
ESP_LOGI(kTag, "Bytes read: %d", bytes_read);
size_t frames_read =
bytes_read / bytes_per_sample_ / output_format_.num_channels;
@ -243,6 +244,11 @@ auto WavDecoder::DecodeTo(cpp::span<sample::Sample> output)
return samples_written * bytes_per_sample_;
});
ESP_LOGI(kTag, "Samples written %d", samples_written);
if (is_eof) {
ESP_LOGI(kTag, "EOF");
}
return OutputInfo{.samples_written = samples_written,
.is_stream_finished = samples_written == 0 && is_eof};
}

Loading…
Cancel
Save