diff --git a/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp b/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp index 7514836aa..28ef410d4 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp +++ b/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp @@ -39,6 +39,7 @@ SDRdaemonGui::SDRdaemonGui(PluginAPI* pluginAPI, QWidget* parent) : m_sampleRate(0), m_sampleRateStream(0), m_centerFrequency(0), + m_syncLocked(false), m_samplesCount(0), m_tickCount(0), m_address("127.0.0.1"), @@ -198,6 +199,7 @@ bool SDRdaemonGui::handleMessage(const Message& message) { m_startingTimeStamp.tv_sec = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).get_tv_sec(); m_startingTimeStamp.tv_usec = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).get_tv_usec(); + m_syncLocked = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).getSyncLock(); updateWithStreamTime(); return true; } @@ -300,6 +302,12 @@ void SDRdaemonGui::updateWithStreamTime() QDateTime dt = QDateTime::fromMSecsSinceEpoch(startingTimeStampMsec); QString s_date = dt.toString("yyyy-MM-dd hh:mm:ss.zzz"); ui->absTimeText->setText(s_date); + + if (m_syncLocked) { + ui->streamLocked->setStyleSheet("QToolButton { background-color : green; }"); + } else { + ui->streamLocked->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); + } } void SDRdaemonGui::tick() diff --git a/plugins/samplesource/sdrdaemon/sdrdaemongui.h b/plugins/samplesource/sdrdaemon/sdrdaemongui.h index 346e134c2..2f307b38e 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemongui.h +++ b/plugins/samplesource/sdrdaemon/sdrdaemongui.h @@ -54,10 +54,13 @@ private: QTimer m_updateTimer; SampleSource* m_sampleSource; bool m_acquisition; + int m_sampleRate; int m_sampleRateStream; quint64 m_centerFrequency; struct timeval m_startingTimeStamp; + bool m_syncLocked; + int m_samplesCount; std::size_t m_tickCount; diff --git a/plugins/samplesource/sdrdaemon/sdrdaemoninput.h b/plugins/samplesource/sdrdaemon/sdrdaemoninput.h index 0bad392ec..7f4451df8 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemoninput.h +++ b/plugins/samplesource/sdrdaemon/sdrdaemoninput.h @@ -168,20 +168,29 @@ public: public: uint32_t get_tv_sec() const { return m_tv_sec; } uint32_t get_tv_usec() const { return m_tv_usec; } + bool getSyncLock() const { return m_syncLock; } - static MsgReportSDRdaemonStreamTiming* create(uint32_t tv_sec, uint32_t tv_usec) + static MsgReportSDRdaemonStreamTiming* create(uint32_t tv_sec, + uint32_t tv_usec, + bool syncLock) { - return new MsgReportSDRdaemonStreamTiming(tv_sec, tv_usec); + return new MsgReportSDRdaemonStreamTiming(tv_sec, + tv_usec, + syncLock); } protected: uint32_t m_tv_sec; uint32_t m_tv_usec; + bool m_syncLock; - MsgReportSDRdaemonStreamTiming(uint32_t tv_sec, uint32_t tv_usec) : + MsgReportSDRdaemonStreamTiming(uint32_t tv_sec, + uint32_t tv_usec, + bool syncLock) : Message(), m_tv_sec(tv_sec), - m_tv_usec(tv_usec) + m_tv_usec(tv_usec), + m_syncLock(syncLock) { } }; diff --git a/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp b/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp index 3342882d4..d5c907fb2 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp +++ b/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp @@ -208,7 +208,8 @@ void SDRdaemonUDPHandler::tick() m_tickCount = 0; SDRdaemonInput::MsgReportSDRdaemonStreamTiming *report = SDRdaemonInput::MsgReportSDRdaemonStreamTiming::create( m_tv_sec, - m_tv_usec); + m_tv_usec, + m_sdrDaemonBuffer.isSyncLocked()); m_outputMessageQueueToGUI->push(report); } }