35 m_pBuffer(m_buffer.data()),
37 m_pBufferEnd(m_pBuffer + size),
38 m_pReadPointer(m_pBuffer),
39 m_pWritePointer(m_pBuffer),
51 m_filled.store(0, std::memory_order_release);
127 m_filled.fetch_add(
cnt, std::memory_order_release);
170 n =
m_filled.load(std::memory_order_acquire);
191 m_filled.fetch_sub(
cnt, std::memory_order_release);
207 n =
m_filled.load(std::memory_order_acquire);
232 m_filled.fetch_sub(
cnt, std::memory_order_release);
281 return m_filled.load(std::memory_order_acquire);
size_t GetWritePointer(void **)
Get write pointer and free bytes at this position of ring buffer.
size_t m_size
bytes in buffer (for faster calc)
char * m_pWritePointer
only used by writer
std::atomic< size_t > m_filled
how many of the buffer is used
size_t Read(void *, size_t)
Read from a ring buffer.
size_t UsedBytes(void)
Get used bytes in ring buffer.
size_t WriteAdvance(size_t)
Advance write pointer in ring buffer.
size_t FreeBytes(void)
Get free bytes in ring buffer.
cSoftHdRingbuffer(size_t)
cSoftHdRingbuffer constructor
size_t ReadAdvance(size_t)
Advance read pointer in ring buffer.
const char * m_pReadPointer
only used by reader
size_t GetReadPointer(const void **)
Get read pointer and used bytes at this position of ring buffer.
const char * m_pBufferEnd
end of buffer
size_t Write(const void *, size_t)
Write to a ring buffer.
char * m_pBuffer
pointer ring buffer data
void Reset(void)
Reset ring buffer pointers.
Audio Ringbuffer Header File.