diff --git a/plugins/channelrx/demodm17/m17demod.cpp b/plugins/channelrx/demodm17/m17demod.cpp index 501708391..ea771b689 100644 --- a/plugins/channelrx/demodm17/m17demod.cpp +++ b/plugins/channelrx/demodm17/m17demod.cpp @@ -65,7 +65,7 @@ M17Demod::M17Demod(DeviceAPI *deviceAPI) : m_basebandSink->setDemodInputMessageQueue(&m_inputMessageQueue); m_basebandSink->moveToThread(m_thread); - applySettings(m_settings, true); + applySettings(m_settings, QList(), true); m_deviceAPI->addChannelSink(this); m_deviceAPI->addChannelSinkAPI(this); @@ -150,7 +150,7 @@ bool M17Demod::handleMessage(const Message& cmd) { MsgConfigureM17Demod& cfg = (MsgConfigureM17Demod&) cmd; qDebug("M17Demod::handleMessage: MsgConfigureM17Demod"); - applySettings(cfg.getSettings(), cfg.getForce()); + applySettings(cfg.getSettings(), cfg.getSettingsKeys(), cfg.getForce()); return true; } @@ -217,18 +217,19 @@ void M17Demod::setCenterFrequency(qint64 frequency) { M17DemodSettings settings = m_settings; settings.m_inputFrequencyOffset = frequency; - applySettings(settings, false); + applySettings(settings, QList({"inputFrequencyOffset"}), false); if (m_guiMessageQueue) // forward to GUI if any { - MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, false); + MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, QList({"inputFrequencyOffset"}), false); m_guiMessageQueue->push(msgToGUI); } } -void M17Demod::applySettings(const M17DemodSettings& settings, bool force) +void M17Demod::applySettings(const M17DemodSettings& settings, const QList& settingsKeys, bool force) { qDebug() << "M17Demod::applySettings: " + << " settingsKeys: " << settingsKeys << " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset << " m_rfBandwidth: " << settings.m_rfBandwidth << " m_fmDeviation: " << settings.m_fmDeviation @@ -246,46 +247,7 @@ void M17Demod::applySettings(const M17DemodSettings& settings, bool force) << " m_streamIndex: " << settings.m_streamIndex << " force: " << force; - QList reverseAPIKeys; - - if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) { - reverseAPIKeys.append("inputFrequencyOffset"); - } - if ((settings.m_audioMute != m_settings.m_audioMute) || force) { - reverseAPIKeys.append("audioMute"); - } - if ((settings.m_syncOrConstellation != m_settings.m_syncOrConstellation) || force) { - reverseAPIKeys.append("syncOrConstellation"); - } - if ((settings.m_traceLengthMutliplier != m_settings.m_traceLengthMutliplier) || force) { - reverseAPIKeys.append("traceLengthMutliplier"); - } - if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) { - reverseAPIKeys.append("rfBandwidth"); - } - if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) { - reverseAPIKeys.append("fmDeviation"); - } - if ((settings.m_squelchGate != m_settings.m_squelchGate) || force) { - reverseAPIKeys.append("squelchGate"); - } - if ((settings.m_squelch != m_settings.m_squelch) || force) { - reverseAPIKeys.append("squelch"); - } - if ((settings.m_volume != m_settings.m_volume) || force) { - reverseAPIKeys.append("volume"); - } - if ((settings.m_baudRate != m_settings.m_baudRate) || force) { - reverseAPIKeys.append("baudRate"); - } - if ((settings.m_highPassFilter != m_settings.m_highPassFilter) || force) { - reverseAPIKeys.append("highPassFilter"); - } - if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force) { - reverseAPIKeys.append("audioDeviceName"); - } - - if (m_settings.m_streamIndex != settings.m_streamIndex) + if (settingsKeys.contains("streamIndex")) { if (m_deviceAPI->getSampleMIMO()) // change of stream is possible for MIMO devices only { @@ -294,31 +256,33 @@ void M17Demod::applySettings(const M17DemodSettings& settings, bool force) m_deviceAPI->addChannelSink(this, settings.m_streamIndex); m_deviceAPI->addChannelSinkAPI(this); } - - reverseAPIKeys.append("streamIndex"); } - M17DemodBaseband::MsgConfigureM17DemodBaseband *msg = M17DemodBaseband::MsgConfigureM17DemodBaseband::create(settings, force); + M17DemodBaseband::MsgConfigureM17DemodBaseband *msg = M17DemodBaseband::MsgConfigureM17DemodBaseband::create(settings, settingsKeys, force); m_basebandSink->getInputMessageQueue()->push(msg); - if (settings.m_useReverseAPI) + if (settingsKeys.contains("m_useReverseAPI")) { bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || (m_settings.m_reverseAPIDeviceIndex != settings.m_reverseAPIDeviceIndex) || (m_settings.m_reverseAPIChannelIndex != settings.m_reverseAPIChannelIndex); - webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); + webapiReverseSendSettings(settingsKeys, settings, fullUpdate || force); } QList pipes; MainCore::instance()->getMessagePipes().getMessagePipes(this, "settings", pipes); if (pipes.size() > 0) { - sendChannelSettings(pipes, reverseAPIKeys, settings, force); + sendChannelSettings(pipes, settingsKeys, settings, force); } - m_settings = settings; + if (force) { + m_settings = settings; + } else { + m_settings.applySettings(settingsKeys, settings); + } } QByteArray M17Demod::serialize() const @@ -330,14 +294,14 @@ bool M17Demod::deserialize(const QByteArray& data) { if (m_settings.deserialize(data)) { - MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, true); + MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, QList(), true); m_inputMessageQueue.push(msg); return true; } else { m_settings.resetToDefaults(); - MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, true); + MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, QList(), true); m_inputMessageQueue.push(msg); return false; } @@ -392,13 +356,13 @@ int M17Demod::webapiSettingsPutPatch( M17DemodSettings settings = m_settings; webapiUpdateChannelSettings(settings, channelSettingsKeys, response); - MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(settings, force); + MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(settings, channelSettingsKeys, force); m_inputMessageQueue.push(msg); qDebug("M17Demod::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); if (m_guiMessageQueue) // forward to GUI if any { - MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, force); + MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, channelSettingsKeys, force); m_guiMessageQueue->push(msgToGUI); } @@ -445,6 +409,9 @@ void M17Demod::webapiUpdateChannelSettings( if (channelSettingsKeys.contains("title")) { settings.m_title = *response.getM17DemodSettings()->getTitle(); } + if (channelSettingsKeys.contains("statusLogEnabled")) { + settings.m_statusLogEnabled = response.getM17DemodSettings()->getStatusLogEnabled() != 0; + } if (channelSettingsKeys.contains("audioDeviceName")) { settings.m_audioDeviceName = *response.getM17DemodSettings()->getAudioDeviceName(); } @@ -508,6 +475,7 @@ void M17Demod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& resp response.getM17DemodSettings()->setSquelch(settings.m_squelch); response.getM17DemodSettings()->setAudioMute(settings.m_audioMute ? 1 : 0); response.getM17DemodSettings()->setSyncOrConstellation(settings.m_syncOrConstellation ? 1 : 0); + response.getM17DemodSettings()->setStatusLogEnabled(settings.m_statusLogEnabled ? 1 : 0); response.getM17DemodSettings()->setRgbColor(settings.m_rgbColor); if (response.getM17DemodSettings()->getTitle()) { @@ -580,7 +548,7 @@ void M17Demod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response response.getM17DemodReport()->setSquelch(m_basebandSink->getSquelchOpen() ? 1 : 0); } -void M17Demod::webapiReverseSendSettings(QList& channelSettingsKeys, const M17DemodSettings& settings, bool force) +void M17Demod::webapiReverseSendSettings(const QList& channelSettingsKeys, const M17DemodSettings& settings, bool force) { SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force); @@ -607,7 +575,7 @@ void M17Demod::webapiReverseSendSettings(QList& channelSettingsKeys, co void M17Demod::sendChannelSettings( const QList& pipes, - QList& channelSettingsKeys, + const QList& channelSettingsKeys, const M17DemodSettings& settings, bool force) { @@ -631,7 +599,7 @@ void M17Demod::sendChannelSettings( } void M17Demod::webapiFormatChannelSettings( - QList& channelSettingsKeys, + const QList& channelSettingsKeys, SWGSDRangel::SWGChannelSettings *swgChannelSettings, const M17DemodSettings& settings, bool force @@ -673,6 +641,9 @@ void M17Demod::webapiFormatChannelSettings( if (channelSettingsKeys.contains("syncOrConstellation") || force) { swgM17DemodSettings->setSyncOrConstellation(settings.m_syncOrConstellation ? 1 : 0); } + if (channelSettingsKeys.contains("statusLogEnabled") || force) { + swgM17DemodSettings->setStatusLogEnabled(settings.m_statusLogEnabled ? 1 : 0); + } if (channelSettingsKeys.contains("rgbColor") || force) { swgM17DemodSettings->setRgbColor(settings.m_rgbColor); } diff --git a/plugins/channelrx/demodm17/m17demod.h b/plugins/channelrx/demodm17/m17demod.h index 42810b5a5..2917ee759 100644 --- a/plugins/channelrx/demodm17/m17demod.h +++ b/plugins/channelrx/demodm17/m17demod.h @@ -43,19 +43,22 @@ public: public: const M17DemodSettings& getSettings() const { return m_settings; } + const QList& getSettingsKeys() const { return m_settingsKeys; } bool getForce() const { return m_force; } - static MsgConfigureM17Demod* create(const M17DemodSettings& settings, bool force) { - return new MsgConfigureM17Demod(settings, force); + static MsgConfigureM17Demod* create(const M17DemodSettings& settings, const QList& settingsKeys, bool force) { + return new MsgConfigureM17Demod(settings, settingsKeys, force); } private: M17DemodSettings m_settings; + QList m_settingsKeys; bool m_force; - MsgConfigureM17Demod(const M17DemodSettings& settings, bool force) : + MsgConfigureM17Demod(const M17DemodSettings& settings, const QList& settingsKeys, bool force) : Message(), m_settings(settings), + m_settingsKeys(settingsKeys), m_force(force) { } }; @@ -272,18 +275,18 @@ private: static const int m_udpBlockSize; virtual bool handleMessage(const Message& cmd); - void applySettings(const M17DemodSettings& settings, bool force = false); + void applySettings(const M17DemodSettings& settings, const QList& settingsKeys, bool force = false); void sendSampleRateToDemodAnalyzer(); void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response); - void webapiReverseSendSettings(QList& channelSettingsKeys, const M17DemodSettings& settings, bool force); + void webapiReverseSendSettings(const QList& channelSettingsKeys, const M17DemodSettings& settings, bool force); void sendChannelSettings( const QList& pipes, - QList& channelSettingsKeys, + const QList& channelSettingsKeys, const M17DemodSettings& settings, bool force ); void webapiFormatChannelSettings( - QList& channelSettingsKeys, + const QList& channelSettingsKeys, SWGSDRangel::SWGChannelSettings *swgChannelSettings, const M17DemodSettings& settings, bool force diff --git a/plugins/channelrx/demodm17/m17demodbaseband.cpp b/plugins/channelrx/demodm17/m17demodbaseband.cpp index b2047142b..a202af3d0 100644 --- a/plugins/channelrx/demodm17/m17demodbaseband.cpp +++ b/plugins/channelrx/demodm17/m17demodbaseband.cpp @@ -117,7 +117,7 @@ bool M17DemodBaseband::handleMessage(const Message& cmd) MsgConfigureM17DemodBaseband& cfg = (MsgConfigureM17DemodBaseband&) cmd; qDebug() << "M17DemodBaseband::handleMessage: MsgConfigureM17DemodBaseband"; - applySettings(cfg.getSettings(), cfg.getForce()); + applySettings(cfg.getSettings(), cfg.getSettingsKeys(), cfg.getForce()); return true; } @@ -144,9 +144,9 @@ bool M17DemodBaseband::handleMessage(const Message& cmd) } } -void M17DemodBaseband::applySettings(const M17DemodSettings& settings, bool force) +void M17DemodBaseband::applySettings(const M17DemodSettings& settings, const QList& settingsKeys, bool force) { - if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) + if (settingsKeys.contains("inputFrequencyOffset") || force) { m_channelizer->setChannelization(48000, settings.m_inputFrequencyOffset); m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset()); @@ -158,7 +158,7 @@ void M17DemodBaseband::applySettings(const M17DemodSettings& settings, bool forc } } - if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force) + if (settingsKeys.contains("audioDeviceName") || force) { AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager(); int audioDeviceIndex = audioDeviceManager->getOutputDeviceIndex(settings.m_audioDeviceName); @@ -172,9 +172,13 @@ void M17DemodBaseband::applySettings(const M17DemodSettings& settings, bool forc } } - m_sink.applySettings(settings, force); + m_sink.applySettings(settings, settingsKeys, force); - m_settings = settings; + if (force) { + m_settings = settings; + } else { + m_settings.applySettings(settingsKeys, settings); + } } int M17DemodBaseband::getChannelSampleRate() const diff --git a/plugins/channelrx/demodm17/m17demodbaseband.h b/plugins/channelrx/demodm17/m17demodbaseband.h index 7cb548652..f40546062 100644 --- a/plugins/channelrx/demodm17/m17demodbaseband.h +++ b/plugins/channelrx/demodm17/m17demodbaseband.h @@ -39,20 +39,22 @@ public: public: const M17DemodSettings& getSettings() const { return m_settings; } + const QList& getSettingsKeys() const { return m_settingsKeys; } bool getForce() const { return m_force; } - static MsgConfigureM17DemodBaseband* create(const M17DemodSettings& settings, bool force) - { - return new MsgConfigureM17DemodBaseband(settings, force); + static MsgConfigureM17DemodBaseband* create(const M17DemodSettings& settings, const QList& settingsKeys, bool force) { + return new MsgConfigureM17DemodBaseband(settings, settingsKeys, force); } private: M17DemodSettings m_settings; + QList m_settingsKeys; bool m_force; - MsgConfigureM17DemodBaseband(const M17DemodSettings& settings, bool force) : + MsgConfigureM17DemodBaseband(const M17DemodSettings& settings, const QList& settingsKeys, bool force) : Message(), m_settings(settings), + m_settingsKeys(settingsKeys), m_force(force) { } }; @@ -128,7 +130,7 @@ private: QMutex m_mutex; bool handleMessage(const Message& cmd); - void applySettings(const M17DemodSettings& settings, bool force = false); + void applySettings(const M17DemodSettings& settings, const QList& settingsKeys, bool force = false); private slots: void handleInputMessages(); diff --git a/plugins/channelrx/demodm17/m17demodgui.cpp b/plugins/channelrx/demodm17/m17demodgui.cpp index e258d6b3b..4a9ff80f4 100644 --- a/plugins/channelrx/demodm17/m17demodgui.cpp +++ b/plugins/channelrx/demodm17/m17demodgui.cpp @@ -63,7 +63,7 @@ void M17DemodGUI::resetToDefaults() blockApplySettings(true); displaySettings(); blockApplySettings(false); - applySettings(); + applySettings(QList(), true); } QByteArray M17DemodGUI::serialize() const @@ -76,7 +76,7 @@ bool M17DemodGUI::deserialize(const QByteArray& data) if (m_settings.deserialize(data)) { displaySettings(); - applySettings(true); + applySettings(QList(), true); return true; } else @@ -100,7 +100,13 @@ bool M17DemodGUI::handleMessage(const Message& message) { qDebug("M17DemodGUI::handleMessage: M17Demod::MsgConfigureM17Demod"); const M17Demod::MsgConfigureM17Demod& cfg = (M17Demod::MsgConfigureM17Demod&) message; - m_settings = cfg.getSettings(); + + if (cfg.getForce()) { + m_settings = cfg.getSettings(); + } else { + m_settings.applySettings(cfg.getSettingsKeys(), cfg.getSettings()); + } + blockApplySettings(true); m_channelMarker.updateSettings(static_cast(m_settings.m_channelMarker)); displaySettings(); @@ -124,14 +130,19 @@ bool M17DemodGUI::handleMessage(const Message& message) QString dateStr = dt.toString("HH:mm:ss"); QTextCursor cursor = ui->smsLog->textCursor(); cursor.movePosition(QTextCursor::End, QTextCursor::MoveAnchor); - cursor.insertText(tr("=== %1 %2 to %3 ===\n%4\n") + QString s(tr("=== %1 %2 to %3 ===\n%4\n") .arg(dateStr) .arg(report.getSource()) .arg(report.getDest()) .arg(report.getSMS()) ); + cursor.insertText(s); ui->smsLog->verticalScrollBar()->setValue(ui->smsLog->verticalScrollBar()->maximum()); + if (ui->activateStatusLog->isChecked()) { + m_m17StatusTextDialog.addLine(tr("SMS: %1").arg(report.getSMS())); + } + return true; } else if (M17Demod::MsgReportAPRS::match(message)) @@ -169,6 +180,19 @@ bool M17DemodGUI::handleMessage(const Message& message) ui->aprsPackets->scrollToBottom(); } + if (ui->activateStatusLog->isChecked()) + { + QString s(tr("APRS: %1 to %2 via %3 typ %4 pid %5: %6") + .arg(report.getFrom()) + .arg(report.getTo()) + .arg(report.getVia()) + .arg(report.getType()) + .arg(report.getPID()) + .arg(report.getData()) + ); + m_m17StatusTextDialog.addLine(s); + } + return true; } else @@ -195,7 +219,7 @@ void M17DemodGUI::on_deltaFrequency_changed(qint64 value) m_channelMarker.setCenterFrequency(value); m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); updateAbsoluteCenterFrequency(); - applySettings(); + applySettings(QList({"inputFrequencyOffset"})); } void M17DemodGUI::on_rfBW_valueChanged(int value) @@ -203,33 +227,33 @@ void M17DemodGUI::on_rfBW_valueChanged(int value) m_channelMarker.setBandwidth(value * 100); m_settings.m_rfBandwidth = value * 100.0; ui->rfBWText->setText(QString("%1k").arg(value / 10.0, 0, 'f', 1)); - applySettings(); + applySettings(QList({"rfBandwidth"})); } void M17DemodGUI::on_fmDeviation_valueChanged(int value) { m_settings.m_fmDeviation = value * 100.0; ui->fmDeviationText->setText(QString("%1%2k").arg(QChar(0xB1, 0x00)).arg(value / 10.0, 0, 'f', 1)); - applySettings(); + applySettings(QList({"fmDeviation"})); } void M17DemodGUI::on_volume_valueChanged(int value) { m_settings.m_volume= value / 100.0; ui->volumeText->setText(QString("%1").arg(value / 100.0, 0, 'f', 2)); - applySettings(); + applySettings(QList({"volume"})); } void M17DemodGUI::on_baudRate_currentIndexChanged(int index) { m_settings.m_baudRate = M17DemodBaudRates::getRate(index); - applySettings(); + applySettings(QList({"baudRate"})); } void M17DemodGUI::on_syncOrConstellation_toggled(bool checked) { m_settings.m_syncOrConstellation = checked; - applySettings(); + applySettings(QList({"syncOrConstellation"})); } void M17DemodGUI::on_traceLength_valueChanged(int value) @@ -257,26 +281,26 @@ void M17DemodGUI::on_squelchGate_valueChanged(int value) { m_settings.m_squelchGate = value; ui->squelchGateText->setText(QString("%1").arg(value * 10.0, 0, 'f', 0)); - applySettings(); + applySettings(QList({"squelchGate"})); } void M17DemodGUI::on_squelch_valueChanged(int value) { ui->squelchText->setText(QString("%1").arg(value / 1.0, 0, 'f', 0)); m_settings.m_squelch = value; - applySettings(); + applySettings(QList({"squelch"})); } void M17DemodGUI::on_audioMute_toggled(bool checked) { m_settings.m_audioMute = checked; - applySettings(); + applySettings(QList({"audioMute"})); } void M17DemodGUI::on_highPassFilter_toggled(bool checked) { m_settings.m_highPassFilter = checked; - applySettings(); + applySettings(QList({"highPassFilter"})); } void M17DemodGUI::on_aprsClearTable_clicked() @@ -326,7 +350,6 @@ void M17DemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) rollDown; getRollupContents()->saveState(m_rollupState); - applySettings(); } void M17DemodGUI::onMenuDialogCalled(const QPoint &p) @@ -362,15 +385,26 @@ void M17DemodGUI::onMenuDialogCalled(const QPoint &p) setTitle(m_channelMarker.getTitle()); setTitleColor(m_settings.m_rgbColor); + QList settingsKeys({ + "m_rgbColor", + "title", + "useReverseAPI", + "reverseAPIAddress", + "reverseAPIPort", + "reverseAPIDeviceIndex", + "reverseAPIChannelIndex" + }); + if (m_deviceUISet->m_deviceMIMOEngine) { + settingsKeys.append("streamIndex"); m_settings.m_streamIndex = dialog.getSelectedStreamIndex(); m_channelMarker.clearStreamIndexes(); m_channelMarker.addStreamIndex(m_settings.m_streamIndex); updateIndexLabel(); } - applySettings(); + applySettings(settingsKeys); } resetContextMenuType(); @@ -483,7 +517,7 @@ M17DemodGUI::M17DemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban updateMyPosition(); displaySettings(); makeUIConnections(); - applySettings(true); + applySettings(QList(), true); } M17DemodGUI::~M17DemodGUI() @@ -569,13 +603,13 @@ void M17DemodGUI::displaySettings() blockApplySettings(false); } -void M17DemodGUI::applySettings(bool force) +void M17DemodGUI::applySettings(const QList& settingsKeys, bool force) { if (m_doApplySettings) { qDebug() << "M17DemodGUI::applySettings"; - M17Demod::MsgConfigureM17Demod* message = M17Demod::MsgConfigureM17Demod::create( m_settings, force); + M17Demod::MsgConfigureM17Demod* message = M17Demod::MsgConfigureM17Demod::create( m_settings, settingsKeys, force); m_m17Demod->getInputMessageQueue()->push(message); } } @@ -601,7 +635,7 @@ void M17DemodGUI::channelMarkerChangedByCursor() { ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); - applySettings(); + applySettings(QList({"inputFrequencyOffset"})); } void M17DemodGUI::channelMarkerHighlightedByCursor() @@ -611,14 +645,13 @@ void M17DemodGUI::channelMarkerHighlightedByCursor() void M17DemodGUI::audioSelect() { - qDebug("M17DemodGUI::audioSelect"); AudioSelectDialog audioSelect(DSPEngine::instance()->getAudioDeviceManager(), m_settings.m_audioDeviceName); audioSelect.exec(); if (audioSelect.m_selected) { m_settings.m_audioDeviceName = audioSelect.m_audioDeviceName; - applySettings(); + applySettings(QList({"audioDeviceName"})); } } diff --git a/plugins/channelrx/demodm17/m17demodgui.h b/plugins/channelrx/demodm17/m17demodgui.h index 8ca9d9c3c..a94a06856 100644 --- a/plugins/channelrx/demodm17/m17demodgui.h +++ b/plugins/channelrx/demodm17/m17demodgui.h @@ -124,7 +124,7 @@ private: virtual ~M17DemodGUI(); void blockApplySettings(bool block); - void applySettings(bool force = false); + void applySettings(const QList& settingsKeys, bool force = false); void displaySettings(); void updateAMBEFeaturesList(); void updateMyPosition(); @@ -159,9 +159,9 @@ private slots: void on_berButton_toggled(bool checked); void on_berHistory_valueChanged(int value); void on_berReset_clicked(); + void on_viewStatusLog_clicked(); void onWidgetRolled(QWidget* widget, bool rollDown); void onMenuDialogCalled(const QPoint& p); - void on_viewStatusLog_clicked(); void handleInputMessages(); void audioSelect(); void tick(); diff --git a/plugins/channelrx/demodm17/m17demodgui.ui b/plugins/channelrx/demodm17/m17demodgui.ui index aa21bc777..bb42fd145 100644 --- a/plugins/channelrx/demodm17/m17demodgui.ui +++ b/plugins/channelrx/demodm17/m17demodgui.ui @@ -280,14 +280,14 @@ - 24 - 0 + 32 + 32 24 - 16777215 + 32 diff --git a/plugins/channelrx/demodm17/m17demodsettings.cpp b/plugins/channelrx/demodm17/m17demodsettings.cpp index 64dcb0bc1..a71a4fbe3 100644 --- a/plugins/channelrx/demodm17/m17demodsettings.cpp +++ b/plugins/channelrx/demodm17/m17demodsettings.cpp @@ -48,6 +48,7 @@ void M17DemodSettings::resetToDefaults() m_traceStroke = 100; m_traceDecay = 200; m_audioDeviceName = AudioDeviceManager::m_defaultDeviceName; + m_statusLogEnabled = false; m_streamIndex = 0; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; @@ -69,6 +70,7 @@ QByteArray M17DemodSettings::serialize() const s.writeS32(8, m_squelchGate); s.writeS32(9, m_volume*10.0); s.writeS32(11, m_baudRate); + s.writeBool(12, m_statusLogEnabled); s.writeBool(13, m_syncOrConstellation); if (m_channelMarker) { @@ -127,7 +129,6 @@ bool M17DemodSettings::deserialize(const QByteArray& data) m_inputFrequencyOffset = tmp; d.readS32(2, &tmp, 125); m_rfBandwidth = tmp * 100.0; - d.readS32(3, &tmp, 125); d.readS32(4, &tmp, 50); m_fmDeviation = tmp * 100.0; d.readS32(5, &tmp, -40); @@ -137,6 +138,7 @@ bool M17DemodSettings::deserialize(const QByteArray& data) d.readS32(9, &tmp, 20); m_volume = tmp / 10.0; d.readS32(11, &m_baudRate, 4800); + d.readBool(12, &m_statusLogEnabled, false); d.readBool(13, &m_syncOrConstellation, false); d.readString(18, &m_title, "M17 Demodulator"); d.readBool(19, &m_highPassFilter, false); @@ -183,3 +185,78 @@ bool M17DemodSettings::deserialize(const QByteArray& data) } } +void M17DemodSettings::applySettings(const QStringList& settingsKeys, const M17DemodSettings& settings) +{ + if (settingsKeys.contains("inputFrequencyOffset")) { + m_inputFrequencyOffset = settings.m_inputFrequencyOffset; + } + if (settingsKeys.contains("rfBandwidth")) { + m_rfBandwidth = settings.m_rfBandwidth; + } + if (settingsKeys.contains("fmDeviation")) { + m_fmDeviation = settings.m_fmDeviation; + } + if (settingsKeys.contains("squelch")) { + m_squelch = settings.m_squelch; + } + if (settingsKeys.contains("rgbColor")) { + m_rgbColor = settings.m_rgbColor; + } + if (settingsKeys.contains("squelchGate")) { + m_squelchGate = settings.m_squelchGate; + } + if (settingsKeys.contains("volume")) { + m_volume = settings.m_volume; + } + if (settingsKeys.contains("baudRate")) { + m_baudRate = settings.m_baudRate; + } + if (settingsKeys.contains("statusLogEnabled")) { + m_statusLogEnabled = settings.m_statusLogEnabled; + } + if (settingsKeys.contains("syncOrConstellation")) { + m_syncOrConstellation = settings.m_syncOrConstellation; + } + if (settingsKeys.contains("title")) { + m_title = settings.m_title; + } + if (settingsKeys.contains("highPassFilter")) { + m_highPassFilter = settings.m_highPassFilter; + } + if (settingsKeys.contains("audioDeviceName")) { + m_audioDeviceName = settings.m_audioDeviceName; + } + if (settingsKeys.contains("traceLengthMutliplier")) { + m_traceLengthMutliplier = settings.m_traceLengthMutliplier; + } + if (settingsKeys.contains("traceStroke")) { + m_traceStroke = settings.m_traceStroke; + } + if (settingsKeys.contains("traceDecay")) { + m_traceDecay = settings.m_traceDecay; + } + if (settingsKeys.contains("useReverseAPI")) { + m_useReverseAPI = settings.m_useReverseAPI; + } + if (settingsKeys.contains("reverseAPIAddress")) { + m_reverseAPIAddress = settings.m_reverseAPIAddress; + } + if (settingsKeys.contains("reverseAPIPort")) { + m_reverseAPIPort = settings.m_reverseAPIPort; + } + if (settingsKeys.contains("reverseAPIDeviceIndex")) { + m_reverseAPIDeviceIndex = settings.m_reverseAPIDeviceIndex; + } + if (settingsKeys.contains("audioMute")) { + m_audioMute = settings.m_audioMute; + } + if (settingsKeys.contains("streamIndex")) { + m_streamIndex = settings.m_streamIndex; + } + if (settingsKeys.contains("rollupState")) { + m_rollupState = settings.m_rollupState; + } + if (settingsKeys.contains("channelMarker")) { + m_channelMarker = settings.m_channelMarker; + } +} diff --git a/plugins/channelrx/demodm17/m17demodsettings.h b/plugins/channelrx/demodm17/m17demodsettings.h index 98a78abd2..b6b33d5f5 100644 --- a/plugins/channelrx/demodm17/m17demodsettings.h +++ b/plugins/channelrx/demodm17/m17demodsettings.h @@ -43,8 +43,7 @@ struct M17DemodSettings int m_traceStroke; // [0..255] int m_traceDecay; // [0..255] QString m_audioDeviceName; - QString m_aprsLogFilename; - bool m_aprsLogEnabled; + bool m_statusLogEnabled; int m_streamIndex; //!< MIMO channel. Not relevant when connected to SI (single Rx). bool m_useReverseAPI; QString m_reverseAPIAddress; @@ -64,6 +63,7 @@ struct M17DemodSettings void setRollupState(Serializable *rollupState) { m_rollupState = rollupState; } QByteArray serialize() const; bool deserialize(const QByteArray& data); + void applySettings(const QStringList& settingsKeys, const M17DemodSettings& settings); }; diff --git a/plugins/channelrx/demodm17/m17demodsink.cpp b/plugins/channelrx/demodm17/m17demodsink.cpp index ac0e63048..88aa0dbfd 100644 --- a/plugins/channelrx/demodm17/m17demodsink.cpp +++ b/plugins/channelrx/demodm17/m17demodsink.cpp @@ -74,7 +74,7 @@ M17DemodSink::M17DemodSink() : m_magsqPeak = 0.0f; m_magsqCount = 0; - applySettings(m_settings, true); + applySettings(m_settings, QList(), true); applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true); } @@ -305,9 +305,10 @@ void M17DemodSink::applyChannelSettings(int channelSampleRate, int channelFreque } -void M17DemodSink::applySettings(const M17DemodSettings& settings, bool force) +void M17DemodSink::applySettings(const M17DemodSettings& settings, const QList& settingsKeys, bool force) { qDebug() << "M17DemodSink::applySettings: " + << " settingsKeys: " << settingsKeys << " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset << " m_rfBandwidth: " << settings.m_rfBandwidth << " m_fmDeviation: " << settings.m_fmDeviation @@ -325,7 +326,7 @@ void M17DemodSink::applySettings(const M17DemodSettings& settings, bool force) << " m_streamIndex: " << settings.m_streamIndex << " force: " << force; - if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) + if (settingsKeys.contains("rfBandwidth") || force) { m_interpolator.create(16, m_channelSampleRate, (settings.m_rfBandwidth) / 2.2); m_interpolatorDistanceRemain = 0; @@ -333,38 +334,42 @@ void M17DemodSink::applySettings(const M17DemodSettings& settings, bool force) //m_phaseDiscri.setFMScaling((float) settings.m_rfBandwidth / (float) settings.m_fmDeviation); } - if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) { + if (settingsKeys.contains("fmDeviation") || force) { m_phaseDiscri.setFMScaling(48000.0f / (2.0f*settings.m_fmDeviation)); } - if ((settings.m_squelchGate != m_settings.m_squelchGate) || force) + if (settingsKeys.contains("squelchGate") || force) { m_squelchGate = 480 * settings.m_squelchGate; // gate is given in 10s of ms at 48000 Hz audio sample rate m_squelchCount = 0; // reset squelch open counter } - if ((settings.m_squelch != m_settings.m_squelch) || force) { + if (settingsKeys.contains("squelch") || force) { m_squelchLevel = std::pow(10.0, settings.m_squelch / 10.0); // input is a value in dB } - if ((settings.m_audioMute != m_settings.m_audioMute) || force) { + if (settingsKeys.contains("audioMute") || force) { m_m17DemodProcessor.setAudioMute(settings.m_audioMute); } - if ((settings.m_volume != m_settings.m_volume) || force) { + if (settingsKeys.contains("volume") || force) { m_m17DemodProcessor.setVolume(settings.m_volume); } - if ((settings.m_baudRate != m_settings.m_baudRate) || force) + if (settingsKeys.contains("baudRate") || force) { - // m_dsdDecoder.setBaudRate(settings.m_baudRate); + // m_dsdDecoder.setBaudRate(settings.m_baudRate); (future) } - if ((settings.m_highPassFilter != m_settings.m_highPassFilter) || force) { + if (settingsKeys.contains("highPassFilter") || force) { m_m17DemodProcessor.setHP(settings.m_highPassFilter); } - m_settings = settings; + if (force) { + m_settings = settings; + } else { + m_settings.applySettings(settingsKeys, settings); + } } void M17DemodSink::configureMyPosition(float myLatitude, float myLongitude) diff --git a/plugins/channelrx/demodm17/m17demodsink.h b/plugins/channelrx/demodm17/m17demodsink.h index 6c699d2ac..334f14c8b 100644 --- a/plugins/channelrx/demodm17/m17demodsink.h +++ b/plugins/channelrx/demodm17/m17demodsink.h @@ -46,7 +46,7 @@ public: void applyAudioSampleRate(int sampleRate); void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false); - void applySettings(const M17DemodSettings& settings, bool force = false); + void applySettings(const M17DemodSettings& settings, const QList& settingsKeys, bool force = false); AudioFifo *getAudioFifo() { return &m_audioFifo; } void setAudioFifoLabel(const QString& label) { m_audioFifo.setLabel("1:" + label); } int getAudioSampleRate() const { return m_audioSampleRate; } diff --git a/plugins/channeltx/modm17/m17modgui.cpp b/plugins/channeltx/modm17/m17modgui.cpp index 7d6ba25c8..4f4d14934 100644 --- a/plugins/channeltx/modm17/m17modgui.cpp +++ b/plugins/channeltx/modm17/m17modgui.cpp @@ -102,7 +102,13 @@ bool M17ModGUI::handleMessage(const Message& message) else if (M17Mod::MsgConfigureM17Mod::match(message)) { const M17Mod::MsgConfigureM17Mod& cfg = (M17Mod::MsgConfigureM17Mod&) message; - m_settings = cfg.getSettings(); + + if (cfg.getForce()) { + m_settings = cfg.getSettings(); + } else { + m_settings.applySettings(cfg.getSettingsKeys(), cfg.getSettings()); + } + blockApplySettings(true); m_channelMarker.updateSettings(static_cast(m_settings.m_channelMarker)); displaySettings(); diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index e8f8ea3fa..29d5a9a71 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -8257,11 +8257,11 @@ margin-bottom: 20px; "type" : "number", "format" : "float" }, - "demodGain" : { + "volume" : { "type" : "number", "format" : "float" }, - "volume" : { + "demodGain" : { "type" : "number", "format" : "float" }, @@ -8281,18 +8281,12 @@ margin-bottom: 20px; "syncOrConstellation" : { "type" : "integer" }, - "pllLock" : { - "type" : "integer" - }, "rgbColor" : { "type" : "integer" }, "title" : { "type" : "string" }, - "audioDeviceName" : { - "type" : "string" - }, "highPassFilter" : { "type" : "integer" }, @@ -8308,6 +8302,12 @@ margin-bottom: 20px; "type" : "integer", "description" : "0 to 255" }, + "audioDeviceName" : { + "type" : "string" + }, + "statusLogEnabled" : { + "type" : "integer" + }, "streamIndex" : { "type" : "integer", "description" : "MIMO channel. Not relevant when connected to SI (single Rx)." @@ -56435,7 +56435,7 @@ except ApiException as e:
- Generated 2022-07-09T11:05:50.499+02:00 + Generated 2022-07-10T10:00:03.872+02:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/M17Demod.yaml b/sdrbase/resources/webapi/doc/swagger/include/M17Demod.yaml index dba704540..7cb5deb74 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/M17Demod.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/M17Demod.yaml @@ -10,10 +10,10 @@ M17DemodSettings: fmDeviation: type: number format: float - demodGain: + volume: type: number format: float - volume: + demodGain: type: number format: float baudRate: @@ -27,14 +27,10 @@ M17DemodSettings: type: integer syncOrConstellation: type: integer - pllLock: - type: integer rgbColor: type: integer title: type: string - audioDeviceName: - type: string highPassFilter: type: integer traceLengthMutliplier: @@ -46,6 +42,10 @@ M17DemodSettings: traceDecay: description: 0 to 255 type: integer + audioDeviceName: + type: string + statusLogEnabled: + type: integer streamIndex: description: MIMO channel. Not relevant when connected to SI (single Rx). type: integer diff --git a/swagger/sdrangel/api/swagger/include/M17Demod.yaml b/swagger/sdrangel/api/swagger/include/M17Demod.yaml index d4ab21f53..92711c3c0 100644 --- a/swagger/sdrangel/api/swagger/include/M17Demod.yaml +++ b/swagger/sdrangel/api/swagger/include/M17Demod.yaml @@ -10,10 +10,10 @@ M17DemodSettings: fmDeviation: type: number format: float - demodGain: + volume: type: number format: float - volume: + demodGain: type: number format: float baudRate: @@ -27,14 +27,10 @@ M17DemodSettings: type: integer syncOrConstellation: type: integer - pllLock: - type: integer rgbColor: type: integer title: type: string - audioDeviceName: - type: string highPassFilter: type: integer traceLengthMutliplier: @@ -46,6 +42,10 @@ M17DemodSettings: traceDecay: description: 0 to 255 type: integer + audioDeviceName: + type: string + statusLogEnabled: + type: integer streamIndex: description: MIMO channel. Not relevant when connected to SI (single Rx). type: integer diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index e8f8ea3fa..29d5a9a71 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -8257,11 +8257,11 @@ margin-bottom: 20px; "type" : "number", "format" : "float" }, - "demodGain" : { + "volume" : { "type" : "number", "format" : "float" }, - "volume" : { + "demodGain" : { "type" : "number", "format" : "float" }, @@ -8281,18 +8281,12 @@ margin-bottom: 20px; "syncOrConstellation" : { "type" : "integer" }, - "pllLock" : { - "type" : "integer" - }, "rgbColor" : { "type" : "integer" }, "title" : { "type" : "string" }, - "audioDeviceName" : { - "type" : "string" - }, "highPassFilter" : { "type" : "integer" }, @@ -8308,6 +8302,12 @@ margin-bottom: 20px; "type" : "integer", "description" : "0 to 255" }, + "audioDeviceName" : { + "type" : "string" + }, + "statusLogEnabled" : { + "type" : "integer" + }, "streamIndex" : { "type" : "integer", "description" : "MIMO channel. Not relevant when connected to SI (single Rx)." @@ -56435,7 +56435,7 @@ except ApiException as e:
- Generated 2022-07-09T11:05:50.499+02:00 + Generated 2022-07-10T10:00:03.872+02:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.cpp index a49b68f07..de1ceef96 100644 --- a/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.cpp @@ -34,10 +34,10 @@ SWGM17DemodSettings::SWGM17DemodSettings() { m_rf_bandwidth_isSet = false; fm_deviation = 0.0f; m_fm_deviation_isSet = false; - demod_gain = 0.0f; - m_demod_gain_isSet = false; volume = 0.0f; m_volume_isSet = false; + demod_gain = 0.0f; + m_demod_gain_isSet = false; baud_rate = 0; m_baud_rate_isSet = false; squelch_gate = 0; @@ -48,14 +48,10 @@ SWGM17DemodSettings::SWGM17DemodSettings() { m_audio_mute_isSet = false; sync_or_constellation = 0; m_sync_or_constellation_isSet = false; - pll_lock = 0; - m_pll_lock_isSet = false; rgb_color = 0; m_rgb_color_isSet = false; title = nullptr; m_title_isSet = false; - audio_device_name = nullptr; - m_audio_device_name_isSet = false; high_pass_filter = 0; m_high_pass_filter_isSet = false; trace_length_mutliplier = 0; @@ -64,6 +60,10 @@ SWGM17DemodSettings::SWGM17DemodSettings() { m_trace_stroke_isSet = false; trace_decay = 0; m_trace_decay_isSet = false; + audio_device_name = nullptr; + m_audio_device_name_isSet = false; + status_log_enabled = 0; + m_status_log_enabled_isSet = false; stream_index = 0; m_stream_index_isSet = false; use_reverse_api = 0; @@ -94,10 +94,10 @@ SWGM17DemodSettings::init() { m_rf_bandwidth_isSet = false; fm_deviation = 0.0f; m_fm_deviation_isSet = false; - demod_gain = 0.0f; - m_demod_gain_isSet = false; volume = 0.0f; m_volume_isSet = false; + demod_gain = 0.0f; + m_demod_gain_isSet = false; baud_rate = 0; m_baud_rate_isSet = false; squelch_gate = 0; @@ -108,14 +108,10 @@ SWGM17DemodSettings::init() { m_audio_mute_isSet = false; sync_or_constellation = 0; m_sync_or_constellation_isSet = false; - pll_lock = 0; - m_pll_lock_isSet = false; rgb_color = 0; m_rgb_color_isSet = false; title = new QString(""); m_title_isSet = false; - audio_device_name = new QString(""); - m_audio_device_name_isSet = false; high_pass_filter = 0; m_high_pass_filter_isSet = false; trace_length_mutliplier = 0; @@ -124,6 +120,10 @@ SWGM17DemodSettings::init() { m_trace_stroke_isSet = false; trace_decay = 0; m_trace_decay_isSet = false; + audio_device_name = new QString(""); + m_audio_device_name_isSet = false; + status_log_enabled = 0; + m_status_log_enabled_isSet = false; stream_index = 0; m_stream_index_isSet = false; use_reverse_api = 0; @@ -155,19 +155,19 @@ SWGM17DemodSettings::cleanup() { - if(title != nullptr) { delete title; } + + + + if(audio_device_name != nullptr) { delete audio_device_name; } - - - if(reverse_api_address != nullptr) { delete reverse_api_address; } @@ -199,10 +199,10 @@ SWGM17DemodSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&fm_deviation, pJson["fmDeviation"], "float", ""); - ::SWGSDRangel::setValue(&demod_gain, pJson["demodGain"], "float", ""); - ::SWGSDRangel::setValue(&volume, pJson["volume"], "float", ""); + ::SWGSDRangel::setValue(&demod_gain, pJson["demodGain"], "float", ""); + ::SWGSDRangel::setValue(&baud_rate, pJson["baudRate"], "qint32", ""); ::SWGSDRangel::setValue(&squelch_gate, pJson["squelchGate"], "qint32", ""); @@ -213,14 +213,10 @@ SWGM17DemodSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&sync_or_constellation, pJson["syncOrConstellation"], "qint32", ""); - ::SWGSDRangel::setValue(&pll_lock, pJson["pllLock"], "qint32", ""); - ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); - ::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString"); - ::SWGSDRangel::setValue(&high_pass_filter, pJson["highPassFilter"], "qint32", ""); ::SWGSDRangel::setValue(&trace_length_mutliplier, pJson["traceLengthMutliplier"], "qint32", ""); @@ -229,6 +225,10 @@ SWGM17DemodSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&trace_decay, pJson["traceDecay"], "qint32", ""); + ::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString"); + + ::SWGSDRangel::setValue(&status_log_enabled, pJson["statusLogEnabled"], "qint32", ""); + ::SWGSDRangel::setValue(&stream_index, pJson["streamIndex"], "qint32", ""); ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); @@ -270,12 +270,12 @@ SWGM17DemodSettings::asJsonObject() { if(m_fm_deviation_isSet){ obj->insert("fmDeviation", QJsonValue(fm_deviation)); } - if(m_demod_gain_isSet){ - obj->insert("demodGain", QJsonValue(demod_gain)); - } if(m_volume_isSet){ obj->insert("volume", QJsonValue(volume)); } + if(m_demod_gain_isSet){ + obj->insert("demodGain", QJsonValue(demod_gain)); + } if(m_baud_rate_isSet){ obj->insert("baudRate", QJsonValue(baud_rate)); } @@ -291,18 +291,12 @@ SWGM17DemodSettings::asJsonObject() { if(m_sync_or_constellation_isSet){ obj->insert("syncOrConstellation", QJsonValue(sync_or_constellation)); } - if(m_pll_lock_isSet){ - obj->insert("pllLock", QJsonValue(pll_lock)); - } if(m_rgb_color_isSet){ obj->insert("rgbColor", QJsonValue(rgb_color)); } if(title != nullptr && *title != QString("")){ toJsonValue(QString("title"), title, obj, QString("QString")); } - if(audio_device_name != nullptr && *audio_device_name != QString("")){ - toJsonValue(QString("audioDeviceName"), audio_device_name, obj, QString("QString")); - } if(m_high_pass_filter_isSet){ obj->insert("highPassFilter", QJsonValue(high_pass_filter)); } @@ -315,6 +309,12 @@ SWGM17DemodSettings::asJsonObject() { if(m_trace_decay_isSet){ obj->insert("traceDecay", QJsonValue(trace_decay)); } + if(audio_device_name != nullptr && *audio_device_name != QString("")){ + toJsonValue(QString("audioDeviceName"), audio_device_name, obj, QString("QString")); + } + if(m_status_log_enabled_isSet){ + obj->insert("statusLogEnabled", QJsonValue(status_log_enabled)); + } if(m_stream_index_isSet){ obj->insert("streamIndex", QJsonValue(stream_index)); } @@ -373,16 +373,6 @@ SWGM17DemodSettings::setFmDeviation(float fm_deviation) { this->m_fm_deviation_isSet = true; } -float -SWGM17DemodSettings::getDemodGain() { - return demod_gain; -} -void -SWGM17DemodSettings::setDemodGain(float demod_gain) { - this->demod_gain = demod_gain; - this->m_demod_gain_isSet = true; -} - float SWGM17DemodSettings::getVolume() { return volume; @@ -393,6 +383,16 @@ SWGM17DemodSettings::setVolume(float volume) { this->m_volume_isSet = true; } +float +SWGM17DemodSettings::getDemodGain() { + return demod_gain; +} +void +SWGM17DemodSettings::setDemodGain(float demod_gain) { + this->demod_gain = demod_gain; + this->m_demod_gain_isSet = true; +} + qint32 SWGM17DemodSettings::getBaudRate() { return baud_rate; @@ -443,16 +443,6 @@ SWGM17DemodSettings::setSyncOrConstellation(qint32 sync_or_constellation) { this->m_sync_or_constellation_isSet = true; } -qint32 -SWGM17DemodSettings::getPllLock() { - return pll_lock; -} -void -SWGM17DemodSettings::setPllLock(qint32 pll_lock) { - this->pll_lock = pll_lock; - this->m_pll_lock_isSet = true; -} - qint32 SWGM17DemodSettings::getRgbColor() { return rgb_color; @@ -473,16 +463,6 @@ SWGM17DemodSettings::setTitle(QString* title) { this->m_title_isSet = true; } -QString* -SWGM17DemodSettings::getAudioDeviceName() { - return audio_device_name; -} -void -SWGM17DemodSettings::setAudioDeviceName(QString* audio_device_name) { - this->audio_device_name = audio_device_name; - this->m_audio_device_name_isSet = true; -} - qint32 SWGM17DemodSettings::getHighPassFilter() { return high_pass_filter; @@ -523,6 +503,26 @@ SWGM17DemodSettings::setTraceDecay(qint32 trace_decay) { this->m_trace_decay_isSet = true; } +QString* +SWGM17DemodSettings::getAudioDeviceName() { + return audio_device_name; +} +void +SWGM17DemodSettings::setAudioDeviceName(QString* audio_device_name) { + this->audio_device_name = audio_device_name; + this->m_audio_device_name_isSet = true; +} + +qint32 +SWGM17DemodSettings::getStatusLogEnabled() { + return status_log_enabled; +} +void +SWGM17DemodSettings::setStatusLogEnabled(qint32 status_log_enabled) { + this->status_log_enabled = status_log_enabled; + this->m_status_log_enabled_isSet = true; +} + qint32 SWGM17DemodSettings::getStreamIndex() { return stream_index; @@ -617,10 +617,10 @@ SWGM17DemodSettings::isSet(){ if(m_fm_deviation_isSet){ isObjectUpdated = true; break; } - if(m_demod_gain_isSet){ + if(m_volume_isSet){ isObjectUpdated = true; break; } - if(m_volume_isSet){ + if(m_demod_gain_isSet){ isObjectUpdated = true; break; } if(m_baud_rate_isSet){ @@ -638,18 +638,12 @@ SWGM17DemodSettings::isSet(){ if(m_sync_or_constellation_isSet){ isObjectUpdated = true; break; } - if(m_pll_lock_isSet){ - isObjectUpdated = true; break; - } if(m_rgb_color_isSet){ isObjectUpdated = true; break; } if(title && *title != QString("")){ isObjectUpdated = true; break; } - if(audio_device_name && *audio_device_name != QString("")){ - isObjectUpdated = true; break; - } if(m_high_pass_filter_isSet){ isObjectUpdated = true; break; } @@ -662,6 +656,12 @@ SWGM17DemodSettings::isSet(){ if(m_trace_decay_isSet){ isObjectUpdated = true; break; } + if(audio_device_name && *audio_device_name != QString("")){ + isObjectUpdated = true; break; + } + if(m_status_log_enabled_isSet){ + isObjectUpdated = true; break; + } if(m_stream_index_isSet){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.h b/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.h index dcb2d1059..939491621 100644 --- a/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGM17DemodSettings.h @@ -53,12 +53,12 @@ public: float getFmDeviation(); void setFmDeviation(float fm_deviation); - float getDemodGain(); - void setDemodGain(float demod_gain); - float getVolume(); void setVolume(float volume); + float getDemodGain(); + void setDemodGain(float demod_gain); + qint32 getBaudRate(); void setBaudRate(qint32 baud_rate); @@ -74,18 +74,12 @@ public: qint32 getSyncOrConstellation(); void setSyncOrConstellation(qint32 sync_or_constellation); - qint32 getPllLock(); - void setPllLock(qint32 pll_lock); - qint32 getRgbColor(); void setRgbColor(qint32 rgb_color); QString* getTitle(); void setTitle(QString* title); - QString* getAudioDeviceName(); - void setAudioDeviceName(QString* audio_device_name); - qint32 getHighPassFilter(); void setHighPassFilter(qint32 high_pass_filter); @@ -98,6 +92,12 @@ public: qint32 getTraceDecay(); void setTraceDecay(qint32 trace_decay); + QString* getAudioDeviceName(); + void setAudioDeviceName(QString* audio_device_name); + + qint32 getStatusLogEnabled(); + void setStatusLogEnabled(qint32 status_log_enabled); + qint32 getStreamIndex(); void setStreamIndex(qint32 stream_index); @@ -135,12 +135,12 @@ private: float fm_deviation; bool m_fm_deviation_isSet; - float demod_gain; - bool m_demod_gain_isSet; - float volume; bool m_volume_isSet; + float demod_gain; + bool m_demod_gain_isSet; + qint32 baud_rate; bool m_baud_rate_isSet; @@ -156,18 +156,12 @@ private: qint32 sync_or_constellation; bool m_sync_or_constellation_isSet; - qint32 pll_lock; - bool m_pll_lock_isSet; - qint32 rgb_color; bool m_rgb_color_isSet; QString* title; bool m_title_isSet; - QString* audio_device_name; - bool m_audio_device_name_isSet; - qint32 high_pass_filter; bool m_high_pass_filter_isSet; @@ -180,6 +174,12 @@ private: qint32 trace_decay; bool m_trace_decay_isSet; + QString* audio_device_name; + bool m_audio_device_name_isSet; + + qint32 status_log_enabled; + bool m_status_log_enabled_isSet; + qint32 stream_index; bool m_stream_index_isSet;