Skip to content

Commit

Permalink
Add modulation system parameter in DVB-C "Full Scan (Tuned)"
Browse files Browse the repository at this point in the history
Fixes an error message about undefined modulation system
when doing a DVB-C "Full Scan (Tuned)".
In that case the default modulation system DVB-C/A was used
which is probably correct for almost everybody but nevertheless
it is now possible to start a scan with the other DVB-C
modulation systems.
Also minor cosmetic changes such as more consistent naming
and ordering in the "Full Scan (Tuned)" option menu's
for DVB-S/S2, DVB-T/T2 and DVB-C.
  • Loading branch information
kmdewaal committed Apr 25, 2020
1 parent 0085bdf commit 09ae1a8
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 68 deletions.
2 changes: 2 additions & 0 deletions mythtv/libs/libmythtv/cardutil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -762,6 +762,8 @@ DTVTunerType CardUtil::ConvertToTunerType(DTVModulationSystem delsys)
tunertype = DTVTunerType::kTunerTypeDVBS2;
break;
case DTVModulationSystem::kModulationSystem_DVBC_ANNEX_A:
case DTVModulationSystem::kModulationSystem_DVBC_ANNEX_B:
case DTVModulationSystem::kModulationSystem_DVBC_ANNEX_C:
tunertype = DTVTunerType::kTunerTypeDVBC;
break;
case DTVModulationSystem::kModulationSystem_DVBT:
Expand Down
49 changes: 31 additions & 18 deletions mythtv/libs/libmythtv/channelscan/channelscanmiscsettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,17 +239,17 @@ class ScanFrequency: public TransTextEditSetting
};
};

class ScanSymbolRateDVBS: public TransMythUIComboBoxSetting
class ScanDVBSSymbolRate: public TransMythUIComboBoxSetting
{
public:
ScanSymbolRateDVBS() : TransMythUIComboBoxSetting(true)
ScanDVBSSymbolRate() : TransMythUIComboBoxSetting(true)
{
setLabel(QObject::tr("Symbol Rate"));
setHelpText(
QObject::tr(
"Symbol Rate (symbols/second).\n"
"Most DVB-S transponders transmit at 27.5 "
"million symbols per second."));
"Most DVB-S transponders transmit at 27500000 "
"symbols per second."));
addSelection("3333000");
addSelection("22000000");
addSelection("22500000");
Expand All @@ -263,17 +263,17 @@ class ScanSymbolRateDVBS: public TransMythUIComboBoxSetting
}
};

class ScanSymbolRateDVBC: public TransMythUIComboBoxSetting
class ScanDVBCSymbolRate: public TransMythUIComboBoxSetting
{
public:
ScanSymbolRateDVBC() : TransMythUIComboBoxSetting(true)
ScanDVBCSymbolRate() : TransMythUIComboBoxSetting(true)
{
setLabel(QObject::tr("Symbol Rate"));
setHelpText(
QObject::tr(
"Symbol Rate (symbols/second).\n"
"Most DVB-C transports transmit at 6.9 or 6.875 "
"million symbols per second."));
"Most DVB-C transports transmit at 6900000 or 6875000 "
"symbols per second."));
addSelection("3450000");
addSelection("5000000");
addSelection("5900000");
Expand Down Expand Up @@ -421,15 +421,15 @@ class ScanHierarchy: public TransMythUIComboBoxSetting
};
};

class ScanModSys: public TransMythUIComboBoxSetting
class ScanDVBSModSys: public TransMythUIComboBoxSetting
{
public:
ScanModSys()
ScanDVBSModSys()
{
setLabel(QObject::tr("Mod Sys"));
setHelpText(QObject::tr("Modulation system (Default: DVB-S)"));
addSelection("DVB-S");
addSelection("DVB-S2");
setLabel(QObject::tr("Modulation System"));
setHelpText(QObject::tr("Modulation system (Default: DVB-S2)"));
addSelection("DVB-S", "DVB-S");
addSelection("DVB-S2", "DVB-S2", true);
};
};

Expand All @@ -438,13 +438,26 @@ class ScanDVBTModSys: public TransMythUIComboBoxSetting
public:
ScanDVBTModSys()
{
setLabel(QObject::tr("Mod Sys"));
setHelpText(QObject::tr("Modulation system (Default: DVB-T)"));
addSelection("DVB-T");
addSelection("DVB-T2");
setLabel(QObject::tr("Modulation System"));
setHelpText(QObject::tr("Modulation system (Default: DVB-T2)"));
addSelection("DVB-T", "DVB-T");
addSelection("DVB-T2", "DVB-T2", true);
};
};

class ScanDVBCModSys : public TransMythUIComboBoxSetting
{
public:
ScanDVBCModSys()
{
setLabel(QObject::tr("Modulation System"));
setHelpText(QObject::tr("Modulation System (Default: DVB-C/A)"));
addSelection("DVB-C/A", "DVB-C/A", true);
addSelection("DVB-C/B", "DVB-C/B");
addSelection("DVB-C/C", "DVB-C/C");
}
};

class ScanRollOff: public TransMythUIComboBoxSetting
{
public:
Expand Down
20 changes: 12 additions & 8 deletions mythtv/libs/libmythtv/channelscan/panedvbc.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,29 +42,33 @@ class PaneDVBC : public GroupSetting
setting->addTargetedChildren(target,
{this,
m_pfrequency = new ScanFrequency(),
m_psymbolrate = new ScanSymbolRateDVBC(),
m_psymbolrate = new ScanDVBCSymbolRate(),
m_pmodulation = new ScanModulation(),
m_pmodsys = new ScanDVBCModSys(),
m_pinversion = new ScanInversion(),
m_pmodulation = new ScanModulation(),
m_pfec = new ScanFec()});
m_pfec = new ScanFec()});
}

QString frequency(void) const { return m_pfrequency->getValue(); }
QString symbolrate(void) const { return m_psymbolrate->getValue(); }
QString modulation(void) const { return m_pmodulation->getValue(); }
QString modsys(void) const { return m_pmodsys->getValue(); }
QString inversion(void) const { return m_pinversion->getValue(); }
QString fec(void) const { return m_pfec->getValue(); }
QString modulation(void) const { return m_pmodulation->getValue(); }

void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setSymbolrate(const QString& symbolrate) { m_psymbolrate->setValue(symbolrate);}
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }
void setModulation(const QString& modulation) { m_pmodulation->setValue(modulation);}
void setModsys(const QString& modsys) { m_pmodsys->setValue(modsys); }
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }
void setFec(const QString& fec) { m_pfec->setValue(fec); }

protected:
ScanFrequency *m_pfrequency {nullptr};
ScanSymbolRateDVBC *m_psymbolrate {nullptr};
ScanInversion *m_pinversion {nullptr};
ScanDVBCSymbolRate *m_psymbolrate {nullptr};
ScanModulation *m_pmodulation {nullptr};
ScanDVBCModSys *m_pmodsys {nullptr};
ScanInversion *m_pinversion {nullptr};
ScanFec *m_pfec {nullptr};
};

Expand Down
22 changes: 11 additions & 11 deletions mythtv/libs/libmythtv/channelscan/panedvbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,29 +43,29 @@ class PaneDVBS : public GroupSetting
{this,
m_pfrequency = new ScanFrequencykHz(),
m_ppolarity = new ScanPolarity(),
m_psymbolrate = new ScanSymbolRateDVBS(),
m_pfec = new ScanFec(),
m_pinversion = new ScanInversion()});
m_psymbolrate = new ScanDVBSSymbolRate(),
m_pfec = new ScanFec(),
m_pinversion = new ScanInversion()});
}

QString frequency(void) const { return m_pfrequency->getValue(); }
QString polarity(void) const { return m_ppolarity->getValue(); }
QString symbolrate(void) const { return m_psymbolrate->getValue(); }
QString inversion(void) const { return m_pinversion->getValue(); }
QString fec(void) const { return m_pfec->getValue(); }
QString polarity(void) const { return m_ppolarity->getValue(); }
QString inversion(void) const { return m_pinversion->getValue(); }

void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setPolarity(const QString& polarity) { m_ppolarity->setValue(polarity); }
void setSymbolrate(const QString& symbolrate) { m_psymbolrate->setValue(symbolrate);}
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }
void setFec(const QString& fec) { m_pfec->setValue(fec); }
void setPolarity(const QString& polarity) { m_ppolarity->setValue(polarity); }
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }

protected:
ScanFrequencykHz *m_pfrequency {nullptr};
ScanSymbolRateDVBS *m_psymbolrate {nullptr};
ScanInversion *m_pinversion {nullptr};
ScanFec *m_pfec {nullptr};
ScanPolarity *m_ppolarity {nullptr};
ScanDVBSSymbolRate *m_psymbolrate {nullptr};
ScanFec *m_pfec {nullptr};
ScanInversion *m_pinversion {nullptr};
};

#endif // PANE_DVBS_H
24 changes: 12 additions & 12 deletions mythtv/libs/libmythtv/channelscan/panedvbs2.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,40 +19,40 @@ class PaneDVBS2 : public GroupSetting
{this,
m_pfrequency = new ScanFrequencykHz(),
m_ppolarity = new ScanPolarity(),
m_psymbolrate = new ScanSymbolRateDVBS(),
m_pmod_sys = new ScanModSys(),
m_pfec = new ScanFec(),
m_psymbolrate = new ScanDVBSSymbolRate(),
m_pmodulation = new ScanDVBSModulation(),
m_pmodsys = new ScanDVBSModSys(),
m_pfec = new ScanFec(),
m_pinversion = new ScanInversion(),
m_prolloff = new ScanRollOff()});
}

QString frequency(void) const { return m_pfrequency->getValue(); }
QString symbolrate(void) const { return m_psymbolrate->getValue(); }
QString modulation(void) const { return m_pmodulation->getValue(); }
QString modsys(void) const { return m_pmodsys->getValue(); }
QString inversion(void) const { return m_pinversion->getValue(); }
QString fec(void) const { return m_pfec->getValue(); }
QString polarity(void) const { return m_ppolarity->getValue(); }
QString modulation(void) const { return m_pmodulation->getValue(); }
QString mod_sys(void) const { return m_pmod_sys->getValue(); }
QString rolloff(void) const { return m_prolloff->getValue(); }

void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setSymbolrate(const QString& symbolrate) { m_psymbolrate->setValue(symbolrate);}
void setModulation(const QString& modulation) { m_pmodulation->setValue(modulation);}
void setModSys(const QString& modsys) { m_pmodsys->setValue(modsys); }
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }
void setFec(const QString& fec) { m_pfec->setValue(fec); }
void setPolarity(const QString& polarity) { m_ppolarity->setValue(polarity); }
void setModulation(const QString& modulation) { m_pmodulation->setValue(modulation);}
void setModsys(const QString& mod_sys) { m_pmod_sys->setValue(mod_sys); }
void setRolloff(const QString& rolloff) { m_prolloff->setValue(rolloff); }

protected:
ScanFrequencykHz *m_pfrequency {nullptr};
ScanSymbolRateDVBS *m_psymbolrate {nullptr};
ScanInversion *m_pinversion {nullptr};
ScanDVBSSymbolRate *m_psymbolrate {nullptr};
ScanDVBSModulation *m_pmodulation {nullptr};
ScanDVBSModSys *m_pmodsys {nullptr};
ScanFec *m_pfec {nullptr};
ScanPolarity *m_ppolarity {nullptr};
ScanDVBSModulation *m_pmodulation {nullptr};
ScanModSys *m_pmod_sys {nullptr};
ScanInversion *m_pinversion {nullptr};
ScanRollOff *m_prolloff {nullptr};
};

Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmythtv/channelscan/panedvbt.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class PaneDVBT : public GroupSetting
QString guard_interval(void) const { return m_pguard_interval->getValue();}
QString hierarchy(void) const { return m_phierarchy->getValue(); }

void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setBandwidth(const QString& bandwidth) { m_pbandwidth->setValue(bandwidth); }
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }
void setConstellation(const QString& constellation) { m_pconstellation->setValue(constellation); }
Expand Down
18 changes: 9 additions & 9 deletions mythtv/libs/libmythtv/channelscan/panedvbt2.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ class PaneDVBT2 : public GroupSetting
setVisible(false);
setting->addTargetedChildren(target,
{this,
m_pfrequency = new ScanFrequency(),
m_pbandwidth = new ScanBandwidth(),
m_pinversion = new ScanInversion(),
m_pconstellation = new ScanConstellation(),
m_pmod_sys = new ScanDVBTModSys(),
m_pfrequency = new ScanFrequency(),
m_pbandwidth = new ScanBandwidth(),
m_pinversion = new ScanInversion(),
m_pconstellation = new ScanConstellation(),
m_pmodsys = new ScanDVBTModSys(),
m_pcoderate_lp = new ScanCodeRateLP(),
m_pcoderate_hp = new ScanCodeRateHP(),
m_ptrans_mode = new ScanTransmissionMode(),
Expand All @@ -63,9 +63,9 @@ class PaneDVBT2 : public GroupSetting
QString trans_mode(void) const { return m_ptrans_mode->getValue(); }
QString guard_interval(void) const { return m_pguard_interval->getValue();}
QString hierarchy(void) const { return m_phierarchy->getValue(); }
QString mod_sys(void) const { return m_pmod_sys->getValue(); }
QString modsys(void) const { return m_pmodsys->getValue(); }

void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setFrequency(uint frequency) { m_pfrequency->setValue(frequency); }
void setBandwidth(const QString& bandwidth) { m_pbandwidth->setValue(bandwidth); }
void setInversion(const QString& inversion) { m_pinversion->setValue(inversion); }
void setConstellation(const QString& constellation) { m_pconstellation->setValue(constellation); }
Expand All @@ -74,7 +74,7 @@ class PaneDVBT2 : public GroupSetting
void setTransmode(const QString& trans_mode) { m_ptrans_mode->setValue(trans_mode); }
void setGuardInterval(const QString& guard_interval) { m_pguard_interval->setValue(guard_interval);}
void setHierarchy(const QString& hierarchy) { m_phierarchy->setValue(hierarchy); }
void setModsys(const QString& mod_sys) { m_pmod_sys->setValue(mod_sys); }
void setModsys(const QString& mod_sys) { m_pmodsys->setValue(mod_sys); }

protected:
ScanFrequency *m_pfrequency {nullptr};
Expand All @@ -86,7 +86,7 @@ class PaneDVBT2 : public GroupSetting
ScanTransmissionMode *m_ptrans_mode {nullptr};
ScanGuardInterval *m_pguard_interval {nullptr};
ScanHierarchy *m_phierarchy {nullptr};
ScanDVBTModSys *m_pmod_sys {nullptr};
ScanDVBTModSys *m_pmodsys {nullptr};
};

#endif // PANE_DVBT2_H
12 changes: 7 additions & 5 deletions mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -535,7 +535,7 @@ QMap<QString,QString> ScanOptionalConfig::GetStartChan(void) const
startChan["trans_mode"] = pane->trans_mode();
startChan["guard_interval"] = pane->guard_interval();
startChan["hierarchy"] = pane->hierarchy();
startChan["mod_sys"] = pane->mod_sys();
startChan["mod_sys"] = pane->modsys();
}
else if (ScanTypeSetting::NITAddScan_DVBS == st)
{
Expand All @@ -557,10 +557,11 @@ QMap<QString,QString> ScanOptionalConfig::GetStartChan(void) const
startChan["std"] = "dvb";
startChan["type"] = "QAM";
startChan["frequency"] = pane->frequency();
startChan["inversion"] = pane->inversion();
startChan["symbolrate"] = pane->symbolrate();
startChan["fec"] = pane->fec();
startChan["modulation"] = pane->modulation();
startChan["mod_sys"] = pane->modsys();
startChan["inversion"] = pane->inversion();
startChan["fec"] = pane->fec();
}
else if (ScanTypeSetting::NITAddScan_DVBS2 == st)
{
Expand All @@ -574,7 +575,7 @@ QMap<QString,QString> ScanOptionalConfig::GetStartChan(void) const
startChan["fec"] = pane->fec();
startChan["modulation"] = pane->modulation();
startChan["polarity"] = pane->polarity();
startChan["mod_sys"] = pane->mod_sys();
startChan["mod_sys"] = pane->modsys();
startChan["rolloff"] = pane->rolloff();
}

Expand Down Expand Up @@ -634,6 +635,7 @@ void ScanOptionalConfig::SetTuningPaneValues(uint frequency, const DTVMultiplex
pane->setSymbolrate(QString("%1").arg(mpx.m_symbolRate));
pane->setFec(mpx.m_fec.toString());
pane->setModulation(mpx.m_modulation.toString());
pane->setModsys(mpx.m_modSys.toString());
}
}
else if (st == ScanTypeSetting::NITAddScan_DVBS)
Expand Down Expand Up @@ -661,7 +663,7 @@ void ScanOptionalConfig::SetTuningPaneValues(uint frequency, const DTVMultiplex
pane->setFec(mpx.m_fec.toString());
pane->setPolarity(mpx.m_polarity.toString());
pane->setModulation(mpx.m_modulation.toString());
pane->setModsys(mpx.m_modSys.toString());
pane->setModSys(mpx.m_modSys.toString());
pane->setRolloff(mpx.m_rolloff.toString());
}
}
Expand Down
11 changes: 7 additions & 4 deletions mythtv/libs/libmythtv/dtvmultiplex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,8 @@ bool DTVMultiplex::FillFromDeliverySystemDesc(DTVTunerType type,

return ParseDVB_S_and_C(
QString::number(cd.FrequencykHz()), "a",
QString::number(cd.SymbolRateHz()), cd.FECInnerString(),
QString::number(cd.SymbolRateHz()),
cd.FECInnerString(),
cd.ModulationString(),
cd.PolarizationString());
}
Expand All @@ -520,10 +521,12 @@ bool DTVMultiplex::FillFromDeliverySystemDesc(DTVTunerType type,
{
return ParseDVB_S2(
QString::number(cd.FrequencykHz()), "a",
QString::number(cd.SymbolRateHz()), cd.FECInnerString(),
QString::number(cd.SymbolRateHz()),
cd.FECInnerString(),
cd.ModulationString(),
cd.PolarizationString(),
cd.ModulationSystemString(), cd.RollOffString());
cd.ModulationSystemString(),
cd.RollOffString());
}

break;
Expand All @@ -543,7 +546,7 @@ bool DTVMultiplex::FillFromDeliverySystemDesc(DTVTunerType type,
}
default:
LOG(VB_CHANSCAN, LOG_ERR, LOC +
"unknown delivery system descriptor");
QString("Unknown delivery system descriptor 0x%1").arg(tag,0,16));
return false;
}

Expand Down

0 comments on commit 09ae1a8

Please sign in to comment.