mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-03 21:57:51 -04:00
Added define for 32 bit sample compilation
This commit is contained in:
parent
5a594629b3
commit
f34750716a
@ -22,13 +22,17 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <QtGlobal>
|
#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
|
#define SDR_SAMP_SZ 16 // internal fixed arithmetic sample size
|
||||||
|
typedef qint16 FixReal;
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef float Real;
|
typedef float Real;
|
||||||
typedef std::complex<Real> Complex;
|
typedef std::complex<Real> Complex;
|
||||||
|
|
||||||
typedef qint16 FixReal;
|
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
struct Sample
|
struct Sample
|
||||||
{
|
{
|
||||||
|
@ -70,7 +70,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
|
||||||
@ -131,7 +131,7 @@ public:
|
|||||||
bool workDecimateCenter(int32_t *x, int32_t *y)
|
bool workDecimateCenter(int32_t *x, int32_t *y)
|
||||||
{
|
{
|
||||||
// insert sample into ring-buffer
|
// insert sample into ring-buffer
|
||||||
storeSample(*x, *y);
|
storeSample32(*x, *y);
|
||||||
|
|
||||||
switch(m_state)
|
switch(m_state)
|
||||||
{
|
{
|
||||||
@ -215,7 +215,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);
|
||||||
@ -251,7 +251,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);
|
||||||
@ -414,7 +414,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);
|
||||||
@ -450,7 +450,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);
|
||||||
@ -565,10 +565,10 @@ public:
|
|||||||
|
|
||||||
void myDecimate(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2)
|
void myDecimate(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2)
|
||||||
{
|
{
|
||||||
storeSample(x1, y1);
|
storeSample32(x1, y1);
|
||||||
advancePointer();
|
advancePointer();
|
||||||
|
|
||||||
storeSample(*x2, *y2);
|
storeSample32(*x2, *y2);
|
||||||
doFIR(x2, y2);
|
doFIR(x2, y2);
|
||||||
advancePointer();
|
advancePointer();
|
||||||
}
|
}
|
||||||
@ -580,7 +580,7 @@ public:
|
|||||||
doFIR(sample1);
|
doFIR(sample1);
|
||||||
advancePointer();
|
advancePointer();
|
||||||
|
|
||||||
storeSample(0, 0);
|
storeSample((FixReal) 0, (FixReal) 0);
|
||||||
doFIR(sample2);
|
doFIR(sample2);
|
||||||
advancePointer();
|
advancePointer();
|
||||||
}
|
}
|
||||||
@ -588,11 +588,11 @@ public:
|
|||||||
/** Simple zero stuffing and filter */
|
/** Simple zero stuffing and filter */
|
||||||
void myInterpolateZeroStuffing(int32_t *x1, int32_t *y1, int32_t *x2, int32_t *y2)
|
void myInterpolateZeroStuffing(int32_t *x1, int32_t *y1, int32_t *x2, int32_t *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();
|
||||||
}
|
}
|
||||||
@ -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)
|
if ((m_ptr % 2) == 0)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user