diff --git a/src/CubicSDR.cpp b/src/CubicSDR.cpp index 5b05f19..4227bdf 100644 --- a/src/CubicSDR.cpp +++ b/src/CubicSDR.cpp @@ -164,24 +164,24 @@ bool CubicSDR::OnInit() { wxApp::SetAppName("CubicSDR"); - Modem::addModemFactory("FM", new ModemFM); - Modem::addModemFactory("FMS", new ModemFMStereo); - Modem::addModemFactory("AM", new ModemAM); - Modem::addModemFactory("LSB", new ModemLSB); - Modem::addModemFactory("USB", new ModemUSB); - Modem::addModemFactory("DSB", new ModemDSB); - Modem::addModemFactory("I/Q", new ModemIQ); + Modem::addModemFactory(new ModemFM); + Modem::addModemFactory(new ModemFMStereo); + Modem::addModemFactory(new ModemAM); + Modem::addModemFactory(new ModemLSB); + Modem::addModemFactory(new ModemUSB); + Modem::addModemFactory(new ModemDSB); + Modem::addModemFactory(new ModemIQ); - Modem::addModemFactory("APSK", new ModemAPSK); - Modem::addModemFactory("ASK", new ModemASK); - Modem::addModemFactory("BPSK", new ModemBPSK); - Modem::addModemFactory("DPSK", new ModemDPSK); - Modem::addModemFactory("OOK", new ModemOOK); - Modem::addModemFactory("PSK", new ModemPSK); - Modem::addModemFactory("QAM", new ModemQAM); - Modem::addModemFactory("QPSK", new ModemQPSK); - Modem::addModemFactory("SQAM", new ModemSQAM); - Modem::addModemFactory("ST", new ModemST); + Modem::addModemFactory(new ModemAPSK); + Modem::addModemFactory(new ModemASK); + Modem::addModemFactory(new ModemBPSK); + Modem::addModemFactory(new ModemDPSK); + Modem::addModemFactory(new ModemOOK); + Modem::addModemFactory(new ModemPSK); + Modem::addModemFactory(new ModemQAM); + Modem::addModemFactory(new ModemQPSK); + Modem::addModemFactory(new ModemSQAM); + Modem::addModemFactory(new ModemST); frequency = wxGetApp().getConfig()->getCenterFreq(); offset = 0; diff --git a/src/demod/DemodulatorInstance.cpp b/src/demod/DemodulatorInstance.cpp index 3d90fa9..172e95a 100644 --- a/src/demod/DemodulatorInstance.cpp +++ b/src/demod/DemodulatorInstance.cpp @@ -45,7 +45,6 @@ DemodulatorInstance::DemodulatorInstance() : audioThread->setOutputQueue("NotifyQueue", pipeDemodNotify); currentDemodType = demodulatorPreThread->getParams().demodType; - currentDemodCons = demodulatorThread->getDemodulatorCons(); } DemodulatorInstance::~DemodulatorInstance() { @@ -75,7 +74,6 @@ void DemodulatorInstance::run() { currentFrequency = demodulatorPreThread->getParams().frequency; currentDemodType = demodulatorPreThread->getParams().demodType; - currentDemodCons = demodulatorThread->getDemodulatorCons(); currentAudioSampleRate = AudioThread::deviceSampleRate[getOutputDevice()]; demodulatorPreThread->getParams().audioSampleRate = currentAudioSampleRate; @@ -300,19 +298,35 @@ std::string DemodulatorInstance::getDemodulatorType() { } void DemodulatorInstance::setDemodulatorLock(bool demod_lock_in) { - demodulatorThread->setDemodulatorLock(demod_lock_in); + Modem *cModem = demodulatorPreThread->getModem(); + if (cModem && cModem->getType() == "digital") { + ((ModemDigital *)cModem)->setDemodulatorLock(demod_lock_in); + } } int DemodulatorInstance::getDemodulatorLock() { - return demodulatorThread->getDemodulatorLock(); + Modem *cModem = demodulatorPreThread->getModem(); + + if (cModem && cModem->getType() == "digital") { + return ((ModemDigital *)cModem)->getDemodulatorLock(); + } + + return -1; } void DemodulatorInstance::setDemodulatorCons(int demod_cons_in) { - demodulatorThread->setDemodulatorCons(demod_cons_in); + Modem *cModem = demodulatorPreThread->getModem(); + if (cModem && cModem->getType() == "digital") { + ((ModemDigital *)cModem)->setDemodulatorCons(demod_cons_in); + } } int DemodulatorInstance::getDemodulatorCons() { - return demodulatorThread->getDemodulatorCons(); + Modem *cModem = demodulatorPreThread->getModem(); + if (cModem && cModem->getType() == "digital") { + return ((ModemDigital *)cModem)->getDemodulatorCons(); + } + return -1; } void DemodulatorInstance::setBandwidth(int bw) { diff --git a/src/demod/DemodulatorInstance.h b/src/demod/DemodulatorInstance.h index 158b800..612cf07 100644 --- a/src/demod/DemodulatorInstance.h +++ b/src/demod/DemodulatorInstance.h @@ -7,6 +7,9 @@ #include "DemodulatorThread.h" #include "DemodulatorPreThread.h" +#include "ModemDigital.h" +#include "ModemAnalog.h" + class DemodulatorInstance { public: @@ -112,7 +115,6 @@ private: std::atomic_llong currentFrequency; std::atomic_int currentBandwidth; std::string currentDemodType; - std::atomic_int currentDemodCons; std::atomic_int currentOutputDevice; std::atomic_int currentAudioSampleRate; std::atomic currentAudioGain; diff --git a/src/demod/DemodulatorPreThread.cpp b/src/demod/DemodulatorPreThread.cpp index acd18c9..1235134 100644 --- a/src/demod/DemodulatorPreThread.cpp +++ b/src/demod/DemodulatorPreThread.cpp @@ -284,3 +284,12 @@ void DemodulatorPreThread::terminate() { delete workerResults; delete workerQueue; } + + +Modem *DemodulatorPreThread::getModem() { + return cModem; +} + +ModemKit *DemodulatorPreThread::getModemKit() { + return cModemKit; +} diff --git a/src/demod/DemodulatorPreThread.h b/src/demod/DemodulatorPreThread.h index 28110dc..f339a70 100644 --- a/src/demod/DemodulatorPreThread.h +++ b/src/demod/DemodulatorPreThread.h @@ -24,12 +24,9 @@ public: void initialize(); void terminate(); -#ifdef __APPLE__ - static void *pthread_helper(void *context) { - return ((DemodulatorPreThread *) context)->threadMain(); - } -#endif - + Modem *getModem(); + ModemKit *getModemKit(); + protected: msresamp_crcf iqResampler; double iqResampleRatio; diff --git a/src/modules/modem/Modem.cpp b/src/modules/modem/Modem.cpp index f9acec2..8a1ff0e 100644 --- a/src/modules/modem/Modem.cpp +++ b/src/modules/modem/Modem.cpp @@ -2,8 +2,8 @@ ModemFactoryList Modem::modemFactories; -void Modem::addModemFactory(std::string modemName, Modem *factorySingle) { - modemFactories[modemName] = factorySingle; +void Modem::addModemFactory(Modem *factorySingle) { + modemFactories[factorySingle->getName()] = factorySingle; } ModemFactoryList Modem::getFactories() { diff --git a/src/modules/modem/Modem.h b/src/modules/modem/Modem.h index be905ba..e11e18d 100644 --- a/src/modules/modem/Modem.h +++ b/src/modules/modem/Modem.h @@ -14,7 +14,6 @@ public: int audioSampleRate; }; - class ModemIQData: public ReferenceCounter { public: std::vector data; @@ -34,10 +33,11 @@ typedef std::map ModemFactoryList; class Modem { public: - static void addModemFactory(std::string modemName, Modem *factorySingle); + static void addModemFactory(Modem *factorySingle); static ModemFactoryList getFactories(); static Modem *makeModem(std::string modemType); - + virtual std::string getType() = 0; + virtual std::string getName() = 0; virtual Modem *factory() = 0; Modem(); diff --git a/src/modules/modem/ModemAnalog.cpp b/src/modules/modem/ModemAnalog.cpp index 1284bc1..58474e8 100644 --- a/src/modules/modem/ModemAnalog.cpp +++ b/src/modules/modem/ModemAnalog.cpp @@ -4,6 +4,10 @@ ModemAnalog::ModemAnalog() : aOutputCeil(1), aOutputCeilMA(1), aOutputCeilMAA(1) } +std::string ModemAnalog::getType() { + return "analog"; +} + ModemKit *ModemAnalog::buildKit(long long sampleRate, int audioSampleRate) { ModemKitAnalog *akit = new ModemKitAnalog; diff --git a/src/modules/modem/ModemAnalog.h b/src/modules/modem/ModemAnalog.h index 0a64151..2f80db7 100644 --- a/src/modules/modem/ModemAnalog.h +++ b/src/modules/modem/ModemAnalog.h @@ -15,6 +15,7 @@ public: class ModemAnalog : public Modem { public: ModemAnalog(); + std::string getType(); ModemKit *buildKit(long long sampleRate, int audioSampleRate); void disposeKit(ModemKit *kit); void initOutputBuffers(ModemKitAnalog *akit, ModemIQData *input); diff --git a/src/modules/modem/ModemDigital.cpp b/src/modules/modem/ModemDigital.cpp index ee5ba2d..6c2224d 100644 --- a/src/modules/modem/ModemDigital.cpp +++ b/src/modules/modem/ModemDigital.cpp @@ -1,6 +1,11 @@ #include "ModemDigital.h" ModemDigital::ModemDigital() { + +} + +std::string ModemDigital::getType() { + return "digital"; } ModemKit *ModemDigital::buildKit(long long sampleRate, int audioSampleRate) { diff --git a/src/modules/modem/ModemDigital.h b/src/modules/modem/ModemDigital.h index de427cc..34a119b 100644 --- a/src/modules/modem/ModemDigital.h +++ b/src/modules/modem/ModemDigital.h @@ -12,6 +12,7 @@ public: class ModemDigital : public Modem { public: ModemDigital(); + std::string getType(); ModemKit *buildKit(long long sampleRate, int audioSampleRate); void disposeKit(ModemKit *kit); void digitalStart(ModemKitDigital *kit, modem mod, ModemIQData *input); diff --git a/src/modules/modem/analog/ModemAM.cpp b/src/modules/modem/analog/ModemAM.cpp index dbd6bc0..75c0be0 100644 --- a/src/modules/modem/analog/ModemAM.cpp +++ b/src/modules/modem/analog/ModemAM.cpp @@ -8,6 +8,10 @@ Modem *ModemAM::factory() { return new ModemAM; } +std::string ModemAM::getName() { + return "AM"; +} + void ModemAM::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) { ModemKitAnalog *amkit = (ModemKitAnalog *)kit; diff --git a/src/modules/modem/analog/ModemAM.h b/src/modules/modem/analog/ModemAM.h index d7d115e..8a1d017 100644 --- a/src/modules/modem/analog/ModemAM.h +++ b/src/modules/modem/analog/ModemAM.h @@ -5,6 +5,7 @@ class ModemAM : public ModemAnalog { public: ModemAM(); + std::string getName(); Modem *factory(); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/analog/ModemDSB.cpp b/src/modules/modem/analog/ModemDSB.cpp index 62c5054..042593a 100644 --- a/src/modules/modem/analog/ModemDSB.cpp +++ b/src/modules/modem/analog/ModemDSB.cpp @@ -8,6 +8,10 @@ Modem *ModemDSB::factory() { return new ModemDSB; } +std::string ModemDSB::getName() { + return "DSB"; +} + void ModemDSB::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) { ModemKitAnalog *amkit = (ModemKitAnalog *)kit; diff --git a/src/modules/modem/analog/ModemDSB.h b/src/modules/modem/analog/ModemDSB.h index 1c94e7a..fc0e550 100644 --- a/src/modules/modem/analog/ModemDSB.h +++ b/src/modules/modem/analog/ModemDSB.h @@ -5,6 +5,7 @@ class ModemDSB : public ModemAnalog { public: ModemDSB(); + std::string getName(); Modem *factory(); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/analog/ModemFM.cpp b/src/modules/modem/analog/ModemFM.cpp index ee28692..259fcfd 100644 --- a/src/modules/modem/analog/ModemFM.cpp +++ b/src/modules/modem/analog/ModemFM.cpp @@ -8,6 +8,10 @@ Modem *ModemFM::factory() { return new ModemFM; } +std::string ModemFM::getName() { + return "FM"; +} + void ModemFM::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) { ModemKitAnalog *fmkit = (ModemKitAnalog *)kit; diff --git a/src/modules/modem/analog/ModemFM.h b/src/modules/modem/analog/ModemFM.h index c96bcdd..a763bc2 100644 --- a/src/modules/modem/analog/ModemFM.h +++ b/src/modules/modem/analog/ModemFM.h @@ -5,6 +5,7 @@ class ModemFM : public ModemAnalog { public: ModemFM(); + std::string getName(); Modem *factory(); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/analog/ModemFMStereo.cpp b/src/modules/modem/analog/ModemFMStereo.cpp index e020fa0..04ec5d7 100644 --- a/src/modules/modem/analog/ModemFMStereo.cpp +++ b/src/modules/modem/analog/ModemFMStereo.cpp @@ -18,6 +18,14 @@ ModemFMStereo::~ModemFMStereo() { nco_crcf_destroy(stereoPilot); } +std::string ModemFMStereo::getType() { + return "analog"; +} + +std::string ModemFMStereo::getName() { + return "FMS"; +} + Modem *ModemFMStereo::factory() { return new ModemFMStereo; } diff --git a/src/modules/modem/analog/ModemFMStereo.h b/src/modules/modem/analog/ModemFMStereo.h index b3f116e..cbc5aec 100644 --- a/src/modules/modem/analog/ModemFMStereo.h +++ b/src/modules/modem/analog/ModemFMStereo.h @@ -20,6 +20,8 @@ class ModemFMStereo : public Modem { public: ModemFMStereo(); ~ModemFMStereo(); + std::string getType(); + std::string getName(); Modem *factory(); ModemKit *buildKit(long long sampleRate, int audioSampleRate); void disposeKit(ModemKit *kit); diff --git a/src/modules/modem/analog/ModemIQ.cpp b/src/modules/modem/analog/ModemIQ.cpp index 055c6e8..6c984f6 100644 --- a/src/modules/modem/analog/ModemIQ.cpp +++ b/src/modules/modem/analog/ModemIQ.cpp @@ -13,6 +13,14 @@ ModemKit *ModemIQ::buildKit(long long sampleRate, int audioSampleRate) { return kit; } +std::string ModemIQ::getType() { + return "analog"; +} + +std::string ModemIQ::getName() { + return "I/Q"; +} + void ModemIQ::disposeKit(ModemKit *kit) { delete kit; } diff --git a/src/modules/modem/analog/ModemIQ.h b/src/modules/modem/analog/ModemIQ.h index 7bda47e..abd9d94 100644 --- a/src/modules/modem/analog/ModemIQ.h +++ b/src/modules/modem/analog/ModemIQ.h @@ -4,6 +4,8 @@ class ModemIQ : public Modem { public: ModemIQ(); + std::string getType(); + std::string getName(); Modem *factory(); ModemKit *buildKit(long long sampleRate, int audioSampleRate); void disposeKit(ModemKit *kit); diff --git a/src/modules/modem/analog/ModemLSB.cpp b/src/modules/modem/analog/ModemLSB.cpp index 74c3b3a..44fb116 100644 --- a/src/modules/modem/analog/ModemLSB.cpp +++ b/src/modules/modem/analog/ModemLSB.cpp @@ -10,6 +10,10 @@ Modem *ModemLSB::factory() { return new ModemLSB; } +std::string ModemLSB::getName() { + return "LSB"; +} + ModemLSB::~ModemLSB() { resamp2_crcf_destroy(ssbFilt); ampmodem_destroy(demodAM_LSB); diff --git a/src/modules/modem/analog/ModemLSB.h b/src/modules/modem/analog/ModemLSB.h index 180928b..cbdc176 100644 --- a/src/modules/modem/analog/ModemLSB.h +++ b/src/modules/modem/analog/ModemLSB.h @@ -6,6 +6,7 @@ class ModemLSB : public ModemAnalog { public: ModemLSB(); ~ModemLSB(); + std::string getName(); Modem *factory(); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/analog/ModemUSB.cpp b/src/modules/modem/analog/ModemUSB.cpp index 2827451..0482d4f 100644 --- a/src/modules/modem/analog/ModemUSB.cpp +++ b/src/modules/modem/analog/ModemUSB.cpp @@ -10,6 +10,10 @@ Modem *ModemUSB::factory() { return new ModemUSB; } +std::string ModemUSB::getName() { + return "USB"; +} + ModemUSB::~ModemUSB() { resamp2_crcf_destroy(ssbFilt); ampmodem_destroy(demodAM_USB); diff --git a/src/modules/modem/analog/ModemUSB.h b/src/modules/modem/analog/ModemUSB.h index 8267526..d6d3a4d 100644 --- a/src/modules/modem/analog/ModemUSB.h +++ b/src/modules/modem/analog/ModemUSB.h @@ -5,6 +5,7 @@ class ModemUSB : public ModemAnalog { public: ModemUSB(); ~ModemUSB(); + std::string getName(); Modem *factory(); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemAPSK.cpp b/src/modules/modem/digital/ModemAPSK.cpp index 65e2189..ed04c10 100644 --- a/src/modules/modem/digital/ModemAPSK.cpp +++ b/src/modules/modem/digital/ModemAPSK.cpp @@ -27,6 +27,10 @@ ModemAPSK::~ModemAPSK() { modem_destroy(demodAPSK256); } +std::string ModemAPSK::getName() { + return "APSK"; +} + void ModemAPSK::updateDemodulatorCons(int cons) { if (currentDemodCons.load() != cons) { currentDemodCons = cons; diff --git a/src/modules/modem/digital/ModemAPSK.h b/src/modules/modem/digital/ModemAPSK.h index 003bcfe..f5497df 100644 --- a/src/modules/modem/digital/ModemAPSK.h +++ b/src/modules/modem/digital/ModemAPSK.h @@ -5,6 +5,7 @@ class ModemAPSK : public ModemDigital { public: ModemAPSK(); ~ModemAPSK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemASK.cpp b/src/modules/modem/digital/ModemASK.cpp index 2888f6e..7a9f405 100644 --- a/src/modules/modem/digital/ModemASK.cpp +++ b/src/modules/modem/digital/ModemASK.cpp @@ -29,10 +29,13 @@ ModemASK::~ModemASK() { modem_destroy(demodASK256); } +std::string ModemASK::getName() { + return "ASK"; +} + void ModemASK::updateDemodulatorCons(int cons) { if (currentDemodCons.load() != cons) { currentDemodCons = cons; - } } diff --git a/src/modules/modem/digital/ModemASK.h b/src/modules/modem/digital/ModemASK.h index a32fc6e..5dfffc1 100644 --- a/src/modules/modem/digital/ModemASK.h +++ b/src/modules/modem/digital/ModemASK.h @@ -5,6 +5,7 @@ class ModemASK : public ModemDigital { public: ModemASK(); ~ModemASK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemBPSK.cpp b/src/modules/modem/digital/ModemBPSK.cpp index d7339d3..535cdae 100644 --- a/src/modules/modem/digital/ModemBPSK.cpp +++ b/src/modules/modem/digital/ModemBPSK.cpp @@ -12,6 +12,10 @@ ModemBPSK::~ModemBPSK() { modem_destroy(demodBPSK); } +std::string ModemBPSK::getName() { + return "BPSK"; +} + void ModemBPSK::updateDemodulatorCons(int cons) { if (currentDemodCons.load() != cons) { currentDemodCons = cons; diff --git a/src/modules/modem/digital/ModemBPSK.h b/src/modules/modem/digital/ModemBPSK.h index be28c16..ef26c5c 100644 --- a/src/modules/modem/digital/ModemBPSK.h +++ b/src/modules/modem/digital/ModemBPSK.h @@ -5,6 +5,7 @@ class ModemBPSK : public ModemDigital { public: ModemBPSK(); ~ModemBPSK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemDPSK.cpp b/src/modules/modem/digital/ModemDPSK.cpp index 07e49f5..b44ebb7 100644 --- a/src/modules/modem/digital/ModemDPSK.cpp +++ b/src/modules/modem/digital/ModemDPSK.cpp @@ -18,6 +18,10 @@ Modem *ModemDPSK::factory() { return new ModemDPSK; } +std::string ModemDPSK::getName() { + return "DPSK"; +} + ModemDPSK::~ModemDPSK() { modem_destroy(demodDPSK2); modem_destroy(demodDPSK4); diff --git a/src/modules/modem/digital/ModemDPSK.h b/src/modules/modem/digital/ModemDPSK.h index 00b115d..b431ffd 100644 --- a/src/modules/modem/digital/ModemDPSK.h +++ b/src/modules/modem/digital/ModemDPSK.h @@ -5,6 +5,7 @@ class ModemDPSK : public ModemDigital { public: ModemDPSK(); ~ModemDPSK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemOOK.cpp b/src/modules/modem/digital/ModemOOK.cpp index 87b6d48..7be56d7 100644 --- a/src/modules/modem/digital/ModemOOK.cpp +++ b/src/modules/modem/digital/ModemOOK.cpp @@ -12,6 +12,9 @@ ModemOOK::~ModemOOK() { modem_destroy(demodOOK); } +std::string ModemOOK::getName() { + return "OOK"; +} void ModemOOK::updateDemodulatorCons(int cons) { if (currentDemodCons.load() != cons) { diff --git a/src/modules/modem/digital/ModemOOK.h b/src/modules/modem/digital/ModemOOK.h index 5bc7731..6f15c8b 100644 --- a/src/modules/modem/digital/ModemOOK.h +++ b/src/modules/modem/digital/ModemOOK.h @@ -5,6 +5,7 @@ class ModemOOK : public ModemDigital { public: ModemOOK(); ~ModemOOK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemPSK.cpp b/src/modules/modem/digital/ModemPSK.cpp index 3d391cd..cf05a9e 100644 --- a/src/modules/modem/digital/ModemPSK.cpp +++ b/src/modules/modem/digital/ModemPSK.cpp @@ -18,6 +18,10 @@ Modem *ModemPSK::factory() { return new ModemPSK; } +std::string ModemPSK::getName() { + return "PSK"; +} + ModemPSK::~ModemPSK() { modem_destroy(demodPSK2); modem_destroy(demodPSK4); diff --git a/src/modules/modem/digital/ModemPSK.h b/src/modules/modem/digital/ModemPSK.h index d1818fc..913f8f8 100644 --- a/src/modules/modem/digital/ModemPSK.h +++ b/src/modules/modem/digital/ModemPSK.h @@ -5,6 +5,7 @@ class ModemPSK : public ModemDigital { public: ModemPSK(); ~ModemPSK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemQAM.cpp b/src/modules/modem/digital/ModemQAM.cpp index 5beea0e..f14b5b5 100644 --- a/src/modules/modem/digital/ModemQAM.cpp +++ b/src/modules/modem/digital/ModemQAM.cpp @@ -17,6 +17,10 @@ Modem *ModemQAM::factory() { return new ModemQAM; } +std::string ModemQAM::getName() { + return "QAM"; +} + ModemQAM::~ModemQAM() { modem_destroy(demodQAM4); modem_destroy(demodQAM8); diff --git a/src/modules/modem/digital/ModemQAM.h b/src/modules/modem/digital/ModemQAM.h index 2780321..973f9ff 100644 --- a/src/modules/modem/digital/ModemQAM.h +++ b/src/modules/modem/digital/ModemQAM.h @@ -5,6 +5,7 @@ class ModemQAM : public ModemDigital { public: ModemQAM(); ~ModemQAM(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemQPSK.cpp b/src/modules/modem/digital/ModemQPSK.cpp index d47e998..309cadb 100644 --- a/src/modules/modem/digital/ModemQPSK.cpp +++ b/src/modules/modem/digital/ModemQPSK.cpp @@ -12,6 +12,10 @@ ModemQPSK::~ModemQPSK() { modem_destroy(demodQPSK); } +std::string ModemQPSK::getName() { + return "QPSK"; +} + void ModemQPSK::updateDemodulatorCons(int cons) { if (currentDemodCons.load() != cons) { currentDemodCons = cons; diff --git a/src/modules/modem/digital/ModemQPSK.h b/src/modules/modem/digital/ModemQPSK.h index 7fbd56f..4d26e49 100644 --- a/src/modules/modem/digital/ModemQPSK.h +++ b/src/modules/modem/digital/ModemQPSK.h @@ -5,6 +5,7 @@ class ModemQPSK : public ModemDigital { public: ModemQPSK(); ~ModemQPSK(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemSQAM.cpp b/src/modules/modem/digital/ModemSQAM.cpp index c8df8c7..a4abd39 100644 --- a/src/modules/modem/digital/ModemSQAM.cpp +++ b/src/modules/modem/digital/ModemSQAM.cpp @@ -17,6 +17,10 @@ ModemSQAM::~ModemSQAM() { modem_destroy(demodSQAM128); } +std::string ModemSQAM::getName() { + return "SQAM"; +} + void ModemSQAM::updateDemodulatorCons(int cons) { if (currentDemodCons.load() != cons) { currentDemodCons = cons; diff --git a/src/modules/modem/digital/ModemSQAM.h b/src/modules/modem/digital/ModemSQAM.h index b87c770..e26b497 100644 --- a/src/modules/modem/digital/ModemSQAM.h +++ b/src/modules/modem/digital/ModemSQAM.h @@ -5,6 +5,7 @@ class ModemSQAM : public ModemDigital { public: ModemSQAM(); ~ModemSQAM(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut); diff --git a/src/modules/modem/digital/ModemST.cpp b/src/modules/modem/digital/ModemST.cpp index 708063b..b5d8e3f 100644 --- a/src/modules/modem/digital/ModemST.cpp +++ b/src/modules/modem/digital/ModemST.cpp @@ -8,6 +8,10 @@ Modem *ModemST::factory() { return new ModemST; } +std::string ModemST::getName() { + return "ST"; +} + ModemST::~ModemST() { modem_destroy(demodST); } diff --git a/src/modules/modem/digital/ModemST.h b/src/modules/modem/digital/ModemST.h index 26cf358..ac9ee10 100644 --- a/src/modules/modem/digital/ModemST.h +++ b/src/modules/modem/digital/ModemST.h @@ -5,6 +5,7 @@ class ModemST : public ModemDigital { public: ModemST(); ~ModemST(); + std::string getName(); Modem *factory(); void updateDemodulatorCons(int cons); void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut);