2015-11-18 21:09:51 -05:00
|
|
|
#include "ModemDigital.h"
|
|
|
|
|
|
|
|
ModemDigital::ModemDigital() {
|
2015-11-18 23:40:30 -05:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string ModemDigital::getType() {
|
|
|
|
return "digital";
|
2015-11-18 21:09:51 -05:00
|
|
|
}
|
|
|
|
|
2015-11-22 19:56:25 -05:00
|
|
|
int ModemDigital::checkSampleRate(long long sampleRate, int audioSampleRate) {
|
2015-11-22 23:38:26 -05:00
|
|
|
if (sampleRate < 1500) {
|
|
|
|
return 1500;
|
|
|
|
}
|
2015-11-22 19:56:25 -05:00
|
|
|
return sampleRate;
|
|
|
|
}
|
|
|
|
|
2015-11-18 21:09:51 -05:00
|
|
|
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);
|
2015-11-18 21:09:51 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
int ModemDigital::getDemodulatorLock() {
|
2015-11-18 22:57:31 -05:00
|
|
|
return currentDemodLock.load();
|
2015-11-18 21:09:51 -05:00
|
|
|
}
|
|
|
|
|
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 21:09:51 -05:00
|
|
|
}
|
|
|
|
|
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 21:09:51 -05:00
|
|
|
}
|
|
|
|
|
2015-11-18 22:57:31 -05:00
|
|
|
void ModemDigital::digitalFinish(ModemKitDigital *kit, modem mod) {
|
|
|
|
demodOutputDataDigital.empty();
|
2015-11-18 21:09:51 -05:00
|
|
|
}
|
2015-11-23 20:03:47 -05:00
|
|
|
|