summaryrefslogtreecommitdiff
path: root/src/audio/stream_event.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/stream_event.cpp')
-rw-r--r--src/audio/stream_event.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/audio/stream_event.cpp b/src/audio/stream_event.cpp
index 0a116297..e3228680 100644
--- a/src/audio/stream_event.cpp
+++ b/src/audio/stream_event.cpp
@@ -1,37 +1,37 @@
#include "stream_event.hpp"
#include <cstddef>
#include <memory>
+#include "stream_info.hpp"
namespace audio {
auto StreamEvent::CreateStreamInfo(QueueHandle_t source,
- std::unique_ptr<StreamInfo> payload)
- -> std::unique_ptr<StreamEvent> {
- auto event = std::make_unique<StreamEvent>();
+ const StreamInfo& payload) -> StreamEvent* {
+ auto event = new StreamEvent;
event->tag = StreamEvent::STREAM_INFO;
event->source = source;
- event->stream_info = std::move(payload);
+ event->stream_info = new StreamInfo(payload);
return event;
}
auto StreamEvent::CreateChunkData(QueueHandle_t source, std::size_t chunk_size)
- -> std::unique_ptr<StreamEvent> {
- auto event = std::make_unique<StreamEvent>();
+ -> StreamEvent* {
+ auto event = new StreamEvent;
event->tag = StreamEvent::CHUNK_DATA;
event->source = source;
auto raw_bytes =
static_cast<std::byte*>(heap_caps_malloc(chunk_size, MALLOC_CAP_SPIRAM));
- event->chunk_data.raw_bytes = std::make_unique<std::byte*>(raw_bytes);
+ event->chunk_data.raw_bytes = raw_bytes;
event->chunk_data.bytes = cpp::span<std::byte>(raw_bytes, chunk_size);
return event;
}
auto StreamEvent::CreateChunkNotification(QueueHandle_t source)
- -> std::unique_ptr<StreamEvent> {
- auto event = std::make_unique<StreamEvent>();
+ -> StreamEvent* {
+ auto event = new StreamEvent;
event->tag = StreamEvent::CHUNK_NOTIFICATION;
event->source = source;
return event;
@@ -44,10 +44,10 @@ StreamEvent::~StreamEvent() {
case UNINITIALISED:
break;
case STREAM_INFO:
- stream_info.reset();
+ delete stream_info;
break;
case CHUNK_DATA:
- chunk_data.raw_bytes.reset();
+ free(chunk_data.raw_bytes);
break;
case CHUNK_NOTIFICATION:
break;
@@ -61,10 +61,12 @@ StreamEvent::StreamEvent(StreamEvent&& other) {
case UNINITIALISED:
break;
case STREAM_INFO:
- stream_info = std::move(other.stream_info);
+ stream_info = other.stream_info;
+ other.stream_info = nullptr;
break;
case CHUNK_DATA:
- chunk_data = std::move(other.chunk_data);
+ chunk_data = other.chunk_data;
+ other.chunk_data = {};
break;
case CHUNK_NOTIFICATION:
break;