From 01be69eca1fa89c047fc29f5cb0ea8ba0898dad1 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 7 Dec 2022 15:36:47 +1100 Subject: better handling of chunk buffer --- src/audio/include/chunk.hpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/audio/include/chunk.hpp') diff --git a/src/audio/include/chunk.hpp b/src/audio/include/chunk.hpp index aadcbbdb..d55e5d9d 100644 --- a/src/audio/include/chunk.hpp +++ b/src/audio/include/chunk.hpp @@ -13,11 +13,10 @@ #include "freertos/queue.h" #include "result.hpp" #include "span.hpp" +#include "stream_buffer.hpp" namespace audio { -extern const std::size_t kMaxChunkSize; - enum ChunkWriteResult { // Returned when the callback does not write any data. CHUNK_OUT_OF_DATA, @@ -37,8 +36,7 @@ enum ChunkWriteResult { * number of bytes it wrote. Return a value of 0 to indicate that there is no * more input to read. */ -auto WriteChunksToStream(MessageBufferHandle_t* stream, - cpp::span working_buffer, +auto WriteChunksToStream(StreamBuffer* stream, std::function)> callback, TickType_t max_wait) -> ChunkWriteResult; @@ -59,7 +57,7 @@ enum ChunkReadResult { class ChunkReader { public: - ChunkReader(MessageBufferHandle_t* stream); + explicit ChunkReader(StreamBuffer* buffer); ~ChunkReader(); auto Reset() -> void; @@ -83,10 +81,7 @@ class ChunkReader { TickType_t max_wait) -> ChunkReadResult; private: - MessageBufferHandle_t* stream_; - std::byte* raw_working_buffer_; - cpp::span working_buffer_; - + StreamBuffer* stream_; std::size_t leftover_bytes_ = 0; std::size_t last_message_size_ = 0; }; -- cgit v1.2.3