43 lines
879 B
C++
43 lines
879 B
C++
// Copyright (c) Charles J. Cliffe
|
|
// SPDX-License-Identifier: GPL-2.0+
|
|
|
|
#include "ModemAM.h"
|
|
|
|
ModemAM::ModemAM() : ModemAnalog() {
|
|
demodAM = ampmodem_create(0.5, 0.0, LIQUID_AMPMODEM_DSB, 0);
|
|
useSignalOutput(true);
|
|
}
|
|
|
|
ModemAM::~ModemAM() {
|
|
ampmodem_destroy(demodAM);
|
|
}
|
|
|
|
ModemBase *ModemAM::factory() {
|
|
return new ModemAM;
|
|
}
|
|
|
|
std::string ModemAM::getName() {
|
|
return "AM";
|
|
}
|
|
|
|
int ModemAM::getDefaultSampleRate() {
|
|
return 6000;
|
|
}
|
|
|
|
void ModemAM::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) {
|
|
ModemKitAnalog *amkit = (ModemKitAnalog *)kit;
|
|
|
|
initOutputBuffers(amkit,input);
|
|
|
|
if (!bufSize) {
|
|
input->decRefCount();
|
|
return;
|
|
}
|
|
|
|
for (size_t i = 0; i < bufSize; i++) {
|
|
ampmodem_demodulate(demodAM, input->data[i], &demodOutputData[i]);
|
|
}
|
|
|
|
buildAudioOutput(amkit,audioOut,true);
|
|
}
|