19 #ifndef SDRBASE_DSP_BASEBANDSAMPLESOURCE_H_ 20 #define SDRBASE_DSP_BASEBANDSAMPLESOURCE_H_ 36 virtual void start() = 0;
37 virtual void stop() = 0;
38 virtual void pull(
Sample& sample) = 0;
39 virtual void pullAudio(
int nbSamples) { (void) nbSamples; }
44 SampleVector::iterator writeAt;
48 for (
int i = 0;
i < nbSamples;
i++)
57 virtual bool handleMessage(
const Message& cmd) = 0;
73 void handleInputMessages();
74 void handleWriteToFifo(
int nbSamples);
75 void handleWriteToDeviceFifo(
int nbSamples);
virtual void pullAudio(int nbSamples)
MessageQueue * getInputMessageQueue()
Get the queue for asynchronous inbound communication.
void bumpIndex(SampleVector::iterator &writeAt)
copy current item to second buffer and bump write index - write phase 2
virtual void setMessageQueueToGUI(MessageQueue *queue)
SampleSourceFifo * m_deviceSampleFifo
Reference to the device FIFO for single channel processing.
SampleSourceFifo m_sampleFifo
Internal FIFO for multi-channel processing.
MessageQueue * getMessageQueueToGUI()
MessageQueue * m_guiMessageQueue
Input message queue to the GUI.
MessageQueue m_inputMessageQueue
Queue for asynchronous inbound communication.
void feed(SampleSourceFifo *sampleFifo, int nbSamples)
void getWriteIterator(SampleVector::iterator &writeAt)
get iterator to current item for update - write phase 1
SampleSourceFifo & getSampleSourceFifo()