Cocoa Port:
- Clean up some #include stuff in ringbuffer.cpp/.h - Add/fix some comments in ringbuffer.cpp/.h - Add accessor for _bufferFillSize
This commit is contained in:
parent
b209420a38
commit
17d3c59485
|
@ -17,6 +17,9 @@
|
||||||
|
|
||||||
#include "ringbuffer.h"
|
#include "ringbuffer.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <libkern/OSAtomic.h>
|
||||||
|
|
||||||
|
|
||||||
RingBuffer::RingBuffer(size_t numberElements, size_t newBufferElementSize)
|
RingBuffer::RingBuffer(size_t numberElements, size_t newBufferElementSize)
|
||||||
{
|
{
|
||||||
|
@ -124,7 +127,7 @@ size_t RingBuffer::write(const void *__restrict__ srcBuffer, size_t requestedNum
|
||||||
hiBufferAvailable = inputDataSize - inputDataWritePos;
|
hiBufferAvailable = inputDataSize - inputDataWritePos;
|
||||||
loBufferAvailable = inputDataReadPos;
|
loBufferAvailable = inputDataReadPos;
|
||||||
|
|
||||||
// Subtract a sample's worth of bytes
|
// Subtract one element's worth of bytes
|
||||||
if (loBufferAvailable > 0)
|
if (loBufferAvailable > 0)
|
||||||
{
|
{
|
||||||
loBufferAvailable -= 1;
|
loBufferAvailable -= 1;
|
||||||
|
@ -173,6 +176,11 @@ size_t RingBuffer::write(const void *__restrict__ srcBuffer, size_t requestedNum
|
||||||
return requestedNumberBytes;
|
return requestedNumberBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t RingBuffer::getBufferFillSize()
|
||||||
|
{
|
||||||
|
return (size_t)this->_bufferFillSize;
|
||||||
|
}
|
||||||
|
|
||||||
size_t RingBuffer::getAvailableElements()
|
size_t RingBuffer::getAvailableElements()
|
||||||
{
|
{
|
||||||
return ((this->_bufferSize - this->_bufferFillSize) / this->_elementSize) - 1;
|
return ((this->_bufferSize - this->_bufferFillSize) / this->_elementSize) - 1;
|
||||||
|
|
|
@ -19,8 +19,7 @@
|
||||||
#define _RINGBUFFER_
|
#define _RINGBUFFER_
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <stdint.h>
|
||||||
#include <libkern/OSAtomic.h>
|
|
||||||
|
|
||||||
|
|
||||||
class RingBuffer
|
class RingBuffer
|
||||||
|
@ -31,7 +30,7 @@ private:
|
||||||
size_t _bufferSize;
|
size_t _bufferSize;
|
||||||
size_t _numElements;
|
size_t _numElements;
|
||||||
size_t _elementSize;
|
size_t _elementSize;
|
||||||
int32_t _bufferFillSize;
|
int32_t _bufferFillSize; // need to use int32_t for OSAtomicAdd32Barrier()
|
||||||
size_t _readPosition;
|
size_t _readPosition;
|
||||||
size_t _writePosition;
|
size_t _writePosition;
|
||||||
|
|
||||||
|
@ -42,6 +41,7 @@ public:
|
||||||
void clear();
|
void clear();
|
||||||
size_t read(void *__restrict__ destBuffer, size_t requestedNumberBytes);
|
size_t read(void *__restrict__ destBuffer, size_t requestedNumberBytes);
|
||||||
size_t write(const void *__restrict__ srcBuffer, size_t requestedNumberBytes);
|
size_t write(const void *__restrict__ srcBuffer, size_t requestedNumberBytes);
|
||||||
|
size_t getBufferFillSize();
|
||||||
size_t getAvailableElements();
|
size_t getAvailableElements();
|
||||||
size_t getElementSize();
|
size_t getElementSize();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue