mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-07-31 12:52:25 -04:00
Cleanup: modem digital/analog base
This commit is contained in:
parent
592ffa2050
commit
02fdcb2aa3
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user