SSB modulator: use settings in GUI (1)

This commit is contained in:
f4exb 2017-10-19 00:26:03 +02:00
parent d83967d9ee
commit cf78f9199c
3 changed files with 31 additions and 7 deletions

View File

@ -119,6 +119,8 @@ void SSBDemodGUI::on_dsb_toggled(bool dsb)
ui->BWText->setText(tr("%1%2k").arg(QChar(0xB1, 0x00)).arg(bwStr)); ui->BWText->setText(tr("%1%2k").arg(QChar(0xB1, 0x00)).arg(bwStr));
ui->lowCut->setValue(0); ui->lowCut->setValue(0);
ui->lowCut->setEnabled(false); ui->lowCut->setEnabled(false);
applySettings();
} }
else else
{ {
@ -135,7 +137,6 @@ void SSBDemodGUI::on_dsb_toggled(bool dsb)
on_lowCut_valueChanged(m_channelMarker.getLowCutoff()/100); on_lowCut_valueChanged(m_channelMarker.getLowCutoff()/100);
} }
applySettings();
setNewRate(m_spanLog2); setNewRate(m_spanLog2);
} }

View File

@ -249,10 +249,14 @@ void SSBModGUI::handleSourceMessages()
void SSBModGUI::on_deltaFrequency_changed(qint64 value) void SSBModGUI::on_deltaFrequency_changed(qint64 value)
{ {
m_channelMarker.setCenterFrequency(value); m_channelMarker.setCenterFrequency(value);
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
applySettings();
} }
void SSBModGUI::on_dsb_toggled(bool checked) void SSBModGUI::on_dsb_toggled(bool checked)
{ {
m_settings.m_dsb = checked;
if (checked) if (checked)
{ {
if (ui->BW->value() < 0) { if (ui->BW->value() < 0) {
@ -266,6 +270,9 @@ void SSBModGUI::on_dsb_toggled(bool checked)
ui->lowCut->setValue(0); ui->lowCut->setValue(0);
ui->lowCut->setEnabled(false); ui->lowCut->setEnabled(false);
m_settings.m_bandwidth = ui->BW->value() * 100.0;
m_settings.m_lowCutoff = 0;
applySettings(); applySettings();
} }
else else
@ -279,6 +286,7 @@ void SSBModGUI::on_dsb_toggled(bool checked)
QString bwStr = QString::number(ui->BW->value()/10.0, 'f', 1); QString bwStr = QString::number(ui->BW->value()/10.0, 'f', 1);
ui->BWText->setText(tr("%1k").arg(bwStr)); ui->BWText->setText(tr("%1k").arg(bwStr));
ui->lowCut->setEnabled(true); ui->lowCut->setEnabled(true);
m_settings.m_bandwidth = ui->BW->value() * 100.0;
on_lowCut_valueChanged(m_channelMarker.getLowCutoff()/100); on_lowCut_valueChanged(m_channelMarker.getLowCutoff()/100);
} }
@ -286,13 +294,15 @@ void SSBModGUI::on_dsb_toggled(bool checked)
setNewRate(m_spanLog2); setNewRate(m_spanLog2);
} }
void SSBModGUI::on_audioBinaural_toggled(bool checked __attribute__((unused))) void SSBModGUI::on_audioBinaural_toggled(bool checked)
{ {
m_settings.m_audioBinaural = checked;
applySettings(); applySettings();
} }
void SSBModGUI::on_audioFlipChannels_toggled(bool checked __attribute__((unused))) void SSBModGUI::on_audioFlipChannels_toggled(bool checked)
{ {
m_settings.m_audioFlipChannels = checked;
applySettings(); applySettings();
} }
@ -300,6 +310,7 @@ void SSBModGUI::on_spanLog2_valueChanged(int value)
{ {
if (setNewRate(value)) if (setNewRate(value))
{ {
m_settings.m_spanLog2 = value;
applySettings(); applySettings();
} }
@ -319,8 +330,8 @@ void SSBModGUI::on_BW_valueChanged(int value)
ui->BWText->setText(tr("%1k").arg(s)); ui->BWText->setText(tr("%1k").arg(s));
} }
m_settings.m_bandwidth = value * 100;
on_lowCut_valueChanged(m_channelMarker.getLowCutoff()/100); on_lowCut_valueChanged(m_channelMarker.getLowCutoff()/100);
applySettings();
setNewRate(m_spanLog2); setNewRate(m_spanLog2);
} }
@ -331,6 +342,7 @@ void SSBModGUI::on_lowCut_valueChanged(int value)
QString s = QString::number(lowCutoff/1000.0, 'f', 1); QString s = QString::number(lowCutoff/1000.0, 'f', 1);
ui->lowCutText->setText(tr("%1k").arg(s)); ui->lowCutText->setText(tr("%1k").arg(s));
ui->lowCut->setValue(lowCutoff/100); ui->lowCut->setValue(lowCutoff/100);
m_settings.m_lowCutoff = ui->lowCut->value() * 100.0;
applySettings(); applySettings();
} }
@ -369,23 +381,26 @@ int SSBModGUI::getEffectiveLowCutoff(int lowCutoff)
void SSBModGUI::on_toneFrequency_valueChanged(int value) void SSBModGUI::on_toneFrequency_valueChanged(int value)
{ {
ui->toneFrequencyText->setText(QString("%1k").arg(value / 100.0, 0, 'f', 2)); ui->toneFrequencyText->setText(QString("%1k").arg(value / 100.0, 0, 'f', 2));
m_settings.m_toneFrequency = value * 10.0;
applySettings(); applySettings();
} }
void SSBModGUI::on_volume_valueChanged(int value) void SSBModGUI::on_volume_valueChanged(int value)
{ {
ui->volumeText->setText(QString("%1").arg(value / 10.0, 0, 'f', 1)); ui->volumeText->setText(QString("%1").arg(value / 10.0, 0, 'f', 1));
m_settings.m_volumeFactor = value / 10.0;
applySettings(); applySettings();
} }
void SSBModGUI::on_audioMute_toggled(bool checked) void SSBModGUI::on_audioMute_toggled(bool checked)
{ {
qDebug() << "SSBModGUI::on_audioMute_toggled: " << checked << ":" << ui->audioMute->isChecked(); m_settings.m_audioMute = checked;
applySettings(); applySettings();
} }
void SSBModGUI::on_playLoop_toggled(bool checked __attribute__((unused))) void SSBModGUI::on_playLoop_toggled(bool checked)
{ {
m_settings.m_playLoop = checked;
applySettings(); applySettings();
} }
@ -431,26 +446,30 @@ void SSBModGUI::on_mic_toggled(bool checked)
m_ssbMod->getInputMessageQueue()->push(message); m_ssbMod->getInputMessageQueue()->push(message);
} }
void SSBModGUI::on_agc_toggled(bool checked __attribute((__unused__))) void SSBModGUI::on_agc_toggled(bool checked)
{ {
m_settings.m_agc = checked;
applySettings(); applySettings();
} }
void SSBModGUI::on_agcOrder_valueChanged(int value){ void SSBModGUI::on_agcOrder_valueChanged(int value){
QString s = QString::number(value / 100.0, 'f', 2); QString s = QString::number(value / 100.0, 'f', 2);
ui->agcOrderText->setText(s); ui->agcOrderText->setText(s);
m_settings.m_agcOrder = value / 100.0;
applySettings(); applySettings();
} }
void SSBModGUI::on_agcTime_valueChanged(int value){ void SSBModGUI::on_agcTime_valueChanged(int value){
QString s = QString::number(m_agcTimeConstant[value], 'f', 0); QString s = QString::number(m_agcTimeConstant[value], 'f', 0);
ui->agcTimeText->setText(s); ui->agcTimeText->setText(s);
m_settings.m_agcTime = value * 48;
applySettings(); applySettings();
} }
void SSBModGUI::on_agcThreshold_valueChanged(int value) void SSBModGUI::on_agcThreshold_valueChanged(int value)
{ {
displayAGCPowerThreshold(value); displayAGCPowerThreshold(value);
m_settings.m_agcThreshold = value;
applySettings(); applySettings();
} }
@ -458,6 +477,7 @@ void SSBModGUI::on_agcThresholdGate_valueChanged(int value)
{ {
QString s = QString::number(value, 'f', 0); QString s = QString::number(value, 'f', 0);
ui->agcThresholdGateText->setText(s); ui->agcThresholdGateText->setText(s);
m_settings.m_agcThresholdGate = value * 48;
applySettings(); applySettings();
} }
@ -465,6 +485,7 @@ void SSBModGUI::on_agcThresholdDelay_valueChanged(int value)
{ {
QString s = QString::number(value * 10, 'f', 0); QString s = QString::number(value * 10, 'f', 0);
ui->agcThresholdDelayText->setText(s); ui->agcThresholdDelayText->setText(s);
m_settings.m_agcThresholdDelay = value * 48;
applySettings(); applySettings();
} }

View File

@ -24,6 +24,7 @@
#include "util/messagequeue.h" #include "util/messagequeue.h"
#include "ssbmod.h" #include "ssbmod.h"
#include "ssbmodsettings.h"
class PluginAPI; class PluginAPI;
class DeviceSinkAPI; class DeviceSinkAPI;
@ -97,6 +98,7 @@ private:
PluginAPI* m_pluginAPI; PluginAPI* m_pluginAPI;
DeviceSinkAPI* m_deviceAPI; DeviceSinkAPI* m_deviceAPI;
ChannelMarker m_channelMarker; ChannelMarker m_channelMarker;
SSBModSettings m_settings;
bool m_basicSettingsShown; bool m_basicSettingsShown;
bool m_doApplySettings; bool m_doApplySettings;
int m_rate; int m_rate;