#pragma once #if USE_RTL_SDR #include "SDRThread.h" #else #include "SoapySDRThread.h" #endif #include class SDRPostThread : public IOThread { public: SDRPostThread(); ~SDRPostThread(); void bindDemodulator(DemodulatorInstance *demod); void removeDemodulator(DemodulatorInstance *demod); void setSwapIQ(bool swapIQ); bool getSwapIQ(); void run(); void terminate(); protected: SDRThreadIQDataQueue *iqDataInQueue; DemodulatorThreadInputQueue *iqDataOutQueue; DemodulatorThreadInputQueue *iqVisualQueue; std::mutex busy_demod; std::vector demodulators; iirfilt_crcf dcFilter; std::atomic_bool swapIQ; ReBuffer visualDataBuffers; private: std::vector _lut; std::vector _lut_swap; };