DAQ Driver
Streaming Class Reference

The Streaming class can be used to stream audio data. More...

#include <Driver/DriverComponents/Streaming.h>

Inheritance diagram for Streaming:
Collaboration diagram for Streaming:

Public Member Functions

 Streaming (pMessageProcessor messageProcessor)
 
void start ()
 start Start the audio stream More...
 
void stop ()
 stop Stops the audio stream More...
 
void reset ()
 reset Resets the stream More...
 
bool isStreaming () const
 isStreaming Check if there is an running data stream More...
 
void transmit (const DataBuffer &dataBuffer)
 transmit Transmits a databuffer More...
 
size_t pendingBufferCount ()
 pendingBufferCount Gets the amount of queued Databuffers More...
 
DataBuffer nextQueuedBuffer ()
 nextQueuedBuffer Gets the next queued buffer from m_dataQueue More...
 
std::shared_ptr< std::function< void()> > addNewBufferCallback (const std::function< void()> &newBufferCallback)
 addNewBufferCallback Adds callback that is called when a new buffer is recieved More...
 
bool removeNewBufferCallback (std::shared_ptr< std::function< void(void)>> callback)
 
std::shared_ptr< std::function< void()> > addStreamStartedCallback (const std::function< void()> &callback)
 
bool removeStreamStartedCallback (std::shared_ptr< std::function< void(void)>> callback)
 
std::shared_ptr< std::function< void()> > addStreamStoppedCallback (const std::function< void()> &callback)
 
bool removeStreamStoppedCallback (std::shared_ptr< std::function< void(void)>> callback)
 
- Public Member Functions inherited from AbstractDriverComponent
 AbstractDriverComponent (pMessageProcessor messageProcessor)
 

Protected Member Functions

void handleNewDataRecieved (const google::protobuf::Message &message)
 
void handleStopStreamRecieved (const google::protobuf::Message &message)
 
void handleStartStreamRecieved (const google::protobuf::Message &message)
 

Private Attributes

CallbackHandler m_streamStoppedCallbackHandler
 
CallbackHandler m_streamStartedCallbackHandler
 
CallbackHandler m_newBufferCallbackHandler
 
std::atomic< size_t > m_totalBufferCount
 
std::queue< DataBuffer > m_dataQueue
 
std::atomic_bool m_isStreaming
 
std::mutex m_dataQueueMutex
 

Additional Inherited Members

- Protected Attributes inherited from AbstractDriverComponent
pMessageProcessor m_messageProcessor
 

Detailed Description

The Streaming class can be used to stream audio data.

Definition at line 22 of file Streaming.h.

Constructor & Destructor Documentation

◆ Streaming()

Streaming::Streaming ( pMessageProcessor  messageProcessor)

Definition at line 2 of file Streaming.cpp.

Member Function Documentation

◆ addNewBufferCallback()

std::shared_ptr< std::function< void(void)> > Streaming::addNewBufferCallback ( const std::function< void()> &  newBufferCallback)

addNewBufferCallback Adds callback that is called when a new buffer is recieved

Parameters
newBufferCallbackcallback to call when a new buffer is recieved

Definition at line 62 of file Streaming.cpp.

◆ addStreamStartedCallback()

std::shared_ptr< std::function< void()> > Streaming::addStreamStartedCallback ( const std::function< void()> &  callback)

Definition at line 70 of file Streaming.cpp.

◆ addStreamStoppedCallback()

std::shared_ptr< std::function< void()> > Streaming::addStreamStoppedCallback ( const std::function< void()> &  callback)

Definition at line 78 of file Streaming.cpp.

◆ handleNewDataRecieved()

void Streaming::handleNewDataRecieved ( const google::protobuf::Message &  message)
protected

Definition at line 28 of file Streaming.cpp.

◆ handleStartStreamRecieved()

void Streaming::handleStartStreamRecieved ( const google::protobuf::Message &  message)
protected

Definition at line 95 of file Streaming.cpp.

◆ handleStopStreamRecieved()

void Streaming::handleStopStreamRecieved ( const google::protobuf::Message &  message)
protected

Definition at line 86 of file Streaming.cpp.

◆ isStreaming()

bool Streaming::isStreaming ( ) const

isStreaming Check if there is an running data stream

Returns
returns true if the stream is streaming

Definition at line 38 of file Streaming.cpp.

◆ nextQueuedBuffer()

DataBuffer Streaming::nextQueuedBuffer ( )

nextQueuedBuffer Gets the next queued buffer from m_dataQueue

Returns
next queued buffer

Definition at line 51 of file Streaming.cpp.

◆ pendingBufferCount()

size_t Streaming::pendingBufferCount ( )

pendingBufferCount Gets the amount of queued Databuffers

Returns
the amount of queued DataBuffers

Definition at line 46 of file Streaming.cpp.

◆ removeNewBufferCallback()

bool Streaming::removeNewBufferCallback ( std::shared_ptr< std::function< void(void)>>  callback)

Definition at line 66 of file Streaming.cpp.

◆ removeStreamStartedCallback()

bool Streaming::removeStreamStartedCallback ( std::shared_ptr< std::function< void(void)>>  callback)

Definition at line 74 of file Streaming.cpp.

◆ removeStreamStoppedCallback()

bool Streaming::removeStreamStoppedCallback ( std::shared_ptr< std::function< void(void)>>  callback)

Definition at line 82 of file Streaming.cpp.

◆ reset()

void Streaming::reset ( )
virtual

reset Resets the stream

Implements AbstractDriverComponent.

Definition at line 21 of file Streaming.cpp.

◆ start()

void Streaming::start ( )

start Start the audio stream

Definition at line 9 of file Streaming.cpp.

◆ stop()

void Streaming::stop ( )

stop Stops the audio stream

Definition at line 15 of file Streaming.cpp.

◆ transmit()

void Streaming::transmit ( const DataBuffer &  dataBuffer)

transmit Transmits a databuffer

Parameters
dataBufferdatabuffer to transmit

Definition at line 42 of file Streaming.cpp.

Member Data Documentation

◆ m_dataQueue

std::queue<DataBuffer> Streaming::m_dataQueue
private

Definition at line 98 of file Streaming.h.

◆ m_dataQueueMutex

std::mutex Streaming::m_dataQueueMutex
private

Definition at line 100 of file Streaming.h.

◆ m_isStreaming

std::atomic_bool Streaming::m_isStreaming
private

Definition at line 99 of file Streaming.h.

◆ m_newBufferCallbackHandler

CallbackHandler Streaming::m_newBufferCallbackHandler
private

Definition at line 96 of file Streaming.h.

◆ m_streamStartedCallbackHandler

CallbackHandler Streaming::m_streamStartedCallbackHandler
private

Definition at line 95 of file Streaming.h.

◆ m_streamStoppedCallbackHandler

CallbackHandler Streaming::m_streamStoppedCallbackHandler
private

Definition at line 94 of file Streaming.h.

◆ m_totalBufferCount

std::atomic<size_t> Streaming::m_totalBufferCount
private

Definition at line 97 of file Streaming.h.