Buffer implementation which is based on a RP2040 queue. This class is intended to be used to exchange data between the 2 different cores. Multi-core and IRQ safe queue implementation!
More...
|
|
| BufferRP2040T (int bufferCount) |
| |
|
| BufferRP2040T (size_t bufferSize, int bufferCount) |
| |
| T * | address () override |
| | returns the address of the start of the physical read 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
|
| |
| virtual int | clearArray (int len) |
| | Removes the next len entries.
|
| |
|
bool | isEmpty () |
| |
| bool | isFull () override |
| | checks if the buffer is full
|
| |
|
virtual float | levelPercent () |
| | Returns the level of the buffer in %.
|
| |
| bool | peek (T &result) override |
| | peeks the actual entry from the buffer
|
| |
| bool | read (T &data) |
| | reads a single value
|
| |
| int | readArray (T data[], int len) override |
| | reads multiple values
|
| |
| void | reset () override |
| | clears the buffer
|
| |
| virtual bool | resize (int bytes) |
| | Resizes the buffer if supported: returns false if not supported.
|
| |
|
bool | resize (size_t size) |
| | Re-Allocats the memory and the queue (size is in entries)
|
| |
|
void | setBlockingRead (bool flag) |
| | When we use a blockingread, the we wait for the data to be available.
|
| |
|
void | setBlockingWrite (bool flag) |
| | When we use a non blocking write, the write size must be identical with the buffer size.
|
| |
| size_t | size () |
| |
| bool | write (T data) override |
| | write add an entry to the buffer
|
| |
| int | writeArray (const T data[], int len) override |
| | 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.
|
| |
template<typename T>
class audio_tools::BufferRP2040T< T >
Buffer implementation which is based on a RP2040 queue. This class is intended to be used to exchange data between the 2 different cores. Multi-core and IRQ safe queue implementation!
In order to increase the efficiency we to not enqueue individual items but write them into a temporary buffer of bufferSize and write this array to the queue when it is full.
- Author
- Phil Schatzmann
- Copyright
- GPLv3 *
- Template Parameters
-