CubicSDR/src/sdr/SDRPostThread.h

38 lines
987 B
C
Raw Normal View History

#pragma once
#include "SDRThread.h"
2014-12-10 21:22:13 -05:00
#include <algorithm>
class SDRPostThread {
public:
SDRPostThread();
~SDRPostThread();
2014-12-11 19:07:21 -05:00
void bindDemodulator(DemodulatorInstance *demod);
void removeDemodulator(DemodulatorInstance *demod);
2014-12-10 21:22:13 -05:00
2014-12-11 19:07:21 -05:00
void setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue);
2014-12-26 16:15:35 -05:00
void setIQDataOutQueue(DemodulatorThreadInputQueue* iqDataQueue);
void setIQVisualQueue(DemodulatorThreadInputQueue* iqVisQueue);
2014-12-10 21:22:13 -05:00
void setNumVisSamples(int num_vis_samples_in);
int getNumVisSamples();
void threadMain();
void terminate();
2014-12-11 19:07:21 -05:00
protected:
2014-12-23 01:59:03 -05:00
std::atomic<SDRThreadIQDataQueue *> iqDataInQueue;
2014-12-26 16:15:35 -05:00
std::atomic<DemodulatorThreadInputQueue *> iqDataOutQueue;
std::atomic<DemodulatorThreadInputQueue *> iqVisualQueue;
std::mutex busy_demod;
std::vector<DemodulatorInstance *> demodulators;
std::atomic<bool> terminated;
iirfilt_crcf dcFilter;
int num_vis_samples;
private:
std::vector<liquid_float_complex> _lut;
};