mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2026-06-04 23:14:53 -04:00
Add swap I/Q setting for all devices
This commit is contained in:
@@ -36,6 +36,7 @@ SDRThread::SDRThread() : IOThread(), buffers("SDRThreadBuffers") {
|
||||
frequency_lock_init.store(false);
|
||||
frequency_locked.store(false);
|
||||
lock_freq.store(0);
|
||||
iq_swap.store(false);
|
||||
}
|
||||
|
||||
SDRThread::~SDRThread() {
|
||||
@@ -194,15 +195,15 @@ void SDRThread::readStream(SDRThreadIQDataQueue* iqDataOutQueue) {
|
||||
if (n_read > 0 && !terminated) {
|
||||
SDRThreadIQData *dataOut = buffers.getBuffer();
|
||||
|
||||
// if (hasHardwareDC) {
|
||||
if (iq_swap.load()) {
|
||||
dataOut->data.resize(n_read);
|
||||
for (int i = 0; i < n_read; i++) {
|
||||
dataOut->data[i].imag = inpBuffer.data[i].real;
|
||||
dataOut->data[i].real = inpBuffer.data[i].imag;
|
||||
}
|
||||
} else {
|
||||
dataOut->data.assign(inpBuffer.data.begin(), inpBuffer.data.begin()+n_read);
|
||||
// } else {
|
||||
// if (dataOut->data.size() != n_read) {
|
||||
// dataOut->data.resize(n_read);
|
||||
// }
|
||||
// iirfilt_crcf_execute_block(dcFilter, &inpBuffer.data[0], n_read, &dataOut->data[0]);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
dataOut->setRefCount(1);
|
||||
dataOut->frequency = frequency.load();
|
||||
@@ -484,6 +485,14 @@ bool SDRThread::getAGCMode() {
|
||||
return agc_mode.load();
|
||||
}
|
||||
|
||||
void SDRThread::setIQSwap(bool swap) {
|
||||
iq_swap.store(swap);
|
||||
}
|
||||
|
||||
bool SDRThread::getIQSwap() {
|
||||
return iq_swap.load();
|
||||
}
|
||||
|
||||
void SDRThread::setGain(std::string name, float value) {
|
||||
gain_busy.lock();
|
||||
gainValues[name] = value;
|
||||
|
||||
@@ -76,6 +76,9 @@ public:
|
||||
void setAGCMode(bool mode);
|
||||
bool getAGCMode();
|
||||
|
||||
void setIQSwap(bool swap);
|
||||
bool getIQSwap();
|
||||
|
||||
void setGain(std::string name, float value);
|
||||
float getGain(std::string name);
|
||||
|
||||
@@ -108,7 +111,7 @@ protected:
|
||||
std::atomic_int ppm, numElems, mtuElems, numChannels;
|
||||
std::atomic_bool hasPPM, hasHardwareDC;
|
||||
std::atomic_bool agc_mode, rate_changed, freq_changed, offset_changed,
|
||||
ppm_changed, device_changed, agc_mode_changed, gain_value_changed, setting_value_changed, frequency_locked, frequency_lock_init;
|
||||
ppm_changed, device_changed, agc_mode_changed, gain_value_changed, setting_value_changed, frequency_locked, frequency_lock_init, iq_swap;
|
||||
|
||||
std::mutex gain_busy;
|
||||
std::map<std::string, float> gainValues;
|
||||
|
||||
Reference in New Issue
Block a user