CubicSDR/src/modules/modem/ModemDigital.cpp

59 lines
1.4 KiB
C++
Raw Normal View History

#include "ModemDigital.h"
ModemDigital::ModemDigital() {
}
std::string ModemDigital::getType() {
return "digital";
}
int ModemDigital::checkSampleRate(long long sampleRate, int audioSampleRate) {
if (sampleRate < 1500) {
return 1500;
}
return sampleRate;
}
ModemKit *ModemDigital::buildKit(long long sampleRate, int audioSampleRate) {
ModemKitDigital *dkit = new ModemKitDigital;
dkit->sampleRate = sampleRate;
dkit->audioSampleRate = audioSampleRate;
return dkit;
}
void ModemDigital::disposeKit(ModemKit *kit) {
ModemKitDigital *dkit = (ModemKitDigital *)kit;
delete dkit;
}
void ModemDigital::setDemodulatorLock(bool demod_lock_in) {
2015-11-18 22:57:31 -05:00
currentDemodLock.store(demod_lock_in);
}
int ModemDigital::getDemodulatorLock() {
2015-11-18 22:57:31 -05:00
return currentDemodLock.load();
}
2015-11-18 22:57:31 -05:00
void ModemDigital::updateDemodulatorLock(modem mod, float sensitivity) {
2015-11-18 23:01:56 -05:00
setDemodulatorLock(modem_get_demodulator_evm(mod) <= sensitivity);
}
2015-11-18 22:57:31 -05:00
void ModemDigital::digitalStart(ModemKitDigital *kit, modem mod, ModemIQData *input) {
int bufSize = input->data.size();
if (demodOutputDataDigital.size() != bufSize) {
if (demodOutputDataDigital.capacity() < bufSize) {
demodOutputDataDigital.reserve(bufSize);
}
demodOutputDataDigital.resize(bufSize);
}
}
2015-11-18 22:57:31 -05:00
void ModemDigital::digitalFinish(ModemKitDigital *kit, modem mod) {
demodOutputDataDigital.empty();
}