17#ifndef OBOE_FIFOPROCESSOR_H
18#define OBOE_FIFOPROCESSOR_H
23#include "oboe/Definitions.h"
25#include "oboe/FifoControllerBase.h"
37 FifoBuffer(uint32_t bytesPerFrame, uint32_t capacityInFrames);
50 uint32_t capacityInFrames,
51 std::atomic<uint64_t> *readCounterAddress,
52 std::atomic<uint64_t> *writeCounterAddress,
53 uint8_t *dataStorageAddress);
71 int32_t
read(
void *destination, int32_t framesToRead);
80 int32_t
write(
const void *source, int32_t framesToWrite);
97 int32_t
readNow(
void *destination, int32_t numFrames);
105 return mFifo->getFullFramesAvailable();
114 return mBytesPerFrame;
123 return mFifo->getReadCounter();
132 mFifo->setReadCounter(n);
141 return mFifo->getWriteCounter();
150 mFifo->setWriteCounter(n);
154 uint32_t mBytesPerFrame;
157 std::unique_ptr<FifoControllerBase> mFifo;
158 uint64_t mFramesReadCount;
159 uint64_t mFramesUnderrunCount;
Definition FifoBuffer.h:29
FifoBuffer(uint32_t bytesPerFrame, uint32_t capacityInFrames, std::atomic< uint64_t > *readCounterAddress, std::atomic< uint64_t > *writeCounterAddress, uint8_t *dataStorageAddress)
uint64_t getReadCounter() const
Definition FifoBuffer.h:122
int32_t readNow(void *destination, int32_t numFrames)
FifoBuffer(uint32_t bytesPerFrame, uint32_t capacityInFrames)
uint32_t getBufferCapacityInFrames() const
void setWriteCounter(uint64_t n)
Definition FifoBuffer.h:149
int32_t write(const void *source, int32_t framesToWrite)
uint32_t getBytesPerFrame() const
Definition FifoBuffer.h:113
int32_t read(void *destination, int32_t framesToRead)
int32_t convertFramesToBytes(int32_t frames)
uint64_t getWriteCounter()
Definition FifoBuffer.h:140
uint32_t getFullFramesAvailable()
Definition FifoBuffer.h:104
void setReadCounter(uint64_t n)
Definition FifoBuffer.h:131