summaryrefslogtreecommitdiff
path: root/src/codecs/wav.cpp
diff options
context:
space:
mode:
authorailurux <ailuruxx@gmail.com>2024-02-15 16:12:07 +1100
committerailurux <ailuruxx@gmail.com>2024-02-15 16:12:07 +1100
commit62f6179abe24339c2e5b7350528afbcad4c52067 (patch)
treed14f0b35ef601d0877ced507c5560236da666218 /src/codecs/wav.cpp
parente466522c25758670da335195d60a5d599ed56177 (diff)
downloadtangara-fw-62f6179abe24339c2e5b7350528afbcad4c52067.tar.gz
Added offset for track seeking, wav impl. only rn
Diffstat (limited to 'src/codecs/wav.cpp')
-rw-r--r--src/codecs/wav.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/codecs/wav.cpp b/src/codecs/wav.cpp
index a67f3ff4..652f4f88 100644
--- a/src/codecs/wav.cpp
+++ b/src/codecs/wav.cpp
@@ -84,7 +84,7 @@ WavDecoder::WavDecoder() : input_(), buffer_() {}
WavDecoder::~WavDecoder() {}
-auto WavDecoder::OpenStream(std::shared_ptr<IStream> input)
+auto WavDecoder::OpenStream(std::shared_ptr<IStream> input,uint32_t offset)
-> cpp::result<OutputFormat, Error> {
input_ = input;
@@ -199,8 +199,10 @@ auto WavDecoder::OpenStream(std::shared_ptr<IStream> input)
return cpp::fail(Error::kUnsupportedFormat);
}
+ auto data_offset = offset * samples_per_second * bits_per_sample;
+
// Seek track to start of data
- input->SeekTo(data_chunk_index + 8, IStream::SeekFrom::kStartOfStream);
+ input->SeekTo(data_chunk_index + 8 + data_offset, IStream::SeekFrom::kStartOfStream);
output_format_ = {.num_channels = (uint8_t)num_channels_,
.sample_rate_hz = samples_per_second,