From 07f16bb176f85ae76ccb41ca1afd9b560e3bee81 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 1 Aug 2015 04:07:09 +0200 Subject: [PATCH] Use main window master timer for SSB demod spectrum and Channel Analyzer spectrum and scope --- include-gpl/gui/glscope.h | 1 + include/plugin/pluginapi.h | 3 +++ plugins/channel/chanalyzer/chanalyzergui.cpp | 4 ++++ plugins/channel/ssb/ssbdemodgui.cpp | 2 ++ sdrbase/gui/glscope.cpp | 8 ++++++++ sdrbase/gui/glspectrum.cpp | 2 ++ 6 files changed, 20 insertions(+) diff --git a/include-gpl/gui/glscope.h b/include-gpl/gui/glscope.h index b5b2b2001..ce291a46c 100644 --- a/include-gpl/gui/glscope.h +++ b/include-gpl/gui/glscope.h @@ -71,6 +71,7 @@ public: void setSampleRate(int sampleRate); int getSampleRate() const { return m_sampleRate; } Mode getDataMode() const { return m_mode; } + void connectTimer(const QTimer& timer); signals: void traceSizeChanged(int); diff --git a/include/plugin/pluginapi.h b/include/plugin/pluginapi.h index d37a6b796..a26ba3414 100644 --- a/include/plugin/pluginapi.h +++ b/include/plugin/pluginapi.h @@ -47,6 +47,9 @@ public: // Sample Source stuff void registerSampleSource(const QString& sourceName, PluginInterface* plugin); + // R/O access to main window + const MainWindow* getMainWindow() const { return m_mainWindow; } + protected: PluginManager* m_pluginManager; MainWindow* m_mainWindow; diff --git a/plugins/channel/chanalyzer/chanalyzergui.cpp b/plugins/channel/chanalyzer/chanalyzergui.cpp index 468c4aba8..8c44eecce 100644 --- a/plugins/channel/chanalyzer/chanalyzergui.cpp +++ b/plugins/channel/chanalyzer/chanalyzergui.cpp @@ -11,6 +11,7 @@ #include "plugin/pluginapi.h" #include "util/simpleserializer.h" #include "gui/basicchannelsettingswidget.h" +#include "mainwindow.h" #include #include "chanalyzer.h" @@ -277,6 +278,9 @@ ChannelAnalyzerGUI::ChannelAnalyzerGUI(PluginAPI* pluginAPI, QWidget* parent) : ui->glSpectrum->setDisplayWaterfall(true); ui->glSpectrum->setDisplayMaxHold(true); ui->glSpectrum->setSsbSpectrum(true); + ui->glSpectrum->connectTimer(m_pluginAPI->getMainWindow()->getMasterTimer()); + + ui->glScope->connectTimer(m_pluginAPI->getMainWindow()->getMasterTimer()); m_channelMarker = new ChannelMarker(this); m_channelMarker->setColor(Qt::gray); diff --git a/plugins/channel/ssb/ssbdemodgui.cpp b/plugins/channel/ssb/ssbdemodgui.cpp index 7af7df3ef..95f23617a 100644 --- a/plugins/channel/ssb/ssbdemodgui.cpp +++ b/plugins/channel/ssb/ssbdemodgui.cpp @@ -12,6 +12,7 @@ #include "plugin/pluginapi.h" #include "util/simpleserializer.h" #include "gui/basicchannelsettingswidget.h" +#include "mainwindow.h" #include @@ -238,6 +239,7 @@ SSBDemodGUI::SSBDemodGUI(PluginAPI* pluginAPI, QWidget* parent) : ui->glSpectrum->setDisplayWaterfall(true); ui->glSpectrum->setDisplayMaxHold(true); ui->glSpectrum->setSsbSpectrum(true); + ui->glSpectrum->connectTimer(m_pluginAPI->getMainWindow()->getMasterTimer()); m_channelMarker = new ChannelMarker(this); m_channelMarker->setColor(Qt::green); diff --git a/sdrbase/gui/glscope.cpp b/sdrbase/gui/glscope.cpp index 9f771d7cb..4551b1d60 100644 --- a/sdrbase/gui/glscope.cpp +++ b/sdrbase/gui/glscope.cpp @@ -1435,3 +1435,11 @@ void GLScope::setTriggerPre(Real triggerPre) { m_triggerPre = triggerPre; } + +void GLScope::connectTimer(const QTimer& timer) +{ + std::cerr << "GLScope::connectTimer" << std::endl; + disconnect(&m_timer, SIGNAL(timeout()), this, SLOT(tick())); + connect(&timer, SIGNAL(timeout()), this, SLOT(tick())); + m_timer.stop(); +} diff --git a/sdrbase/gui/glspectrum.cpp b/sdrbase/gui/glspectrum.cpp index 898c808e0..001dc02ea 100644 --- a/sdrbase/gui/glspectrum.cpp +++ b/sdrbase/gui/glspectrum.cpp @@ -1546,6 +1546,8 @@ void GLSpectrum::setWaterfallShare(Real waterfallShare) void GLSpectrum::connectTimer(const QTimer& timer) { + std::cerr << "GLSpectrum::connectTimer" << std::endl; disconnect(&m_timer, SIGNAL(timeout()), this, SLOT(tick())); connect(&timer, SIGNAL(timeout()), this, SLOT(tick())); + m_timer.stop(); }