1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-06-01 22:42:25 -04:00

IntHalfbandFilterDB: use specific storeSample method when samples are defined om 32 bit wide fields

This commit is contained in:
f4exb 2018-01-21 12:12:20 +01:00
parent 34fe4cb747
commit 8cd462a338

View File

@ -67,7 +67,7 @@ public:
{ {
case 0: case 0:
// insert sample into ring-buffer // insert sample into ring-buffer
storeSample(0, 0); storeSample((FixReal) 0, (FixReal) 0);
// save result // save result
doFIR(SampleOut); doFIR(SampleOut);
// advance write-pointer // advance write-pointer
@ -128,7 +128,7 @@ public:
bool workDecimateCenter(qint32 *x, qint32 *y) bool workDecimateCenter(qint32 *x, qint32 *y)
{ {
// insert sample into ring-buffer // insert sample into ring-buffer
storeSample(*x, *y); storeSample32(*x, *y);
switch(m_state) switch(m_state)
{ {
@ -279,7 +279,7 @@ public:
{ {
case 0: case 0:
// insert sample into ring-buffer // insert sample into ring-buffer
storeSample(0, 0); storeSample((FixReal) 0, (FixReal) 0);
// save result // save result
doFIR(&s); doFIR(&s);
@ -315,7 +315,7 @@ public:
case 2: case 2:
// insert sample into ring-buffer // insert sample into ring-buffer
storeSample(0, 0); storeSample((FixReal) 0, (FixReal) 0);
// save result // save result
doFIR(&s); doFIR(&s);
@ -478,7 +478,7 @@ public:
{ {
case 0: case 0:
// insert sample into ring-buffer // insert sample into ring-buffer
storeSample(0, 0); storeSample((FixReal) 0, (FixReal) 0);
// save result // save result
doFIR(&s); doFIR(&s);
@ -514,7 +514,7 @@ public:
case 2: case 2:
// insert sample into ring-buffer // insert sample into ring-buffer
storeSample(0, 0); storeSample((FixReal) 0, (FixReal) 0);
// save result // save result
doFIR(&s); doFIR(&s);
@ -562,10 +562,10 @@ public:
void myDecimate(qint32 x1, qint32 y1, qint32 *x2, qint32 *y2) void myDecimate(qint32 x1, qint32 y1, qint32 *x2, qint32 *y2)
{ {
storeSample(x1, y1); storeSample32(x1, y1);
advancePointer(); advancePointer();
storeSample(*x2, *y2); storeSample32(*x2, *y2);
doFIR(x2, y2); doFIR(x2, y2);
advancePointer(); advancePointer();
} }
@ -577,7 +577,7 @@ public:
doFIR(sample1); doFIR(sample1);
advancePointer(); advancePointer();
storeSample(0, 0); storeSample((FixReal) 0, (FixReal) 0);
doFIR(sample2); doFIR(sample2);
advancePointer(); advancePointer();
} }
@ -585,11 +585,11 @@ public:
/** Simple zero stuffing and filter */ /** Simple zero stuffing and filter */
void myInterpolateZeroStuffing(qint32 *x1, qint32 *y1, qint32 *x2, qint32 *y2) void myInterpolateZeroStuffing(qint32 *x1, qint32 *y1, qint32 *x2, qint32 *y2)
{ {
storeSample(*x1, *y1); storeSample32(*x1, *y1);
doFIR(x1, y1); doFIR(x1, y1);
advancePointer(); advancePointer();
storeSample(0, 0); storeSample32(0, 0);
doFIR(x2, y2); doFIR(x2, y2);
advancePointer(); advancePointer();
} }
@ -632,7 +632,7 @@ protected:
m_samplesDB[m_ptr + m_size][1] = sampleQ; m_samplesDB[m_ptr + m_size][1] = sampleQ;
} }
void storeSample(qint32 x, qint32 y) void storeSample32(qint32 x, qint32 y)
{ {
m_samplesDB[m_ptr][0] = x; m_samplesDB[m_ptr][0] = x;
m_samplesDB[m_ptr][1] = y; m_samplesDB[m_ptr][1] = y;