mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	All concerned demods: call applyChannelSettings with force=true at construction and start.
This commit is contained in:
		
							parent
							
								
									0af04cf66f
								
							
						
					
					
						commit
						6885dd1fe6
					
				| @ -67,6 +67,7 @@ AMDemod::AMDemod(DeviceSourceAPI *deviceAPI) : | ||||
|     m_deviceAPI->addThreadedSink(m_threadedChannelizer); | ||||
|     m_deviceAPI->addChannelAPI(this); | ||||
| 
 | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
|     applySettings(m_settings, true); | ||||
| } | ||||
| 
 | ||||
| @ -133,6 +134,7 @@ void AMDemod::start() | ||||
| 	qDebug("AMDemod::start"); | ||||
| 	m_squelchCount = 0; | ||||
| 	m_audioFifo.clear(); | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| } | ||||
| 
 | ||||
| void AMDemod::stop() | ||||
| @ -181,19 +183,19 @@ bool AMDemod::handleMessage(const Message& cmd) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void AMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset) | ||||
| void AMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force) | ||||
| { | ||||
|     qDebug() << "AMDemod::applyChannelSettings:" | ||||
|             << " inputSampleRate: " << inputSampleRate | ||||
|             << " inputFrequencyOffset: " << inputFrequencyOffset; | ||||
| 
 | ||||
|     if ((m_inputFrequencyOffset != inputFrequencyOffset) || | ||||
|         (m_inputSampleRate != inputSampleRate)) | ||||
|         (m_inputSampleRate != inputSampleRate) || force) | ||||
|     { | ||||
|         m_nco.setFreq(-inputFrequencyOffset, inputSampleRate); | ||||
|     } | ||||
| 
 | ||||
|     if (m_inputSampleRate != inputSampleRate) | ||||
|     if ((m_inputSampleRate != inputSampleRate) || force) | ||||
|     { | ||||
|         m_settingsMutex.lock(); | ||||
|         m_interpolator.create(16, inputSampleRate, m_settings.m_rfBandwidth / 2.2f); | ||||
|  | ||||
| @ -156,7 +156,7 @@ private: | ||||
| 
 | ||||
| 	QMutex m_settingsMutex; | ||||
| 
 | ||||
| 	void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset); | ||||
| 	void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = false); | ||||
|     void applySettings(const AMDemodSettings& settings, bool force = false); | ||||
| 
 | ||||
| 	void processOneSample(Complex &ci) | ||||
|  | ||||
| @ -8,7 +8,7 @@ | ||||
| 
 | ||||
| const PluginDescriptor AMDemodPlugin::m_pluginDescriptor = { | ||||
| 	QString("AM Demodulator"), | ||||
| 	QString("3.9.0"), | ||||
| 	QString("3.10.1"), | ||||
| 	QString("(c) Edouard Griffiths, F4EXB"), | ||||
| 	QString("https://github.com/f4exb/sdrangel"), | ||||
| 	true, | ||||
|  | ||||
| @ -91,6 +91,7 @@ BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) : | ||||
|     m_deviceAPI->addThreadedSink(m_threadedChannelizer); | ||||
|     m_deviceAPI->addChannelAPI(this); | ||||
| 
 | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
|     applySettings(m_settings, true); | ||||
| } | ||||
| 
 | ||||
| @ -300,6 +301,7 @@ void BFMDemod::start() | ||||
| 	m_squelchState = 0; | ||||
| 	m_audioFifo.clear(); | ||||
| 	m_phaseDiscri.reset(); | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| } | ||||
| 
 | ||||
| void BFMDemod::stop() | ||||
| @ -363,19 +365,19 @@ bool BFMDemod::handleMessage(const Message& cmd) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void BFMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset) | ||||
| void BFMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force) | ||||
| { | ||||
|     qDebug() << "BFMDemod::applyChannelSettings:" | ||||
|             << " inputSampleRate: " << inputSampleRate | ||||
|             << " inputFrequencyOffset: " << inputFrequencyOffset; | ||||
| 
 | ||||
|     if((inputFrequencyOffset != m_inputFrequencyOffset) || | ||||
|         (inputSampleRate != m_inputSampleRate)) | ||||
|         (inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_nco.setFreq(-inputFrequencyOffset, inputSampleRate); | ||||
|     } | ||||
| 
 | ||||
|     if (inputSampleRate != m_inputSampleRate) | ||||
|     if ((inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_pilotPLL.configure(19000.0/inputSampleRate, 50.0/inputSampleRate, 0.01); | ||||
| 
 | ||||
|  | ||||
| @ -225,7 +225,7 @@ private: | ||||
| 
 | ||||
|     static const int m_udpBlockSize; | ||||
| 
 | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset); | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = false); | ||||
| 	void applySettings(const BFMDemodSettings& settings, bool force = false); | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -25,7 +25,7 @@ | ||||
| 
 | ||||
| const PluginDescriptor BFMPlugin::m_pluginDescriptor = { | ||||
| 	QString("Broadcast FM Demodulator"), | ||||
| 	QString("3.9.0"), | ||||
| 	QString("3.10.1"), | ||||
| 	QString("(c) Edouard Griffiths, F4EXB"), | ||||
| 	QString("https://github.com/f4exb/sdrangel"), | ||||
| 	true, | ||||
|  | ||||
| @ -86,6 +86,7 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) : | ||||
|     m_deviceAPI->addThreadedSink(m_threadedChannelizer); | ||||
|     m_deviceAPI->addChannelAPI(this); | ||||
| 
 | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
|     applySettings(m_settings, true); | ||||
| } | ||||
| 
 | ||||
| @ -313,6 +314,7 @@ void DSDDemod::start() | ||||
| 	m_audioFifo1.clear(); | ||||
|     m_audioFifo2.clear(); | ||||
| 	m_phaseDiscri.reset(); | ||||
| 	applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| } | ||||
| 
 | ||||
| void DSDDemod::stop() | ||||
| @ -365,19 +367,19 @@ bool DSDDemod::handleMessage(const Message& cmd) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void DSDDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset) | ||||
| void DSDDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force) | ||||
| { | ||||
|     qDebug() << "DSDDemod::applyChannelSettings:" | ||||
|             << " inputSampleRate: " << inputSampleRate | ||||
|             << " inputFrequencyOffset: " << inputFrequencyOffset; | ||||
| 
 | ||||
|     if ((inputFrequencyOffset != m_inputFrequencyOffset) || | ||||
|         (inputSampleRate != m_inputSampleRate)) | ||||
|         (inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_nco.setFreq(-inputFrequencyOffset, inputSampleRate); | ||||
|     } | ||||
| 
 | ||||
|     if (inputSampleRate != m_inputSampleRate) | ||||
|     if ((inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_settingsMutex.lock(); | ||||
|         m_interpolator.create(16, inputSampleRate, (m_settings.m_rfBandwidth) / 2.2); | ||||
|  | ||||
| @ -202,7 +202,7 @@ private: | ||||
| 
 | ||||
|     static const int m_udpBlockSize; | ||||
| 
 | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset); | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = false); | ||||
| 	void applySettings(const DSDDemodSettings& settings, bool force = false); | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -25,7 +25,7 @@ | ||||
| 
 | ||||
| const PluginDescriptor DSDDemodPlugin::m_pluginDescriptor = { | ||||
| 	QString("DSD Demodulator"), | ||||
| 	QString("3.9.1"), | ||||
| 	QString("3.10.1"), | ||||
| 	QString("(c) Edouard Griffiths, F4EXB"), | ||||
| 	QString("https://github.com/f4exb/sdrangel"), | ||||
| 	true, | ||||
|  | ||||
| @ -86,6 +86,7 @@ NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) : | ||||
|     m_deviceAPI->addThreadedSink(m_threadedChannelizer); | ||||
|     m_deviceAPI->addChannelAPI(this); | ||||
| 
 | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| 	applySettings(m_settings, true); | ||||
| } | ||||
| 
 | ||||
| @ -315,6 +316,7 @@ void NFMDemod::start() | ||||
|     m_squelchCount = 0; | ||||
| 	m_audioFifo.clear(); | ||||
| 	m_phaseDiscri.reset(); | ||||
| 	applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| } | ||||
| 
 | ||||
| void NFMDemod::stop() | ||||
| @ -361,19 +363,19 @@ bool NFMDemod::handleMessage(const Message& cmd) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void NFMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset) | ||||
| void NFMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force) | ||||
| { | ||||
|     qDebug() << "NFMDemod::applyChannelSettings:" | ||||
|             << " inputSampleRate: " << inputSampleRate | ||||
|             << " inputFrequencyOffset: " << inputFrequencyOffset; | ||||
| 
 | ||||
|     if ((inputFrequencyOffset != m_inputFrequencyOffset) || | ||||
|         (inputSampleRate != m_inputSampleRate)) | ||||
|         (inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_nco.setFreq(-inputFrequencyOffset, inputSampleRate); | ||||
|     } | ||||
| 
 | ||||
|     if (inputSampleRate != m_inputSampleRate) | ||||
|     if ((inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_settingsMutex.lock(); | ||||
|         m_interpolator.create(16, inputSampleRate, m_settings.m_rfBandwidth / 2.2); | ||||
|  | ||||
| @ -220,7 +220,7 @@ private: | ||||
|     static const int m_udpBlockSize; | ||||
| 
 | ||||
| //    void apply(bool force = false);
 | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset); | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = false); | ||||
|     void applySettings(const NFMDemodSettings& settings, bool force = false); | ||||
|     void webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const NFMDemodSettings& settings); | ||||
| }; | ||||
|  | ||||
| @ -7,7 +7,7 @@ | ||||
| 
 | ||||
| const PluginDescriptor NFMPlugin::m_pluginDescriptor = { | ||||
| 	QString("NFM Demodulator"), | ||||
| 	QString("3.9.0"), | ||||
| 	QString("3.10.1"), | ||||
| 	QString("(c) Edouard Griffiths, F4EXB"), | ||||
| 	QString("https://github.com/f4exb/sdrangel"), | ||||
| 	true, | ||||
|  | ||||
| @ -70,6 +70,7 @@ WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) : | ||||
|     m_deviceAPI->addThreadedSink(m_threadedChannelizer); | ||||
|     m_deviceAPI->addChannelAPI(this); | ||||
| 
 | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| 	applySettings(m_settings, true); | ||||
| } | ||||
| 
 | ||||
| @ -200,6 +201,7 @@ void WFMDemod::start() | ||||
| 	m_squelchState = 0; | ||||
| 	m_audioFifo.clear(); | ||||
| 	m_phaseDiscri.reset(); | ||||
| 	applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| } | ||||
| 
 | ||||
| void WFMDemod::stop() | ||||
| @ -253,19 +255,19 @@ bool WFMDemod::handleMessage(const Message& cmd) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void WFMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset) | ||||
| void WFMDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force) | ||||
| { | ||||
|     qDebug() << "WFMDemod::applyChannelSettings:" | ||||
|             << " inputSampleRate: " << inputSampleRate | ||||
|             << " inputFrequencyOffset: " << inputFrequencyOffset; | ||||
| 
 | ||||
|     if((inputFrequencyOffset != m_inputFrequencyOffset) || | ||||
|         (inputSampleRate != m_inputSampleRate)) | ||||
|         (inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_nco.setFreq(-inputFrequencyOffset, inputSampleRate); | ||||
|     } | ||||
| 
 | ||||
|     if (inputSampleRate != m_inputSampleRate) | ||||
|     if ((inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         qDebug() << "WFMDemod::applyChannelSettings: m_interpolator.create"; | ||||
|         m_interpolator.create(16, inputSampleRate, m_settings.m_afBandwidth); | ||||
|  | ||||
| @ -167,7 +167,7 @@ private: | ||||
| 
 | ||||
|     static const int m_udpBlockSize; | ||||
| 
 | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset); | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = false); | ||||
|     void applySettings(const WFMDemodSettings& settings, bool force = false); | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -8,7 +8,7 @@ | ||||
| 
 | ||||
| const PluginDescriptor WFMPlugin::m_pluginDescriptor = { | ||||
| 	QString("WFM Demodulator"), | ||||
| 	QString("3.9.0"), | ||||
| 	QString("3.10.1"), | ||||
| 	QString("(c) Edouard Griffiths, F4EXB"), | ||||
| 	QString("https://github.com/f4exb/sdrangel"), | ||||
| 	true, | ||||
|  | ||||
| @ -102,6 +102,7 @@ UDPSrc::UDPSrc(DeviceSourceAPI *deviceAPI) : | ||||
|     m_deviceAPI->addThreadedSink(m_threadedChannelizer); | ||||
|     m_deviceAPI->addChannelAPI(this); | ||||
| 
 | ||||
|     applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
|     applySettings(m_settings, true); | ||||
| } | ||||
| 
 | ||||
| @ -313,6 +314,7 @@ void UDPSrc::feed(const SampleVector::const_iterator& begin, const SampleVector: | ||||
| void UDPSrc::start() | ||||
| { | ||||
| 	m_phaseDiscri.reset(); | ||||
| 	applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); | ||||
| } | ||||
| 
 | ||||
| void UDPSrc::stop() | ||||
| @ -445,19 +447,19 @@ void UDPSrc::audioReadyRead() | ||||
| 	//qDebug("UDPSrc::audioReadyRead: done");
 | ||||
| } | ||||
| 
 | ||||
| void UDPSrc::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset) | ||||
| void UDPSrc::applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force) | ||||
| { | ||||
|     qDebug() << "UDPSrc::applyChannelSettings:" | ||||
|             << " inputSampleRate: " << inputSampleRate | ||||
|             << " inputFrequencyOffset: " << inputFrequencyOffset; | ||||
| 
 | ||||
|     if((inputFrequencyOffset != m_inputFrequencyOffset) || | ||||
|         (inputSampleRate != m_inputSampleRate)) | ||||
|         (inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_nco.setFreq(-inputFrequencyOffset, inputSampleRate); | ||||
|     } | ||||
| 
 | ||||
|     if (inputSampleRate != m_inputSampleRate) | ||||
|     if ((inputSampleRate != m_inputSampleRate) || force) | ||||
|     { | ||||
|         m_settingsMutex.lock(); | ||||
|         m_interpolator.create(16, inputSampleRate, m_settings.m_rfBandwidth / 2.0); | ||||
|  | ||||
| @ -198,7 +198,7 @@ protected: | ||||
| 
 | ||||
| 	QMutex m_settingsMutex; | ||||
| 
 | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset); | ||||
|     void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = true); | ||||
|     void applySettings(const UDPSrcSettings& settings, bool force = false); | ||||
| 
 | ||||
|     inline void calculateSquelch(double value) | ||||
|  | ||||
| @ -25,7 +25,7 @@ | ||||
| 
 | ||||
| const PluginDescriptor UDPSrcPlugin::m_pluginDescriptor = { | ||||
| 	QString("UDP Channel Source"), | ||||
| 	QString("3.9.0"), | ||||
| 	QString("3.10.1"), | ||||
| 	QString("(c) Edouard Griffiths, F4EXB"), | ||||
| 	QString("https://github.com/f4exb/sdrangel"), | ||||
| 	true, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user