From bb35ad69255e87f13f1eb856657af83ef2a8a0a2 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 27 Aug 2015 04:20:56 +0200 Subject: [PATCH] Deep redesign: use the Decimators class for BladeRF also --- .../samplesource/bladerf/bladerfthread.cpp | 36 ++++++++++--------- plugins/samplesource/bladerf/bladerfthread.h | 9 ++++- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/plugins/samplesource/bladerf/bladerfthread.cpp b/plugins/samplesource/bladerf/bladerfthread.cpp index d0ddc815c..1dfee9723 100644 --- a/plugins/samplesource/bladerf/bladerfthread.cpp +++ b/plugins/samplesource/bladerf/bladerfthread.cpp @@ -87,6 +87,7 @@ void BladerfThread::run() m_running = false; } +/* void BladerfThread::decimate1(SampleVector::iterator* it, const qint16* buf, qint32 len) { qint16 xreal, yimag; @@ -227,7 +228,7 @@ void BladerfThread::decimate32_cen(SampleVector::iterator* it, const qint16* buf } } */ - +/* void BladerfThread::decimate2_cen(SampleVector::iterator* it, const qint16* buf, qint32 len) { for (int pos = 0; pos < len - 3; pos += 4) { @@ -591,6 +592,7 @@ void BladerfThread::decimate32_sup(SampleVector::iterator* it, const qint16* buf (*it)++; } } +*/ // Decimate according to specified log2 (ex: log2=4 => decim=16) void BladerfThread::callback(const qint16* buf, qint32 len) @@ -599,7 +601,7 @@ void BladerfThread::callback(const qint16* buf, qint32 len) if (m_log2Decim == 0) { - decimate1(&it, buf, len); + m_decimators.decimate1(&it, buf, len); } else { @@ -608,19 +610,19 @@ void BladerfThread::callback(const qint16* buf, qint32 len) switch (m_log2Decim) { case 1: - decimate2(&it, buf, len); + m_decimators.decimate2(&it, buf, len); break; case 2: - decimate4(&it, buf, len); + m_decimators.decimate4(&it, buf, len); break; case 3: - decimate8(&it, buf, len); + m_decimators.decimate8(&it, buf, len); break; case 4: - decimate16(&it, buf, len); + m_decimators.decimate16(&it, buf, len); break; case 5: - decimate32(&it, buf, len); + m_decimators.decimate32(&it, buf, len); break; default: break; @@ -631,19 +633,19 @@ void BladerfThread::callback(const qint16* buf, qint32 len) switch (m_log2Decim) { case 1: - decimate2_sup(&it, buf, len); + m_decimators.decimate2_sup(&it, buf, len); break; case 2: - decimate4_sup(&it, buf, len); + m_decimators.decimate4_sup(&it, buf, len); break; case 3: - decimate8_sup(&it, buf, len); + m_decimators.decimate8_sup(&it, buf, len); break; case 4: - decimate16_sup(&it, buf, len); + m_decimators.decimate16_sup(&it, buf, len); break; case 5: - decimate32_sup(&it, buf, len); + m_decimators.decimate32_sup(&it, buf, len); break; default: break; @@ -654,19 +656,19 @@ void BladerfThread::callback(const qint16* buf, qint32 len) switch (m_log2Decim) { case 1: - decimate2_cen(&it, buf, len); + m_decimators.decimate2_cen(&it, buf, len); break; case 2: - decimate4_cen(&it, buf, len); + m_decimators.decimate4_cen(&it, buf, len); break; case 3: - decimate8_cen(&it, buf, len); + m_decimators.decimate8_cen(&it, buf, len); break; case 4: - decimate16_cen(&it, buf, len); + m_decimators.decimate16_cen(&it, buf, len); break; case 5: - decimate32_cen(&it, buf, len); + m_decimators.decimate32_cen(&it, buf, len); break; default: break; diff --git a/plugins/samplesource/bladerf/bladerfthread.h b/plugins/samplesource/bladerf/bladerfthread.h index 8d5d8bcb6..9dff1e98b 100644 --- a/plugins/samplesource/bladerf/bladerfthread.h +++ b/plugins/samplesource/bladerf/bladerfthread.h @@ -22,7 +22,8 @@ #include #include #include "dsp/samplefifo.h" -#include "dsp/inthalfbandfilter.h" +//#include "dsp/inthalfbandfilter.h" +#include "dsp/decimators.h" #define BLADERF_BLOCKSIZE (1<<14) @@ -53,13 +54,18 @@ private: unsigned int m_log2Decim; int m_fcPos; + /* IntHalfbandFilter m_decimator2; // 1st stages IntHalfbandFilter m_decimator4; // 2nd stages IntHalfbandFilter m_decimator8; // 3rd stages IntHalfbandFilter m_decimator16; // 4th stages IntHalfbandFilter m_decimator32; // 5th stages + */ + + Decimators m_decimators; void run(); + /* void decimate1(SampleVector::iterator* it, const qint16* buf, qint32 len); void decimate2_u(SampleVector::iterator* it, const quint16* buf, qint32 len); void decimate2(SampleVector::iterator* it, const qint16* buf, qint32 len); @@ -77,6 +83,7 @@ private: void decimate32(SampleVector::iterator* it, const qint16* buf, qint32 len); void decimate32_sup(SampleVector::iterator* it, const qint16* buf, qint32 len); void decimate32_cen(SampleVector::iterator* it, const qint16* buf, qint32 len); + */ void callback(const qint16* buf, qint32 len); };