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
18#include "channelinfo.h"
19#include "iptvtuningdata.h"
20#include "mythtvexp.h"
21
22class 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};
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};
143using ScanDTVTransportList = std::vector<ScanDTVTransport>;
144
145#endif // DTVMULTIPLEX_H
std::vector< ChannelInsertInfo > ChannelInsertInfoList
Definition: channelinfo.h:264
DTVHierarchy m_hierarchy
Definition: dtvmultiplex.h:103
DTVMultiplex(const DTVMultiplex &)=default
DTVMultiplex()=default
IPTVTuningData m_iptvTuning
Definition: dtvmultiplex.h:112
DTVMultiplex & operator=(const DTVMultiplex &)=default
DTVCodeRate m_fec
Definition: dtvmultiplex.h:105
DTVInversion m_inversion
Definition: dtvmultiplex.h:96
DTVCodeRate m_hpCodeRate
Definition: dtvmultiplex.h:98
DTVTransmitMode m_transMode
Definition: dtvmultiplex.h:101
DTVModulation m_modulation
Definition: dtvmultiplex.h:100
virtual ~DTVMultiplex()=default
DTVModulationSystem m_modSys
Definition: dtvmultiplex.h:106
DTVRollOff m_rolloff
Definition: dtvmultiplex.h:107
DTVGuardInterval m_guardInterval
Definition: dtvmultiplex.h:102
void Clear(void)
Definition: dtvmultiplex.h:34
DTVBandwidth m_bandwidth
Definition: dtvmultiplex.h:97
DTVCodeRate m_lpCodeRate
Definition: dtvmultiplex.h:99
QString m_sistandard
Definition: dtvmultiplex.h:111
DTVPolarity m_polarity
Definition: dtvmultiplex.h:104
static const int kTunerTypeUnknown
ChannelInsertInfoList m_channels
Definition: dtvmultiplex.h:138
ScanDTVTransport(const DTVMultiplex &mplex, DTVTunerType tt, uint cid)
Definition: dtvmultiplex.h:119
ScanDTVTransport()=default
~ScanDTVTransport() override=default
std::vector< ScanDTVTransport > ScanDTVTransportList
Definition: dtvmultiplex.h:143
unsigned int uint
Definition: freesurround.h:24
bool operator==(MusicMetadata &a, MusicMetadata &b)
#define MTV_PUBLIC
Definition: mythtvexp.h:15
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
Definition: mythdate.cpp:93
uint SaveScan(const ScanDTVTransportList &scan)
Definition: scaninfo.cpp:22