Go to the documentation of this file.
11 #define LOC QString("DTVMux: ")
37 QString ret = QString(
"%1 %2 %3 %4")
41 ret += QString(
" %1 %2 %3 %4 %5 %6 %7")
46 ret += QString(
" fec:%1 msys:%2 ro:%3")
53 uint freq_range,
bool fuzzy)
const
146 const QString &_modulation)
152 LOG(VB_GENERAL, LOG_ERR,
LOC +
153 QString(
"Failed to parse ATSC frequency %1").arg(_frequency));
160 LOG(VB_GENERAL, LOG_ERR,
LOC +
161 QString(
"Failed to parse ATSC modulation %1").arg(_modulation));
167 const QString &_frequency,
const QString &_inversion,
168 const QString &_bandwidth,
const QString &_coderate_hp,
169 const QString &_coderate_lp,
const QString &_modulation,
170 const QString &_trans_mode,
const QString &_guard_interval,
171 const QString &_hierarchy)
176 LOG(VB_GENERAL, LOG_WARNING,
LOC +
177 QString(
"Invalid inversion parameter '%1', falling back to 'auto'.")
185 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid frequency parameter " + _frequency);
193 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid modulation system parameter " +
"DVB-T");
202 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid modulation system parameter " + _bandwidth);
211 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid coderate_hp parameter " + _coderate_hp);
220 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid coderate_lp parameter " + _coderate_lp);
229 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid modulation parameter " + _modulation);
238 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid transmission mode parameter " + _trans_mode);
247 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid hierarchy parameter " + _hierarchy);
256 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid guard interval parameter " + _guard_interval);
264 const QString &_frequency,
const QString &_inversion,
265 const QString &_symbol_rate,
const QString &_fec_inner,
266 const QString &_modulation,
const QString &_polarity)
271 LOG(VB_GENERAL, LOG_WARNING,
LOC +
272 QString(
"Invalid inversion parameter '%1', falling back to 'auto'.")
281 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid symbol rate " +
282 QString(
"parameter '%1', aborting.").arg(_symbol_rate));
292 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid fec parameter " + _fec_inner);
301 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid modulation parameter " + _modulation);
307 if (!_polarity.isEmpty())
312 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid polarity parameter " + _polarity);
322 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid frequency parameter " + _frequency);
330 const QString &_frequency,
const QString &_inversion,
331 const QString &_symbol_rate,
const QString &_fec_inner,
332 const QString &_modulation,
const QString &_polarity)
335 _fec_inner, _modulation, _polarity);
341 const QString &_frequency,
const QString &_inversion,
342 const QString &_symbol_rate,
const QString &_fec_inner,
343 const QString &_modulation,
const QString &_polarity,
344 const QString &_mod_sys)
347 _fec_inner, _modulation, _polarity);
352 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Undefined modulation system " +
353 QString(
"parameter '%1', using DVB-C/A.").arg(_mod_sys));
361 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Unsupported DVB-C modulation system " +
362 QString(
"parameter '%1', aborting.").arg(_mod_sys));
370 const QString &_frequency,
const QString &_inversion,
371 const QString &_symbol_rate,
const QString &_fec_inner,
372 const QString &_modulation,
const QString &_polarity,
373 const QString &_mod_sys,
const QString &_rolloff)
375 LOG(VB_GENERAL, LOG_DEBUG,
LOC +
"ParseDVB_S2" +
376 " frequency:" + _frequency +
377 " inversion:" + _inversion +
378 " symbol_rate:" + _symbol_rate +
379 " fec_inner:" + _fec_inner +
380 " modulation:" + _modulation +
381 " polarity:" + _polarity +
382 " mod_sys:" + _mod_sys +
383 " rolloff:" + _rolloff);
386 _fec_inner, _modulation, _polarity);
403 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Unsupported DVB-S2 modulation system " +
404 QString(
"parameter '%1', aborting.").arg(_mod_sys));
408 if (!_rolloff.isEmpty())
415 const QString &_frequency,
const QString &_inversion,
416 const QString &_bandwidth,
const QString &_coderate_hp,
417 const QString &_coderate_lp,
const QString &_modulation,
418 const QString &_trans_mode,
const QString &_guard_interval,
419 const QString &_hierarchy,
const QString &_mod_sys)
421 bool ok =
ParseDVB_T(_frequency, _inversion, _bandwidth,
422 _coderate_hp, _coderate_lp, _modulation,
423 _trans_mode, _guard_interval, _hierarchy);
432 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Undefined modulation system, " +
440 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Unsupported DVB-T2 modulation system " +
450 const QString& _frequency,
const QString& _inversion,
const QString& _symbolrate,
451 const QString& _fec,
const QString& _polarity,
452 const QString& _hp_code_rate,
const QString& _lp_code_rate,
const QString& _ofdm_modulation,
453 const QString& _trans_mode,
const QString& _guard_interval,
const QString& _hierarchy,
454 const QString& _modulation,
const QString& _bandwidth,
455 const QString& _mod_sys,
const QString& _rolloff)
461 _frequency, _inversion, _bandwidth,
462 _hp_code_rate, _lp_code_rate, _ofdm_modulation,
463 _trans_mode, _guard_interval, _hierarchy,
470 _frequency, _inversion, _symbolrate,
471 _fec, _modulation, _polarity,
478 _frequency, _inversion, _symbolrate,
479 _fec, _modulation, _polarity);
485 _frequency, _inversion, _symbolrate,
486 _fec, _modulation, _polarity,
493 return ParseATSC(_frequency, _modulation);
496 LOG(VB_GENERAL, LOG_ERR,
LOC +
497 QString(
"ParseTuningParams -- Unknown tuner type = 0x%1")
498 .arg(
type,0,16,QChar(
'0')));
509 "SELECT frequency, inversion, symbolrate, "
511 " hp_code_rate, lp_code_rate, constellation, "
512 " transmission_mode, guard_interval, hierarchy, "
513 " modulation, bandwidth, sistandard, "
515 "FROM dtv_multiplex "
516 "WHERE dtv_multiplex.mplexid = :MPLEXID");
527 LOG(VB_GENERAL, LOG_ERR,
LOC +
528 QString(
"Could not find tuning parameters for mplex %1")
540 query.
value(0).toString(), query.
value(1).toString(),
541 query.
value(2).toString(), query.
value(3).toString(),
542 query.
value(4).toString(), query.
value(5).toString(),
543 query.
value(6).toString(), query.
value(7).toString(),
544 query.
value(8).toString(), query.
value(9).toString(),
545 query.
value(10).toString(), query.
value(11).toString(),
546 query.
value(12).toString(), query.
value(14).toString(),
547 query.
value(15).toString());
593 LOG(VB_CHANSCAN, LOG_NOTICE,
LOC +
594 "Ignoring DVB-S2 transponder with DVB-S card");
634 LOG(VB_CHANSCAN, LOG_ERR,
LOC +
635 QString(
"Unknown delivery system descriptor 0x%1").arg(tag,0,16));
639 LOG(VB_CHANSCAN, LOG_ERR,
LOC +
640 QString(
"Tuner type %1 does not match delivery system")
641 .arg(
type.toString()));
656 "SELECT c.mplexid, c.sourceid, c.chanid, "
657 " c.callsign, c.name, c.channum, "
658 " c.serviceid, c.atsc_major_chan, c.atsc_minor_chan, "
659 " c.useonairguide, c.visible, c.freqid, "
660 " c.icon, c.tvformat, c.xmltvid, "
661 " d.transportid, d.networkid, c.default_authority,"
663 "FROM channel AS c, dtv_multiplex AS d "
664 "WHERE c.deleted IS NULL AND "
665 " c.mplexid = :MPLEXID AND"
666 " c.mplexid = d.mplexid");
678 query.
value(0).toUInt(), query.
value(1).toUInt(),
679 query.
value(2).toUInt(), query.
value(3).toString(),
680 query.
value(4).toString(), query.
value(5).toString(),
681 query.
value(6).toUInt(),
682 query.
value(7).toUInt(), query.
value(8).toUInt(),
683 query.
value(9).toBool(), !query.
value(10).toBool(),
685 query.
value(11).toString(), query.
value(12).toString(),
686 query.
value(13).toString(), query.
value(14).toString(),
688 query.
value(15).toUInt(), query.
value(16).toUInt(),
691 false,
false,
false,
false,
692 false,
false,
false,
false,
693 false,
false,
false, 0,
694 query.
value(17).toString(),
695 query.
value(18).toUInt(),
707 uint transportid = 0;
711 "INSERT INTO channelscan_dtv_multiplex "
713 " mplexid, frequency, inversion, "
714 " symbolrate, fec, polarity, "
715 " hp_code_rate, lp_code_rate, modulation, "
716 " transmission_mode, guard_interval, hierarchy, "
717 " mod_sys, rolloff, bandwidth, "
718 " sistandard, tuner_type, signal_strength "
722 " :MPLEXID, :FREQUENCY, :INVERSION, "
723 " :SYMBOLRATE, :FEC, :POLARITY, "
724 " :HP_CODE_RATE, :LP_CODE_RATE, :MODULATION, "
725 " :TRANSMISSION_MODE, :GUARD_INTERVAL, :HIERARCHY, "
726 " :MOD_SYS, :ROLLOFF, :BANDWIDTH, "
727 " :SISTANDARD, :TUNER_TYPE, :SIGNAL_STRENGTH "
756 query.
prepare(
"SELECT MAX(transportid) FROM channelscan_dtv_multiplex");
759 else if (query.
next())
760 transportid = query.
value(0).toUInt();
766 channel.SaveScan(scanid, transportid);
773 const QString& _frequency,
const QString& _inversion,
const QString& _symbolrate,
774 const QString& _fec,
const QString& _polarity,
775 const QString& _hp_code_rate,
const QString& _lp_code_rate,
const QString& _ofdm_modulation,
776 const QString& _trans_mode,
const QString& _guard_interval,
const QString& _hierarchy,
777 const QString& _modulation,
const QString& _bandwidth,
const QString& _mod_sys,
778 const QString& _rolloff,
const QString& signal_strength)
785 _frequency, _inversion, _symbolrate,
787 _hp_code_rate, _lp_code_rate, _ofdm_modulation,
788 _trans_mode, _guard_interval, _hierarchy,
789 _modulation, _bandwidth, _mod_sys,
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
QSqlQuery wrapper that fetches a DB connection from the connection pool.
bool IsCompatible(const DTVHierarchy other) const
QString HierarchyString(void) const
@ satellite_delivery_system
uint DescriptorTag(void) const
static const int kTunerTypeDVBC
QString GuardIntervalString(void) const
static const int kTunerTypeIPTV
bool Parse(const QString &_value)
@ kModulationSystem_DVBS2
static const int kTunerTypeDVBS1
bool Parse(const QString &_value)
bool IsCompatible(const DTVTransmitMode other) const
bool FillFromDeliverySystemDesc(DTVTunerType type, const MPEGDescriptor &desc)
QVariant value(int i) const
bool Parse(const QString &_value)
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
bool operator==(const DTVMultiplex &m) const
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
@ terrestrial_delivery_system
unsigned long long FrequencyHz(void) const
QString FECInnerString(void) const
bool ParseTuningParams(DTVTunerType type, const QString &frequency, const QString &inversion, const QString &symbolrate, const QString &fec, const QString &polarity, const QString &hp_code_rate, const QString &lp_code_rate, const QString &ofdm_modulation, const QString &trans_mode, const QString &guard_interval, const QString &hierarchy, const QString &modulation, const QString &bandwidth, const QString &mod_sys, const QString &rolloff, const QString &signal_strength)
bool ParseDVB_S_and_C(const QString &frequency, const QString &inversion, const QString &symbol_rate, const QString &fec_inner, const QString &modulation, const QString &polarity)
virtual bool FillFromDB(DTVTunerType type, uint mplexid)
bool IsCompatible(const DTVGuardInterval other) const
bool ParseDVB_C(const QString &frequency, const QString &inversion, const QString &symbol_rate, const QString &fec_inner, const QString &modulation, const QString &polarity, const QString &mod_sys)
bool Parse(const QString &_value)
bool Parse(const QString &_value)
IPTVTuningData m_iptvTuning
bool ParseDVB_T(const QString &frequency, const QString &inversion, const QString &bandwidth, const QString &coderate_hp, const QString &coderate_lp, const QString &modulation, const QString &trans_mode, const QString &guard_interval, const QString &hierarchy)
@ kModulationSystem_UNDEFINED
QString BandwidthString(void) const
DTVGuardInterval m_guardInterval
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
QString RollOffString(void) const
static void DBError(const QString &where, const MSqlQuery &query)
uint ModulationSystem(void) const
QString ConstellationString(void) const
bool IsCompatible(const DTVModulationSystem other) const
bool FillFromDB(DTVTunerType type, uint mplexid) override
QString FECInnerString(void) const
bool IsCompatible(const DTVCodeRate other) const
DTVModulationSystem m_modSys
bool ParseDVB_T2(const QString &frequency, const QString &inversion, const QString &bandwidth, const QString &coderate_hp, const QString &coderate_lp, const QString &modulation, const QString &trans_mode, const QString &guard_interval, const QString &hierarchy, const QString &mod_sys)
bool Parse(const QString &_value)
static const int kTunerTypeDVBS2
QString CodeRateLPString(void) const
bool Parse(const QString &_value)
QString ModulationSystemString(void) const
QString ModulationString(void) const
uint SymbolRateHz(void) const
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
uint SaveScan(uint scanid) const
bool ParseDVB_S2(const QString &frequency, const QString &inversion, const QString &symbol_rate, const QString &fec_inner, const QString &modulation, const QString &polarity, const QString &mod_sys, const QString &rolloff)
uint64_t FrequencyHz(void) const
bool ParseATSC(const QString &frequency, const QString &modulation)
@ kModulationSystem_DVBT2
QString TransmissionModeString(void) const
@ kModulationSystem_DVBC_ANNEX_A
QString PolarizationString() const
bool IsCompatible(const DTVModulation other) const
bool ParseTuningParams(DTVTunerType type, const QString &frequency, const QString &inversion, const QString &symbolrate, const QString &fec, const QString &polarity, const QString &hp_code_rate, const QString &lp_code_rate, const QString &ofdm_modulation, const QString &trans_mode, const QString &guard_interval, const QString &hierarchy, const QString &modulation, const QString &bandwidth, const QString &mod_sys, const QString &rolloff)
bool Parse(const QString &_value)
QString CodeRateHPString(void) const
uint SymbolRateHz(void) const
DTVModulation m_modulation
static const int kTunerTypeATSC
static const int kTunerTypeDVBT
bool IsEqual(DTVTunerType type, const DTVMultiplex &other, uint freq_range=0, bool fuzzy=false) const
static const int kTunerTypeDVBT2
uint64_t FrequencykHz(void) const
bool ParseDVB_S(const QString &frequency, const QString &inversion, const QString &symbol_rate, const QString &fec_inner, const QString &modulation, const QString &polarity)
bool IsCompatible(const DTVInversion other) const
bool Parse(const QString &_value)
DTVTransmitMode m_transMode
QString ModulationString(void) const
bool IsCompatible(const DTVBandwidth other) const
ChannelInsertInfoList m_channels
@ kModulationSystem_DVBC_ANNEX_C
bool IsCompatible(const DTVRollOff other) const
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
bool Parse(const QString &_value)