mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	M17 demod: updated API
This commit is contained in:
		
							parent
							
								
									2efa765750
								
							
						
					
					
						commit
						823cffdae1
					
				| @ -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<QString>(), 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<QString>({"inputFrequencyOffset"}), false); | ||||
| 
 | ||||
|     if (m_guiMessageQueue) // forward to GUI if any
 | ||||
|     { | ||||
|         MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, false); | ||||
|         MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, QList<QString>({"inputFrequencyOffset"}), false); | ||||
|         m_guiMessageQueue->push(msgToGUI); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void M17Demod::applySettings(const M17DemodSettings& settings, bool force) | ||||
| void M17Demod::applySettings(const M17DemodSettings& settings, const QList<QString>& 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<QString> 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<ObjectPipe*> 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<QString>(), 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<QString>(), 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<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force) | ||||
| void M17Demod::webapiReverseSendSettings(const QList<QString>& 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<QString>& channelSettingsKeys, co | ||||
| 
 | ||||
| void M17Demod::sendChannelSettings( | ||||
|     const QList<ObjectPipe*>& pipes, | ||||
|     QList<QString>& channelSettingsKeys, | ||||
|     const QList<QString>& channelSettingsKeys, | ||||
|     const M17DemodSettings& settings, | ||||
|     bool force) | ||||
| { | ||||
| @ -631,7 +599,7 @@ void M17Demod::sendChannelSettings( | ||||
| } | ||||
| 
 | ||||
| void M17Demod::webapiFormatChannelSettings( | ||||
|         QList<QString>& channelSettingsKeys, | ||||
|         const QList<QString>& 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); | ||||
|     } | ||||
|  | ||||
| @ -43,19 +43,22 @@ public: | ||||
| 
 | ||||
|     public: | ||||
|         const M17DemodSettings& getSettings() const { return m_settings; } | ||||
|         const QList<QString>& 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<QString>& settingsKeys, bool force) { | ||||
|             return new MsgConfigureM17Demod(settings, settingsKeys, force); | ||||
|         } | ||||
| 
 | ||||
|     private: | ||||
|         M17DemodSettings m_settings; | ||||
|         QList<QString> m_settingsKeys; | ||||
|         bool m_force; | ||||
| 
 | ||||
|         MsgConfigureM17Demod(const M17DemodSettings& settings, bool force) : | ||||
|         MsgConfigureM17Demod(const M17DemodSettings& settings, const QList<QString>& 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<QString>& settingsKeys, bool force = false); | ||||
|     void sendSampleRateToDemodAnalyzer(); | ||||
|     void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response); | ||||
|     void webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force); | ||||
|     void webapiReverseSendSettings(const QList<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force); | ||||
|     void sendChannelSettings( | ||||
|         const QList<ObjectPipe*>& pipes, | ||||
|         QList<QString>& channelSettingsKeys, | ||||
|         const QList<QString>& channelSettingsKeys, | ||||
|         const M17DemodSettings& settings, | ||||
|         bool force | ||||
|     ); | ||||
|     void webapiFormatChannelSettings( | ||||
|         QList<QString>& channelSettingsKeys, | ||||
|         const QList<QString>& channelSettingsKeys, | ||||
|         SWGSDRangel::SWGChannelSettings *swgChannelSettings, | ||||
|         const M17DemodSettings& settings, | ||||
|         bool force | ||||
|  | ||||
| @ -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<QString>& 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 | ||||
|  | ||||
| @ -39,20 +39,22 @@ public: | ||||
| 
 | ||||
|     public: | ||||
|         const M17DemodSettings& getSettings() const { return m_settings; } | ||||
|         const QList<QString>& 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<QString>& settingsKeys, bool force) { | ||||
|             return new MsgConfigureM17DemodBaseband(settings, settingsKeys, force); | ||||
|         } | ||||
| 
 | ||||
|     private: | ||||
|         M17DemodSettings m_settings; | ||||
|         QList<QString> m_settingsKeys; | ||||
|         bool m_force; | ||||
| 
 | ||||
|         MsgConfigureM17DemodBaseband(const M17DemodSettings& settings, bool force) : | ||||
|         MsgConfigureM17DemodBaseband(const M17DemodSettings& settings, const QList<QString>& 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<QString>& settingsKeys, bool force = false); | ||||
| 
 | ||||
| private slots: | ||||
|     void handleInputMessages(); | ||||
|  | ||||
| @ -63,7 +63,7 @@ void M17DemodGUI::resetToDefaults() | ||||
| 	blockApplySettings(true); | ||||
| 	displaySettings(); | ||||
| 	blockApplySettings(false); | ||||
| 	applySettings(); | ||||
| 	applySettings(QList<QString>(), 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<QString>(), 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<const ChannelMarker*>(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<QString>({"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<QString>({"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<QString>({"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<QString>({"volume"})); | ||||
| } | ||||
| 
 | ||||
| void M17DemodGUI::on_baudRate_currentIndexChanged(int index) | ||||
| { | ||||
|     m_settings.m_baudRate = M17DemodBaudRates::getRate(index); | ||||
|     applySettings(); | ||||
|     applySettings(QList<QString>({"baudRate"})); | ||||
| } | ||||
| 
 | ||||
| void M17DemodGUI::on_syncOrConstellation_toggled(bool checked) | ||||
| { | ||||
|     m_settings.m_syncOrConstellation = checked; | ||||
|     applySettings(); | ||||
|     applySettings(QList<QString>({"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<QString>({"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<QString>({"squelch"})); | ||||
| } | ||||
| 
 | ||||
| void M17DemodGUI::on_audioMute_toggled(bool checked) | ||||
| { | ||||
|     m_settings.m_audioMute = checked; | ||||
|     applySettings(); | ||||
|     applySettings(QList<QString>({"audioMute"})); | ||||
| } | ||||
| 
 | ||||
| void M17DemodGUI::on_highPassFilter_toggled(bool checked) | ||||
| { | ||||
|     m_settings.m_highPassFilter = checked; | ||||
|     applySettings(); | ||||
|     applySettings(QList<QString>({"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<QString> 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<QString>(), true); | ||||
| } | ||||
| 
 | ||||
| M17DemodGUI::~M17DemodGUI() | ||||
| @ -569,13 +603,13 @@ void M17DemodGUI::displaySettings() | ||||
|     blockApplySettings(false); | ||||
| } | ||||
| 
 | ||||
| void M17DemodGUI::applySettings(bool force) | ||||
| void M17DemodGUI::applySettings(const QList<QString>& 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<QString>({"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<QString>({"audioDeviceName"})); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -124,7 +124,7 @@ private: | ||||
| 	virtual ~M17DemodGUI(); | ||||
| 
 | ||||
| 	void blockApplySettings(bool block); | ||||
| 	void applySettings(bool force = false); | ||||
| 	void applySettings(const QList<QString>& 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(); | ||||
|  | ||||
| @ -280,14 +280,14 @@ | ||||
|        <widget class="QPushButton" name="viewStatusLog"> | ||||
|         <property name="minimumSize"> | ||||
|          <size> | ||||
|           <width>24</width> | ||||
|           <height>0</height> | ||||
|           <width>32</width> | ||||
|           <height>32</height> | ||||
|          </size> | ||||
|         </property> | ||||
|         <property name="maximumSize"> | ||||
|          <size> | ||||
|           <width>24</width> | ||||
|           <height>16777215</height> | ||||
|           <height>32</height> | ||||
|          </size> | ||||
|         </property> | ||||
|         <property name="toolTip"> | ||||
|  | ||||
| @ -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; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -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); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -74,7 +74,7 @@ M17DemodSink::M17DemodSink() : | ||||
|     m_magsqPeak = 0.0f; | ||||
|     m_magsqCount = 0; | ||||
| 
 | ||||
| 	applySettings(m_settings, true); | ||||
| 	applySettings(m_settings, QList<QString>(), 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<QString>& 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) | ||||
|  | ||||
| @ -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<QString>& 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; } | ||||
|  | ||||
| @ -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<const ChannelMarker*>(m_settings.m_channelMarker)); | ||||
|         displaySettings(); | ||||
|  | ||||
| @ -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: | ||||
|           </div> | ||||
|           <div id="generator"> | ||||
|             <div class="content"> | ||||
|               Generated 2022-07-09T11:05:50.499+02:00 | ||||
|               Generated 2022-07-10T10:00:03.872+02:00 | ||||
|             </div> | ||||
|           </div> | ||||
|       </div> | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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: | ||||
|           </div> | ||||
|           <div id="generator"> | ||||
|             <div class="content"> | ||||
|               Generated 2022-07-09T11:05:50.499+02:00 | ||||
|               Generated 2022-07-10T10:00:03.872+02:00 | ||||
|             </div> | ||||
|           </div> | ||||
|       </div> | ||||
|  | ||||
| @ -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; | ||||
|         } | ||||
|  | ||||
| @ -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; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user