mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-08 04:19:07 -05:00
42 lines
907 B
C
42 lines
907 B
C
|
#ifndef INCLUDE_THREADEDSAMPLESINK_H
|
||
|
#define INCLUDE_THREADEDSAMPLESINK_H
|
||
|
|
||
|
#include <QMutex>
|
||
|
#include "samplesink.h"
|
||
|
#include "dsp/samplefifo.h"
|
||
|
#include "util/messagequeue.h"
|
||
|
#include "util/export.h"
|
||
|
|
||
|
class QThread;
|
||
|
class SampleSink;
|
||
|
|
||
|
class SDRANGELOVE_API ThreadedSampleSink : public SampleSink {
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
|
ThreadedSampleSink(SampleSink* sampleSink);
|
||
|
virtual ~ThreadedSampleSink();
|
||
|
|
||
|
MessageQueue* getMessageQueue() { return &m_messageQueue; }
|
||
|
|
||
|
void feed(SampleVector::const_iterator begin, SampleVector::const_iterator end, bool firstOfBurst);
|
||
|
void start();
|
||
|
void stop();
|
||
|
bool handleMessage(Message* cmd);
|
||
|
|
||
|
protected:
|
||
|
QMutex m_mutex;
|
||
|
QThread* m_thread;
|
||
|
MessageQueue m_messageQueue;
|
||
|
SampleFifo m_sampleFifo;
|
||
|
SampleSink* m_sampleSink;
|
||
|
|
||
|
protected slots:
|
||
|
void handleData();
|
||
|
void handleMessages();
|
||
|
void threadStarted();
|
||
|
void threadFinished();
|
||
|
};
|
||
|
|
||
|
#endif // INCLUDE_THREADEDSAMPLESINK_H
|