summaryrefslogtreecommitdiffstats
path: root/plugins/channel/nfm/nfmdemodgui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/channel/nfm/nfmdemodgui.cpp')
-rw-r--r--plugins/channel/nfm/nfmdemodgui.cpp53
1 files changed, 42 insertions, 11 deletions
diff --git a/plugins/channel/nfm/nfmdemodgui.cpp b/plugins/channel/nfm/nfmdemodgui.cpp
index d507cfd..53f2de0 100644
--- a/plugins/channel/nfm/nfmdemodgui.cpp
+++ b/plugins/channel/nfm/nfmdemodgui.cpp
@@ -11,6 +11,7 @@
#include "gui/glspectrum.h"
#include "plugin/pluginapi.h"
#include "util/simpleserializer.h"
+#include "gui/basicchannelsettingswidget.h"
const int NFMDemodGUI::m_rfBW[] = {
5000, 6250, 8330, 10000, 12500, 15000, 20000, 25000, 40000
@@ -18,22 +19,18 @@ const int NFMDemodGUI::m_rfBW[] = {
NFMDemodGUI* NFMDemodGUI::create(PluginAPI* pluginAPI)
{
- QDockWidget* dock = pluginAPI->createMainWindowDock(Qt::RightDockWidgetArea, tr("NFM Demodulator"));
- dock->setObjectName(QString::fromUtf8("NFM Demodulator"));
- NFMDemodGUI* gui = new NFMDemodGUI(pluginAPI, dock);
- dock->setWidget(gui);
+ NFMDemodGUI* gui = new NFMDemodGUI(pluginAPI);
return gui;
}
void NFMDemodGUI::destroy()
{
- delete m_dockWidget;
+ delete this;
}
-void NFMDemodGUI::setWidgetName(const QString& name)
+void NFMDemodGUI::setName(const QString& name)
{
- qDebug("NFM: %s", qPrintable(name));
- m_dockWidget->setObjectName(name);
+ setObjectName(name);
}
void NFMDemodGUI::resetToDefaults()
@@ -42,6 +39,7 @@ void NFMDemodGUI::resetToDefaults()
ui->afBW->setValue(3);
ui->volume->setValue(20);
ui->squelch->setValue(-40);
+ ui->spectrumGUI->resetToDefaults();
applySettings();
}
@@ -53,6 +51,8 @@ QByteArray NFMDemodGUI::serialize() const
s.writeS32(3, ui->afBW->value());
s.writeS32(4, ui->volume->value());
s.writeS32(5, ui->squelch->value());
+ s.writeBlob(6, ui->spectrumGUI->serialize());
+ s.writeU32(7, m_channelMarker->getColor().rgb());
return s.final();
}
@@ -66,6 +66,8 @@ bool NFMDemodGUI::deserialize(const QByteArray& data)
}
if(d.getVersion() == 1) {
+ QByteArray bytetmp;
+ quint32 u32tmp;
qint32 tmp;
d.readS32(1, &tmp, 0);
m_channelMarker->setCenterFrequency(tmp);
@@ -77,6 +79,10 @@ bool NFMDemodGUI::deserialize(const QByteArray& data)
ui->volume->setValue(tmp);
d.readS32(5, &tmp, -40);
ui->squelch->setValue(tmp);
+ d.readBlob(6, &bytetmp);
+ ui->spectrumGUI->deserialize(bytetmp);
+ if(d.readU32(7, &u32tmp))
+ m_channelMarker->setColor(u32tmp);
applySettings();
return true;
} else {
@@ -120,13 +126,34 @@ void NFMDemodGUI::on_squelch_valueChanged(int value)
applySettings();
}
-NFMDemodGUI::NFMDemodGUI(PluginAPI* pluginAPI, QDockWidget* dockWidget, QWidget* parent) :
- PluginGUI(parent),
+
+void NFMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
+{
+ /*
+ if((widget == ui->spectrumContainer) && (m_nfmDemod != NULL))
+ m_nfmDemod->setSpectrum(m_threadedSampleSink->getMessageQueue(), rollDown);
+ */
+}
+
+void NFMDemodGUI::onMenuDoubleClicked()
+{
+ if(!m_basicSettingsShown) {
+ m_basicSettingsShown = true;
+ BasicChannelSettingsWidget* bcsw = new BasicChannelSettingsWidget(m_channelMarker, this);
+ bcsw->show();
+ }
+}
+
+NFMDemodGUI::NFMDemodGUI(PluginAPI* pluginAPI, QWidget* parent) :
+ RollupWidget(parent),
ui(new Ui::NFMDemodGUI),
m_pluginAPI(pluginAPI),
- m_dockWidget(dockWidget)
+ m_basicSettingsShown(false)
{
ui->setupUi(this);
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
+ connect(this, SIGNAL(menuDoubleClickEvent()), this, SLOT(onMenuDoubleClicked()));
m_audioFifo = new AudioFifo(4, 44100 / 4);
m_spectrumVis = new SpectrumVis(ui->glSpectrum);
@@ -150,11 +177,14 @@ NFMDemodGUI::NFMDemodGUI(PluginAPI* pluginAPI, QDockWidget* dockWidget, QWidget*
connect(m_channelMarker, SIGNAL(changed()), this, SLOT(viewChanged()));
m_pluginAPI->addChannelMarker(m_channelMarker);
+ ui->spectrumGUI->setBuddies(m_threadedSampleSink->getMessageQueue(), m_spectrumVis, ui->glSpectrum);
+
applySettings();
}
NFMDemodGUI::~NFMDemodGUI()
{
+ m_pluginAPI->removeChannelInstance(this);
m_pluginAPI->removeAudioSource(m_audioFifo);
m_pluginAPI->removeSampleSink(m_threadedSampleSink);
delete m_threadedSampleSink;
@@ -168,6 +198,7 @@ NFMDemodGUI::~NFMDemodGUI()
void NFMDemodGUI::applySettings()
{
+ setTitleColor(m_channelMarker->getColor());
m_channelizer->configure(m_threadedSampleSink->getMessageQueue(),
44100,
m_channelMarker->getCenterFrequency());