#pragma once #include "SDRThread.h" #include class SDRPostThread : public IOThread { public: SDRPostThread(); ~SDRPostThread(); void bindDemodulator(DemodulatorInstance *demod); void removeDemodulator(DemodulatorInstance *demod); void setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue); void setIQDataOutQueue(DemodulatorThreadInputQueue* iqDataQueue); void setIQVisualQueue(DemodulatorThreadInputQueue* iqVisQueue); void setNumVisSamples(int num_vis_samples_in); int getNumVisSamples(); void setSwapIQ(bool swapIQ); bool getSwapIQ(); void run(); void terminate(); protected: std::atomic iqDataInQueue; std::atomic iqDataOutQueue; std::atomic iqVisualQueue; std::mutex busy_demod; std::vector demodulators; iirfilt_crcf dcFilter; int num_vis_samples; std::atomic_bool swapIQ; private: std::vector _lut; std::vector _lut_swap; };