diff --git a/plugins/channel/ssb/ssbdemod.cpp b/plugins/channel/ssb/ssbdemod.cpp index 3000bbab8..8f626a465 100644 --- a/plugins/channel/ssb/ssbdemod.cpp +++ b/plugins/channel/ssb/ssbdemod.cpp @@ -40,6 +40,7 @@ SSBDemod::SSBDemod(AudioFifo* audioFifo, SampleSink* sampleSink) : m_audioBuffer.resize(512); m_audioBufferFill = 0; + m_undersampleCount = 0; } SSBDemod::~SSBDemod() @@ -52,7 +53,6 @@ void SSBDemod::configure(MessageQueue* messageQueue, Real Bandwidth, Real volume cmd->submit(messageQueue, this); } -int undersamplecount = 0; void SSBDemod::feed(SampleVector::const_iterator begin, SampleVector::const_iterator end, bool positiveOnly) { Complex ci; @@ -69,7 +69,7 @@ void SSBDemod::feed(SampleVector::const_iterator begin, SampleVector::const_iter demod = 32768.0 * m_lowpass.filter(demod * 0.7); // Downsample by 4x for audio display - if (!(undersamplecount++ & 3)) + if (!(m_undersampleCount++ & 3)) m_sampleBuffer.push_back(Sample(demod, 0.0)); qint16 sample = (qint16)(demod * m_volume); diff --git a/plugins/channel/ssb/ssbdemod.h b/plugins/channel/ssb/ssbdemod.h index 0e3c44356..fd4427d69 100644 --- a/plugins/channel/ssb/ssbdemod.h +++ b/plugins/channel/ssb/ssbdemod.h @@ -72,6 +72,7 @@ private: Real m_Bandwidth; Real m_volume; + int m_undersampleCount; int m_sampleRate; int m_frequency; diff --git a/plugins/samplesource/rtlsdr/rtlsdrthread.cpp b/plugins/samplesource/rtlsdr/rtlsdrthread.cpp index e81ee10ec..32c043e5b 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrthread.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrthread.cpp @@ -30,6 +30,7 @@ RTLSDRThread::RTLSDRThread(rtlsdr_dev_t* dev, SampleFifo* sampleFifo, QObject* p m_sampleFifo(sampleFifo), m_decimation(2) { + m_localdecimation = 0; } RTLSDRThread::~RTLSDRThread() @@ -135,15 +136,14 @@ void RTLSDRThread::decimate16(SampleVector::iterator* it, const quint8* buf, qin } } -int localdecimation = 0; void RTLSDRThread::callback(const quint8* buf, qint32 len) { qint16 xreal, yimag, phase; SampleVector::iterator it = m_convertBuffer.begin(); int decimationFactor[] = {16, 8, 4, 2, 1, 0}; - if (++localdecimation < decimationFactor[m_decimation]) return; - localdecimation = 0; + if (++m_localdecimation < decimationFactor[m_decimation]) return; + m_localdecimation = 0; switch(m_decimation) { case 0: // 1:1 = no decimation diff --git a/plugins/samplesource/rtlsdr/rtlsdrthread.h b/plugins/samplesource/rtlsdr/rtlsdrthread.h index e2e4f042c..705dd0419 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrthread.h +++ b/plugins/samplesource/rtlsdr/rtlsdrthread.h @@ -47,6 +47,7 @@ private: SampleFifo* m_sampleFifo; int m_decimation; + int m_localdecimation; void run();