mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-09-29 16:26:47 -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()
|
ChannelAnalyzer::~ChannelAnalyzer()
|
||||||
{
|
{
|
||||||
if (SSBFilter) delete SSBFilter;
|
|
||||||
if (DSBFilter) delete DSBFilter;
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
if (SSBFilter) delete SSBFilter;
|
||||||
|
if (DSBFilter) delete DSBFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChannelAnalyzer::configure(MessageQueue* messageQueue,
|
void ChannelAnalyzer::configure(MessageQueue* messageQueue,
|
||||||
|
@ -60,12 +60,12 @@ ChannelAnalyzerNG::ChannelAnalyzerNG(DeviceSourceAPI *deviceAPI) :
|
|||||||
|
|
||||||
ChannelAnalyzerNG::~ChannelAnalyzerNG()
|
ChannelAnalyzerNG::~ChannelAnalyzerNG()
|
||||||
{
|
{
|
||||||
delete SSBFilter;
|
|
||||||
delete DSBFilter;
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete SSBFilter;
|
||||||
|
delete DSBFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChannelAnalyzerNG::configure(MessageQueue* messageQueue,
|
void ChannelAnalyzerNG::configure(MessageQueue* messageQueue,
|
||||||
|
@ -101,6 +101,8 @@ ATVDemod::~ATVDemod()
|
|||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_DSBFilter;
|
||||||
|
delete m_DSBFilterBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ATVDemod::setTVScreen(TVScreen *objScreen)
|
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_rfFilter = new fftfilt(-50000.0 / 384000.0, 50000.0 / 384000.0, filtFftLen);
|
||||||
|
|
||||||
|
|
||||||
m_deemphasisFilterX.configure(default_deemphasis * m_audioSampleRate * 1.0e-6);
|
m_deemphasisFilterX.configure(default_deemphasis * m_audioSampleRate * 1.0e-6);
|
||||||
m_deemphasisFilterY.configure(default_deemphasis * m_audioSampleRate * 1.0e-6);
|
m_deemphasisFilterY.configure(default_deemphasis * m_audioSampleRate * 1.0e-6);
|
||||||
m_phaseDiscri.setFMScaling(384000/m_fmExcursion);
|
m_phaseDiscri.setFMScaling(384000/m_fmExcursion);
|
||||||
@ -97,17 +96,13 @@ BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) :
|
|||||||
|
|
||||||
BFMDemod::~BFMDemod()
|
BFMDemod::~BFMDemod()
|
||||||
{
|
{
|
||||||
if (m_rfFilter)
|
|
||||||
{
|
|
||||||
delete m_rfFilter;
|
|
||||||
}
|
|
||||||
|
|
||||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||||
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_rfFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
|
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);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_objRFFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DATVDemod::SetTVScreen(TVScreen *objScreen)
|
bool DATVDemod::SetTVScreen(TVScreen *objScreen)
|
||||||
|
@ -96,14 +96,14 @@ SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) :
|
|||||||
|
|
||||||
SSBDemod::~SSBDemod()
|
SSBDemod::~SSBDemod()
|
||||||
{
|
{
|
||||||
if (SSBFilter) delete SSBFilter;
|
|
||||||
if (DSBFilter) delete DSBFilter;
|
|
||||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||||
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete SSBFilter;
|
||||||
|
delete DSBFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SSBDemod::configure(MessageQueue* messageQueue,
|
void SSBDemod::configure(MessageQueue* messageQueue,
|
||||||
|
@ -72,17 +72,13 @@ WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) :
|
|||||||
|
|
||||||
WFMDemod::~WFMDemod()
|
WFMDemod::~WFMDemod()
|
||||||
{
|
{
|
||||||
if (m_rfFilter)
|
|
||||||
{
|
|
||||||
delete m_rfFilter;
|
|
||||||
}
|
|
||||||
|
|
||||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||||
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_rfFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
|
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()
|
TCPSrc::~TCPSrc()
|
||||||
{
|
{
|
||||||
if (TCPFilter) delete TCPFilter;
|
|
||||||
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete TCPFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCPSrc::setSpectrum(MessageQueue* messageQueue, bool enabled)
|
void TCPSrc::setSpectrum(MessageQueue* messageQueue, bool enabled)
|
||||||
|
@ -117,12 +117,12 @@ UDPSrc::~UDPSrc()
|
|||||||
delete m_udpBuffer16;
|
delete m_udpBuffer16;
|
||||||
delete m_udpBufferMono16;
|
delete m_udpBufferMono16;
|
||||||
delete[] m_udpAudioBuf;
|
delete[] m_udpAudioBuf;
|
||||||
if (UDPFilter) delete UDPFilter;
|
|
||||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete UDPFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UDPSrc::setSpectrum(MessageQueue* messageQueue, bool enabled)
|
void UDPSrc::setSpectrum(MessageQueue* messageQueue, bool enabled)
|
||||||
|
@ -110,6 +110,10 @@ ATVMod::~ATVMod()
|
|||||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_SSBFilter;
|
||||||
|
delete m_DSBFilter;
|
||||||
|
delete[] m_SSBFilterBuffer;
|
||||||
|
delete[] m_DSBFilterBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ATVMod::pullAudio(int nbSamples __attribute__((unused)))
|
void ATVMod::pullAudio(int nbSamples __attribute__((unused)))
|
||||||
|
@ -114,28 +114,17 @@ SSBMod::SSBMod(DeviceSinkAPI *deviceAPI) :
|
|||||||
|
|
||||||
SSBMod::~SSBMod()
|
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);
|
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||||
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
|
||||||
|
delete m_SSBFilter;
|
||||||
|
delete m_DSBFilter;
|
||||||
|
delete[] m_SSBFilterBuffer;
|
||||||
|
delete[] m_DSBFilterBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SSBMod::pull(Sample& sample)
|
void SSBMod::pull(Sample& sample)
|
||||||
|
@ -98,13 +98,13 @@ WFMMod::WFMMod(DeviceSinkAPI *deviceAPI) :
|
|||||||
|
|
||||||
WFMMod::~WFMMod()
|
WFMMod::~WFMMod()
|
||||||
{
|
{
|
||||||
delete m_rfFilter;
|
|
||||||
delete[] m_rfFilterBuffer;
|
|
||||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_rfFilter;
|
||||||
|
delete[] m_rfFilterBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WFMMod::pull(Sample& sample)
|
void WFMMod::pull(Sample& sample)
|
||||||
|
@ -82,12 +82,12 @@ UDPSink::UDPSink(DeviceSinkAPI *deviceAPI) :
|
|||||||
|
|
||||||
UDPSink::~UDPSink()
|
UDPSink::~UDPSink()
|
||||||
{
|
{
|
||||||
delete[] m_SSBFilterBuffer;
|
|
||||||
delete m_SSBFilter;
|
|
||||||
m_deviceAPI->removeChannelAPI(this);
|
m_deviceAPI->removeChannelAPI(this);
|
||||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||||
delete m_threadedChannelizer;
|
delete m_threadedChannelizer;
|
||||||
delete m_channelizer;
|
delete m_channelizer;
|
||||||
|
delete m_SSBFilter;
|
||||||
|
delete[] m_SSBFilterBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UDPSink::start()
|
void UDPSink::start()
|
||||||
|
Loading…
Reference in New Issue
Block a user