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 +
"Deprecated DVB-T modulation system " +
440 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Deprecated DVB-T2 modulation system " +
448 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Undefined modulation system, " +
456 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Unsupported DVB-T2 modulation system " +
466 const QString& _frequency,
const QString& _inversion,
const QString& _symbolrate,
467 const QString& _fec,
const QString& _polarity,
468 const QString& _hp_code_rate,
const QString& _lp_code_rate,
const QString& _ofdm_modulation,
469 const QString& _trans_mode,
const QString& _guard_interval,
const QString& _hierarchy,
470 const QString& _modulation,
const QString& _bandwidth,
471 const QString& _mod_sys,
const QString& _rolloff)
476 _frequency, _inversion, _bandwidth,
477 _hp_code_rate, _lp_code_rate, _ofdm_modulation,
478 _trans_mode, _guard_interval, _hierarchy);
484 _frequency, _inversion, _symbolrate,
485 _fec, _modulation, _polarity,
492 _frequency, _inversion, _symbolrate,
493 _fec, _modulation, _polarity);
499 _frequency, _inversion, _symbolrate,
500 _fec, _modulation, _polarity,
507 _frequency, _inversion, _bandwidth,
508 _hp_code_rate, _lp_code_rate, _ofdm_modulation,
509 _trans_mode, _guard_interval, _hierarchy,
515 return ParseATSC(_frequency, _modulation);
518 LOG(VB_GENERAL, LOG_ERR,
LOC +
519 QString(
"ParseTuningParams -- Unknown tuner type = 0x%1")
520 .arg(
type,0,16,QChar(
'0')));
531 "SELECT frequency, inversion, symbolrate, "
533 " hp_code_rate, lp_code_rate, constellation, "
534 " transmission_mode, guard_interval, hierarchy, "
535 " modulation, bandwidth, sistandard, "
537 "FROM dtv_multiplex "
538 "WHERE dtv_multiplex.mplexid = :MPLEXID");
549 LOG(VB_GENERAL, LOG_ERR,
LOC +
550 QString(
"Could not find tuning parameters for mplex %1")
562 query.
value(0).toString(), query.
value(1).toString(),
563 query.
value(2).toString(), query.
value(3).toString(),
564 query.
value(4).toString(), query.
value(5).toString(),
565 query.
value(6).toString(), query.
value(7).toString(),
566 query.
value(8).toString(), query.
value(9).toString(),
567 query.
value(10).toString(), query.
value(11).toString(),
568 query.
value(12).toString(), query.
value(14).toString(),
569 query.
value(15).toString());
615 LOG(VB_CHANSCAN, LOG_NOTICE,
LOC +
616 "Ignoring DVB-S2 transponder with DVB-S card");
656 LOG(VB_CHANSCAN, LOG_ERR,
LOC +
657 QString(
"Unknown delivery system descriptor 0x%1").arg(tag,0,16));
661 LOG(VB_CHANSCAN, LOG_ERR,
LOC +
662 QString(
"Tuner type %1 does not match delivery system")
663 .arg(
type.toString()));
678 "SELECT c.mplexid, c.sourceid, c.chanid, "
679 " c.callsign, c.name, c.channum, "
680 " c.serviceid, c.atsc_major_chan, c.atsc_minor_chan, "
681 " c.useonairguide, c.visible, c.freqid, "
682 " c.icon, c.tvformat, c.xmltvid, "
683 " d.transportid, d.networkid, c.default_authority,"
685 "FROM channel AS c, dtv_multiplex AS d "
686 "WHERE c.deleted IS NULL AND "
687 " c.mplexid = :MPLEXID AND"
688 " c.mplexid = d.mplexid");
700 query.
value(0).toUInt(), query.
value(1).toUInt(),
701 query.
value(2).toUInt(), query.
value(3).toString(),
702 query.
value(4).toString(), query.
value(5).toString(),
703 query.
value(6).toUInt(),
704 query.
value(7).toUInt(), query.
value(8).toUInt(),
705 query.
value(9).toBool(), !query.
value(10).toBool(),
707 query.
value(11).toString(), query.
value(12).toString(),
708 query.
value(13).toString(), query.
value(14).toString(),
710 query.
value(15).toUInt(), query.
value(16).toUInt(),
713 false,
false,
false,
false,
714 false,
false,
false,
false,
715 false,
false,
false, 0,
716 query.
value(17).toString(),
717 query.
value(18).toUInt());
727 uint transportid = 0;
731 "INSERT INTO channelscan_dtv_multiplex "
733 " mplexid, frequency, inversion, "
734 " symbolrate, fec, polarity, "
735 " hp_code_rate, lp_code_rate, modulation, "
736 " transmission_mode, guard_interval, hierarchy, "
737 " mod_sys, rolloff, bandwidth, "
738 " sistandard, tuner_type, signal_strength "
742 " :MPLEXID, :FREQUENCY, :INVERSION, "
743 " :SYMBOLRATE, :FEC, :POLARITY, "
744 " :HP_CODE_RATE, :LP_CODE_RATE, :MODULATION, "
745 " :TRANSMISSION_MODE, :GUARD_INTERVAL, :HIERARCHY, "
746 " :MOD_SYS, :ROLLOFF, :BANDWIDTH, "
747 " :SISTANDARD, :TUNER_TYPE, :SIGNAL_STRENGTH "
776 query.
prepare(
"SELECT MAX(transportid) FROM channelscan_dtv_multiplex");
779 else if (query.
next())
780 transportid = query.
value(0).toUInt();
786 channel.SaveScan(scanid, transportid);
793 const QString& _frequency,
const QString& _inversion,
const QString& _symbolrate,
794 const QString& _fec,
const QString& _polarity,
795 const QString& _hp_code_rate,
const QString& _lp_code_rate,
const QString& _ofdm_modulation,
796 const QString& _trans_mode,
const QString& _guard_interval,
const QString& _hierarchy,
797 const QString& _modulation,
const QString& _bandwidth,
const QString& _mod_sys,
798 const QString& _rolloff,
const QString& signal_strength)
805 _frequency, _inversion, _symbolrate,
807 _hp_code_rate, _lp_code_rate, _ofdm_modulation,
808 _trans_mode, _guard_interval, _hierarchy,
809 _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
uint DescriptorTag(void) const
static const int kTunerTypeDVBC
QString GuardIntervalString(void) const
static const int kTunerTypeIPTV
@ kModulationSystem_DVBS2
bool Parse(const QString &_value)
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_)
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)
@ kModulationSystem_UNDEFINED
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)
@ terrestrial_delivery_system
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)
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)
QString TransmissionModeString(void) const
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
@ kModulationSystem_DVBT2
static const int kTunerTypeDVBT
bool IsEqual(DTVTunerType type, const DTVMultiplex &other, uint freq_range=0, bool fuzzy=false) const
@ kModulationSystem_DVBC_ANNEX_C
static const int kTunerTypeDVBT2
@ satellite_delivery_system
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_A
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)