mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-03-18 14:09:37 -04:00
FT8 demod: separate band presets for FT8 and FT4
This commit is contained in:
parent
d0ad1ae413
commit
a1d3a3403d
@ -451,8 +451,8 @@ void FT8DemodGUI::on_filterMessages_toggled(bool checked)
|
||||
void FT8DemodGUI::on_applyBandPreset_clicked()
|
||||
{
|
||||
int bandPresetIndex = ui->bandPreset->currentIndex();
|
||||
int channelShift = m_settings.m_bandPresets[bandPresetIndex].m_channelOffset; // kHz
|
||||
int baseFrequency = m_settings.m_bandPresets[bandPresetIndex].m_baseFrequency; // kHz
|
||||
int channelShift = m_settings.getBandPresets(m_settings.m_decoderMode)[bandPresetIndex].m_channelOffset; // kHz
|
||||
int baseFrequency = m_settings.getBandPresets(m_settings.m_decoderMode)[bandPresetIndex].m_baseFrequency; // kHz
|
||||
quint64 deviceFrequency = (baseFrequency - channelShift)*1000; // Hz
|
||||
m_ft8Demod->setDeviceCenterFrequency(deviceFrequency, m_settings.m_streamIndex);
|
||||
|
||||
@ -558,9 +558,16 @@ void FT8DemodGUI::on_settings_clicked()
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("bandPresets"))
|
||||
if (settingsKeys.contains("ft8BandPresets"))
|
||||
{
|
||||
m_settings.m_bandPresets = settings.m_bandPresets;
|
||||
m_settings.m_ft8BandPresets = settings.m_ft8BandPresets;
|
||||
populateBandPresets();
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("ft4BandPresets"))
|
||||
{
|
||||
m_settings.m_ft4BandPresets = settings.m_ft4BandPresets;
|
||||
populateBandPresets();
|
||||
changed = true;
|
||||
}
|
||||
@ -975,7 +982,7 @@ void FT8DemodGUI::populateBandPresets()
|
||||
ui->bandPreset->blockSignals(true);
|
||||
ui->bandPreset->clear();
|
||||
|
||||
for (const auto& bandPreset : m_settings.m_bandPresets) {
|
||||
for (const auto& bandPreset : m_settings.getBandPresets(m_settings.m_decoderMode)) {
|
||||
ui->bandPreset->addItem(bandPreset.m_name);
|
||||
}
|
||||
|
||||
|
||||
@ -74,7 +74,8 @@ void FT8DemodSettings::resetToDefaults()
|
||||
m_pskReporterCallsign = getDefaultReporterCallsign();
|
||||
m_pskReporterLocator = getDefaultReporterLocator();
|
||||
m_pskReporterSoftware = "SDRangel FT8 Demod";
|
||||
resetBandPresets();
|
||||
resetBandPresets(DecoderModeFT8);
|
||||
resetBandPresets(DecoderModeFT4);
|
||||
}
|
||||
|
||||
void FT8DemodSettings::resetBandPresets()
|
||||
@ -82,12 +83,21 @@ void FT8DemodSettings::resetBandPresets()
|
||||
resetBandPresets(m_decoderMode);
|
||||
}
|
||||
|
||||
void FT8DemodSettings::resetBandPresets(int decoderMode)
|
||||
QList<FT8DemodBandPreset>& FT8DemodSettings::getBandPresets(DecoderMode mode)
|
||||
{
|
||||
m_bandPresets = getBandPresetsForMode(decoderMode);
|
||||
if (mode == DecoderModeFT4) {
|
||||
return m_ft4BandPresets;
|
||||
} else {
|
||||
return m_ft8BandPresets;
|
||||
}
|
||||
}
|
||||
|
||||
QList<FT8DemodBandPreset> FT8DemodSettings::getBandPresetsForMode(int decoderMode)
|
||||
void FT8DemodSettings::resetBandPresets(DecoderMode decoderMode)
|
||||
{
|
||||
getBandPresets(decoderMode) = getDefaultBandPresetsForMode(decoderMode);
|
||||
}
|
||||
|
||||
QList<FT8DemodBandPreset> FT8DemodSettings::getDefaultBandPresetsForMode(DecoderMode decoderMode)
|
||||
{
|
||||
QList<FT8DemodBandPreset> bandPresets;
|
||||
|
||||
@ -158,11 +168,15 @@ QByteArray FT8DemodSettings::serialize() const
|
||||
SimpleSerializer s(1);
|
||||
QByteArray bytetmp;
|
||||
|
||||
QDataStream *stream = new QDataStream(&bytetmp, QIODevice::WriteOnly);
|
||||
*stream << m_bandPresets;
|
||||
delete stream;
|
||||
QDataStream *stream8 = new QDataStream(&bytetmp, QIODevice::WriteOnly);
|
||||
*stream8 << m_ft8BandPresets;
|
||||
delete stream8;
|
||||
s.writeBlob(2, bytetmp);
|
||||
|
||||
QDataStream *stream4 = new QDataStream(&bytetmp, QIODevice::WriteOnly);
|
||||
*stream4 << m_ft4BandPresets;
|
||||
delete stream4;
|
||||
s.writeBlob(34, bytetmp);
|
||||
|
||||
s.writeS32(1, m_inputFrequencyOffset);
|
||||
s.writeS32(3, m_volume * 10.0);
|
||||
@ -233,7 +247,19 @@ bool FT8DemodSettings::deserialize(const QByteArray& data)
|
||||
|
||||
d.readBlob(2, &bytetmp);
|
||||
QDataStream readStream(&bytetmp, QIODevice::ReadOnly);
|
||||
readStream >> m_bandPresets;
|
||||
readStream >> m_ft8BandPresets;
|
||||
|
||||
d.readBlob(34, &bytetmp);
|
||||
QDataStream readStream4(&bytetmp, QIODevice::ReadOnly);
|
||||
readStream4 >> m_ft4BandPresets;
|
||||
|
||||
if (m_ft8BandPresets.isEmpty()) {
|
||||
resetBandPresets(DecoderModeFT8);
|
||||
}
|
||||
|
||||
if (m_ft4BandPresets.isEmpty()) {
|
||||
resetBandPresets(DecoderModeFT4);
|
||||
}
|
||||
|
||||
d.readS32(1, &m_inputFrequencyOffset, 0);
|
||||
d.readS32(3, &tmp, 30);
|
||||
@ -248,8 +274,8 @@ bool FT8DemodSettings::deserialize(const QByteArray& data)
|
||||
d.readU32(5, &m_rgbColor);
|
||||
d.readBool(6, &m_recordWav, false);
|
||||
d.readBool(7, &m_logMessages, false);
|
||||
d.readS32(10, &m_decoderMode, DecoderModeFT8);
|
||||
m_decoderMode = (m_decoderMode >= DecoderModeFT8) && (m_decoderMode <= DecoderModeFT4) ? m_decoderMode : DecoderModeFT8;
|
||||
d.readS32(10, &tmp, (int) DecoderModeFT8);
|
||||
m_decoderMode = (tmp >= DecoderModeFT8) && (tmp <= DecoderModeFT4) ? (DecoderMode) tmp : DecoderModeFT8;
|
||||
d.readS32(8, &m_nbDecoderThreads, 3);
|
||||
d.readFloat(9, &m_decoderTimeBudget, 0.5);
|
||||
d.readBool(11, &m_agc, false);
|
||||
@ -386,8 +412,11 @@ void FT8DemodSettings::applySettings(const QStringList& settingsKeys, const FT8D
|
||||
if (settingsKeys.contains("filterIndex")) {
|
||||
m_filterIndex = settings.m_filterIndex;
|
||||
}
|
||||
if (settingsKeys.contains("bandPresets")) {
|
||||
m_bandPresets = settings.m_bandPresets;
|
||||
if (settingsKeys.contains("ft8BandPresets")) {
|
||||
m_ft8BandPresets = settings.m_ft8BandPresets;
|
||||
}
|
||||
if (settingsKeys.contains("ft4BandPresets")) {
|
||||
m_ft4BandPresets = settings.m_ft4BandPresets;
|
||||
}
|
||||
if (settingsKeys.contains("enablePSKReporter")) {
|
||||
m_enablePSKReporter = settings.m_enablePSKReporter;
|
||||
@ -525,17 +554,17 @@ QString FT8DemodSettings::getDefaultReporterSoftware() const
|
||||
return QCoreApplication::applicationName() + " " + QCoreApplication::applicationVersion();
|
||||
}
|
||||
|
||||
QString FT8DemodSettings::getDecoderModeString(int decoderMode)
|
||||
QString FT8DemodSettings::getDecoderModeString(DecoderMode decoderMode)
|
||||
{
|
||||
return decoderMode == DecoderModeFT4 ? "FT4" : "FT8";
|
||||
}
|
||||
|
||||
int FT8DemodSettings::getDecoderFrameDurationMs(int decoderMode)
|
||||
int FT8DemodSettings::getDecoderFrameDurationMs(DecoderMode decoderMode)
|
||||
{
|
||||
return decoderMode == DecoderModeFT4 ? 7500 : 15000;
|
||||
}
|
||||
|
||||
int FT8DemodSettings::getDecoderFrameSamples(int decoderMode)
|
||||
int FT8DemodSettings::getDecoderFrameSamples(DecoderMode decoderMode)
|
||||
{
|
||||
return (m_ft8SampleRate * getDecoderFrameDurationMs(decoderMode)) / 1000;
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ public:
|
||||
bool m_agc;
|
||||
bool m_recordWav;
|
||||
bool m_logMessages;
|
||||
int m_decoderMode;
|
||||
DecoderMode m_decoderMode;
|
||||
int m_nbDecoderThreads;
|
||||
float m_decoderTimeBudget;
|
||||
bool m_useOSD;
|
||||
@ -102,7 +102,8 @@ public:
|
||||
// FFTWindow::Function m_fftWindow;
|
||||
std::vector<FT8DemodFilterSettings> m_filterBank;
|
||||
unsigned int m_filterIndex;
|
||||
QList<FT8DemodBandPreset> m_bandPresets;
|
||||
QList<FT8DemodBandPreset> m_ft8BandPresets;
|
||||
QList<FT8DemodBandPreset> m_ft4BandPresets;
|
||||
bool m_enablePSKReporter;
|
||||
QString m_pskReporterCallsign;
|
||||
QString m_pskReporterLocator;
|
||||
@ -120,16 +121,17 @@ public:
|
||||
QByteArray serialize() const;
|
||||
bool deserialize(const QByteArray& data);
|
||||
void resetBandPresets();
|
||||
void resetBandPresets(int decoderMode);
|
||||
QList<FT8DemodBandPreset>& getBandPresets(DecoderMode mode);
|
||||
void resetBandPresets(DecoderMode decoderMode);
|
||||
QString getDefaultReporterCallsign() const;
|
||||
QString getDefaultReporterLocator() const;
|
||||
QString getDefaultReporterSoftware() const;
|
||||
void applySettings(const QStringList& settingsKeys, const FT8DemodSettings& settings);
|
||||
QString getDebugString(const QStringList& settingsKeys, bool force=false) const;
|
||||
static QString getDecoderModeString(int decoderMode);
|
||||
static int getDecoderFrameDurationMs(int decoderMode);
|
||||
static int getDecoderFrameSamples(int decoderMode);
|
||||
static QList<FT8DemodBandPreset> getBandPresetsForMode(int decoderMode);
|
||||
static QString getDecoderModeString(DecoderMode decoderMode);
|
||||
static int getDecoderFrameDurationMs(DecoderMode decoderMode);
|
||||
static int getDecoderFrameSamples(DecoderMode decoderMode);
|
||||
static QList<FT8DemodBandPreset> getDefaultBandPresetsForMode(DecoderMode decoderMode);
|
||||
static bool areBandPresetsEqual(const QList<FT8DemodBandPreset>& left, const QList<FT8DemodBandPreset>& right);
|
||||
|
||||
static const int m_ft8SampleRate;
|
||||
|
||||
@ -66,9 +66,9 @@ void FT8DemodSettingsDialog::populateBandsTable()
|
||||
{
|
||||
// Add to messages table
|
||||
int row = ui->bands->rowCount();
|
||||
m_settings.m_bandPresets = FT8DemodSettings::getBandPresetsForMode(m_settings.m_decoderMode);
|
||||
const QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
|
||||
for (const auto& band : m_settings.m_bandPresets)
|
||||
for (const auto& band : bandPresets)
|
||||
{
|
||||
ui->bands->setRowCount(row + 1);
|
||||
|
||||
@ -85,13 +85,11 @@ void FT8DemodSettingsDialog::populateBandsTable()
|
||||
editBaseFrequency->setValidator(new QIntValidator());
|
||||
editBaseFrequency->setText(tr("%1").arg(band.m_baseFrequency));
|
||||
editBaseFrequency->setAlignment(Qt::AlignRight);
|
||||
editBaseFrequency->setProperty("row", row);
|
||||
ui->bands->setCellWidget(row, BAND_BASE_FREQUENCY, editBaseFrequency);
|
||||
QLineEdit *editOffsetFrequency = new QLineEdit(ui->bands);
|
||||
editOffsetFrequency->setValidator(new QIntValidator());
|
||||
editOffsetFrequency->setText(tr("%1").arg(band.m_channelOffset));
|
||||
editOffsetFrequency->setAlignment(Qt::AlignRight);
|
||||
editOffsetFrequency->setProperty("row", row);
|
||||
ui->bands->setCellWidget(row, BAND_OFFSET_FREQUENCY, editOffsetFrequency);
|
||||
|
||||
connect(editBaseFrequency, &QLineEdit::editingFinished, this, &FT8DemodSettingsDialog::baseFrequencyCellChanged);
|
||||
@ -114,25 +112,10 @@ void FT8DemodSettingsDialog::reject()
|
||||
|
||||
void FT8DemodSettingsDialog::on_decoderMode_currentIndexChanged(int index)
|
||||
{
|
||||
const int previousDecoderMode = m_settings.m_decoderMode;
|
||||
const QList<FT8DemodBandPreset> previousDefaults = FT8DemodSettings::getBandPresetsForMode(previousDecoderMode);
|
||||
const bool hadDefaultBandPresets = FT8DemodSettings::areBandPresetsEqual(m_settings.m_bandPresets, previousDefaults);
|
||||
|
||||
m_settings.m_decoderMode = (index >= FT8DemodSettings::DecoderModeFT8) && (index <= FT8DemodSettings::DecoderModeFT4) ?
|
||||
index : FT8DemodSettings::DecoderModeFT8;
|
||||
|
||||
if (hadDefaultBandPresets)
|
||||
{
|
||||
m_settings.resetBandPresets(m_settings.m_decoderMode);
|
||||
ui->bands->blockSignals(true);
|
||||
ui->bands->setRowCount(0);
|
||||
populateBandsTable();
|
||||
ui->bands->blockSignals(false);
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
}
|
||||
}
|
||||
m_settings.m_decoderMode = static_cast<FT8DemodSettings::DecoderMode>(index);
|
||||
ui->bands->setRowCount(0);
|
||||
populateBandsTable();
|
||||
ui->bands->blockSignals(false);
|
||||
|
||||
if (!m_settingsKeys.contains("decoderMode")) {
|
||||
m_settingsKeys.append("decoderMode");
|
||||
@ -276,15 +259,20 @@ void FT8DemodSettingsDialog::on_addBand_clicked()
|
||||
newPreset.m_channelOffset = currentEditOffsetFrequency->text().toInt();
|
||||
}
|
||||
|
||||
m_settings.m_bandPresets.push_back(newPreset);
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
bandPresets.push_back(newPreset);
|
||||
ui->bands->blockSignals(true);
|
||||
ui->bands->setRowCount(0);
|
||||
populateBandsTable();
|
||||
ui->bands->scrollToBottom();
|
||||
ui->bands->blockSignals(false);
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
@ -296,11 +284,16 @@ void FT8DemodSettingsDialog::on_deleteBand_clicked()
|
||||
return;
|
||||
}
|
||||
|
||||
m_settings.m_bandPresets.removeAt(currentRow);
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
bandPresets.removeAt(currentRow);
|
||||
ui->bands->removeRow(currentRow);
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
@ -319,13 +312,18 @@ void FT8DemodSettingsDialog::on_moveBandUp_clicked()
|
||||
setRow(currentRow-1, sourceItems);
|
||||
ui->bands->blockSignals(false);
|
||||
|
||||
const auto sourceBandPreset = m_settings.m_bandPresets[currentRow];
|
||||
const auto destBandPreset = m_settings.m_bandPresets[currentRow-1];
|
||||
m_settings.m_bandPresets[currentRow] = destBandPreset;
|
||||
m_settings.m_bandPresets[currentRow-1] = sourceBandPreset;
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
const auto sourceBandPreset = bandPresets[currentRow];
|
||||
const auto destBandPreset = bandPresets[currentRow-1];
|
||||
bandPresets[currentRow] = destBandPreset;
|
||||
bandPresets[currentRow-1] = sourceBandPreset;
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,13 +342,18 @@ void FT8DemodSettingsDialog::on_moveBandDown_clicked()
|
||||
setRow(currentRow+1, sourceItems);
|
||||
ui->bands->blockSignals(false);
|
||||
|
||||
const auto sourceBandPreset = m_settings.m_bandPresets[currentRow];
|
||||
const auto destBandPreset = m_settings.m_bandPresets[currentRow+1];
|
||||
m_settings.m_bandPresets[currentRow] = destBandPreset;
|
||||
m_settings.m_bandPresets[currentRow+1] = sourceBandPreset;
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
const auto sourceBandPreset = bandPresets[currentRow];
|
||||
const auto destBandPreset = bandPresets[currentRow+1];
|
||||
bandPresets[currentRow] = destBandPreset;
|
||||
bandPresets[currentRow+1] = sourceBandPreset;
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
@ -362,19 +365,40 @@ void FT8DemodSettingsDialog::on_restoreBandPresets_clicked()
|
||||
populateBandsTable();
|
||||
ui->bands->blockSignals(false);
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
void FT8DemodSettingsDialog::textCellChanged(int row, int col)
|
||||
{
|
||||
if (col == BAND_NAME) {
|
||||
m_settings.m_bandPresets[row].m_name = ui->bands->item(row, col)->text();
|
||||
if (col == BAND_NAME)
|
||||
{
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
|
||||
if ((row < 0) || (row >= bandPresets.size())) {
|
||||
return;
|
||||
}
|
||||
|
||||
QTableWidgetItem *nameItem = ui->bands->item(row, col);
|
||||
|
||||
if (!nameItem) {
|
||||
return;
|
||||
}
|
||||
|
||||
bandPresets[row].m_name = nameItem->text();
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
@ -384,12 +408,36 @@ void FT8DemodSettingsDialog::baseFrequencyCellChanged()
|
||||
|
||||
if (editBaseFrequency)
|
||||
{
|
||||
int row = editBaseFrequency->property("row").toInt();
|
||||
m_settings.m_bandPresets[row].m_baseFrequency = editBaseFrequency->text().toInt();
|
||||
int row = -1;
|
||||
|
||||
for (int i = 0; i < ui->bands->rowCount(); ++i)
|
||||
{
|
||||
if (ui->bands->cellWidget(i, BAND_BASE_FREQUENCY) == editBaseFrequency)
|
||||
{
|
||||
row = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (row < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
|
||||
if (row >= bandPresets.size()) {
|
||||
return;
|
||||
}
|
||||
|
||||
bandPresets[row].m_baseFrequency = editBaseFrequency->text().toInt();
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
@ -399,12 +447,36 @@ void FT8DemodSettingsDialog::offsetFrequencyCellChanged()
|
||||
|
||||
if (editOffsetFrequency)
|
||||
{
|
||||
int row = editOffsetFrequency->property("row").toInt();
|
||||
m_settings.m_bandPresets[row].m_channelOffset = editOffsetFrequency->text().toInt();
|
||||
int row = -1;
|
||||
|
||||
for (int i = 0; i < ui->bands->rowCount(); ++i)
|
||||
{
|
||||
if (ui->bands->cellWidget(i, BAND_OFFSET_FREQUENCY) == editOffsetFrequency)
|
||||
{
|
||||
row = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (row < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
QList<FT8DemodBandPreset>& bandPresets = m_settings.getBandPresets(m_settings.m_decoderMode);
|
||||
|
||||
if (row >= bandPresets.size()) {
|
||||
return;
|
||||
}
|
||||
|
||||
bandPresets[row].m_channelOffset = editOffsetFrequency->text().toInt();
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("bandPresets")) {
|
||||
m_settingsKeys.append("bandPresets");
|
||||
if (!m_settingsKeys.contains("ft8BandPresets")) {
|
||||
m_settingsKeys.append("ft8BandPresets");
|
||||
}
|
||||
|
||||
if (!m_settingsKeys.contains("ft4BandPresets")) {
|
||||
m_settingsKeys.append("ft4BandPresets");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -177,7 +177,7 @@ FT8DemodWorker::FT8DemodWorker() :
|
||||
FT8DemodWorker::~FT8DemodWorker()
|
||||
{}
|
||||
|
||||
void FT8DemodWorker::setDecoderMode(int decoderMode)
|
||||
void FT8DemodWorker::setDecoderMode(FT8DemodSettings::DecoderMode decoderMode)
|
||||
{
|
||||
m_decoderMode = decoderMode;
|
||||
m_unsupportedModeWarningPending = true;
|
||||
|
||||
@ -27,6 +27,8 @@
|
||||
#include "ft4.h"
|
||||
#include "packing.h"
|
||||
|
||||
#include "ft8demodsettings.h"
|
||||
|
||||
class QDateTime;
|
||||
class MessageQueue;
|
||||
class MsgReportFT8Messages;
|
||||
@ -45,7 +47,7 @@ public:
|
||||
void setEnablePskReporter(bool enablePskReporter) { m_enablePskReporter = enablePskReporter; }
|
||||
void setNbDecoderThreads(int nbDecoderThreads) { m_nbDecoderThreads = nbDecoderThreads; }
|
||||
void setDecoderTimeBudget(float decoderTimeBudget) { m_decoderTimeBudget = decoderTimeBudget; }
|
||||
void setDecoderMode(int decoderMode);
|
||||
void setDecoderMode(FT8DemodSettings::DecoderMode decoderMode);
|
||||
void setUseOSD(bool useOSD) { m_useOSD = useOSD; }
|
||||
void setOSDDepth(int osdDepth) { m_osdDepth = osdDepth; }
|
||||
void setOSDLDPCThreshold(int osdLDPCThreshold) { m_osdLDPCThreshold = osdLDPCThreshold; }
|
||||
@ -102,7 +104,7 @@ private:
|
||||
bool m_enablePskReporter;
|
||||
int m_nbDecoderThreads;
|
||||
float m_decoderTimeBudget;
|
||||
int m_decoderMode;
|
||||
FT8DemodSettings::DecoderMode m_decoderMode;
|
||||
bool m_useOSD;
|
||||
int m_osdDepth;
|
||||
int m_osdLDPCThreshold;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user