From b73bca237dbe545a478920b33baa901563c7500a Mon Sep 17 00:00:00 2001 From: Geoffrey Merck Date: Fri, 8 May 2020 15:06:08 +0200 Subject: [PATCH] Remove union, use pointer tricks instead --- FMDownsampler.cpp | 8 +++++--- FMDownsampler.h | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/FMDownsampler.cpp b/FMDownsampler.cpp index 51e9580..e44d251 100644 --- a/FMDownsampler.cpp +++ b/FMDownsampler.cpp @@ -23,10 +23,12 @@ CFMDownsampler::CFMDownsampler(uint16_t length) : m_ringBuffer(length),//length might need tweaking +m_samplePack(0), +m_samplePackBytes(0), m_packIndex(0), m_downSampleIndex(0) { - m_samplePack = 0; + m_samplePackBytes = &m_samplePack; } void CFMDownsampler::addSample(q15_t sample) @@ -45,7 +47,7 @@ void CFMDownsampler::addSample(q15_t sample) m_ringBuffer.put(m_samplePackBytes[2]); m_ringBuffer.put(m_samplePackBytes[3]); - m_samplePack = 0; + m_samplePack = 0;//reset the sample pack } break; default: @@ -53,7 +55,7 @@ void CFMDownsampler::addSample(q15_t sample) break; } m_packIndex++; - if(m_packIndex >= 2) + if(m_packIndex >= 2)//did we pack to samples ? m_packIndex = 0; } diff --git a/FMDownsampler.h b/FMDownsampler.h index fd17e0a..46a5239 100644 --- a/FMDownsampler.h +++ b/FMDownsampler.h @@ -32,10 +32,10 @@ public: private: CFMDownsampleRB m_ringBuffer; - union { - int32_t m_samplePack; - int8_t m_samplePackBytes[4]; - }; + + int32_t m_samplePack; + int32_t *m_samplePackBytes; + uint8_t m_packIndex; uint8_t m_downSampleIndex; };