mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-26 06:10:04 -04:00
DATV demod: refactoring of classes
This commit is contained in:
parent
735f1cdbb4
commit
6ee705fcd7
File diff suppressed because it is too large
Load Diff
@ -24,36 +24,14 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
#include "datvconstellation.h"
|
||||
#include "datvdvbs2constellation.h"
|
||||
#include "datvvideoplayer.h"
|
||||
#include "datvideostream.h"
|
||||
#include "datvudpstream.h"
|
||||
#include "datvideorender.h"
|
||||
#include "datvdemodsettings.h"
|
||||
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/movingaverage.h"
|
||||
#include "dsp/agc.h"
|
||||
#include "audio/audiofifo.h"
|
||||
#include "util/message.h"
|
||||
#include "util/movingaverage.h"
|
||||
|
||||
#include <QMutex>
|
||||
|
||||
#include "datvdemodbaseband.h"
|
||||
|
||||
// enum DATVModulation { BPSK, QPSK, PSK8, APSK16, APSK32, APSK64E, QAM16, QAM64, QAM256 };
|
||||
// enum dvb_version { DVB_S, DVB_S2 };
|
||||
// enum dvb_sampler { SAMP_NEAREST, SAMP_LINEAR, SAMP_RRC };
|
||||
|
||||
|
||||
class DATVDemod : public BasebandSampleSink, public ChannelAPI
|
||||
{
|
||||
@ -135,7 +113,6 @@ private:
|
||||
int m_basebandSampleRate; //!< stored from device message used when starting baseband sink
|
||||
|
||||
void applySettings(const DATVDemodSettings& settings, bool force = false);
|
||||
void applyChannelSettings(int inputSampleRate, int inputFrequencyOffset, bool force = false);
|
||||
};
|
||||
|
||||
#endif // INCLUDE_DATVDEMOD_H
|
||||
|
@ -151,6 +151,13 @@ void DATVDemodBaseband::applySettings(const DATVDemodSettings& settings, bool fo
|
||||
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
|
||||
}
|
||||
|
||||
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
||||
{
|
||||
AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager();
|
||||
int audioDeviceIndex = audioDeviceManager->getOutputDeviceIndex(settings.m_audioDeviceName);
|
||||
audioDeviceManager->addAudioSink(m_sink.getAudioFifo(), getInputMessageQueue(), audioDeviceIndex);
|
||||
}
|
||||
|
||||
m_sink.applySettings(settings, force);
|
||||
m_settings = settings;
|
||||
}
|
||||
|
@ -21,21 +21,21 @@
|
||||
#include <QMainWindow>
|
||||
#include <QMediaMetaData>
|
||||
|
||||
#include "datvdemodgui.h"
|
||||
|
||||
#include "device/deviceuiset.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "ui_datvdemodgui.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "plugin/pluginapi.h"
|
||||
#include "util/simpleserializer.h"
|
||||
#include "util/db.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "ui_datvdemodgui.h"
|
||||
#include "gui/crightclickenabler.h"
|
||||
#include "gui/audioselectdialog.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include "datvdemodreport.h"
|
||||
#include "datvdemodgui.h"
|
||||
|
||||
const QString DATVDemodGUI::m_strChannelID = "sdrangel.channel.demoddatv";
|
||||
|
||||
DATVDemodGUI* DATVDemodGUI::create(PluginAPI* objPluginAPI,
|
||||
@ -101,9 +101,9 @@ bool DATVDemodGUI::deserialize(const QByteArray& arrData)
|
||||
|
||||
bool DATVDemodGUI::handleMessage(const Message& message)
|
||||
{
|
||||
if (DATVDemod::MsgReportModcodCstlnChange::match(message))
|
||||
if (DATVDemodReport::MsgReportModcodCstlnChange::match(message))
|
||||
{
|
||||
DATVDemod::MsgReportModcodCstlnChange& notif = (DATVDemod::MsgReportModcodCstlnChange&) message;
|
||||
DATVDemodReport::MsgReportModcodCstlnChange& notif = (DATVDemodReport::MsgReportModcodCstlnChange&) message;
|
||||
m_settings.m_fec = notif.getCodeRate();
|
||||
m_settings.m_modulation = notif.getModulation();
|
||||
m_settings.validateSystemConfiguration();
|
||||
@ -351,9 +351,6 @@ void DATVDemodGUI::applySettings(bool force)
|
||||
{
|
||||
qDebug("DATVDemodGUI::applySettings");
|
||||
|
||||
DATVDemod::MsgConfigureChannelizer *msgChan = DATVDemod::MsgConfigureChannelizer::create(m_objChannelMarker.getCenterFrequency());
|
||||
m_objDATVDemod->getInputMessageQueue()->push(msgChan);
|
||||
|
||||
setTitleColor(m_objChannelMarker.getColor());
|
||||
|
||||
QString msg = tr("DATVDemodGUI::applySettings: force: %1").arg(force ? "true" : "false");
|
||||
@ -403,8 +400,8 @@ void DATVDemodGUI::tick()
|
||||
{
|
||||
m_modcodModulationIndex = m_objDATVDemod->getModcodModulation();
|
||||
m_modcodCodeRateIndex = m_objDATVDemod->getModcodCodeRate();
|
||||
DATVDemodSettings::DATVModulation modulation = DATVDemod::getModulationFromLeanDVBCode(m_modcodModulationIndex);
|
||||
DATVDemodSettings::DATVCodeRate rate = DATVDemod::getCodeRateFromLeanDVBCode(m_modcodCodeRateIndex);
|
||||
DATVDemodSettings::DATVModulation modulation = DATVDemodSettings::getModulationFromLeanDVBCode(m_modcodModulationIndex);
|
||||
DATVDemodSettings::DATVCodeRate rate = DATVDemodSettings::getCodeRateFromLeanDVBCode(m_modcodCodeRateIndex);
|
||||
QString modcodModulationStr = DATVDemodSettings::getStrFromModulation(modulation);
|
||||
QString modcodCodeRateStr = DATVDemodSettings::getStrFromCodeRate(rate);
|
||||
ui->statusText->setText(tr("MCOD %1 %2").arg(modcodModulationStr).arg(modcodCodeRateStr));
|
||||
|
@ -18,6 +18,9 @@
|
||||
#include <QColor>
|
||||
#include <QDebug>
|
||||
|
||||
#include "leansdr/dvb.h"
|
||||
#include "leansdr/sdr.h"
|
||||
|
||||
#include "dsp/dspengine.h"
|
||||
#include "util/simpleserializer.h"
|
||||
#include "settings/serializable.h"
|
||||
@ -457,3 +460,62 @@ void DATVDemodSettings::getAvailableCodeRates(dvb_version dvbStandard, DATVModul
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DATVDemodSettings::DATVCodeRate DATVDemodSettings::getCodeRateFromLeanDVBCode(int leanDVBCodeRate)
|
||||
{
|
||||
if (leanDVBCodeRate == leansdr::code_rate::FEC12) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC12;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC13) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC13;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC14) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC14;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC23) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC23;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC25) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC25;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC34) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC34;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC35) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC35;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC45) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC45;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC46) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC46;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC56) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC56;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC78) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC78;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC89) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC89;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC910) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC910;
|
||||
} else {
|
||||
return DATVDemodSettings::DATVCodeRate::RATE_UNSET;
|
||||
}
|
||||
}
|
||||
|
||||
DATVDemodSettings::DATVModulation DATVDemodSettings::getModulationFromLeanDVBCode(int leanDVBModulation)
|
||||
{
|
||||
if (leanDVBModulation == leansdr::cstln_base::predef::APSK16) {
|
||||
return DATVDemodSettings::DATVModulation::APSK16;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::APSK32) {
|
||||
return DATVDemodSettings::DATVModulation::APSK32;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::APSK64E) {
|
||||
return DATVDemodSettings::DATVModulation::APSK64E;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::BPSK) {
|
||||
return DATVDemodSettings::DATVModulation::BPSK;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::PSK8) {
|
||||
return DATVDemodSettings::DATVModulation::PSK8;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QAM16) {
|
||||
return DATVDemodSettings::DATVModulation::QAM16;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QAM64) {
|
||||
return DATVDemodSettings::DATVModulation::QAM64;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QAM256) {
|
||||
return DATVDemodSettings::DATVModulation::QAM256;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QPSK) {
|
||||
return DATVDemodSettings::DATVModulation::QPSK;
|
||||
} else {
|
||||
return DATVDemodSettings::DATVModulation::MOD_UNSET;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -112,6 +112,8 @@ struct DATVDemodSettings
|
||||
static QString getStrFromCodeRate(const DATVCodeRate codeRate);
|
||||
static void getAvailableModulations(dvb_version dvbStandard, std::vector<DATVModulation>& modulations);
|
||||
static void getAvailableCodeRates(dvb_version dvbStandard, DATVModulation modulation, std::vector<DATVCodeRate>& codeRates);
|
||||
static DATVDemodSettings::DATVCodeRate getCodeRateFromLeanDVBCode(int leanDVBCodeRate);
|
||||
static DATVDemodSettings::DATVModulation getModulationFromLeanDVBCode(int leanDVBModulation);
|
||||
};
|
||||
|
||||
#endif // PLUGINS_CHANNELRX_DEMODATV_DATVDEMODSETTINGS_H_
|
@ -15,23 +15,21 @@
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "datvdemodreport.h"
|
||||
#include "datvdemodsink.h"
|
||||
|
||||
#include "leansdr/dvbs2.h"
|
||||
|
||||
#include <QTime>
|
||||
#include <QDebug>
|
||||
#include <QObject>
|
||||
#include <stdio.h>
|
||||
#include <complex.h>
|
||||
|
||||
#include "audio/audiooutput.h"
|
||||
#include "dsp/dspengine.h"
|
||||
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "datvdemodreport.h"
|
||||
|
||||
const unsigned int DATVDemodSink::m_rfFilterFftLength = 1024;
|
||||
|
||||
DATVDemodSink::DATVDemodSink() :
|
||||
@ -1174,7 +1172,7 @@ void DATVDemodSink::feed(const SampleVector::const_iterator& begin, const Sample
|
||||
|
||||
if (m_blnNeedConfigUpdate)
|
||||
{
|
||||
qDebug("DATVDemod::feed: Settings applied. Standard : %d...", m_settings.m_standard);
|
||||
qDebug("DATVDemodSink::feed: Settings applied. Standard : %d...", m_settings.m_standard);
|
||||
m_blnNeedConfigUpdate=false;
|
||||
|
||||
if(m_settings.m_standard==DATVDemodSettings::DVB_S2)
|
||||
@ -1238,7 +1236,7 @@ void DATVDemodSink::feed(const SampleVector::const_iterator& begin, const Sample
|
||||
|
||||
if (objDemodulatorDVBS2->cstln->m_setByModcod && !m_cstlnSetByModcod)
|
||||
{
|
||||
qDebug("DATVDemod::feed: change by MODCOD detected");
|
||||
qDebug("DATVDemodSink::feed: change by MODCOD detected");
|
||||
|
||||
if (r_scope_symbols_dvbs2) {
|
||||
r_scope_symbols_dvbs2->calculate_cstln_points();
|
||||
@ -1247,8 +1245,8 @@ void DATVDemodSink::feed(const SampleVector::const_iterator& begin, const Sample
|
||||
if (getMessageQueueToGUI())
|
||||
{
|
||||
DATVDemodReport::MsgReportModcodCstlnChange *msg = DATVDemodReport::MsgReportModcodCstlnChange::create(
|
||||
getModulationFromLeanDVBCode(objDemodulatorDVBS2->cstln->m_typeCode),
|
||||
getCodeRateFromLeanDVBCode(objDemodulatorDVBS2->cstln->m_rateCode)
|
||||
DATVDemodSettings::getModulationFromLeanDVBCode(objDemodulatorDVBS2->cstln->m_typeCode),
|
||||
DATVDemodSettings::getCodeRateFromLeanDVBCode(objDemodulatorDVBS2->cstln->m_rateCode)
|
||||
);
|
||||
|
||||
getMessageQueueToGUI()->push(msg);
|
||||
@ -1273,7 +1271,7 @@ void DATVDemodSink::applyChannelSettings(int channelSampleRate, int channelFrequ
|
||||
(m_channelSampleRate != channelSampleRate) || force)
|
||||
{
|
||||
m_objNCO.setFreq(-(float) channelFrequencyOffset, (float) channelSampleRate);
|
||||
qDebug("DATVDemod::applyChannelSettings: NCO: IF: %d <> TF: %d ISR: %d",
|
||||
qDebug("DATVDemodSink::applyChannelSettings: NCO: IF: %d <> TF: %d ISR: %d",
|
||||
channelFrequencyOffset, m_settings.m_centerFrequency, channelSampleRate);
|
||||
callApplySettings = true;
|
||||
}
|
||||
@ -1362,64 +1360,6 @@ void DATVDemodSink::applySettings(const DATVDemodSettings& settings, bool force)
|
||||
m_settings = settings;
|
||||
}
|
||||
|
||||
DATVDemodSettings::DATVCodeRate DATVDemodSink::getCodeRateFromLeanDVBCode(int leanDVBCodeRate)
|
||||
{
|
||||
if (leanDVBCodeRate == leansdr::code_rate::FEC12) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC12;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC13) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC13;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC14) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC14;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC23) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC23;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC25) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC25;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC34) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC34;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC35) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC35;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC45) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC45;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC46) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC46;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC56) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC56;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC78) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC78;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC89) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC89;
|
||||
} else if (leanDVBCodeRate == leansdr::code_rate::FEC910) {
|
||||
return DATVDemodSettings::DATVCodeRate::FEC910;
|
||||
} else {
|
||||
return DATVDemodSettings::DATVCodeRate::RATE_UNSET;
|
||||
}
|
||||
}
|
||||
|
||||
DATVDemodSettings::DATVModulation DATVDemodSink::getModulationFromLeanDVBCode(int leanDVBModulation)
|
||||
{
|
||||
if (leanDVBModulation == leansdr::cstln_base::predef::APSK16) {
|
||||
return DATVDemodSettings::DATVModulation::APSK16;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::APSK32) {
|
||||
return DATVDemodSettings::DATVModulation::APSK32;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::APSK64E) {
|
||||
return DATVDemodSettings::DATVModulation::APSK64E;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::BPSK) {
|
||||
return DATVDemodSettings::DATVModulation::BPSK;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::PSK8) {
|
||||
return DATVDemodSettings::DATVModulation::PSK8;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QAM16) {
|
||||
return DATVDemodSettings::DATVModulation::QAM16;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QAM64) {
|
||||
return DATVDemodSettings::DATVModulation::QAM64;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QAM256) {
|
||||
return DATVDemodSettings::DATVModulation::QAM256;
|
||||
} else if (leanDVBModulation == leansdr::cstln_base::predef::QPSK) {
|
||||
return DATVDemodSettings::DATVModulation::QPSK;
|
||||
} else {
|
||||
return DATVDemodSettings::DATVModulation::MOD_UNSET;
|
||||
}
|
||||
}
|
||||
|
||||
int DATVDemodSink::getLeanDVBCodeRateFromDATV(DATVDemodSettings::DATVCodeRate datvCodeRate)
|
||||
{
|
||||
if (datvCodeRate == DATVDemodSettings::DATVCodeRate::FEC12) {
|
||||
|
@ -35,28 +35,47 @@
|
||||
#include "datvideorender.h"
|
||||
#include "datvdemodsettings.h"
|
||||
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/channelsamplesink.h"
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/movingaverage.h"
|
||||
#include "dsp/agc.h"
|
||||
#include "audio/audiofifo.h"
|
||||
#include "util/message.h"
|
||||
#include "util/messagequeue.h"
|
||||
#include "util/movingaverage.h"
|
||||
|
||||
#include <QMutex>
|
||||
|
||||
class TVScreen;
|
||||
class DATVideoRender;
|
||||
|
||||
class DATVDemodSink : public ChannelSampleSink {
|
||||
public:
|
||||
DATVDemodSink();
|
||||
~DATVDemodSink();
|
||||
|
||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end);
|
||||
|
||||
bool setTVScreen(TVScreen *objScreen);
|
||||
DATVideostream * SetVideoRender(DATVideoRender *objScreen);
|
||||
bool audioActive();
|
||||
bool audioDecodeOK();
|
||||
bool videoActive();
|
||||
bool videoDecodeOK();
|
||||
|
||||
bool PlayVideo(bool blnStartStop);
|
||||
|
||||
int GetSampleRate();
|
||||
double getMagSq() const { return m_objMagSqAverage; } //!< Beware this is scaled to 2^30
|
||||
int getModcodModulation() const { return m_modcodModulation; }
|
||||
int getModcodCodeRate() const { return m_modcodCodeRate; }
|
||||
bool isCstlnSetByModcod() const { return m_cstlnSetByModcod; }
|
||||
void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; }
|
||||
AudioFifo *getAudioFifo() { return &m_audioFifo; }
|
||||
|
||||
void applySettings(const DATVDemodSettings& settings, bool force = false);
|
||||
void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false);
|
||||
|
||||
private:
|
||||
struct config
|
||||
{
|
||||
DATVDemodSettings::dvb_version standard;
|
||||
@ -114,41 +133,17 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
DATVDemodSink();
|
||||
~DATVDemodSink();
|
||||
|
||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end);
|
||||
|
||||
bool setTVScreen(TVScreen *objScreen);
|
||||
DATVideostream * SetVideoRender(DATVideoRender *objScreen);
|
||||
bool audioActive();
|
||||
bool audioDecodeOK();
|
||||
bool videoActive();
|
||||
bool videoDecodeOK();
|
||||
|
||||
bool PlayVideo(bool blnStartStop);
|
||||
|
||||
int GetSampleRate();
|
||||
double getMagSq() const { return m_objMagSqAverage; } //!< Beware this is scaled to 2^30
|
||||
int getModcodModulation() const { return m_modcodModulation; }
|
||||
int getModcodCodeRate() const { return m_modcodCodeRate; }
|
||||
bool isCstlnSetByModcod() const { return m_cstlnSetByModcod; }
|
||||
static DATVDemodSettings::DATVCodeRate getCodeRateFromLeanDVBCode(int leanDVBCodeRate);
|
||||
static DATVDemodSettings::DATVModulation getModulationFromLeanDVBCode(int leanDVBModulation);
|
||||
static int getLeanDVBCodeRateFromDATV(DATVDemodSettings::DATVCodeRate datvCodeRate);
|
||||
static int getLeanDVBModulationFromDATV(DATVDemodSettings::DATVModulation datvModulation);
|
||||
void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; }
|
||||
|
||||
void applySettings(const DATVDemodSettings& settings, bool force = false);
|
||||
void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false);
|
||||
|
||||
private:
|
||||
inline int decimation(float Fin, float Fout) { int d = Fin / Fout; return std::max(d, 1); }
|
||||
|
||||
void CleanUpDATVFramework(bool blnRelease);
|
||||
void InitDATVFramework();
|
||||
void InitDATVS2Framework();
|
||||
|
||||
static int getLeanDVBCodeRateFromDATV(DATVDemodSettings::DATVCodeRate datvCodeRate);
|
||||
static int getLeanDVBModulationFromDATV(DATVDemodSettings::DATVModulation datvModulation);
|
||||
|
||||
MessageQueue *getMessageQueueToGUI() { return m_messageQueueToGUI; }
|
||||
|
||||
unsigned long m_lngExpectedReadIQ;
|
||||
long m_lngReadIQ;
|
||||
|
||||
@ -308,9 +303,6 @@ private:
|
||||
MessageQueue *m_messageQueueToGUI;
|
||||
|
||||
static const unsigned int m_rfFilterFftLength;
|
||||
|
||||
MessageQueue *getMessageQueueToGUI() { return m_messageQueueToGUI; }
|
||||
|
||||
};
|
||||
|
||||
#endif // INCLUDE_DATVDEMODSINK_H
|
Loading…
Reference in New Issue
Block a user