arduino-audio-tools
|
A simple Buffer implementation which just uses a (dynamically sized) array. More...
#include <Buffers.h>
Public Member Functions | |
SingleBuffer () | |
Construct a new Single Buffer w/o allocating any memory. | |
SingleBuffer (int size) | |
Construct a new Single Buffer object. | |
T * | address () override |
Provides address to beginning of the buffer. | |
int | available () override |
provides the number of entries that are available to read | |
int | availableForWrite () override |
provides the number of entries that are available to write | |
void | clear () |
same as reset | |
int | clearArray (int len) override |
consumes len bytes and moves current data to the beginning | |
T * | data () |
Provides address of actual data. | |
bool | isEmpty () |
bool | isFull () override |
checks if the buffer is full | |
virtual float | levelPercent () |
Returns the level of the buffer in %. | |
void | onExternalBufferRefilled (void *data, int len) |
notifies that the external buffer has been refilled | |
T | peek () override |
peeks the actual entry from the buffer | |
T | read () override |
reads a single value | |
virtual int | readArray (T data[], int len) |
reads multiple values | |
int | readFrames (T data[][2], int len) |
reads multiple values for array of 2 dimensional frames | |
template<int rows, int channels> | |
int | readFrames (T(&data)[rows][channels]) |
void | reset () override |
clears the buffer | |
void | resize (int size) |
size_t | setAvailable (size_t available_size) |
void | setClearWithZero (bool flag) |
Sets the buffer to 0 on clear. | |
size_t | size () |
bool | write (T sample) override |
write add an entry to the buffer | |
virtual int | writeArray (const T data[], int len) |
Fills the buffer data. | |
virtual int | writeArrayOverwrite (const T data[], int len) |
Fills the buffer data and overwrites the oldest data if the buffer is full. | |
Protected Member Functions | |
void | setWritePos (int pos) |
Protected Attributes | |
Vector< T > | buffer {0} |
int | current_read_pos = 0 |
int | current_write_pos = 0 |
bool | is_clear_with_zero = false |
friend | NBuffer< T > |
bool | owns_buffer = true |
A simple Buffer implementation which just uses a (dynamically sized) array.
|
inline |
Construct a new Single Buffer object.
size |
Provides address to beginning of the buffer.
Implements BaseBuffer< T >.
provides the number of entries that are available to read
Implements BaseBuffer< T >.
provides the number of entries that are available to write
Implements BaseBuffer< T >.
consumes len bytes and moves current data to the beginning
Reimplemented from BaseBuffer< T >.
checks if the buffer is full
Implements BaseBuffer< T >.
peeks the actual entry from the buffer
Implements BaseBuffer< T >.
reads a single value
Implements BaseBuffer< T >.
reads multiple values
Reimplemented in RingBufferFile< File, T >, BufferRTOS< T >, SynchronizedBuffer< T >, and BufferRP2040T< T >.
clears the buffer
Implements BaseBuffer< T >.
If we load values directly into the address we need to set the avialeble size
Implements BaseBuffer< T >.
write add an entry to the buffer
Implements BaseBuffer< T >.
Fills the buffer data.
Reimplemented in BufferRTOS< T >, SynchronizedBuffer< T >, BufferRP2040T< T >, and RingBufferFile< File, T >.