SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
threadedbasebandsamplesource.h
Go to the documentation of this file.
1 // Copyright (C) 2016 F4EXB //
3 // written by Edouard Griffiths //
4 // //
5 // This program is free software; you can redistribute it and/or modify //
6 // it under the terms of the GNU General Public License as published by //
7 // the Free Software Foundation as version 3 of the License, or //
8 // (at your option) any later version. //
9 // //
10 // This program is distributed in the hope that it will be useful, //
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
13 // GNU General Public License V3 for more details. //
14 // //
15 // You should have received a copy of the GNU General Public License //
16 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
18 
19 #ifndef SDRBASE_DSP_THREADEDBASEBANDSAMPLESOURCE_H_
20 #define SDRBASE_DSP_THREADEDBASEBANDSAMPLESOURCE_H_
21 
22 #include <QMutex>
23 
25 #include "util/messagequeue.h"
26 #include "export.h"
27 
29 class QThread;
30 
34 class SDRBASE_API ThreadedBasebandSampleSource : public QObject {
35  Q_OBJECT
36 
37 public:
38  ThreadedBasebandSampleSource(BasebandSampleSource* sampleSource, QObject *parent = 0);
40 
41  const BasebandSampleSource *getSource() const { return m_basebandSampleSource; }
42 
43  void start();
44  void stop();
45 
46  bool handleSourceMessage(const Message& cmd);
47  void pull(Sample& sample);
48  void pullAudio(int nbSamples) { if (m_basebandSampleSource) m_basebandSampleSource->pullAudio(nbSamples); }
49 
51  void feed(SampleSourceFifo* sampleFifo,
52  int nbSamples);
53 
54  SampleSourceFifo& getSampleSourceFifo() { return m_basebandSampleSource->getSampleSourceFifo(); }
55  void setDeviceSampleSourceFifo(SampleSourceFifo *deviceSampleFifo) { m_basebandSampleSource->setDeviceSampleSourceFifo(deviceSampleFifo); }
56 
57  QString getSampleSourceObjectName() const;
58 
59 protected:
60  QThread *m_thread;
62 };
63 
64 #endif /* SDRBASE_DSP_THREADEDBASEBANDSAMPLESOURCE_H_ */
BasebandSampleSource * m_basebandSampleSource
QThread * m_thread
The thead object.
const BasebandSampleSource * getSource() const
#define SDRBASE_API
Definition: export.h:40
void setDeviceSampleSourceFifo(SampleSourceFifo *deviceSampleFifo)