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.
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
FileSinkOutput Class Reference

#include <filesinkoutput.h>

+ Inheritance diagram for FileSinkOutput:
+ Collaboration diagram for FileSinkOutput:

Classes

class  MsgConfigureFileSink
 
class  MsgConfigureFileSinkName
 
class  MsgConfigureFileSinkStreamTiming
 
class  MsgConfigureFileSinkWork
 
class  MsgReportFileSinkGeneration
 
class  MsgReportFileSinkStreamTiming
 
class  MsgStartStop
 

Public Member Functions

 FileSinkOutput (DeviceAPI *deviceAPI)
 
virtual ~FileSinkOutput ()
 
virtual void destroy ()
 
virtual void init ()
 initializations to be done when all collaborating objects are created and possibly connected More...
 
virtual bool start ()
 
virtual void stop ()
 
virtual QByteArray serialize () const
 
virtual bool deserialize (const QByteArray &data)
 
virtual void setMessageQueueToGUI (MessageQueue *queue)
 
virtual const QString & getDeviceDescription () const
 
virtual int getSampleRate () const
 Sample rate exposed by the sink. More...
 
virtual void setSampleRate (int sampleRate)
 For when the sink sample rate is set externally. More...
 
virtual quint64 getCenterFrequency () const
 Center frequency exposed by the sink. More...
 
virtual void setCenterFrequency (qint64 centerFrequency)
 
std::time_t getStartingTimeStamp () const
 
virtual bool handleMessage (const Message &message)
 
virtual int webapiRunGet (SWGSDRangel::SWGDeviceState &response, QString &errorMessage)
 
virtual int webapiRun (bool run, SWGSDRangel::SWGDeviceState &response, QString &errorMessage)
 
- Public Member Functions inherited from DeviceSampleSink
 DeviceSampleSink ()
 
virtual ~DeviceSampleSink ()
 
virtual int webapiSettingsGet (SWGSDRangel::SWGDeviceSettings &response, QString &errorMessage)
 
virtual int webapiSettingsPutPatch (bool force, const QStringList &deviceSettingsKeys, SWGSDRangel::SWGDeviceSettings &response, QString &errorMessage)
 
virtual int webapiReportGet (SWGSDRangel::SWGDeviceReport &response, QString &errorMessage)
 
MessageQueuegetInputMessageQueue ()
 
MessageQueuegetMessageQueueToGUI ()
 
SampleSourceFifogetSampleFifo ()
 

Private Member Functions

void openFileStream ()
 
void applySettings (const FileSinkSettings &settings, bool force=false)
 

Private Attributes

DeviceAPIm_deviceAPI
 
QMutex m_mutex
 
FileSinkSettings m_settings
 
std::ofstream m_ofstream
 
FileSinkThreadm_fileSinkThread
 
QString m_deviceDescription
 
QString m_fileName
 
std::time_t m_startingTimeStamp
 
const QTimer & m_masterTimer
 

Additional Inherited Members

- Public Types inherited from DeviceSampleSink
enum  fcPos_t { FC_POS_INFRA = 0, FC_POS_SUPRA, FC_POS_CENTER }
 
- Static Public Member Functions inherited from DeviceSampleSink
static qint64 calculateDeviceCenterFrequency (quint64 centerFrequency, qint64 transverterDeltaFrequency, int log2Interp, fcPos_t fcPos, quint32 devSampleRate, bool transverterMode=false)
 
static qint64 calculateCenterFrequency (quint64 deviceCenterFrequency, qint64 transverterDeltaFrequency, int log2Interp, fcPos_t fcPos, quint32 devSampleRate, bool transverterMode=false)
 
static qint32 calculateFrequencyShift (int log2Interp, fcPos_t fcPos, quint32 devSampleRate)
 
- Protected Slots inherited from DeviceSampleSink
void handleInputMessages ()
 
- Protected Attributes inherited from DeviceSampleSink
SampleSourceFifo m_sampleSourceFifo
 
MessageQueue m_inputMessageQueue
 Input queue to the sink. More...
 
MessageQueuem_guiMessageQueue
 Input message queue to the GUI. More...
 

Detailed Description

Definition at line 33 of file filesinkoutput.h.

Constructor & Destructor Documentation

◆ FileSinkOutput()

FileSinkOutput::FileSinkOutput ( DeviceAPI deviceAPI)

Definition at line 43 of file filesinkoutput.cpp.

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

43  :
44  m_deviceAPI(deviceAPI),
45  m_settings(),
47  m_deviceDescription("FileSink"),
48  m_fileName("./test.sdriq"),
50  m_masterTimer(deviceAPI->getMasterTimer())
51 {
53 }
DeviceAPI * m_deviceAPI
void setNbSinkStreams(uint32_t nbSinkStreams)
Definition: deviceapi.h:169
const QTimer & getMasterTimer() const
This is the DSPEngine master timer.
Definition: deviceapi.h:173
const QTimer & m_masterTimer
FileSinkSettings m_settings
QString m_deviceDescription
FileSinkThread * m_fileSinkThread
std::time_t m_startingTimeStamp
+ Here is the caller graph for this function:

◆ ~FileSinkOutput()

FileSinkOutput::~FileSinkOutput ( )
virtual

Definition at line 55 of file filesinkoutput.cpp.

References stop().

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

56 {
57  stop();
58 }
virtual void stop()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Function Documentation

◆ applySettings()

void FileSinkOutput::applySettings ( const FileSinkSettings settings,
bool  force = false 
)
private

Definition at line 274 of file filesinkoutput.cpp.

References DeviceAPI::getDeviceEngineInputMessageQueue(), FileSinkSettings::m_centerFrequency, m_deviceAPI, m_fileSinkThread, FileSinkSettings::m_log2Interp, m_mutex, FileSinkSettings::m_sampleRate, m_settings, MessageQueue::push(), FileSinkThread::setLog2Interpolation(), and FileSinkThread::setSamplerate().

Referenced by handleMessage(), and init().

275 {
276  QMutexLocker mutexLocker(&m_mutex);
277  bool forwardChange = false;
278 
279  if (force || (m_settings.m_centerFrequency != settings.m_centerFrequency))
280  {
282  forwardChange = true;
283  }
284 
285  if (force || (m_settings.m_sampleRate != settings.m_sampleRate))
286  {
288 
289  if (m_fileSinkThread != 0)
290  {
292  }
293 
294  forwardChange = true;
295  }
296 
297  if (force || (m_settings.m_log2Interp != settings.m_log2Interp))
298  {
300 
301  if (m_fileSinkThread != 0)
302  {
304  }
305 
306  forwardChange = true;
307  }
308 
309  if (forwardChange)
310  {
311  qDebug("FileSinkOutput::applySettings: forward: m_centerFrequency: %llu m_sampleRate: %llu m_log2Interp: %d",
317  }
318 
319 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
MessageQueue * getDeviceEngineInputMessageQueue()
Device engine message queue.
Definition: deviceapi.cpp:316
DeviceAPI * m_deviceAPI
void setLog2Interpolation(int log2Interpolation)
FileSinkSettings m_settings
FileSinkThread * m_fileSinkThread
void setSamplerate(int samplerate)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deserialize()

bool FileSinkOutput::deserialize ( const QByteArray &  data)
virtual

Implements DeviceSampleSink.

Definition at line 145 of file filesinkoutput.cpp.

References FileSinkOutput::MsgConfigureFileSink::create(), FileSinkSettings::deserialize(), DeviceSampleSink::m_guiMessageQueue, DeviceSampleSink::m_inputMessageQueue, m_settings, MessageQueue::push(), and FileSinkSettings::resetToDefaults().

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

146 {
147  bool success = true;
148 
149  if (!m_settings.deserialize(data))
150  {
152  success = false;
153  }
154 
155  MsgConfigureFileSink* message = MsgConfigureFileSink::create(m_settings, true);
156  m_inputMessageQueue.push(message);
157 
158  if (m_guiMessageQueue)
159  {
160  MsgConfigureFileSink* messageToGUI = MsgConfigureFileSink::create(m_settings, true);
161  m_guiMessageQueue->push(messageToGUI);
162  }
163 
164  return success;
165 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
bool deserialize(const QByteArray &data)
MessageQueue m_inputMessageQueue
Input queue to the sink.
FileSinkSettings m_settings
MessageQueue * m_guiMessageQueue
Input message queue to the GUI.
static MsgConfigureFileSink * create(const FileSinkSettings &settings, bool force)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ destroy()

void FileSinkOutput::destroy ( )
virtual

Implements DeviceSampleSink.

Definition at line 60 of file filesinkoutput.cpp.

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

61 {
62  delete this;
63 }
+ Here is the caller graph for this function:

◆ getCenterFrequency()

quint64 FileSinkOutput::getCenterFrequency ( ) const
virtual

Center frequency exposed by the sink.

Implements DeviceSampleSink.

Definition at line 177 of file filesinkoutput.cpp.

References FileSinkSettings::m_centerFrequency, and m_settings.

Referenced by setSampleRate().

178 {
180 }
FileSinkSettings m_settings
+ Here is the caller graph for this function:

◆ getDeviceDescription()

const QString & FileSinkOutput::getDeviceDescription ( ) const
virtual

Implements DeviceSampleSink.

Definition at line 167 of file filesinkoutput.cpp.

References m_deviceDescription.

Referenced by setMessageQueueToGUI().

168 {
169  return m_deviceDescription;
170 }
QString m_deviceDescription
+ Here is the caller graph for this function:

◆ getSampleRate()

int FileSinkOutput::getSampleRate ( ) const
virtual

Sample rate exposed by the sink.

Implements DeviceSampleSink.

Definition at line 172 of file filesinkoutput.cpp.

References FileSinkSettings::m_sampleRate, and m_settings.

Referenced by setMessageQueueToGUI().

173 {
174  return m_settings.m_sampleRate;
175 }
FileSinkSettings m_settings
+ Here is the caller graph for this function:

◆ getStartingTimeStamp()

std::time_t FileSinkOutput::getStartingTimeStamp ( ) const

Definition at line 197 of file filesinkoutput.cpp.

References m_startingTimeStamp.

Referenced by setSampleRate().

198 {
199  return m_startingTimeStamp;
200 }
std::time_t m_startingTimeStamp
+ Here is the caller graph for this function:

◆ handleMessage()

bool FileSinkOutput::handleMessage ( const Message message)
virtual

Implements DeviceSampleSink.

Definition at line 202 of file filesinkoutput.cpp.

References applySettings(), FileSinkOutput::MsgReportFileSinkStreamTiming::create(), FileSinkOutput::MsgConfigureFileSinkName::getFileName(), FileSinkOutput::MsgConfigureFileSink::getForce(), DeviceSampleSink::getMessageQueueToGUI(), FileSinkThread::getSamplesCount(), FileSinkOutput::MsgConfigureFileSink::getSettings(), FileSinkOutput::MsgStartStop::getStartStop(), DeviceAPI::initDeviceEngine(), FileSinkOutput::MsgConfigureFileSinkWork::isWorking(), m_deviceAPI, m_fileName, m_fileSinkThread, Message::match(), openFileStream(), MessageQueue::push(), DeviceAPI::startDeviceEngine(), FileSinkThread::startWork(), DeviceAPI::stopDeviceEngine(), and FileSinkThread::stopWork().

Referenced by setSampleRate().

203 {
204  if (MsgConfigureFileSinkName::match(message))
205  {
206  MsgConfigureFileSinkName& conf = (MsgConfigureFileSinkName&) message;
207  m_fileName = conf.getFileName();
208  openFileStream();
209  return true;
210  }
211  else if (MsgStartStop::match(message))
212  {
213  MsgStartStop& cmd = (MsgStartStop&) message;
214  qDebug() << "FileSinkOutput::handleMessage: MsgStartStop: " << (cmd.getStartStop() ? "start" : "stop");
215 
216  if (cmd.getStartStop())
217  {
219  {
221  }
222  }
223  else
224  {
226  }
227 
228  return true;
229  }
230  else if (MsgConfigureFileSink::match(message))
231  {
232  qDebug() << "FileSinkOutput::handleMessage: MsgConfigureFileSink";
233  MsgConfigureFileSink& conf = (MsgConfigureFileSink&) message;
234  applySettings(conf.getSettings(), conf.getForce());
235  return true;
236  }
237  else if (MsgConfigureFileSinkWork::match(message))
238  {
239  MsgConfigureFileSinkWork& conf = (MsgConfigureFileSinkWork&) message;
240  bool working = conf.isWorking();
241 
242  if (m_fileSinkThread != 0)
243  {
244  if (working)
245  {
247  }
248  else
249  {
251  }
252  }
253 
254  return true;
255  }
256  else if (MsgConfigureFileSinkStreamTiming::match(message))
257  {
258  MsgReportFileSinkStreamTiming *report;
259 
261  {
263  getMessageQueueToGUI()->push(report);
264  }
265 
266  return true;
267  }
268  else
269  {
270  return false;
271  }
272 }
bool startDeviceEngine()
Start the device engine corresponding to the stream type.
Definition: deviceapi.cpp:253
static MsgReportFileSinkStreamTiming * create(std::size_t samplesCount)
void push(Message *message, bool emitSignal=true)
Push message onto queue.
void stopDeviceEngine()
Stop the device engine corresponding to the stream type.
Definition: deviceapi.cpp:266
DeviceAPI * m_deviceAPI
void applySettings(const FileSinkSettings &settings, bool force=false)
bool initDeviceEngine()
Init the device engine corresponding to the stream type.
Definition: deviceapi.cpp:240
static bool match(const Message *message)
Definition: message.cpp:45
std::size_t getSamplesCount() const
MessageQueue * getMessageQueueToGUI()
FileSinkThread * m_fileSinkThread
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init()

void FileSinkOutput::init ( )
virtual

initializations to be done when all collaborating objects are created and possibly connected

Implements DeviceSampleSink.

Definition at line 86 of file filesinkoutput.cpp.

References applySettings(), and m_settings.

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

87 {
89 }
void applySettings(const FileSinkSettings &settings, bool force=false)
FileSinkSettings m_settings
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openFileStream()

void FileSinkOutput::openFileStream ( )
private

Definition at line 65 of file filesinkoutput.cpp.

References FileRecord::Header::centerFrequency, FileSinkSettings::m_centerFrequency, m_fileName, FileSinkSettings::m_log2Interp, m_ofstream, FileSinkSettings::m_sampleRate, m_settings, m_startingTimeStamp, FileRecord::Header::sampleRate, FileRecord::Header::sampleSize, SDR_RX_SAMP_SZ, FileRecord::Header::startTimeStamp, and FileRecord::writeHeader().

Referenced by handleMessage(), and start().

66 {
67  if (m_ofstream.is_open()) {
68  m_ofstream.close();
69  }
70 
71  m_ofstream.open(m_fileName.toStdString().c_str(), std::ios::binary);
72 
73  FileRecord::Header header;
74  int actualSampleRate = m_settings.m_sampleRate * (1<<m_settings.m_log2Interp);
75  header.sampleRate = actualSampleRate;
77  m_startingTimeStamp = time(0);
79  header.sampleSize = SDR_RX_SAMP_SZ;
80 
82 
83  qDebug() << "FileSinkOutput::openFileStream: " << m_fileName.toStdString().c_str();
84 }
std::ofstream m_ofstream
void writeHeader()
Definition: filerecord.cpp:155
quint64 centerFrequency
Definition: filerecord.h:38
#define SDR_RX_SAMP_SZ
Definition: dsptypes.h:32
FileSinkSettings m_settings
quint32 sampleRate
Definition: filerecord.h:37
quint32 sampleSize
Definition: filerecord.h:40
quint64 startTimeStamp
Definition: filerecord.h:39
std::time_t m_startingTimeStamp
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ serialize()

QByteArray FileSinkOutput::serialize ( ) const
virtual

Implements DeviceSampleSink.

Definition at line 140 of file filesinkoutput.cpp.

References m_settings, and FileSinkSettings::serialize().

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

141 {
142  return m_settings.serialize();
143 }
FileSinkSettings m_settings
QByteArray serialize() const
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setCenterFrequency()

void FileSinkOutput::setCenterFrequency ( qint64  centerFrequency)
virtual

Implements DeviceSampleSink.

Definition at line 182 of file filesinkoutput.cpp.

References FileSinkOutput::MsgConfigureFileSink::create(), FileSinkSettings::m_centerFrequency, DeviceSampleSink::m_guiMessageQueue, DeviceSampleSink::m_inputMessageQueue, m_settings, and MessageQueue::push().

Referenced by setSampleRate().

183 {
184  FileSinkSettings settings = m_settings;
185  settings.m_centerFrequency = centerFrequency;
186 
187  MsgConfigureFileSink* message = MsgConfigureFileSink::create(settings, false);
188  m_inputMessageQueue.push(message);
189 
190  if (m_guiMessageQueue)
191  {
192  MsgConfigureFileSink* messageToGUI = MsgConfigureFileSink::create(settings, false);
193  m_guiMessageQueue->push(messageToGUI);
194  }
195 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
MessageQueue m_inputMessageQueue
Input queue to the sink.
FileSinkSettings m_settings
MessageQueue * m_guiMessageQueue
Input message queue to the GUI.
static MsgConfigureFileSink * create(const FileSinkSettings &settings, bool force)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setMessageQueueToGUI()

virtual void FileSinkOutput::setMessageQueueToGUI ( MessageQueue queue)
inlinevirtual

Implements DeviceSampleSink.

Definition at line 185 of file filesinkoutput.h.

References getDeviceDescription(), getSampleRate(), and DeviceSampleSink::m_guiMessageQueue.

185 { m_guiMessageQueue = queue; }
MessageQueue * m_guiMessageQueue
Input message queue to the GUI.
+ Here is the call graph for this function:

◆ setSampleRate()

virtual void FileSinkOutput::setSampleRate ( int  sampleRate)
inlinevirtual

For when the sink sample rate is set externally.

Implements DeviceSampleSink.

Definition at line 188 of file filesinkoutput.h.

References getCenterFrequency(), getStartingTimeStamp(), handleMessage(), setCenterFrequency(), webapiRun(), and webapiRunGet().

188 { (void) sampleRate; }
+ Here is the call graph for this function:

◆ start()

bool FileSinkOutput::start ( )
virtual

Implements DeviceSampleSink.

Definition at line 91 of file filesinkoutput.cpp.

References FileSinkThread::connectTimer(), FileSinkOutput::MsgReportFileSinkGeneration::create(), DeviceSampleSink::getMessageQueueToGUI(), m_fileSinkThread, FileSinkSettings::m_log2Interp, m_masterTimer, m_mutex, m_ofstream, FileSinkSettings::m_sampleRate, DeviceSampleSink::m_sampleSourceFifo, m_settings, openFileStream(), MessageQueue::push(), FileSinkThread::setLog2Interpolation(), FileSinkThread::setSamplerate(), and FileSinkThread::startWork().

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming().

92 {
93  QMutexLocker mutexLocker(&m_mutex);
94  qDebug() << "FileSinkOutput::start";
95 
97 
103 
104  mutexLocker.unlock();
105  //applySettings(m_generalSettings, m_settings, true);
106  qDebug("FileSinkOutput::start: started");
107 
108  if (getMessageQueueToGUI())
109  {
110  MsgReportFileSinkGeneration *report = MsgReportFileSinkGeneration::create(true); // acquisition on
111  getMessageQueueToGUI()->push(report);
112  }
113 
114  return true;
115 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
std::ofstream m_ofstream
void setLog2Interpolation(int log2Interpolation)
const QTimer & m_masterTimer
FileSinkSettings m_settings
SampleSourceFifo m_sampleSourceFifo
void connectTimer(const QTimer &timer)
static MsgReportFileSinkGeneration * create(bool acquisition)
MessageQueue * getMessageQueueToGUI()
FileSinkThread * m_fileSinkThread
void setSamplerate(int samplerate)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stop()

void FileSinkOutput::stop ( )
virtual

Implements DeviceSampleSink.

Definition at line 117 of file filesinkoutput.cpp.

References FileSinkOutput::MsgReportFileSinkGeneration::create(), DeviceSampleSink::getMessageQueueToGUI(), m_fileSinkThread, m_mutex, m_ofstream, MessageQueue::push(), and FileSinkThread::stopWork().

Referenced by FileSinkOutput::MsgReportFileSinkStreamTiming::MsgReportFileSinkStreamTiming(), and ~FileSinkOutput().

118 {
119  qDebug() << "FileSourceInput::stop";
120  QMutexLocker mutexLocker(&m_mutex);
121 
122  if(m_fileSinkThread != 0)
123  {
125  delete m_fileSinkThread;
126  m_fileSinkThread = 0;
127  }
128 
129  if (m_ofstream.is_open()) {
130  m_ofstream.close();
131  }
132 
133  if (getMessageQueueToGUI())
134  {
135  MsgReportFileSinkGeneration *report = MsgReportFileSinkGeneration::create(false); // acquisition off
136  getMessageQueueToGUI()->push(report);
137  }
138 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
std::ofstream m_ofstream
static MsgReportFileSinkGeneration * create(bool acquisition)
MessageQueue * getMessageQueueToGUI()
FileSinkThread * m_fileSinkThread
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ webapiRun()

int FileSinkOutput::webapiRun ( bool  run,
SWGSDRangel::SWGDeviceState response,
QString &  errorMessage 
)
virtual

Reimplemented from DeviceSampleSink.

Definition at line 330 of file filesinkoutput.cpp.

References FileSinkOutput::MsgStartStop::create(), DeviceAPI::getDeviceEngineStateStr(), SWGSDRangel::SWGDeviceState::getState(), m_deviceAPI, DeviceSampleSink::m_guiMessageQueue, DeviceSampleSink::m_inputMessageQueue, and MessageQueue::push().

Referenced by setSampleRate().

334 {
335  (void) errorMessage;
337  MsgStartStop *message = MsgStartStop::create(run);
338  m_inputMessageQueue.push(message);
339 
340  if (m_guiMessageQueue)
341  {
342  MsgStartStop *messagetoGui = MsgStartStop::create(run);
343  m_guiMessageQueue->push(messagetoGui);
344  }
345 
346  return 200;
347 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
DeviceAPI * m_deviceAPI
MessageQueue m_inputMessageQueue
Input queue to the sink.
static MsgStartStop * create(bool startStop)
void getDeviceEngineStateStr(QString &state)
Definition: deviceapi.cpp:389
MessageQueue * m_guiMessageQueue
Input message queue to the GUI.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ webapiRunGet()

int FileSinkOutput::webapiRunGet ( SWGSDRangel::SWGDeviceState response,
QString &  errorMessage 
)
virtual

Reimplemented from DeviceSampleSink.

Definition at line 321 of file filesinkoutput.cpp.

References DeviceAPI::getDeviceEngineStateStr(), SWGSDRangel::SWGDeviceState::getState(), and m_deviceAPI.

Referenced by setSampleRate().

324 {
325  (void) errorMessage;
327  return 200;
328 }
DeviceAPI * m_deviceAPI
void getDeviceEngineStateStr(QString &state)
Definition: deviceapi.cpp:389
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_deviceAPI

DeviceAPI* FileSinkOutput::m_deviceAPI
private

Definition at line 205 of file filesinkoutput.h.

Referenced by applySettings(), handleMessage(), webapiRun(), and webapiRunGet().

◆ m_deviceDescription

QString FileSinkOutput::m_deviceDescription
private

Definition at line 210 of file filesinkoutput.h.

Referenced by getDeviceDescription().

◆ m_fileName

QString FileSinkOutput::m_fileName
private

◆ m_fileSinkThread

FileSinkThread* FileSinkOutput::m_fileSinkThread
private

Definition at line 209 of file filesinkoutput.h.

Referenced by applySettings(), handleMessage(), start(), and stop().

◆ m_masterTimer

const QTimer& FileSinkOutput::m_masterTimer
private

Definition at line 213 of file filesinkoutput.h.

Referenced by start().

◆ m_mutex

QMutex FileSinkOutput::m_mutex
private

Definition at line 206 of file filesinkoutput.h.

Referenced by applySettings(), start(), and stop().

◆ m_ofstream

std::ofstream FileSinkOutput::m_ofstream
private

Definition at line 208 of file filesinkoutput.h.

Referenced by openFileStream(), start(), and stop().

◆ m_settings

FileSinkSettings FileSinkOutput::m_settings
private

◆ m_startingTimeStamp

std::time_t FileSinkOutput::m_startingTimeStamp
private

Definition at line 212 of file filesinkoutput.h.

Referenced by getStartingTimeStamp(), and openFileStream().


The documentation for this class was generated from the following files: