mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04: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 positiveOnly);
 | |
| 	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
 |