8# include <freertos/stream_buffer.h>
9# include "freertos/FreeRTOS.h"
10#elif defined(__linux__)
13# include "stream_buffer.h"
35 BufferRTOS(
size_t streamBufferSize,
size_t xTriggerLevel = 1,
46 if (streamBufferSize > 0) {
56 int req_size_bytes = (
size + 1)*
sizeof(T);
74 bool read(T &result)
override {
81 if (
xStreamBuffer ==
nullptr || data ==
nullptr || len == 0)
return 0;
85 int result = xStreamBufferReceiveFromISR(
xStreamBuffer, (
void *)data,
93 return result /
sizeof(T);
95 return xStreamBufferReceive(
xStreamBuffer, (
void *)data,
sizeof(T) * len,
102 if (
xStreamBuffer ==
nullptr || data ==
nullptr || len == 0)
return 0;
107 xStreamBufferSendFromISR(
xStreamBuffer, (
void *)data,
sizeof(T) * len,
110 portYIELD_FROM_ISR();
114 return result /
sizeof(T);
116 return xStreamBufferSend(
xStreamBuffer, (
void *)data,
sizeof(T) * len,
122 bool peek(T &result)
override {
123 LOGE(
"peek not implemented");
153 return xStreamBufferBytesAvailable(
xStreamBuffer) /
sizeof(T);
159 return xStreamBufferSpacesAvailable(
xStreamBuffer) /
sizeof(T);
164 LOGE(
"address() not implemented");
196 LOGE(
"allocate falied for %d bytes",
size)
208 LOGE(
"xStreamBufferCreateStatic failed");
#define LOGD(...)
Definition AudioLoggerIDF.h:27
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define portMAX_DELAY
Definition QueueZephyr.h:14
#define pdFALSE
Definition QueueZephyr.h:23
int BaseType_t
Definition QueueZephyr.h:12
#define pdTRUE
Definition QueueZephyr.h:20
uint32_t TickType_t
Definition QueueZephyr.h:11