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

#include <remoteinputudphandler.h>

Inherits QObject.

+ Collaboration diagram for RemoteInputUDPHandler:

Public Slots

void dataReadyRead ()
 

Public Member Functions

 RemoteInputUDPHandler (SampleSinkFifo *sampleFifo, DeviceAPI *deviceAPI)
 
 ~RemoteInputUDPHandler ()
 
void setMessageQueueToGUI (MessageQueue *queue)
 
void start ()
 
void stop ()
 
void configureUDPLink (const QString &address, quint16 port)
 
void getRemoteAddress (QString &s) const
 
int getNbOriginalBlocks () const
 
bool isStreaming () const
 
int getSampleRate () const
 
int getCenterFrequency () const
 
int getBufferGauge () const
 
uint64_t getTVmSec () const
 
int getMinNbBlocks ()
 
int getMaxNbRecovery ()
 

Private Slots

void tick ()
 

Private Member Functions

void connectTimer ()
 
void disconnectTimer ()
 
void processData ()
 

Private Attributes

DeviceAPIm_deviceAPI
 
const QTimer & m_masterTimer
 
bool m_masterTimerConnected
 
bool m_running
 
uint32_t m_rateDivider
 
RemoteInputBuffer m_remoteInputBuffer
 
QUdpSocket * m_dataSocket
 
QHostAddress m_dataAddress
 
QHostAddress m_remoteAddress
 
quint16 m_dataPort
 
bool m_dataConnected
 
char * m_udpBuf
 
qint64 m_udpReadBytes
 
SampleSinkFifom_sampleFifo
 
uint32_t m_samplerate
 
uint64_t m_centerFrequency
 
uint64_t m_tv_msec
 
MessageQueuem_outputMessageQueueToGUI
 
uint32_t m_tickCount
 
std::size_t m_samplesCount
 
QTimer * m_timer
 
QElapsedTimer m_elapsedTimer
 
int m_throttlems
 
int32_t m_readLengthSamples
 
uint32_t m_readLength
 
int32_tm_converterBuffer
 
uint32_t m_converterBufferNbSamples
 
bool m_throttleToggle
 
bool m_autoCorrBuffer
 

Detailed Description

Definition at line 36 of file remoteinputudphandler.h.

Constructor & Destructor Documentation

◆ RemoteInputUDPHandler()

RemoteInputUDPHandler::RemoteInputUDPHandler ( SampleSinkFifo sampleFifo,
DeviceAPI deviceAPI 
)

Definition at line 29 of file remoteinputudphandler.cpp.

References m_udpBuf.

29  :
30  m_deviceAPI(deviceAPI),
31  m_masterTimer(deviceAPI->getMasterTimer()),
33  m_running(false),
35  m_dataSocket(0),
36  m_dataAddress(QHostAddress::LocalHost),
37  m_remoteAddress(QHostAddress::LocalHost),
38  m_dataPort(9090),
39  m_dataConnected(false),
40  m_udpBuf(0),
41  m_udpReadBytes(0),
42  m_sampleFifo(sampleFifo),
43  m_samplerate(0),
45  m_tv_msec(0),
47  m_tickCount(0),
48  m_samplesCount(0),
49  m_timer(0),
52  m_readLength(0),
55  m_throttleToggle(false),
56  m_autoCorrBuffer(true)
57 {
58  m_udpBuf = new char[RemoteUdpSize];
59 
60 #ifdef USE_INTERNAL_TIMER
61 #warning "Uses internal timer"
62  m_timer = new QTimer();
63  m_timer->start(50);
64  m_throttlems = m_timer->interval();
65 #else
66  m_throttlems = m_masterTimer.interval();
67 #endif
68  m_rateDivider = 1000 / m_throttlems;
69 }
SampleSinkFifo * m_sampleFifo
const QTimer & getMasterTimer() const
This is the DSPEngine master timer.
Definition: deviceapi.h:173
#define REMOTEINPUT_THROTTLE_MS
MessageQueue * m_outputMessageQueueToGUI

◆ ~RemoteInputUDPHandler()

RemoteInputUDPHandler::~RemoteInputUDPHandler ( )

Definition at line 71 of file remoteinputudphandler.cpp.

References m_converterBuffer, m_timer, m_udpBuf, and stop().

72 {
73  stop();
74  delete[] m_udpBuf;
75  if (m_converterBuffer) { delete[] m_converterBuffer; }
76 #ifdef USE_INTERNAL_TIMER
77  if (m_timer) {
78  delete m_timer;
79  }
80 #endif
81 }
+ Here is the call graph for this function:

Member Function Documentation

◆ configureUDPLink()

void RemoteInputUDPHandler::configureUDPLink ( const QString &  address,
quint16  port 
)

Definition at line 144 of file remoteinputudphandler.cpp.

References m_dataAddress, m_dataPort, start(), and stop().

Referenced by RemoteInput::applySettings(), and setMessageQueueToGUI().

145 {
146  qDebug("RemoteInputUDPHandler::configureUDPLink: %s:%d", address.toStdString().c_str(), port);
147  bool addressOK = m_dataAddress.setAddress(address);
148 
149  if (!addressOK)
150  {
151  qWarning("RemoteInputUDPHandler::configureUDPLink: invalid address %s. Set to localhost.", address.toStdString().c_str());
152  m_dataAddress = QHostAddress::LocalHost;
153  }
154 
155  m_dataPort = port;
156  stop();
157  start();
158 }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ connectTimer()

void RemoteInputUDPHandler::connectTimer ( )
private

Definition at line 217 of file remoteinputudphandler.cpp.

References m_masterTimer, m_masterTimerConnected, m_timer, and tick().

Referenced by processData().

218 {
220  {
221  qDebug() << "RemoteInputUDPHandler::connectTimer";
222 #ifdef USE_INTERNAL_TIMER
223 #warning "Uses internal timer"
224  connect(m_timer, SIGNAL(timeout()), this, SLOT(tick()));
225 #else
226  connect(&m_masterTimer, SIGNAL(timeout()), this, SLOT(tick()));
227 #endif
228  m_masterTimerConnected = true;
229  }
230 }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dataReadyRead

void RemoteInputUDPHandler::dataReadyRead ( )
slot

Definition at line 160 of file remoteinputudphandler.cpp.

References m_dataConnected, m_dataSocket, m_remoteAddress, m_udpBuf, and m_udpReadBytes.

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

161 {
162  m_udpReadBytes = 0;
163 
164  while (m_dataSocket->hasPendingDatagrams() && m_dataConnected)
165  {
166  qint64 pendingDataSize = m_dataSocket->pendingDatagramSize();
167  m_udpReadBytes += m_dataSocket->readDatagram(&m_udpBuf[m_udpReadBytes], pendingDataSize, &m_remoteAddress, 0);
168 
169  if (m_udpReadBytes == RemoteUdpSize) {
170  processData();
171  m_udpReadBytes = 0;
172  }
173  }
174 }
+ Here is the caller graph for this function:

◆ disconnectTimer()

void RemoteInputUDPHandler::disconnectTimer ( )
private

Definition at line 232 of file remoteinputudphandler.cpp.

References m_masterTimer, m_masterTimerConnected, m_timer, and tick().

Referenced by stop().

233 {
235  {
236  qDebug() << "RemoteInputUDPHandler::disconnectTimer";
237 #ifdef USE_INTERNAL_TIMER
238 #warning "Uses internal timer"
239  disconnect(m_timer, SIGNAL(timeout()), this, SLOT(tick()));
240 #else
241  disconnect(&m_masterTimer, SIGNAL(timeout()), this, SLOT(tick()));
242 #endif
243  m_masterTimerConnected = false;
244  }
245 }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getBufferGauge()

int RemoteInputUDPHandler::getBufferGauge ( ) const
inline

Definition at line 51 of file remoteinputudphandler.h.

References RemoteInputBuffer::getBufferGauge(), and m_remoteInputBuffer.

Referenced by RemoteInput::webapiFormatDeviceReport().

RemoteInputBuffer m_remoteInputBuffer
int32_t getBufferGauge() const
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCenterFrequency()

int RemoteInputUDPHandler::getCenterFrequency ( ) const
inline

Definition at line 50 of file remoteinputudphandler.h.

References m_centerFrequency.

Referenced by RemoteInput::getCenterFrequency(), and RemoteInput::webapiFormatDeviceReport().

50 { return m_centerFrequency; }
+ Here is the caller graph for this function:

◆ getMaxNbRecovery()

int RemoteInputUDPHandler::getMaxNbRecovery ( )
inline

Definition at line 54 of file remoteinputudphandler.h.

References dataReadyRead(), RemoteInputBuffer::getMaxNbRecovery(), and m_remoteInputBuffer.

Referenced by RemoteInput::webapiFormatDeviceReport().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMinNbBlocks()

int RemoteInputUDPHandler::getMinNbBlocks ( )
inline

Definition at line 53 of file remoteinputudphandler.h.

References RemoteInputBuffer::getMinNbBlocks(), and m_remoteInputBuffer.

Referenced by RemoteInput::webapiFormatDeviceReport().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getNbOriginalBlocks()

int RemoteInputUDPHandler::getNbOriginalBlocks ( ) const
inline

Definition at line 47 of file remoteinputudphandler.h.

47 { return RemoteNbOrginalBlocks; }

◆ getRemoteAddress()

void RemoteInputUDPHandler::getRemoteAddress ( QString &  s) const
inline

Definition at line 46 of file remoteinputudphandler.h.

References m_remoteAddress.

Referenced by RemoteInput::applySettings().

46 { s = m_remoteAddress.toString(); }
+ Here is the caller graph for this function:

◆ getSampleRate()

int RemoteInputUDPHandler::getSampleRate ( ) const
inline

Definition at line 49 of file remoteinputudphandler.h.

References m_samplerate.

Referenced by RemoteInput::getSampleRate(), and RemoteInput::webapiFormatDeviceReport().

49 { return m_samplerate; }
+ Here is the caller graph for this function:

◆ getTVmSec()

uint64_t RemoteInputUDPHandler::getTVmSec ( ) const
inline

Definition at line 52 of file remoteinputudphandler.h.

References m_tv_msec.

Referenced by RemoteInput::webapiFormatDeviceReport().

52 { return m_tv_msec; }
+ Here is the caller graph for this function:

◆ isStreaming()

bool RemoteInputUDPHandler::isStreaming ( ) const
inline

Definition at line 48 of file remoteinputudphandler.h.

References m_masterTimerConnected.

Referenced by RemoteInput::isStreaming().

+ Here is the caller graph for this function:

◆ processData()

void RemoteInputUDPHandler::processData ( )
private

Definition at line 176 of file remoteinputudphandler.cpp.

References connectTimer(), RemoteInput::MsgReportRemoteInputStreamData::create(), RemoteInputBuffer::getCurrentMeta(), DeviceAPI::getDeviceEngineInputMessageQueue(), RemoteInputBuffer::getTVOutMSec(), RemoteMetaDataFEC::m_centerFrequency, m_centerFrequency, m_deviceAPI, m_outputMessageQueueToGUI, m_remoteInputBuffer, RemoteMetaDataFEC::m_sampleRate, m_samplerate, m_tv_msec, m_udpBuf, MessageQueue::push(), and RemoteInputBuffer::writeData().

177 {
180  bool change = false;
181 
183 
184  if (m_centerFrequency != metaData.m_centerFrequency)
185  {
187  change = true;
188  }
189 
190  if (m_samplerate != metaData.m_sampleRate)
191  {
192  m_samplerate = metaData.m_sampleRate;
193  change = true;
194  }
195 
196  if (change && (m_samplerate != 0))
197  {
198  qDebug("RemoteInputUDPHandler::processData: m_samplerate: %u S/s m_centerFrequency: %lu Hz", m_samplerate, m_centerFrequency);
199 
200  DSPSignalNotification *notif = new DSPSignalNotification(m_samplerate, m_centerFrequency); // Frequency in Hz for the DSP engine
202 
204  {
206  m_samplerate,
207  m_centerFrequency, // Frequency in Hz for the GUI
208  m_tv_msec);
209 
211  }
212 
213  connectTimer();
214  }
215 }
uint32_t m_sampleRate
12 sample rate in Hz
void push(Message *message, bool emitSignal=true)
Push message onto queue.
uint64_t getTVOutMSec() const
MessageQueue * getDeviceEngineInputMessageQueue()
Device engine message queue.
Definition: deviceapi.cpp:316
RemoteInputBuffer m_remoteInputBuffer
const RemoteMetaDataFEC & getCurrentMeta() const
void writeData(char *array)
Write data into buffer.
static MsgReportRemoteInputStreamData * create(int sampleRate, quint64 centerFrequency, uint64_t tv_msec)
Definition: remoteinput.h:111
MessageQueue * m_outputMessageQueueToGUI
uint64_t m_centerFrequency
8 center frequency in kHz
+ Here is the call graph for this function:

◆ setMessageQueueToGUI()

void RemoteInputUDPHandler::setMessageQueueToGUI ( MessageQueue queue)
inline

Definition at line 42 of file remoteinputudphandler.h.

References configureUDPLink(), m_outputMessageQueueToGUI, start(), and stop().

Referenced by RemoteInput::setMessageQueueToGUI().

42 { m_outputMessageQueueToGUI = queue; }
MessageQueue * m_outputMessageQueueToGUI
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ start()

void RemoteInputUDPHandler::start ( )

Definition at line 83 of file remoteinputudphandler.cpp.

References dataReadyRead(), m_dataAddress, m_dataConnected, m_dataPort, m_dataSocket, m_elapsedTimer, and m_running.

Referenced by configureUDPLink(), setMessageQueueToGUI(), and RemoteInput::start().

84 {
85  qDebug("RemoteInputUDPHandler::start");
86 
87  if (m_running) {
88  return;
89  }
90 
91  if (!m_dataSocket)
92  {
93  m_dataSocket = new QUdpSocket(this);
94  }
95 
96  if (!m_dataConnected)
97  {
98  connect(m_dataSocket, SIGNAL(readyRead()), this, SLOT(dataReadyRead())); //, Qt::QueuedConnection);
99 
101  {
102  qDebug("RemoteInputUDPHandler::start: bind data socket to %s:%d", m_dataAddress.toString().toStdString().c_str(), m_dataPort);
103  m_dataConnected = true;
104  }
105  else
106  {
107  qWarning("RemoteInputUDPHandler::start: cannot bind data port %d", m_dataPort);
108  disconnect(m_dataSocket, SIGNAL(readyRead()), this, SLOT(dataReadyRead()));
109  m_dataConnected = false;
110  }
111  }
112 
113  m_elapsedTimer.start();
114  m_running = true;
115 }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stop()

void RemoteInputUDPHandler::stop ( )

Definition at line 117 of file remoteinputudphandler.cpp.

References dataReadyRead(), disconnectTimer(), m_centerFrequency, m_dataConnected, m_dataSocket, m_running, and m_samplerate.

Referenced by configureUDPLink(), setMessageQueueToGUI(), RemoteInput::stop(), and ~RemoteInputUDPHandler().

118 {
119  qDebug("RemoteInputUDPHandler::stop");
120 
121  if (!m_running) {
122  return;
123  }
124 
125  disconnectTimer();
126 
127  if (m_dataConnected)
128  {
129  m_dataConnected = false;
130  disconnect(m_dataSocket, SIGNAL(readyRead()), this, SLOT(dataReadyRead()));
131  }
132 
133  if (m_dataSocket)
134  {
135  delete m_dataSocket;
136  m_dataSocket = 0;
137  }
138 
139  m_centerFrequency = 0;
140  m_samplerate = 0;
141  m_running = false;
142 }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tick

void RemoteInputUDPHandler::tick ( )
privateslot

Definition at line 247 of file remoteinputudphandler.cpp.

References RemoteInput::MsgReportRemoteInputStreamTiming::create(), RemoteInputBuffer::getAvgNbBlocks(), RemoteInputBuffer::getAvgNbRecovery(), RemoteInputBuffer::getAvgOriginalBlocks(), RemoteInputBuffer::getBufferGauge(), RemoteInputBuffer::getBufferLengthInSecs(), RemoteInputBuffer::getCurrentMeta(), RemoteInputBuffer::getMaxNbRecovery(), RemoteInputBuffer::getMinNbBlocks(), RemoteInputBuffer::getMinOriginalBlocks(), RemoteInputBuffer::getRWBalanceCorrection(), m_autoCorrBuffer, m_converterBuffer, m_converterBufferNbSamples, m_elapsedTimer, RemoteMetaDataFEC::m_nbFECBlocks, RemoteMetaDataFEC::m_nbOriginalBlocks, m_outputMessageQueueToGUI, m_rateDivider, m_readLength, m_readLengthSamples, m_remoteInputBuffer, RemoteMetaDataFEC::m_sampleBits, RemoteMetaDataFEC::m_sampleBytes, m_sampleFifo, RemoteMetaDataFEC::m_sampleRate, m_samplesCount, m_throttlems, m_throttleToggle, m_tickCount, m_tv_msec, MessageQueue::push(), RemoteInputBuffer::readData(), SDR_RX_SAMP_SZ, and SampleSinkFifo::write().

Referenced by connectTimer(), and disconnectTimer().

248 {
249  // auto throttling
250  int throttlems = m_elapsedTimer.restart();
251 
252  if (throttlems != m_throttlems)
253  {
254  m_throttlems = throttlems;
257  }
258 
259  if (m_autoCorrBuffer)
260  {
262  // Eliminate negative or excessively high values
266  }
267 
269  m_readLength = m_readLengthSamples * (metaData.m_sampleBytes & 0xF) * 2;
270 
271  if ((metaData.m_sampleBits == 16) && (SDR_RX_SAMP_SZ == 24)) // 16 -> 24 bits
272  {
274  {
275  if (m_converterBuffer) { delete[] m_converterBuffer; }
277  }
278 
280 
281  for (int is = 0; is < m_readLengthSamples; is++)
282  {
283  m_converterBuffer[2*is] = ((int16_t*)buf)[2*is]; // I
284  m_converterBuffer[2*is]<<=8;
285  m_converterBuffer[2*is+1] = ((int16_t*)buf)[2*is+1]; // Q
286  m_converterBuffer[2*is+1]<<=8;
287  }
288 
289  m_sampleFifo->write(reinterpret_cast<quint8*>(m_converterBuffer), m_readLengthSamples*sizeof(Sample));
290  }
291  else if ((metaData.m_sampleBits == 24) && (SDR_RX_SAMP_SZ == 16)) // 24 -> 16 bits
292  {
293  if (m_readLengthSamples > (int) m_converterBufferNbSamples)
294  {
295  if (m_converterBuffer) { delete[] m_converterBuffer; }
297  }
298 
300 
301  for (int is = 0; is < m_readLengthSamples; is++)
302  {
303  m_converterBuffer[is] = ((int32_t *)buf)[2*is+1]>>8; // Q -> MSB
304  m_converterBuffer[is] <<=16;
305  m_converterBuffer[is] += ((int32_t *)buf)[2*is]>>8; // I -> LSB
306  }
307 
308  m_sampleFifo->write(reinterpret_cast<quint8*>(m_converterBuffer), m_readLengthSamples*sizeof(Sample));
309  }
310  else if ((metaData.m_sampleBits == 16) || (metaData.m_sampleBits == 24)) // same sample size and valid size
311  {
312  // read samples directly feeding the SampleFifo (no callback)
315  }
316  else // invalid size
317  {
318  qWarning("RemoteInputUDPHandler::tick: unexpected sample size in stream: %d bits", (int) metaData.m_sampleBits);
319  }
320 
322  {
323  m_tickCount++;
324  }
325  else
326  {
327  m_tickCount = 0;
328 
330  {
331  int framesDecodingStatus;
332  int minNbBlocks = m_remoteInputBuffer.getMinNbBlocks();
333  int minNbOriginalBlocks = m_remoteInputBuffer.getMinOriginalBlocks();
334  int nbOriginalBlocks = m_remoteInputBuffer.getCurrentMeta().m_nbOriginalBlocks;
338 
339  //framesDecodingStatus = (minNbOriginalBlocks == nbOriginalBlocks ? 2 : (minNbOriginalBlocks < nbOriginalBlocks - nbFECblocks ? 0 : 1));
340  if (minNbBlocks < nbOriginalBlocks) {
341  framesDecodingStatus = 0;
342  } else if (minNbBlocks < nbOriginalBlocks + nbFECblocks) {
343  framesDecodingStatus = 1;
344  } else {
345  framesDecodingStatus = 2;
346  }
347 
349  m_tv_msec,
352  framesDecodingStatus,
353  minNbBlocks == nbOriginalBlocks + nbFECblocks,
354  minNbBlocks,
355  minNbOriginalBlocks,
360  nbOriginalBlocks,
361  nbFECblocks,
362  sampleBits,
363  sampleBytes);
364 
366  }
367  }
368 }
short int16_t
Definition: rtptypes_win.h:43
uint32_t m_sampleRate
12 sample rate in Hz
SampleSinkFifo * m_sampleFifo
void push(Message *message, bool emitSignal=true)
Push message onto queue.
uint write(const quint8 *data, uint count)
uint8_t * readData(int32_t length)
Read data from buffer.
static MsgReportRemoteInputStreamTiming * create(uint64_t tv_msec, float bufferLenSec, int32_t bufferGauge, int framesDecodingStatus, bool allBlocksReceived, int minNbBlocks, int minNbOriginalBlocks, int maxNbRecovery, float avgNbBlocks, float avgNbOriginalBlocks, float avgNbRecovery, int nbOriginalBlocksPerFrame, int nbFECBlocksPerFrame, int sampleBits, int sampleBytes)
Definition: remoteinput.h:149
RemoteInputBuffer m_remoteInputBuffer
float getAvgNbRecovery() const
const RemoteMetaDataFEC & getCurrentMeta() const
float getAvgNbBlocks() const
#define SDR_RX_SAMP_SZ
Definition: dsptypes.h:32
uint8_t m_sampleBytes
13 4 LSB: number of bytes per sample (2 or 4)
unsigned char uint8_t
Definition: rtptypes_win.h:42
int32_t getRWBalanceCorrection() const
uint8_t m_nbFECBlocks
16 number of blocks carrying FEC
float getBufferLengthInSecs() const
uint8_t m_sampleBits
14 number of effective bits per sample (deprecated)
int int32_t
Definition: rtptypes_win.h:45
float getAvgOriginalBlocks() const
uint8_t m_nbOriginalBlocks
15 number of blocks with original (protected) data
MessageQueue * m_outputMessageQueueToGUI
int32_t getBufferGauge() const
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_autoCorrBuffer

bool RemoteInputUDPHandler::m_autoCorrBuffer
private

Definition at line 88 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_centerFrequency

uint64_t RemoteInputUDPHandler::m_centerFrequency
private

Definition at line 74 of file remoteinputudphandler.h.

Referenced by getCenterFrequency(), processData(), and stop().

◆ m_converterBuffer

int32_t* RemoteInputUDPHandler::m_converterBuffer
private

Definition at line 85 of file remoteinputudphandler.h.

Referenced by tick(), and ~RemoteInputUDPHandler().

◆ m_converterBufferNbSamples

uint32_t RemoteInputUDPHandler::m_converterBufferNbSamples
private

Definition at line 86 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_dataAddress

QHostAddress RemoteInputUDPHandler::m_dataAddress
private

Definition at line 66 of file remoteinputudphandler.h.

Referenced by configureUDPLink(), and start().

◆ m_dataConnected

bool RemoteInputUDPHandler::m_dataConnected
private

Definition at line 69 of file remoteinputudphandler.h.

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

◆ m_dataPort

quint16 RemoteInputUDPHandler::m_dataPort
private

Definition at line 68 of file remoteinputudphandler.h.

Referenced by configureUDPLink(), and start().

◆ m_dataSocket

QUdpSocket* RemoteInputUDPHandler::m_dataSocket
private

Definition at line 65 of file remoteinputudphandler.h.

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

◆ m_deviceAPI

DeviceAPI* RemoteInputUDPHandler::m_deviceAPI
private

Definition at line 59 of file remoteinputudphandler.h.

Referenced by processData().

◆ m_elapsedTimer

QElapsedTimer RemoteInputUDPHandler::m_elapsedTimer
private

Definition at line 81 of file remoteinputudphandler.h.

Referenced by start(), and tick().

◆ m_masterTimer

const QTimer& RemoteInputUDPHandler::m_masterTimer
private

Definition at line 60 of file remoteinputudphandler.h.

Referenced by connectTimer(), and disconnectTimer().

◆ m_masterTimerConnected

bool RemoteInputUDPHandler::m_masterTimerConnected
private

Definition at line 61 of file remoteinputudphandler.h.

Referenced by connectTimer(), disconnectTimer(), and isStreaming().

◆ m_outputMessageQueueToGUI

MessageQueue* RemoteInputUDPHandler::m_outputMessageQueueToGUI
private

Definition at line 76 of file remoteinputudphandler.h.

Referenced by processData(), setMessageQueueToGUI(), and tick().

◆ m_rateDivider

uint32_t RemoteInputUDPHandler::m_rateDivider
private

Definition at line 63 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_readLength

uint32_t RemoteInputUDPHandler::m_readLength
private

Definition at line 84 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_readLengthSamples

int32_t RemoteInputUDPHandler::m_readLengthSamples
private

Definition at line 83 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_remoteAddress

QHostAddress RemoteInputUDPHandler::m_remoteAddress
private

Definition at line 67 of file remoteinputudphandler.h.

Referenced by dataReadyRead(), and getRemoteAddress().

◆ m_remoteInputBuffer

RemoteInputBuffer RemoteInputUDPHandler::m_remoteInputBuffer
private

◆ m_running

bool RemoteInputUDPHandler::m_running
private

Definition at line 62 of file remoteinputudphandler.h.

Referenced by start(), and stop().

◆ m_sampleFifo

SampleSinkFifo* RemoteInputUDPHandler::m_sampleFifo
private

Definition at line 72 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_samplerate

uint32_t RemoteInputUDPHandler::m_samplerate
private

Definition at line 73 of file remoteinputudphandler.h.

Referenced by getSampleRate(), processData(), and stop().

◆ m_samplesCount

std::size_t RemoteInputUDPHandler::m_samplesCount
private

Definition at line 78 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_throttlems

int RemoteInputUDPHandler::m_throttlems
private

Definition at line 82 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_throttleToggle

bool RemoteInputUDPHandler::m_throttleToggle
private

Definition at line 87 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_tickCount

uint32_t RemoteInputUDPHandler::m_tickCount
private

Definition at line 77 of file remoteinputudphandler.h.

Referenced by tick().

◆ m_timer

QTimer* RemoteInputUDPHandler::m_timer
private

Definition at line 79 of file remoteinputudphandler.h.

Referenced by connectTimer(), disconnectTimer(), and ~RemoteInputUDPHandler().

◆ m_tv_msec

uint64_t RemoteInputUDPHandler::m_tv_msec
private

Definition at line 75 of file remoteinputudphandler.h.

Referenced by getTVmSec(), processData(), and tick().

◆ m_udpBuf

char* RemoteInputUDPHandler::m_udpBuf
private

◆ m_udpReadBytes

qint64 RemoteInputUDPHandler::m_udpReadBytes
private

Definition at line 71 of file remoteinputudphandler.h.

Referenced by dataReadyRead().


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