93 const std::chrono::microseconds&
max_wait)
const;
120 std::shared_ptr<RingBuffer>
getRingBuffer(
const std::string&
id);
125 std::shared_ptr<RingBuffer>
getRingBuffer(
const std::string&
id)
const;
135 = std::set<std::shared_ptr<RingBuffer>, std::owner_less<std::shared_ptr<RingBuffer>>>;
137 const ReadBindings* getReadBindings(
const std::string&
ringbufferId)
const;
138 ReadBindings* getReadBindings(
const std::string&
ringbufferId);
140 void removeReadBindings(
const std::string&
ringbufferId);
148 void addReaderToRingBuffer(
const std::shared_ptr<RingBuffer> &
sourceBuffer,
157 void removeReaderFromRingBuffer(
const std::shared_ptr<RingBuffer> &
sourceBuffer,
161 std::map<std::string, std::weak_ptr<RingBuffer>> ringBufferMap_ {};
164 std::map<std::string, ReadBindings> readBindingsMap_ {};
166 mutable std::recursive_mutex stateLock_ {};
170 std::shared_ptr<RingBuffer> defaultRingBuffer_;
AudioFormat getInternalAudioFormat() const
std::shared_ptr< RingBuffer > createRingBuffer(const std::string &id)
Create a new ringbuffer with a default readoffset.
std::shared_ptr< RingBuffer > getRingBuffer(const std::string &id)
Obtain a shared pointer on a RingBuffer given by its ID.
size_t availableForGet(const std::string &ringbufferId) const
void unBindAllHalfDuplexIn(const std::string &sourceBufferId)
Detaches a source from all its readers.
size_t discard(size_t toDiscard, const std::string &ringbufferId)
bool waitForDataAvailable(const std::string &ringbufferId, const std::chrono::microseconds &max_wait) const
void setAudioMeterState(const std::string &id, bool state)
void bindHalfDuplexOut(const std::string &readerBufferId, const std::string &sourceBufferId)
Attaches a reader the specified source.
std::shared_ptr< AudioFrame > getAvailableData(const std::string &ringbufferId)
void unBindAllHalfDuplexOut(const std::string &ringbufferId)
Detaches a reader from all his sources.
void setInternalSamplingRate(unsigned sr)
bool isAudioMeterActive(const std::string &id)
void bindRingBuffers(const std::string &ringbufferId1, const std::string &ringbufferId2)
Bind two RingBuffer together (full duplex).
std::shared_ptr< AudioFrame > getData(const std::string &ringbufferId)
static const char *const DEFAULT_ID
void unbindRingBuffers(const std::string &ringbufferId1, const std::string &ringbufferId2)
Unbind two RingBuffer (full duplex).
void unBindAll(const std::string &ringbufferId)
int getInternalSamplingRate() const
void flush(const std::string &ringbufferId)
void unBindHalfDuplexOut(const std::string &readerBufferId, const std::string &sourceBufferId)
Detaches a reader from the specified source.
void setInternalAudioFormat(AudioFormat format)
void emitSignal(Args... args)
Simple macro to hide class' copy constructor and assignment operator.
#define NON_COPYABLE(ClassName)