Update post-input IQ visual out queue to ReBuffer<>

+ float is no longer enough for FFT zoom resolution :D
This commit is contained in:
Charles J. Cliffe
2015-08-11 21:49:42 -04:00
parent 847f7a7569
commit 655e4da1dc
3 changed files with 26 additions and 23 deletions
+3 -7
View File
@@ -76,8 +76,6 @@ void SDRPostThread::run() {
dcFilter = iirfilt_crcf_create_dc_blocker(0.0005);
DemodulatorThreadIQData *visualDataOut = new DemodulatorThreadIQData;
std::cout << "SDR post-processing thread started.." << std::endl;
iqDataInQueue = (SDRThreadIQDataQueue*)getInputQueue("IQDataInput");
@@ -118,8 +116,8 @@ void SDRPostThread::run() {
iirfilt_crcf_execute_block(dcFilter, &fpData[0], dataSize, &dataOut[0]);
if (iqVisualQueue != NULL && iqVisualQueue->empty()) {
visualDataOut->busy_rw.lock();
DemodulatorThreadIQData *visualDataOut = visualDataBuffers.getBuffer();
visualDataOut->setRefCount(1);
if (visualDataOut->data.size() < num_vis_samples) {
if (visualDataOut->data.capacity() < num_vis_samples) {
@@ -133,8 +131,6 @@ void SDRPostThread::run() {
visualDataOut->data.assign(dataOut.begin(), dataOut.begin() + num_vis_samples);
iqVisualQueue->push(visualDataOut);
visualDataOut->busy_rw.unlock();
}
busy_demod.lock();
@@ -221,7 +217,7 @@ void SDRPostThread::run() {
iqVisualQueue->pop(visualDataDummy);
}
delete visualDataOut;
visualDataBuffers.purge();
std::cout << "SDR post-processing thread done." << std::endl;
}
+2
View File
@@ -30,6 +30,8 @@ protected:
iirfilt_crcf dcFilter;
int num_vis_samples;
std::atomic_bool swapIQ;
ReBuffer<DemodulatorThreadIQData> visualDataBuffers;
private:
std::vector<liquid_float_complex> _lut;