summaryrefslogtreecommitdiff
path: root/src/audio/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/include')
-rw-r--r--src/audio/include/audio_decoder.hpp1
-rw-r--r--src/audio/include/fatfs_audio_input.hpp2
-rw-r--r--src/audio/include/stream_event.hpp10
3 files changed, 7 insertions, 6 deletions
diff --git a/src/audio/include/audio_decoder.hpp b/src/audio/include/audio_decoder.hpp
index aa83825f..9cc40162 100644
--- a/src/audio/include/audio_decoder.hpp
+++ b/src/audio/include/audio_decoder.hpp
@@ -44,6 +44,7 @@ class AudioDecoder : public IAudioElement {
AudioDecoder& operator=(const AudioDecoder&) = delete;
private:
+ memory::Arena arena_;
std::unique_ptr<codecs::ICodec> current_codec_;
std::optional<StreamInfo> stream_info_;
std::optional<ChunkReader> chunk_reader_;
diff --git a/src/audio/include/fatfs_audio_input.hpp b/src/audio/include/fatfs_audio_input.hpp
index 883441c2..06b0b7ea 100644
--- a/src/audio/include/fatfs_audio_input.hpp
+++ b/src/audio/include/fatfs_audio_input.hpp
@@ -4,6 +4,7 @@
#include <memory>
#include <string>
+#include "arena.hpp"
#include "chunk.hpp"
#include "freertos/FreeRTOS.h"
@@ -35,6 +36,7 @@ class FatfsAudioInput : public IAudioElement {
FatfsAudioInput& operator=(const FatfsAudioInput&) = delete;
private:
+ memory::Arena arena_;
std::shared_ptr<drivers::SdStorage> storage_;
FIL current_file_;
diff --git a/src/audio/include/stream_event.hpp b/src/audio/include/stream_event.hpp
index d42de411..6d270e9d 100644
--- a/src/audio/include/stream_event.hpp
+++ b/src/audio/include/stream_event.hpp
@@ -2,6 +2,7 @@
#include <memory>
+#include "arena.hpp"
#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
@@ -13,7 +14,7 @@ namespace audio {
struct StreamEvent {
static auto CreateStreamInfo(QueueHandle_t source, const StreamInfo& payload)
-> StreamEvent*;
- static auto CreateChunkData(QueueHandle_t source, std::size_t chunk_size)
+ static auto CreateArenaChunk(QueueHandle_t source, memory::ArenaPtr ptr)
-> StreamEvent*;
static auto CreateChunkNotification(QueueHandle_t source) -> StreamEvent*;
static auto CreateEndOfStream(QueueHandle_t source) -> StreamEvent*;
@@ -28,7 +29,7 @@ struct StreamEvent {
enum {
UNINITIALISED,
STREAM_INFO,
- CHUNK_DATA,
+ ARENA_CHUNK,
CHUNK_NOTIFICATION,
END_OF_STREAM,
LOG_STATUS,
@@ -37,10 +38,7 @@ struct StreamEvent {
union {
StreamInfo* stream_info;
- struct {
- std::byte* raw_bytes;
- cpp::span<std::byte> bytes;
- } chunk_data;
+ memory::ArenaPtr arena_chunk;
// FIXME: It would be nice to also support a pointer to himem data here, to
// save a little ordinary heap space.