1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 21:54:55 -04:00

IQ swap: initial implementation in non MIMO plugins

This commit is contained in:
f4exb
2020-06-21 11:46:08 +02:00
parent ed5ebd6361
commit 24aa55027c
83 changed files with 4845 additions and 2834 deletions
@@ -47,6 +47,7 @@ public:
unsigned int getLog2Decimation(unsigned int channel) const;
void setFifo(unsigned int channel, SampleSinkFifo *sampleFifo);
SampleSinkFifo *getFifo(unsigned int channel);
void setIQOrder(bool iqOrder) { m_iqOrder = iqOrder; }
private:
struct Channel
@@ -54,7 +55,8 @@ private:
SampleVector m_convertBuffer;
SampleSinkFifo* m_sampleFifo;
unsigned int m_log2Decim;
Decimators<qint32, qint16, SDR_RX_SAMP_SZ, 12> m_decimators;
Decimators<qint32, qint16, SDR_RX_SAMP_SZ, 12, true> m_decimatorsIQ;
Decimators<qint32, qint16, SDR_RX_SAMP_SZ, 12, false> m_decimatorsQI;
Channel() :
m_sampleFifo(0),
@@ -73,10 +75,12 @@ private:
Channel *m_channels; //!< Array of channels dynamically allocated for the given number of Rx channels
unsigned int m_nbChannels;
unsigned int m_uniqueChannelIndex;
bool m_iqOrder;
void run();
unsigned int getNbFifos();
void callbackSI(const qint16* buf, qint32 len);
void callbackSIQI(const qint16* buf, qint32 len);
void callbackSIIQ(const qint16* buf, qint32 len);
void callbackMI(const qint16* buf0, const qint16* buf1, qint32 len);
};