![]() |
VCV Rack API v2
|
A cyclic buffer which maintains a valid linear array of size S by keeping a copy of the buffer in adjacent memory. More...
#include <ringbuffer.hpp>
Public Member Functions | |
| void | push (T t) |
| T | shift () |
| void | clear () |
| bool | empty () const |
| bool | full () const |
| size_t | size () const |
| size_t | capacity () const |
| T * | endData () |
| Returns a pointer to S consecutive elements for appending. | |
| void | endIncr (size_t n) |
| const T * | startData () const |
| Returns a pointer to S consecutive elements for consumption If any data is consumed, call startIncr afterwards. | |
| void | startIncr (size_t n) |
Public Attributes | |
| std::atomic< size_t > | start {0} |
| std::atomic< size_t > | end {0} |
| T | data [2 *S] |
A cyclic buffer which maintains a valid linear array of size S by keeping a copy of the buffer in adjacent memory.
This is not thread-safe.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Returns a pointer to S consecutive elements for appending.
If any data is appended, you must call endIncr afterwards. Pointer is invalidated when any other method is called.
|
inline |
|
inline |
Returns a pointer to S consecutive elements for consumption If any data is consumed, call startIncr afterwards.
|
inline |
| std::atomic<size_t> rack::dsp::DoubleRingBuffer< T, S >::start {0} |
| std::atomic<size_t> rack::dsp::DoubleRingBuffer< T, S >::end {0} |
| T rack::dsp::DoubleRingBuffer< T, S >::data[2 *S] |