Added define for 32 bit sample compilation

This commit is contained in:
f4exb 2018-01-21 01:45:58 +01:00
parent 5a594629b3
commit f34750716a
2 changed files with 18 additions and 14 deletions

View File

@ -22,13 +22,17 @@
#include <vector>
#include <QtGlobal>
#ifdef SAMPLE_32BIT
#define SDR_SAMP_SZ 32 // internal fixed arithmetic sample size
typedef qint32 FixReal;
#else
#define SDR_SAMP_SZ 16 // internal fixed arithmetic sample size
typedef qint16 FixReal;
#endif
typedef float Real;
typedef std::complex<Real> Complex;
typedef qint16 FixReal;
#pragma pack(push, 1)
struct Sample
{

View File

@ -70,7 +70,7 @@ public:
{
case 0:
// insert sample into ring-buffer
storeSample(0, 0);
storeSample((FixReal) 0, (FixReal) 0);
// save result
doFIR(SampleOut);
// advance write-pointer
@ -131,7 +131,7 @@ public:
bool workDecimateCenter(int32_t *x, int32_t *y)
{
// insert sample into ring-buffer
storeSample(*x, *y);
storeSample32(*x, *y);
switch(m_state)
{
@ -215,7 +215,7 @@ public:
{
case 0:
// insert sample into ring-buffer
storeSample(0, 0);
storeSample((FixReal) 0, (FixReal) 0);
// save result
doFIR(&s);
@ -251,7 +251,7 @@ public:
case 2:
// insert sample into ring-buffer
storeSample(0, 0);
storeSample((FixReal) 0, (FixReal) 0);
// save result
doFIR(&s);
@ -414,7 +414,7 @@ public:
{
case 0:
// insert sample into ring-buffer
storeSample(0, 0);
storeSample((FixReal) 0, (FixReal) 0);
// save result
doFIR(&s);
@ -450,7 +450,7 @@ public:
case 2:
// insert sample into ring-buffer
storeSample(0, 0);
storeSample((FixReal) 0, (FixReal) 0);
// save result
doFIR(&s);
@ -565,10 +565,10 @@ public:
void myDecimate(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2)
{
storeSample(x1, y1);
storeSample32(x1, y1);
advancePointer();
storeSample(*x2, *y2);
storeSample32(*x2, *y2);
doFIR(x2, y2);
advancePointer();
}
@ -580,7 +580,7 @@ public:
doFIR(sample1);
advancePointer();
storeSample(0, 0);
storeSample((FixReal) 0, (FixReal) 0);
doFIR(sample2);
advancePointer();
}
@ -588,11 +588,11 @@ public:
/** Simple zero stuffing and filter */
void myInterpolateZeroStuffing(int32_t *x1, int32_t *y1, int32_t *x2, int32_t *y2)
{
storeSample(*x1, *y1);
storeSample32(*x1, *y1);
doFIR(x1, y1);
advancePointer();
storeSample(0, 0);
storeSample32(0, 0);
doFIR(x2, y2);
advancePointer();
}
@ -648,7 +648,7 @@ protected:
}
}
void storeSample(int32_t x, int32_t y)
void storeSample32(int32_t x, int32_t y)
{
if ((m_ptr % 2) == 0)
{