Moved FFT filter destruction at end of the mod or demod destructor

This commit is contained in:
f4exb 2018-04-18 22:20:47 +02:00
parent aa3f12ec46
commit 5c51297717
13 changed files with 26 additions and 40 deletions

View File

@ -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,

View File

@ -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,

View File

@ -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)

View File

@ -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)))

View File

@ -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)

View File

@ -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,

View File

@ -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)))

View File

@ -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)

View File

@ -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)

View File

@ -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)))

View File

@ -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)

View File

@ -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)

View File

@ -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()