MythTV  master
dtvmultiplex.h
Go to the documentation of this file.
1 /* -*- Mode: c++ -*-
2  * DTVMultiplex
3  * Copyright (c) 2005,2006 by Daniel Kristjansson
4  * Digital multiplexes info class
5  */
6 
7 #ifndef DTVMULTIPLEX_H
8 #define DTVMULTIPLEX_H
9 
10 // C++ headers
11 #include <cstdint>
12 
13 // Qt headers
14 #include <QString>
15 
16 // MythTV headers
17 #include "dtvconfparserhelpers.h"
18 #include "channelinfo.h"
19 #include "iptvtuningdata.h"
20 #include "mythtvexp.h"
21 
22 class MPEGDescriptor;
23 
25 {
26  public:
27  DTVMultiplex() = default;
28  DTVMultiplex(const DTVMultiplex &/*other*/) = default;
29  DTVMultiplex &operator=(const DTVMultiplex &/*other*/) = default;
30  virtual ~DTVMultiplex() = default;
31 
32  bool operator==(const DTVMultiplex &m) const;
33 
34  void Clear(void) { (*this) = DTVMultiplex(); }
35 
36  virtual bool FillFromDB(DTVTunerType type, uint mplexid);
37 
38  bool FillFromDeliverySystemDesc(DTVTunerType type, const MPEGDescriptor &desc);
39 
40  bool IsEqual(DTVTunerType type, const DTVMultiplex& other,
41  uint freq_range = 0, bool fuzzy = false) const;
42 
43  bool ParseATSC(const QString &frequency, const QString &modulation);
44 
45  bool ParseDVB_T(
46  const QString &frequency, const QString &inversion,
47  const QString &bandwidth, const QString &coderate_hp,
48  const QString &coderate_lp, const QString &modulation,
49  const QString &trans_mode, const QString &guard_interval,
50  const QString &hierarchy);
51 
52  bool ParseDVB_S_and_C(
53  const QString &frequency, const QString &inversion,
54  const QString &symbol_rate, const QString &fec_inner,
55  const QString &modulation, const QString &polarity);
56 
57  bool ParseDVB_S(
58  const QString &frequency, const QString &inversion,
59  const QString &symbol_rate, const QString &fec_inner,
60  const QString &modulation, const QString &polarity);
61 
62  bool ParseDVB_C(
63  const QString &frequency, const QString &inversion,
64  const QString &symbol_rate, const QString &fec_inner,
65  const QString &modulation, const QString &polarity,
66  const QString &mod_sys);
67 
68  bool ParseDVB_S2(
69  const QString &frequency, const QString &inversion,
70  const QString &symbol_rate, const QString &fec_inner,
71  const QString &modulation, const QString &polarity,
72  const QString &mod_sys, const QString &rolloff);
73 
74  bool ParseDVB_T2(
75  const QString &frequency, const QString &inversion,
76  const QString &bandwidth, const QString &coderate_hp,
77  const QString &coderate_lp, const QString &modulation,
78  const QString &trans_mode, const QString &guard_interval,
79  const QString &hierarchy, const QString &mod_sys);
80 
81  bool ParseTuningParams(
83  const QString& frequency, const QString& inversion, const QString& symbolrate,
84  const QString& fec, const QString& polarity,
85  const QString& hp_code_rate, const QString& lp_code_rate, const QString& ofdm_modulation,
86  const QString& trans_mode, const QString& guard_interval, const QString& hierarchy,
87  const QString& modulation, const QString& bandwidth, const QString& mod_sys,
88  const QString& rolloff);
89 
90  QString toString() const;
91 
92  public:
93  // Basic tuning
94  uint64_t m_frequency {0};
95  uint64_t m_symbolRate {0};
98  DTVCodeRate m_hpCodeRate; // High Priority FEC rate
99  DTVCodeRate m_lpCodeRate; // Low Priority FEC rate
105  DTVCodeRate m_fec; // Inner Forward Error Correction rate
106  DTVModulationSystem m_modSys; // Modulation system
108 
109  // Optional additional info
110  uint m_mplex {0};
111  QString m_sistandard;
113 };
114 
116 {
117  public:
118  ScanDTVTransport() = default;
120  DTVMultiplex(mplex), m_tunerType(tt), m_cardid(cid) { }
121  ~ScanDTVTransport() override = default;
122 
123  bool FillFromDB(DTVTunerType type, uint mplexid) override; // DTVMultiplex
124  uint SaveScan(uint scanid) const;
125 
126  bool ParseTuningParams(
128  const QString& frequency, const QString& inversion, const QString& symbolrate,
129  const QString& fec, const QString& polarity,
130  const QString& hp_code_rate, const QString& lp_code_rate, const QString& ofdm_modulation,
131  const QString& trans_mode, const QString& guard_interval, const QString& hierarchy,
132  const QString& modulation, const QString& bandwidth,
133  const QString& mod_sys, const QString& rolloff, const QString& signal_strength);
134 
135  public:
137  uint m_cardid {0};
139  uint m_networkID {0};
140  uint m_transportID {0};
141  int m_signalStrength {0};
142 };
143 using ScanDTVTransportList = std::vector<ScanDTVTransport>;
144 
145 #endif // DTVMULTIPLEX_H
DTVInversion
Definition: dtvconfparserhelpers.h:162
DTVMultiplex
Definition: dtvmultiplex.h:24
DTVBandwidth
Definition: dtvconfparserhelpers.h:217
MythDate::toString
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
Definition: mythdate.cpp:84
DTVMultiplex::m_rolloff
DTVRollOff m_rolloff
Definition: dtvmultiplex.h:107
SaveScan
uint SaveScan(const ScanDTVTransportList &scan)
Definition: scaninfo.cpp:22
mythtvexp.h
ChannelInsertInfoList
std::vector< ChannelInsertInfo > ChannelInsertInfoList
Definition: channelinfo.h:259
DTVHierarchy
Definition: dtvconfparserhelpers.h:546
DTVMultiplex::m_hierarchy
DTVHierarchy m_hierarchy
Definition: dtvmultiplex.h:103
DTVMultiplex::m_bandwidth
DTVBandwidth m_bandwidth
Definition: dtvmultiplex.h:97
DTVGuardInterval
Definition: dtvconfparserhelpers.h:487
DTVMultiplex::FillFromDB
virtual bool FillFromDB(DTVTunerType type, uint mplexid)
Definition: dtvmultiplex.cpp:503
DTVCodeRate
Definition: dtvconfparserhelpers.h:280
DTVTunerType
Definition: dtvconfparserhelpers.h:76
DTVMultiplex::m_inversion
DTVInversion m_inversion
Definition: dtvmultiplex.h:96
DTVMultiplex::m_iptvTuning
IPTVTuningData m_iptvTuning
Definition: dtvmultiplex.h:112
DTVTunerType::kTunerTypeUnknown
static const int kTunerTypeUnknown
Definition: dtvconfparserhelpers.h:103
DTVMultiplex::m_guardInterval
DTVGuardInterval m_guardInterval
Definition: dtvmultiplex.h:102
operator==
bool operator==(MusicMetadata &a, MusicMetadata &b)
Definition: musicmetadata.cpp:40
MPEGDescriptor
Definition: mpegdescriptors.h:302
DTVTransmitMode
Definition: dtvconfparserhelpers.h:424
DTVMultiplex::m_hpCodeRate
DTVCodeRate m_hpCodeRate
Definition: dtvmultiplex.h:98
IPTVTuningData
Definition: iptvtuningdata.h:21
iptvtuningdata.h
DTVMultiplex::m_modSys
DTVModulationSystem m_modSys
Definition: dtvmultiplex.h:106
DTVMultiplex::m_fec
DTVCodeRate m_fec
Definition: dtvmultiplex.h:105
uint
unsigned int uint
Definition: compat.h:81
ScanDTVTransportList
std::vector< ScanDTVTransport > ScanDTVTransportList
Definition: dtvmultiplex.h:143
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
channelinfo.h
DTVModulationSystem
Definition: dtvconfparserhelpers.h:644
ScanDTVTransport::ScanDTVTransport
ScanDTVTransport(const DTVMultiplex &mplex, DTVTunerType tt, uint cid)
Definition: dtvmultiplex.h:119
DTVMultiplex::m_sistandard
QString m_sistandard
Definition: dtvmultiplex.h:111
DTVMultiplex::ParseTuningParams
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)
Definition: dtvmultiplex.cpp:448
DTVMultiplex::m_modulation
DTVModulation m_modulation
Definition: dtvmultiplex.h:100
DTVMultiplex::m_polarity
DTVPolarity m_polarity
Definition: dtvmultiplex.h:104
dtvconfparserhelpers.h
DTVMultiplex::m_transMode
DTVTransmitMode m_transMode
Definition: dtvmultiplex.h:101
DTVPolarity
Definition: dtvconfparserhelpers.h:605
DTVModulation
Definition: dtvconfparserhelpers.h:347
ScanDTVTransport
Definition: dtvmultiplex.h:115
ScanDTVTransport::m_channels
ChannelInsertInfoList m_channels
Definition: dtvmultiplex.h:138
DTVMultiplex::Clear
void Clear(void)
Definition: dtvmultiplex.h:34
DTVMultiplex::m_lpCodeRate
DTVCodeRate m_lpCodeRate
Definition: dtvmultiplex.h:99
DTVRollOff
Definition: dtvconfparserhelpers.h:725