void DemodulatorInstance::closeOutput() { if (isModemInitialized()) { if (getModemType() == "digital") { ModemDigital *dModem = (ModemDigital *)demodulatorPreThread->getModem(); dModem->setOutput(nullptr); } } if (activeOutput) { activeOutput->Close(); } }
void DemodulatorInstance::setFrequency(long long freq) { if ((freq - getBandwidth() / 2) <= 0) { freq = getBandwidth() / 2; } demodulatorPreThread->setFrequency(freq); #if ENABLE_DIGITAL_LAB if (activeOutput) { if (isModemInitialized() && getModemType() == "digital") { ModemDigitalOutputConsole *outp = (ModemDigitalOutputConsole *)getOutput(); outp->setTitle(getDemodulatorType() + ": " + frequencyToStr(getFrequency())); } } #endif #if USE_HAMLIB if (wxGetApp().rigIsActive() && wxGetApp().getRigThread()->getFollowModem() && wxGetApp().getDemodMgr().getLastActiveDemodulator() == this) { wxGetApp().getRigThread()->setFrequency(freq,true); } #endif }
void DemodulatorInstance::setDemodulatorType(std::string demod_type_in) { setGain(getGain()); if (demodulatorPreThread) { std::string currentDemodType = demodulatorPreThread->getDemodType(); if ((currentDemodType != "") && (currentDemodType != demod_type_in)) { lastModemSettings[currentDemodType] = demodulatorPreThread->readModemSettings(); lastModemBandwidth[currentDemodType] = demodulatorPreThread->getBandwidth(); } #if ENABLE_DIGITAL_LAB if (activeOutput) { activeOutput->Hide(); } #endif demodulatorPreThread->setDemodType(demod_type_in); int lastbw = 0; if (currentDemodType != "" && lastModemBandwidth.find(demod_type_in) != lastModemBandwidth.end()) { lastbw = lastModemBandwidth[demod_type_in]; } if (!lastbw) { lastbw = Modem::getModemDefaultSampleRate(demod_type_in); } if (lastbw) { setBandwidth(lastbw); } #if ENABLE_DIGITAL_LAB if (isModemInitialized() && getModemType() == "digital") { ModemDigitalOutputConsole *outp = (ModemDigitalOutputConsole *)getOutput(); outp->setTitle(getDemodulatorType() + ": " + frequencyToStr(getFrequency())); } #endif } wxGetApp().getBookmarkMgr().updateActiveList(); }
std::string DemodulatorInstance::getModemType() { if (isModemInitialized()) { return demodulatorPreThread->getModem()->getType(); } return ""; }