Cleanup: modem digital/analog base

This commit is contained in:
Charles J. Cliffe 2021-04-04 22:16:30 -04:00
parent 592ffa2050
commit 02fdcb2aa3
6 changed files with 27 additions and 38 deletions

View File

@ -2,14 +2,13 @@
// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: GPL-2.0+
#include "Modem.h" #include "Modem.h"
#include "CubicSDR.h"
ModemFactoryList Modem::modemFactories; ModemFactoryList Modem::modemFactories;
DefaultRatesList Modem::modemDefaultRates; DefaultRatesList Modem::modemDefaultRates;
//! Create an empty range (0.0, 0.0) //! Create an empty range (0.0, 0.0)
ModemRange::ModemRange(void) { ModemRange::ModemRange() {
_min = 0; _min = 0;
_max = 0; _max = 0;
} }
@ -21,26 +20,22 @@ ModemRange::ModemRange(const double minimum, const double maximum) {
} }
//! Get the range minimum //! Get the range minimum
double ModemRange::minimum(void) const { double ModemRange::minimum() const {
return _min; return _min;
} }
//! Get the range maximum //! Get the range maximum
double ModemRange::maximum(void) const { double ModemRange::maximum() const {
return _max; return _max;
} }
ModemArgInfo::ModemArgInfo(void) { ModemArgInfo::ModemArgInfo() = default;
}
Modem::Modem() { Modem::Modem() {
useSignalOutput(false); useSignalOutput(false);
} }
Modem::~Modem() { Modem::~Modem() = default;
}
void Modem::addModemFactory(ModemFactoryFn factoryFunc, std::string modemName, int defaultRate) { void Modem::addModemFactory(ModemFactoryFn factoryFunc, std::string modemName, int defaultRate) {
modemFactories[modemName] = factoryFunc; modemFactories[modemName] = factoryFunc;
@ -94,8 +89,8 @@ void Modem::writeSettings(ModemSettings settings) {
ModemSettings Modem::readSettings() { ModemSettings Modem::readSettings() {
ModemArgInfoList args = getSettings(); ModemArgInfoList args = getSettings();
ModemSettings rs; ModemSettings rs;
for (ModemArgInfoList::const_iterator i = args.begin(); i != args.end(); i++) { for (const auto & arg : args) {
rs[i->key] = readSetting(i->key); rs[arg.key] = readSetting(arg.key);
} }
return rs; return rs;
} }

View File

@ -35,9 +35,7 @@ public:
} }
virtual ~ModemIQData() { virtual ~ModemIQData() = default;
}
}; };
typedef std::shared_ptr<ModemIQData> ModemIQDataPtr; typedef std::shared_ptr<ModemIQData> ModemIQDataPtr;
@ -48,16 +46,16 @@ class ModemRange
public: public:
//! Create an empty range (0.0, 0.0) //! Create an empty range (0.0, 0.0)
ModemRange(void); ModemRange();
//! Create a min/max range //! Create a min/max range
ModemRange(const double minimum, const double maximum); ModemRange(double minimum, double maximum);
//! Get the range minimum //! Get the range minimum
double minimum(void) const; double minimum() const;
//! Get the range maximum //! Get the range maximum
double maximum(void) const; double maximum() const;
private: private:
double _min, _max; double _min, _max;
@ -68,7 +66,7 @@ class ModemArgInfo
{ {
public: public:
//! Default constructor //! Default constructor
ModemArgInfo(void); ModemArgInfo();
//! The key used to identify the argument (required) //! The key used to identify the argument (required)
std::string key; std::string key;

View File

@ -19,7 +19,7 @@ int ModemAnalog::checkSampleRate(long long sampleRate, int /* audioSampleRate */
} }
ModemKit *ModemAnalog::buildKit(long long sampleRate, int audioSampleRate) { ModemKit *ModemAnalog::buildKit(long long sampleRate, int audioSampleRate) {
ModemKitAnalog *akit = new ModemKitAnalog; auto *akit = new ModemKitAnalog;
// stop-band attenuation [dB] // stop-band attenuation [dB]
float As = 60.0f; float As = 60.0f;
@ -33,7 +33,7 @@ ModemKit *ModemAnalog::buildKit(long long sampleRate, int audioSampleRate) {
} }
void ModemAnalog::disposeKit(ModemKit *kit) { void ModemAnalog::disposeKit(ModemKit *kit) {
ModemKitAnalog *akit = (ModemKitAnalog *)kit; auto *akit = (ModemKitAnalog *)kit;
msresamp_rrrf_destroy(akit->audioResampler); msresamp_rrrf_destroy(akit->audioResampler);
delete akit; delete akit;

View File

@ -18,10 +18,10 @@ public:
class ModemAnalog : public Modem { class ModemAnalog : public Modem {
public: public:
ModemAnalog(); ModemAnalog();
std::string getType(); std::string getType() override;
virtual int checkSampleRate(long long sampleRate, int audioSampleRate); int checkSampleRate(long long sampleRate, int audioSampleRate) override;
virtual ModemKit *buildKit(long long sampleRate, int audioSampleRate); ModemKit *buildKit(long long sampleRate, int audioSampleRate) override;
virtual void disposeKit(ModemKit *kit); void disposeKit(ModemKit *kit) override;
virtual void initOutputBuffers(ModemKitAnalog *akit, ModemIQData *input); virtual void initOutputBuffers(ModemKitAnalog *akit, ModemIQData *input);
virtual void buildAudioOutput(ModemKitAnalog *akit, AudioThreadInput *audioOut, bool autoGain); virtual void buildAudioOutput(ModemKitAnalog *akit, AudioThreadInput *audioOut, bool autoGain);
virtual std::vector<float> *getDemodOutputData(); virtual std::vector<float> *getDemodOutputData();

View File

@ -4,9 +4,7 @@
#include "ModemDigital.h" #include "ModemDigital.h"
ModemDigitalOutput::ModemDigitalOutput() { ModemDigitalOutput::ModemDigitalOutput() = default;
}
ModemDigital::ModemDigital() : Modem() { ModemDigital::ModemDigital() : Modem() {
#if ENABLE_DIGITAL_LAB #if ENABLE_DIGITAL_LAB
@ -14,9 +12,7 @@ ModemDigital::ModemDigital() : Modem() {
#endif #endif
} }
ModemDigitalOutput::~ModemDigitalOutput() { ModemDigitalOutput::~ModemDigitalOutput() = default;
}
std::string ModemDigital::getType() { std::string ModemDigital::getType() {
return "digital"; return "digital";
@ -30,7 +26,7 @@ int ModemDigital::checkSampleRate(long long sampleRate, int /* audioSampleRate *
} }
ModemKit *ModemDigital::buildKit(long long sampleRate, int audioSampleRate) { ModemKit *ModemDigital::buildKit(long long sampleRate, int audioSampleRate) {
ModemKitDigital *dkit = new ModemKitDigital; auto *dkit = new ModemKitDigital;
dkit->sampleRate = sampleRate; dkit->sampleRate = sampleRate;
dkit->audioSampleRate = audioSampleRate; dkit->audioSampleRate = audioSampleRate;
@ -39,7 +35,7 @@ ModemKit *ModemDigital::buildKit(long long sampleRate, int audioSampleRate) {
} }
void ModemDigital::disposeKit(ModemKit *kit) { void ModemDigital::disposeKit(ModemKit *kit) {
ModemKitDigital *dkit = (ModemKitDigital *)kit; auto *dkit = (ModemKitDigital *)kit;
delete dkit; delete dkit;
} }

View File

@ -35,12 +35,12 @@ class ModemDigital : public Modem {
public: public:
ModemDigital(); ModemDigital();
std::string getType(); std::string getType() override;
virtual int checkSampleRate(long long sampleRate, int audioSampleRate); int checkSampleRate(long long sampleRate, int audioSampleRate) override;
virtual ModemKit *buildKit(long long sampleRate, int audioSampleRate); ModemKit *buildKit(long long sampleRate, int audioSampleRate) override;
virtual void disposeKit(ModemKit *kit); void disposeKit(ModemKit *kit) override;
virtual void digitalStart(ModemKitDigital *kit, modem mod, ModemIQData *input); virtual void digitalStart(ModemKitDigital *kit, modem mod, ModemIQData *input);
virtual void digitalFinish(ModemKitDigital *kit, modem mod); virtual void digitalFinish(ModemKitDigital *kit, modem mod);