Allocates a ringbuffer data structure of a specified size. The caller must arrange for a call to jack_ringbuffer_free() to release the memory associated with the ringbuffer.
Frees the ringbuffer data structure allocated by an earlier call to jack_ringbuffer_create().
Fill a data structure with a description of the current readable data held in the ringbuffer. This description is returned in a two element array of jack_ringbuffer_data_t. Two elements are needed because the data to be read may be split across the end of the ringbuffer.
Fill a data structure with a description of the current writable space in the ringbuffer. The description is returned in a two element array of jack_ringbuffer_data_t. Two elements are needed because the space available for writing may be split across the end of the ringbuffer.
Lock a ringbuffer data block into memory.
Read data from the ringbuffer. Opposed to jack_ringbuffer_read() this function does not move the read pointer. Thus it's a convenient way to inspect data in the ringbuffer in a continous fashion. The price is that the data is copied into a user provided buffer. For "raw" non-copy inspection of the data in the ringbuffer use jack_ringbuffer_get_read_vector().
Read data from the ringbuffer.
Advance the read pointer.
Return the number of bytes available for reading.
Reset the read and write pointers, making an empty buffer.
Reset the internal "available" size, and read and write pointers, making an empty buffer.
Write data into the ringbuffer.
Advance the write pointer.
Return the number of bytes available for writing.
@file ringbuffer.h