#include <stdio.h>#include <stdlib.h>#include <math.h>#include "pa_ringbuffer.h"#include <string.h>#include "pa_memorybarrier.h"| ring_buffer_size_t PaUtil_AdvanceRingBufferReadIndex | ( | PaUtilRingBuffer * | rbuf, | |
| ring_buffer_size_t | elementCount | |||
| ) |
Advance the read index to the next location to be read.
| rbuf | The ring buffer. | |
| elementCount | The number of elements to advance. |
| ring_buffer_size_t PaUtil_AdvanceRingBufferWriteIndex | ( | PaUtilRingBuffer * | rbuf, | |
| ring_buffer_size_t | elementCount | |||
| ) |
Advance the write index to the next location to be written.
| rbuf | The ring buffer. | |
| elementCount | The number of elements to advance. |
| void PaUtil_FlushRingBuffer | ( | PaUtilRingBuffer * | rbuf | ) |
Clear buffer. Should only be called when buffer is NOT being read.
| rbuf | The ring buffer. |
| ring_buffer_size_t PaUtil_GetRingBufferReadAvailable | ( | PaUtilRingBuffer * | rbuf | ) |
Retrieve the number of elements available in the ring buffer for reading.
| rbuf | The ring buffer. |
| ring_buffer_size_t PaUtil_GetRingBufferReadRegions | ( | PaUtilRingBuffer * | rbuf, | |
| ring_buffer_size_t | elementCount, | |||
| void ** | dataPtr1, | |||
| ring_buffer_size_t * | sizePtr1, | |||
| void ** | dataPtr2, | |||
| ring_buffer_size_t * | sizePtr2 | |||
| ) |
Get address of region(s) from which we can write data.
| rbuf | The ring buffer. | |
| elementCount | The number of elements desired. | |
| dataPtr1 | The address where the first (or only) region pointer will be stored. | |
| sizePtr1 | The address where the first (or only) region length will be stored. | |
| dataPtr2 | The address where the second region pointer will be stored if the first region is too small to satisfy elementCount. | |
| sizePtr2 | The address where the second region length will be stored if the first region is too small to satisfy elementCount. |
| ring_buffer_size_t PaUtil_GetRingBufferWriteAvailable | ( | PaUtilRingBuffer * | rbuf | ) |
Retrieve the number of elements available in the ring buffer for writing.
| rbuf | The ring buffer. |
| ring_buffer_size_t PaUtil_GetRingBufferWriteRegions | ( | PaUtilRingBuffer * | rbuf, | |
| ring_buffer_size_t | elementCount, | |||
| void ** | dataPtr1, | |||
| ring_buffer_size_t * | sizePtr1, | |||
| void ** | dataPtr2, | |||
| ring_buffer_size_t * | sizePtr2 | |||
| ) |
Get address of region(s) to which we can write data.
| rbuf | The ring buffer. | |
| elementCount | The number of elements desired. | |
| dataPtr1 | The address where the first (or only) region pointer will be stored. | |
| sizePtr1 | The address where the first (or only) region length will be stored. | |
| dataPtr2 | The address where the second region pointer will be stored if the first region is too small to satisfy elementCount. | |
| sizePtr2 | The address where the second region length will be stored if the first region is too small to satisfy elementCount. |
| ring_buffer_size_t PaUtil_InitializeRingBuffer | ( | PaUtilRingBuffer * | rbuf, | |
| ring_buffer_size_t | elementSizeBytes, | |||
| ring_buffer_size_t | elementCount, | |||
| void * | dataPtr | |||
| ) |
Initialize Ring Buffer.
| rbuf | The ring buffer. | |
| elementSizeBytes | The size of a single data element in bytes. | |
| elementCount | The number of elements in the buffer (must be power of 2). | |
| dataPtr | A pointer to a previously allocated area where the data will be maintained. It must be elementCount*elementSizeBytes long. |
| ring_buffer_size_t PaUtil_ReadRingBuffer | ( | PaUtilRingBuffer * | rbuf, | |
| void * | data, | |||
| ring_buffer_size_t | elementCount | |||
| ) |
Read data from the ring buffer.
| rbuf | The ring buffer. | |
| data | The address where the data should be stored. | |
| elementCount | The number of elements to be read. |
| ring_buffer_size_t PaUtil_WriteRingBuffer | ( | PaUtilRingBuffer * | rbuf, | |
| const void * | data, | |||
| ring_buffer_size_t | elementCount | |||
| ) |
Write data to the ring buffer.
| rbuf | The ring buffer. | |
| data | The address of new data to write to the buffer. | |
| elementCount | The number of elements to be written. |
1.4.7