CubicSDR/src/demod/DemodulatorMgr.h

35 lines
907 B
C
Raw Normal View History

#pragma once
#include <vector>
#include <map>
#include <thread>
#include "DemodulatorInstance.h"
class DemodulatorMgr {
public:
2014-11-22 22:33:32 -05:00
DemodulatorMgr();
~DemodulatorMgr();
2014-11-22 22:33:32 -05:00
DemodulatorInstance *newThread();
std::vector<DemodulatorInstance *> &getDemodulators();
std::vector<DemodulatorInstance *> *getDemodulatorsAt(long long freq, int bandwidth);
2014-12-10 21:22:13 -05:00
void deleteThread(DemodulatorInstance *);
void terminateAll();
void setActiveDemodulator(DemodulatorInstance *demod, bool temporary = true);
DemodulatorInstance *getActiveDemodulator();
DemodulatorInstance *getLastActiveDemodulator();
2014-11-22 22:33:32 -05:00
private:
2014-12-11 19:07:21 -05:00
void garbageCollect();
std::vector<DemodulatorInstance *> demods;
2014-12-11 19:07:21 -05:00
std::vector<DemodulatorInstance *> demods_deleted;
DemodulatorInstance *activeDemodulator;
DemodulatorInstance *lastActiveDemodulator;
2014-12-10 21:22:13 -05:00
DemodulatorInstance *activeVisualDemodulator;
2014-12-11 19:07:21 -05:00
};