17 DSPStream(
int size) : fifo(size), ufifo(size)
19 for (
int i = 0; i < size; i++)
22 ufifo.wait_enqueue(b);
29 while (fifo.try_dequeue(b))
32 while (ufifo.try_dequeue(b))
37 inline void wait_enqueue(
DSPBuffer b) { fifo.wait_enqueue(b); }
49 ufifo.wait_dequeue(b);
52 b.ptr = volk_malloc(size, volk_get_alignment());
56 else if (b.ptr_size < size)
59 b.ptr = volk_malloc(size, volk_get_alignment());
66 inline void free(
DSPBuffer &b) { ufifo.wait_enqueue(b); }
68 size_t size_approx() {
return fifo.size_approx(); }
69 size_t max_capacity() {
return fifo.max_capacity(); }
72 DSPBuffer newBufferTerminator(
bool prop =
true)
75 b.type = prop ? DSP_BUFFER_TYPE_TERMINATOR_PROPAGATING : DSP_BUFFER_TYPE_TERMINATOR_NON_PROPAGATING;
83 b.type = DSP_BUFFER_TYPE_SAMPLES;