AM, NFM and DSD demod fixes

This commit is contained in:
f4exb 2019-11-24 10:11:50 +01:00
parent 5c5079108b
commit 4005b70175
3 changed files with 9 additions and 1 deletions

View File

@ -61,12 +61,13 @@ void AMDemodBaseband::reset()
void AMDemodBaseband::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end) void AMDemodBaseband::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end)
{ {
QMutexLocker mutexLocker(&m_mutex);
m_sampleFifo.write(begin, end); m_sampleFifo.write(begin, end);
} }
void AMDemodBaseband::handleData() void AMDemodBaseband::handleData()
{ {
QMutexLocker mutexLocker(&m_mutex);
while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0)) while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0))
{ {
SampleVector::iterator part1begin; SampleVector::iterator part1begin;
@ -169,4 +170,5 @@ int AMDemodBaseband::getChannelSampleRate() const
void AMDemodBaseband::setBasebandSampleRate(int sampleRate) void AMDemodBaseband::setBasebandSampleRate(int sampleRate)
{ {
m_channelizer->setBasebandSampleRate(sampleRate); m_channelizer->setBasebandSampleRate(sampleRate);
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
} }

View File

@ -68,6 +68,8 @@ void DSDDemodBaseband::feed(const SampleVector::const_iterator& begin, const Sam
void DSDDemodBaseband::handleData() void DSDDemodBaseband::handleData()
{ {
QMutexLocker mutexLocker(&m_mutex);
while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0)) while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0))
{ {
SampleVector::iterator part1begin; SampleVector::iterator part1begin;
@ -171,4 +173,5 @@ int DSDDemodBaseband::getChannelSampleRate() const
void DSDDemodBaseband::setBasebandSampleRate(int sampleRate) void DSDDemodBaseband::setBasebandSampleRate(int sampleRate)
{ {
m_channelizer->setBasebandSampleRate(sampleRate); m_channelizer->setBasebandSampleRate(sampleRate);
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
} }

View File

@ -65,6 +65,8 @@ void NFMDemodBaseband::feed(const SampleVector::const_iterator& begin, const Sam
void NFMDemodBaseband::handleData() void NFMDemodBaseband::handleData()
{ {
QMutexLocker mutexLocker(&m_mutex);
while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0)) while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0))
{ {
SampleVector::iterator part1begin; SampleVector::iterator part1begin;
@ -167,4 +169,5 @@ int NFMDemodBaseband::getChannelSampleRate() const
void NFMDemodBaseband::setBasebandSampleRate(int sampleRate) void NFMDemodBaseband::setBasebandSampleRate(int sampleRate)
{ {
m_channelizer->setBasebandSampleRate(sampleRate); m_channelizer->setBasebandSampleRate(sampleRate);
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
} }