mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-02-03 09:44:26 -05:00
Add FM Stereo De-emphasis setting
This commit is contained in:
parent
fd26c290bd
commit
5b4a348306
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
ModemFMStereo::ModemFMStereo() {
|
ModemFMStereo::ModemFMStereo() {
|
||||||
demodFM = freqdem_create(0.5);
|
demodFM = freqdem_create(0.5);
|
||||||
|
_demph = 75;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModemFMStereo::~ModemFMStereo() {
|
ModemFMStereo::~ModemFMStereo() {
|
||||||
@ -34,6 +35,48 @@ int ModemFMStereo::getDefaultSampleRate() {
|
|||||||
return 200000;
|
return 200000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ModemArgInfoList ModemFMStereo::getSettings() {
|
||||||
|
ModemArgInfoList args;
|
||||||
|
|
||||||
|
ModemArgInfo demphArg;
|
||||||
|
demphArg.key = "demph";
|
||||||
|
demphArg.name = "De-emphasis";
|
||||||
|
demphArg.value = std::to_string(_demph);
|
||||||
|
demphArg.description = "FM Stereo De-Emphasis, typically 75us in US/Canada, 50us elsewhere.";
|
||||||
|
|
||||||
|
demphArg.type = ModemArgInfo::STRING;
|
||||||
|
|
||||||
|
std::vector<std::string> demphOptNames;
|
||||||
|
demphOptNames.push_back("None");
|
||||||
|
demphOptNames.push_back("50μs");
|
||||||
|
demphOptNames.push_back("75μs");
|
||||||
|
demphArg.optionNames = demphOptNames;
|
||||||
|
|
||||||
|
std::vector<std::string> demphOpts;
|
||||||
|
demphOpts.push_back("0");
|
||||||
|
demphOpts.push_back("50");
|
||||||
|
demphOpts.push_back("75");
|
||||||
|
demphArg.options = demphOpts;
|
||||||
|
|
||||||
|
args.push_back(demphArg);
|
||||||
|
|
||||||
|
return args;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModemFMStereo::writeSetting(std::string setting, std::string value) {
|
||||||
|
if (setting == "demph") {
|
||||||
|
_demph = std::stoi(value);
|
||||||
|
rebuildKit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string ModemFMStereo::readSetting(std::string setting) {
|
||||||
|
if (setting == "demph") {
|
||||||
|
return std::to_string(_demph);
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
ModemKit *ModemFMStereo::buildKit(long long sampleRate, int audioSampleRate) {
|
ModemKit *ModemFMStereo::buildKit(long long sampleRate, int audioSampleRate) {
|
||||||
ModemKitFMStereo *kit = new ModemKitFMStereo;
|
ModemKitFMStereo *kit = new ModemKitFMStereo;
|
||||||
|
|
||||||
|
@ -34,6 +34,10 @@ public:
|
|||||||
int checkSampleRate(long long sampleRate, int audioSampleRate);
|
int checkSampleRate(long long sampleRate, int audioSampleRate);
|
||||||
int getDefaultSampleRate();
|
int getDefaultSampleRate();
|
||||||
|
|
||||||
|
ModemArgInfoList getSettings();
|
||||||
|
void writeSetting(std::string setting, std::string value);
|
||||||
|
std::string readSetting(std::string setting);
|
||||||
|
|
||||||
ModemKit *buildKit(long long sampleRate, int audioSampleRate);
|
ModemKit *buildKit(long long sampleRate, int audioSampleRate);
|
||||||
void disposeKit(ModemKit *kit);
|
void disposeKit(ModemKit *kit);
|
||||||
|
|
||||||
@ -45,4 +49,6 @@ private:
|
|||||||
std::vector<float> resampledOutputData;
|
std::vector<float> resampledOutputData;
|
||||||
std::vector<float> resampledStereoData;
|
std::vector<float> resampledStereoData;
|
||||||
freqdem demodFM;
|
freqdem demodFM;
|
||||||
|
|
||||||
|
int _demph;
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user