1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-17 13:19:25 -04:00

Sonar fixes

This commit is contained in:
f4exb
2024-08-24 13:17:02 +02:00
committed by Edouard Griffiths
parent 585d806ef8
commit b85419c56a
43 changed files with 1713 additions and 1976 deletions
+21 -41
View File
@@ -28,16 +28,8 @@
const int AMModSource::m_levelNbSamples = 480; // every 10ms
AMModSource::AMModSource() :
m_channelSampleRate(48000),
m_channelFrequencyOffset(0),
m_audioSampleRate(48000),
m_audioFifo(12000),
m_feedbackAudioFifo(48000),
m_levelCalcCount(0),
m_peakLevel(0.0f),
m_levelSum(0.0f),
m_ifstream(nullptr),
m_cwKeyer(nullptr)
m_feedbackAudioFifo(48000)
{
m_audioFifo.setLabel("AMModSource.m_audioFifo");
m_feedbackAudioFifo.setLabel("AMModSource.m_feedbackAudioFifo");
@@ -57,9 +49,7 @@ AMModSource::AMModSource() :
applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
}
AMModSource::~AMModSource()
{
}
AMModSource::~AMModSource() = default;
void AMModSource::pull(SampleVector::iterator begin, unsigned int nbSamples)
{
@@ -111,7 +101,7 @@ void AMModSource::pullOne(Sample& sample)
sample.m_real = (FixReal) ci.real();
sample.m_imag = (FixReal) ci.imag();
m_demodBuffer[m_demodBufferFill] = ci.real() + ci.imag();
m_demodBuffer[m_demodBufferFill] = (qint16) (ci.real() + ci.imag());
++m_demodBufferFill;
if (m_demodBufferFill >= m_demodBuffer.size())
@@ -119,13 +109,11 @@ void AMModSource::pullOne(Sample& sample)
QList<ObjectPipe*> dataPipes;
MainCore::instance()->getDataPipes().getDataPipes(m_channel, "demod", dataPipes);
if (dataPipes.size() > 0)
if (!dataPipes.empty())
{
QList<ObjectPipe*>::iterator it = dataPipes.begin();
for (; it != dataPipes.end(); ++it)
for (auto& dataPipe : dataPipes)
{
DataFifo *fifo = qobject_cast<DataFifo*>((*it)->m_element);
DataFifo *fifo = qobject_cast<DataFifo*>(dataPipe->m_element);
if (fifo) {
fifo->write((quint8*) &m_demodBuffer[0], m_demodBuffer.size() * sizeof(qint16), DataFifo::DataTypeI16);
@@ -139,7 +127,7 @@ void AMModSource::pullOne(Sample& sample)
void AMModSource::prefetch(unsigned int nbSamples)
{
unsigned int nbSamplesAudio = nbSamples * ((Real) m_audioSampleRate / (Real) m_channelSampleRate);
auto nbSamplesAudio = (nbSamples * (unsigned int) ((Real) m_audioSampleRate / (Real) m_channelSampleRate));
pullAudio(nbSamplesAudio);
}
@@ -163,7 +151,7 @@ void AMModSource::pullAudio(unsigned int nbSamples)
void AMModSource::modulateSample()
{
Real t;
Real t = 0.0f;
pullAF(t);
@@ -186,17 +174,12 @@ void AMModSource::pullAF(Real& sample)
sample = m_toneNco.next();
break;
case AMModSettings::AMModInputFile:
// sox f4exb_call.wav --encoding float --endian little f4exb_call.raw
// ffplay -f f32le -ar 48k -ac 1 f4exb_call.raw
if (m_ifstream && m_ifstream->is_open())
{
if (m_ifstream->eof())
if ((m_ifstream->eof()) && (m_settings.m_playLoop))
{
if (m_settings.m_playLoop)
{
m_ifstream->clear();
m_ifstream->seekg(0, std::ios::beg);
}
m_ifstream->clear();
m_ifstream->seekg(0, std::ios::beg);
}
if (m_ifstream->eof())
@@ -242,7 +225,6 @@ void AMModSource::pullAF(Real& sample)
}
}
break;
case AMModSettings::AMModInputNone:
default:
sample = 0.0f;
break;
@@ -272,10 +254,10 @@ void AMModSource::pushFeedback(Real sample)
}
}
void AMModSource::processOneSample(Complex& ci)
void AMModSource::processOneSample(const Complex& ci)
{
m_feedbackAudioBuffer[m_feedbackAudioBufferFill].l = ci.real();
m_feedbackAudioBuffer[m_feedbackAudioBufferFill].r = ci.imag();
m_feedbackAudioBuffer[m_feedbackAudioBufferFill].l = (qint16) ci.real();
m_feedbackAudioBuffer[m_feedbackAudioBufferFill].r = (qint16) ci.imag();
++m_feedbackAudioBufferFill;
if (m_feedbackAudioBufferFill >= m_feedbackAudioBuffer.size())
@@ -293,7 +275,7 @@ void AMModSource::processOneSample(Complex& ci)
}
}
void AMModSource::calculateLevel(Real& sample)
void AMModSource::calculateLevel(const Real& sample)
{
if (m_levelCalcCount < m_levelNbSamples)
{
@@ -325,7 +307,7 @@ void AMModSource::applyAudioSampleRate(int sampleRate)
m_interpolatorConsumed = false;
m_interpolatorDistance = (Real) sampleRate / (Real) m_channelSampleRate;
m_interpolator.create(48, sampleRate, m_settings.m_rfBandwidth / 2.2, 3.0);
m_toneNco.setFreq(m_settings.m_toneFrequency, sampleRate);
m_toneNco.setFreq(m_settings.m_toneFrequency, (float) sampleRate);
if (m_cwKeyer)
{
@@ -336,7 +318,7 @@ void AMModSource::applyAudioSampleRate(int sampleRate)
QList<ObjectPipe*> pipes;
MainCore::instance()->getMessagePipes().getMessagePipes(m_channel, "reportdemod", pipes);
if (pipes.size() > 0)
if (!pipes.empty())
{
for (const auto& pipe : pipes)
{
@@ -362,7 +344,7 @@ void AMModSource::applyFeedbackAudioSampleRate(int sampleRate)
m_feedbackInterpolatorDistanceRemain = 0;
m_feedbackInterpolatorDistance = (Real) sampleRate / (Real) m_audioSampleRate;
Real cutoff = std::min(sampleRate, m_audioSampleRate) / 2.2f;
Real cutoff = ((float) std::min(sampleRate, m_audioSampleRate)) / 2.2f;
m_feedbackInterpolator.create(48, sampleRate, cutoff, 3.0);
m_feedbackAudioSampleRate = sampleRate;
}
@@ -375,9 +357,8 @@ void AMModSource::applySettings(const AMModSettings& settings, bool force)
applyAudioSampleRate(m_audioSampleRate);
}
if ((settings.m_toneFrequency != m_settings.m_toneFrequency) || force)
{
m_toneNco.setFreq(settings.m_toneFrequency, m_audioSampleRate);
if ((settings.m_toneFrequency != m_settings.m_toneFrequency) || force) {
m_toneNco.setFreq(settings.m_toneFrequency, (float) m_audioSampleRate);
}
if ((settings.m_modAFInput != m_settings.m_modAFInput) || force)
@@ -401,7 +382,7 @@ void AMModSource::applyChannelSettings(int channelSampleRate, int channelFrequen
if ((channelFrequencyOffset != m_channelFrequencyOffset)
|| (channelSampleRate != m_channelSampleRate) || force)
{
m_carrierNco.setFreq(channelFrequencyOffset, channelSampleRate);
m_carrierNco.setFreq((float) channelFrequencyOffset, (float) channelSampleRate);
}
if ((channelSampleRate != m_channelSampleRate) || force)
@@ -418,7 +399,6 @@ void AMModSource::applyChannelSettings(int channelSampleRate, int channelFrequen
void AMModSource::handleAudio()
{
QMutexLocker mlock(&m_mutex);
unsigned int nbRead;
while ((nbRead = m_audioFifo.read(reinterpret_cast<quint8*>(&m_audioReadBuffer[m_audioReadBufferFill]), 4096)) != 0)