kopia lustrzana https://github.com/xdsopl/qsstv
190 wiersze
7.7 KiB
C++
190 wiersze
7.7 KiB
C++
#include "drmprofileconfig.h"
|
|
#include "ui_drmprofileconfig.h"
|
|
#include "utils/supportfunctions.h"
|
|
#include "configparams.h"
|
|
|
|
sprofile drmPFArray[NUMBEROFPROFILES];
|
|
|
|
drmProfileConfig *drmProfileConfigPtr;
|
|
|
|
|
|
drmProfileConfig::drmProfileConfig(QWidget *parent) : baseConfig(parent), ui(new Ui::drmProfileConfig)
|
|
{
|
|
ui->setupUi(this);
|
|
readSettings();
|
|
}
|
|
|
|
drmProfileConfig::~drmProfileConfig()
|
|
{
|
|
writeSettings();
|
|
delete ui;
|
|
}
|
|
|
|
|
|
void drmProfileConfig::readSettings()
|
|
{
|
|
QSettings qSettings;
|
|
qSettings.beginGroup ("DRMPROFILE" );
|
|
drmPFArray[0].name=qSettings.value ("drmPF1Name","Profile 1").toString();
|
|
drmPFArray[0].params.robMode=qSettings.value ("drmPF1Mode",0).toInt();
|
|
drmPFArray[0].params.qam=qSettings.value("drmPF1QAM",0).toInt();
|
|
drmPFArray[0].params.bandwith=qSettings.value("drmPF1Bandwidth",0).toInt();
|
|
drmPFArray[0].params.protection=qSettings.value("drmPF1Protection",0).toInt();
|
|
drmPFArray[0].params.interleaver=qSettings.value("drmPF1Interleave",0).toInt();
|
|
drmPFArray[0].params.reedSolomon=qSettings.value("drmPF1ReedSolomon",0).toInt();
|
|
|
|
drmPFArray[1].name=qSettings.value ("drmPF2Name","Profile 2").toString();
|
|
drmPFArray[1].params.robMode=qSettings.value ("drmPF2Mode",0).toInt();
|
|
drmPFArray[1].params.qam=qSettings.value("drmPF2QAM",0).toInt();
|
|
drmPFArray[1].params.bandwith=qSettings.value("drmPF2Bandwidth",0).toInt();
|
|
drmPFArray[1].params.protection=qSettings.value("drmPF2Protection",0).toInt();
|
|
drmPFArray[1].params.interleaver=qSettings.value("drmPF2Interleave",0).toInt();
|
|
drmPFArray[1].params.reedSolomon=qSettings.value("drmPF2ReedSolomon",0).toInt();
|
|
|
|
drmPFArray[2].name=qSettings.value ("drmPF3Name","Profile 3").toString();
|
|
drmPFArray[2].params.robMode=qSettings.value ("drmPF3Mode",0).toInt();
|
|
drmPFArray[2].params.qam=qSettings.value("drmPF3QAM",0).toInt();
|
|
drmPFArray[2].params.bandwith=qSettings.value("drmPF3Bandwidth",0).toInt();
|
|
drmPFArray[2].params.protection=qSettings.value("drmPF3Protection",0).toInt();
|
|
drmPFArray[2].params.interleaver=qSettings.value("drmPF3Interleave",0).toInt();
|
|
drmPFArray[2].params.reedSolomon=qSettings.value("drmPF3ReedSolomon",0).toInt();
|
|
qSettings.endGroup();
|
|
setParams();
|
|
|
|
}
|
|
|
|
void drmProfileConfig::writeSettings()
|
|
{
|
|
QSettings qSettings;
|
|
getParams();
|
|
qSettings.beginGroup ("DRMPROFILE" );
|
|
qSettings.setValue ("drmPF1Name",drmPFArray[0].name);
|
|
qSettings.setValue ("drmPF1Mode",drmPFArray[0].params.robMode);
|
|
qSettings.setValue("drmPF1QAM",drmPFArray[0].params.qam);
|
|
qSettings.setValue("drmPF1Bandwidth",drmPFArray[0].params.bandwith);
|
|
qSettings.setValue("drmPF1Protection",drmPFArray[0].params.protection);
|
|
qSettings.setValue("drmPF1Interleave",drmPFArray[0].params.interleaver);
|
|
qSettings.setValue("drmPF1ReedSolomon",drmPFArray[0].params.reedSolomon);
|
|
qSettings.setValue ("drmPF2Name",drmPFArray[1].name);
|
|
qSettings.setValue ("drmPF2Mode",drmPFArray[1].params.robMode);
|
|
qSettings.setValue("drmPF2QAM",drmPFArray[1].params.qam);
|
|
qSettings.setValue("drmPF2Bandwidth",drmPFArray[1].params.bandwith);
|
|
qSettings.setValue("drmPF2Protection",drmPFArray[1].params.protection);
|
|
qSettings.setValue("drmPF2Interleave",drmPFArray[1].params.interleaver);
|
|
qSettings.setValue("drmPF2ReedSolomon",drmPFArray[1].params.reedSolomon);
|
|
|
|
qSettings.setValue ("drmPF3Name",drmPFArray[2].name);
|
|
qSettings.setValue ("drmPF3Mode",drmPFArray[2].params.robMode);
|
|
qSettings.setValue("drmPF3QAM",drmPFArray[2].params.qam);
|
|
qSettings.setValue("drmPF3Bandwidth",drmPFArray[2].params.bandwith);
|
|
qSettings.setValue("drmPF3Protection",drmPFArray[2].params.protection);
|
|
qSettings.setValue("drmPF3Interleave",drmPFArray[2].params.interleaver);
|
|
qSettings.setValue("drmPF3ReedSolomon",drmPFArray[2].params.reedSolomon);
|
|
qSettings.endGroup();
|
|
}
|
|
|
|
|
|
void drmProfileConfig::getParams()
|
|
{
|
|
sprofile drmPFArrayCopy[NUMBEROFPROFILES];
|
|
drmPFArrayCopy[0]=drmPFArray[0];
|
|
drmPFArrayCopy[1]=drmPFArray[1];
|
|
drmPFArrayCopy[2]=drmPFArray[2];
|
|
|
|
getValue(drmPFArray[0].name,ui->namePF1LineEdit);
|
|
drmPFArray[0].params.callsign=myCallsign;
|
|
getIndex(drmPFArray[0].params.robMode,ui->drmPF1ModeComboBox);
|
|
getIndex(drmPFArray[0].params.qam,ui->drmPF1QAMComboBox);
|
|
getIndex(drmPFArray[0].params.bandwith,ui->drmPF1BandwidthComboBox);
|
|
getIndex(drmPFArray[0].params.protection,ui->drmPF1ProtectionComboBox);
|
|
getIndex(drmPFArray[0].params.interleaver,ui->drmPF1InterleaveComboBox);
|
|
getIndex(drmPFArray[0].params.reedSolomon,ui->drmPF1ReedSolomonComboBox);
|
|
|
|
getValue(drmPFArray[1].name,ui->namePF2LineEdit);
|
|
drmPFArray[1].params.callsign=myCallsign;
|
|
getIndex(drmPFArray[1].params.robMode,ui->drmPF2ModeComboBox);
|
|
getIndex(drmPFArray[1].params.qam,ui->drmPF2QAMComboBox);
|
|
getIndex(drmPFArray[1].params.bandwith,ui->drmPF2BandwidthComboBox);
|
|
getIndex(drmPFArray[1].params.protection,ui->drmPF2ProtectionComboBox);
|
|
getIndex(drmPFArray[1].params.interleaver,ui->drmPF2InterleaveComboBox);
|
|
getIndex(drmPFArray[1].params.reedSolomon,ui->drmPF2ReedSolomonComboBox);
|
|
|
|
getValue(drmPFArray[2].name,ui->namePF3LineEdit);
|
|
drmPFArray[2].params.callsign=myCallsign;
|
|
getIndex(drmPFArray[2].params.robMode,ui->drmPF3ModeComboBox);
|
|
getIndex(drmPFArray[2].params.qam,ui->drmPF3QAMComboBox);
|
|
getIndex(drmPFArray[2].params.bandwith,ui->drmPF3BandwidthComboBox);
|
|
getIndex(drmPFArray[2].params.protection,ui->drmPF3ProtectionComboBox);
|
|
getIndex(drmPFArray[2].params.interleaver,ui->drmPF3InterleaveComboBox);
|
|
getIndex(drmPFArray[2].params.reedSolomon,ui->drmPF3ReedSolomonComboBox);
|
|
changed=false;
|
|
if( diff(drmPFArrayCopy[0],drmPFArray[0])
|
|
|| diff(drmPFArrayCopy[1],drmPFArray[1])
|
|
|| diff(drmPFArrayCopy[2],drmPFArray[2]))
|
|
changed=true;
|
|
|
|
}
|
|
|
|
bool drmProfileConfig::diff(sprofile a,sprofile b)
|
|
{
|
|
return
|
|
(a.name!=b.name
|
|
|| a.params.robMode!=b.params.robMode
|
|
|| a.params.qam!= b.params.qam
|
|
|| a.params.bandwith!=b.params.bandwith
|
|
|| a.params.protection!=b.params.protection
|
|
|| a.params.interleaver!=b.params.interleaver
|
|
|| a.params.reedSolomon!=b.params.reedSolomon);
|
|
|
|
}
|
|
|
|
void drmProfileConfig::setParams()
|
|
{
|
|
setValue(drmPFArray[0].name,ui->namePF1LineEdit);
|
|
setIndex(drmPFArray[0].params.robMode,ui->drmPF1ModeComboBox);
|
|
setIndex(drmPFArray[0].params.qam,ui->drmPF1QAMComboBox);
|
|
setIndex(drmPFArray[0].params.bandwith,ui->drmPF1BandwidthComboBox);
|
|
setIndex(drmPFArray[0].params.protection,ui->drmPF1ProtectionComboBox);
|
|
setIndex(drmPFArray[0].params.interleaver,ui->drmPF1InterleaveComboBox);
|
|
setIndex(drmPFArray[0].params.reedSolomon,ui->drmPF1ReedSolomonComboBox);
|
|
|
|
setValue(drmPFArray[1].name,ui->namePF2LineEdit);
|
|
setIndex(drmPFArray[1].params.robMode,ui->drmPF2ModeComboBox);
|
|
setIndex(drmPFArray[1].params.qam,ui->drmPF2QAMComboBox);
|
|
setIndex(drmPFArray[1].params.bandwith,ui->drmPF2BandwidthComboBox);
|
|
setIndex(drmPFArray[1].params.protection,ui->drmPF2ProtectionComboBox);
|
|
setIndex(drmPFArray[1].params.interleaver,ui->drmPF2InterleaveComboBox);
|
|
setIndex(drmPFArray[1].params.reedSolomon,ui->drmPF2ReedSolomonComboBox);
|
|
|
|
setValue(drmPFArray[2].name,ui->namePF3LineEdit);
|
|
setIndex(drmPFArray[2].params.robMode,ui->drmPF3ModeComboBox);
|
|
setIndex(drmPFArray[2].params.qam,ui->drmPF3QAMComboBox);
|
|
setIndex(drmPFArray[2].params.bandwith,ui->drmPF3BandwidthComboBox);
|
|
setIndex(drmPFArray[2].params.protection,ui->drmPF3ProtectionComboBox);
|
|
setIndex(drmPFArray[2].params.interleaver,ui->drmPF3InterleaveComboBox);
|
|
setIndex(drmPFArray[2].params.reedSolomon,ui->drmPF3ReedSolomonComboBox);
|
|
}
|
|
|
|
|
|
bool drmProfileConfig::getDRMParams(int idx,drmTxParams &d)
|
|
{
|
|
if((idx<0)||(idx>=NUMBEROFPROFILES))
|
|
{
|
|
return false;
|
|
}
|
|
d=drmPFArray[idx].params;
|
|
return true;
|
|
}
|
|
|
|
bool drmProfileConfig::getName(int idx, QString &n)
|
|
{
|
|
|
|
if((idx<0)||(idx>=NUMBEROFPROFILES))
|
|
{
|
|
return false;
|
|
}
|
|
n=drmPFArray[idx].name;
|
|
return true;
|
|
|
|
}
|