mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-24 13:18:29 -04:00
Moved FFT filter destruction at end of the mod or demod destructor
This commit is contained in:
parent
aa3f12ec46
commit
5c51297717
@ -63,12 +63,12 @@ ChannelAnalyzer::ChannelAnalyzer(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
ChannelAnalyzer::~ChannelAnalyzer()
|
||||
{
|
||||
if (SSBFilter) delete SSBFilter;
|
||||
if (DSBFilter) delete DSBFilter;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
if (SSBFilter) delete SSBFilter;
|
||||
if (DSBFilter) delete DSBFilter;
|
||||
}
|
||||
|
||||
void ChannelAnalyzer::configure(MessageQueue* messageQueue,
|
||||
|
@ -60,12 +60,12 @@ ChannelAnalyzerNG::ChannelAnalyzerNG(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
ChannelAnalyzerNG::~ChannelAnalyzerNG()
|
||||
{
|
||||
delete SSBFilter;
|
||||
delete DSBFilter;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete SSBFilter;
|
||||
delete DSBFilter;
|
||||
}
|
||||
|
||||
void ChannelAnalyzerNG::configure(MessageQueue* messageQueue,
|
||||
|
@ -101,6 +101,8 @@ ATVDemod::~ATVDemod()
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_DSBFilter;
|
||||
delete m_DSBFilterBuffer;
|
||||
}
|
||||
|
||||
void ATVDemod::setTVScreen(TVScreen *objScreen)
|
||||
|
@ -78,7 +78,6 @@ BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_rfFilter = new fftfilt(-50000.0 / 384000.0, 50000.0 / 384000.0, filtFftLen);
|
||||
|
||||
|
||||
m_deemphasisFilterX.configure(default_deemphasis * m_audioSampleRate * 1.0e-6);
|
||||
m_deemphasisFilterY.configure(default_deemphasis * m_audioSampleRate * 1.0e-6);
|
||||
m_phaseDiscri.setFMScaling(384000/m_fmExcursion);
|
||||
@ -97,17 +96,13 @@ BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
BFMDemod::~BFMDemod()
|
||||
{
|
||||
if (m_rfFilter)
|
||||
{
|
||||
delete m_rfFilter;
|
||||
}
|
||||
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rfFilter;
|
||||
}
|
||||
|
||||
void BFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
|
||||
|
@ -91,6 +91,7 @@ DATVDemod::~DATVDemod()
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_objRFFilter;
|
||||
}
|
||||
|
||||
bool DATVDemod::SetTVScreen(TVScreen *objScreen)
|
||||
|
@ -96,14 +96,14 @@ SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
SSBDemod::~SSBDemod()
|
||||
{
|
||||
if (SSBFilter) delete SSBFilter;
|
||||
if (DSBFilter) delete DSBFilter;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete SSBFilter;
|
||||
delete DSBFilter;
|
||||
}
|
||||
|
||||
void SSBDemod::configure(MessageQueue* messageQueue,
|
||||
|
@ -72,17 +72,13 @@ WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) :
|
||||
|
||||
WFMDemod::~WFMDemod()
|
||||
{
|
||||
if (m_rfFilter)
|
||||
{
|
||||
delete m_rfFilter;
|
||||
}
|
||||
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rfFilter;
|
||||
}
|
||||
|
||||
void WFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
|
||||
|
@ -73,12 +73,11 @@ TCPSrc::TCPSrc(DeviceSourceAPI* deviceAPI) :
|
||||
|
||||
TCPSrc::~TCPSrc()
|
||||
{
|
||||
if (TCPFilter) delete TCPFilter;
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete TCPFilter;
|
||||
}
|
||||
|
||||
void TCPSrc::setSpectrum(MessageQueue* messageQueue, bool enabled)
|
||||
|
@ -117,12 +117,12 @@ UDPSrc::~UDPSrc()
|
||||
delete m_udpBuffer16;
|
||||
delete m_udpBufferMono16;
|
||||
delete[] m_udpAudioBuf;
|
||||
if (UDPFilter) delete UDPFilter;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete UDPFilter;
|
||||
}
|
||||
|
||||
void UDPSrc::setSpectrum(MessageQueue* messageQueue, bool enabled)
|
||||
|
@ -110,6 +110,10 @@ ATVMod::~ATVMod()
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_SSBFilter;
|
||||
delete m_DSBFilter;
|
||||
delete[] m_SSBFilterBuffer;
|
||||
delete[] m_DSBFilterBuffer;
|
||||
}
|
||||
|
||||
void ATVMod::pullAudio(int nbSamples __attribute__((unused)))
|
||||
|
@ -114,28 +114,17 @@ SSBMod::SSBMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
SSBMod::~SSBMod()
|
||||
{
|
||||
if (m_SSBFilter) {
|
||||
delete m_SSBFilter;
|
||||
}
|
||||
|
||||
if (m_DSBFilter) {
|
||||
delete m_DSBFilter;
|
||||
}
|
||||
|
||||
if (m_SSBFilterBuffer) {
|
||||
delete m_SSBFilterBuffer;
|
||||
}
|
||||
|
||||
if (m_DSBFilterBuffer) {
|
||||
delete m_DSBFilterBuffer;
|
||||
}
|
||||
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
|
||||
delete m_SSBFilter;
|
||||
delete m_DSBFilter;
|
||||
delete[] m_SSBFilterBuffer;
|
||||
delete[] m_DSBFilterBuffer;
|
||||
}
|
||||
|
||||
void SSBMod::pull(Sample& sample)
|
||||
|
@ -98,13 +98,13 @@ WFMMod::WFMMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
WFMMod::~WFMMod()
|
||||
{
|
||||
delete m_rfFilter;
|
||||
delete[] m_rfFilterBuffer;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rfFilter;
|
||||
delete[] m_rfFilterBuffer;
|
||||
}
|
||||
|
||||
void WFMMod::pull(Sample& sample)
|
||||
|
@ -82,12 +82,12 @@ UDPSink::UDPSink(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
UDPSink::~UDPSink()
|
||||
{
|
||||
delete[] m_SSBFilterBuffer;
|
||||
delete m_SSBFilter;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_SSBFilter;
|
||||
delete[] m_SSBFilterBuffer;
|
||||
}
|
||||
|
||||
void UDPSink::start()
|
||||
|
Loading…
Reference in New Issue
Block a user