MythTV master
dtvconfparserhelpers.h
Go to the documentation of this file.
1/* -*- Mode: c++ -*-
2 * vim: set expandtab tabstop=4 shiftwidth=4:
3 *
4 * Original Project
5 * MythTV http://www.mythtv.org
6 *
7 * Author(s):
8 * John Pullan (john@pullan.org)
9 *
10 * Description:
11 * Collection of classes to provide dvb channel scanning
12 * functionallity
13 *
14 *
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, write to the Free Software
27 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
28 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
29 *
30 */
31
32#ifndef DTVCONFPARSERHELPERS_H
33#define DTVCONFPARSERHELPERS_H
34
35#include "libmythbase/mythconfig.h"
36
37#include <vector>
38#include <QString>
39#if CONFIG_DVB
40#include <linux/dvb/frontend.h>
41#endif
42
43// The following are a set of helper classes to allow easy translation
44// between the different string representations of various tuning parameters.
45
47{
48 QString symbol;
49 int value;
50};
51using DTVParamHelperVec = std::vector<DTVParamHelperStruct>;
52using DTVParamStringVec = std::vector<std::string>;
53
59{
60 public:
61 explicit DTVParamHelper(int _value) : m_value(_value) { }
62 DTVParamHelper &operator=(int _value) { m_value = _value; return *this; }
63
64 operator int() const { return m_value; }
65 int toInt() const { return m_value; }
66 bool operator==(const int v) const { return m_value == v; }
67 bool operator!=(const int v) const { return m_value != v; }
68
69 protected:
70 static bool ParseParam(const QString &symbol, int &value,
71 const DTVParamHelperVec &table);
72
73 static QString toString(const DTVParamStringVec &strings, int index);
74
75 protected:
77};
78
80{
82
83 public:
84 // WARNING: kTunerTypes cannot be defined by a C++03 enum
85 // because gcc 4.3.3 will reportedly promote an enum inconsistently
86 // to int on IA-32 platforms. I don't know whether this is
87 // correct or not, it comes down to interpretation of section
88 // 7.2.5 and whether 0x80000000 should be considered too big
89 // for a 32 bit integer or not. Using an enum to represent int
90 // bitmasks is valid C code, but the C++03 standard was still a
91 // bit loosey gosey on this point. It looks like the breakage
92 // was caused by work in gcc to support C++0x which will allow
93 // one to specify things as exactly as C does. -- dtk 2009-10-05
94
95 // // Modulations which may be supported
96 static const int kTunerTypeDVBS1; // QPSK
97 static const int kTunerTypeDVBS2; // QPSK, 8PSK, 16APSK, 32APSK
98 static const int kTunerTypeDVBC; // QAM-64, QAM-256
99 static const int kTunerTypeDVBT; // OFDM
100 static const int kTunerTypeDVBT2; // OFDM
101 static const int kTunerTypeATSC; // 8-VSB, 16-VSB,
102 // QAM-16, QAM-64, QAM-256, QPSK
103 static const int kTunerTypeASI; // baseband
104 static const int kTunerTypeOCUR; // Virtual Channel tuning of QAM-64/256
105 static const int kTunerTypeIPTV; // IPTV
106 static const int kTunerTypeUnknown;
107
108 // Note: Just because some cards sold in different regions support the same
109 // modulation scheme does not mean that they decode the same signals, there
110 // are also region specific FEC algorithms and the tuner which precedes the
111 // demodulator may be limited to frequencies used in that specific market.
112 // The tuner may also be bandwidth limited to 6 or 7 Mhz, so it could not
113 // support the 8 Mhz channels used in some contries, and/or the ADC which
114 // sits between the tuner and the demodulator may be bandwidth limited.
115 // While often the same hardware could physically support more than it
116 // is designed for the card/device maker does not write the firmware
117 // but licenses blocks of it and so only selects the pieces absolutely
118 // necessary for their market segment. Some ATSC cards only supported
119 // 8-VSB, newer cards don't support the unpopular 16-VSB, no consumer
120 // card supports the QAM-16 or QPSK used for USA Cable PSIP, etc.
121 // DVB-S cards also generally support DiSEqC signaling, and future
122 // ATSC cards may support similar but incompatible signalling for
123 // pointable antennas.
124 //
125 // Note 2: These values are keyed to the Linux DVB driver values, in
126 // reality some hardware does support multiple formats and this should
127 // be a mask. Also the transmission schemes used in Asia and South
128 // America are not represented here.
129
130 explicit DTVTunerType(int _default = kTunerTypeUnknown)
131 : DTVParamHelper(_default) { initStr(); }
132 DTVTunerType& operator=(int type) { m_value = type; return *this; }
133
134 bool Parse(const QString &_value)
135 { return ParseParam(_value, m_value, kParseTable); }
136
137 bool IsFECVariable(void) const
138 {
139 return ((kTunerTypeDVBC == m_value) ||
142 }
143
144 bool IsModulationVariable(void) const
145 {
146 return ((kTunerTypeDVBC == m_value) ||
147 (kTunerTypeATSC == m_value) ||
149 }
150
151 bool IsDiSEqCSupported(void) const
152 {
153 return ((kTunerTypeDVBS1 == m_value) ||
155 }
156
157 QString toString() const { return toString(m_value); }
158
159 uint toUInt() const { return static_cast<uint>(m_value); }
160
161 static void initStr(void);
162 static QString toString(int _value);
163};
164
166{
167 protected:
172
173 public:
174 enum Types : std::uint8_t
175 {
179 };
180#if CONFIG_DVB
181 static_assert((kInversionOff == (Types)INVERSION_OFF ) &&
182 (kInversionOn == (Types)INVERSION_ON ) &&
183 (kInversionAuto == (Types)INVERSION_AUTO),
184 "Inversion types don't match DVB includes.");
185#endif
186
187 explicit DTVInversion(Types _default = kInversionAuto)
188 : DTVParamHelper(_default) { }
190 { m_value = _value; return *this; }
191#if CONFIG_DVB
192 DTVInversion& operator=(const fe_spectral_inversion_t type)
193 { m_value = type; return *this; }
194#endif
195
196 bool IsCompatible(const DTVInversion other) const
197 { return m_value == other.m_value || m_value == kInversionAuto ||
198 other.m_value == kInversionAuto;
199 }
200
201 bool ParseConf(const QString &_value)
202 { return ParseParam(_value, m_value, kConfTable); }
203 bool ParseVDR(const QString &_value)
204 { return ParseParam(_value, m_value, kVdrTable); }
205 bool Parse(const QString &_value)
206 { return ParseParam(_value, m_value, kParseTable); }
207
208 QString toString() const { return toString(m_value); }
209 QChar toChar() const
210 {
211 if (toString().length() > 0)
212 return toString().at(0);
213 return {};
214 }
215
216 static QString toString(int _value)
217 { return DTVParamHelper::toString(kParseStrings, _value); }
218};
219
221{
222 protected:
227
228 public:
229 enum Types : std::uint8_t
230 {
238 };
239#if CONFIG_DVB
240 static_assert((kBandwidth8MHz == (Types)BANDWIDTH_8_MHZ ) &&
241 (kBandwidth7MHz == (Types)BANDWIDTH_7_MHZ ) &&
242 (kBandwidth6MHz == (Types)BANDWIDTH_6_MHZ ) &&
243 (kBandwidthAuto == (Types)BANDWIDTH_AUTO ) &&
244 (kBandwidth5MHz == (Types)BANDWIDTH_5_MHZ ) &&
245 (kBandwidth10MHz == (Types)BANDWIDTH_10_MHZ ) &&
246 (kBandwidth1712kHz == (Types)BANDWIDTH_1_712_MHZ),
247 "Bandwidth types don't match DVB includes.");
248#endif
249
250 explicit DTVBandwidth(Types _default = kBandwidthAuto)
251 : DTVParamHelper(_default) { }
253 { m_value = _value; return *this; }
254#if CONFIG_DVB
255 DTVBandwidth& operator=(const fe_bandwidth_t bwidth)
256 { m_value = bwidth; return *this; }
257#endif
258
259 bool IsCompatible(const DTVBandwidth other) const
260 { return m_value == other.m_value || m_value == kBandwidthAuto ||
261 other.m_value == kBandwidthAuto;
262 }
263
264 bool ParseConf(const QString &_value)
265 { return ParseParam(_value, m_value, kConfTable); }
266 bool ParseVDR(const QString &_value)
267 { return ParseParam(_value, m_value, kVdrTable); }
268 bool Parse(const QString &_value)
269 { return ParseParam(_value, m_value, kParseTable); }
270
271 QString toString() const { return toString(m_value); }
272 QChar toChar() const
273 {
274 if (toString().length() > 0)
275 return toString().at(0);
276 return {};
277 }
278
279 static QString toString(int _value)
280 { return DTVParamHelper::toString(kParseStrings, _value); }
281};
282
284{
285 protected:
290
291 public:
292 enum Types : std::uint8_t
293 {
306 };
307#if CONFIG_DVB
308 static_assert((kFECNone == (Types)FEC_NONE) &&
309 (kFEC_1_2 == (Types)FEC_1_2 ) &&
310 (kFEC_2_3 == (Types)FEC_2_3 ) &&
311 (kFEC_3_4 == (Types)FEC_3_4 ) &&
312 (kFEC_4_5 == (Types)FEC_4_5 ) &&
313 (kFEC_5_6 == (Types)FEC_5_6 ) &&
314 (kFEC_6_7 == (Types)FEC_6_7 ) &&
315 (kFEC_7_8 == (Types)FEC_7_8 ) &&
316 (kFEC_8_9 == (Types)FEC_8_9 ) &&
317 (kFECAuto == (Types)FEC_AUTO) &&
318 (kFEC_3_5 == (Types)FEC_3_5 ) &&
319 (kFEC_9_10 == (Types)FEC_9_10),
320 "FEC types don't match DVB includes.");
321#endif
322
323 explicit DTVCodeRate(Types _default = kFECAuto)
324 : DTVParamHelper(_default) { }
326 { m_value = _value; return *this; }
327#if CONFIG_DVB
328 DTVCodeRate& operator=(const fe_code_rate_t rate)
329 { m_value = rate; return *this; }
330#endif
331
332 bool IsCompatible(const DTVCodeRate other) const
333 { return m_value == other.m_value || m_value == kFECAuto ||
334 other.m_value == kFECAuto;
335 }
336
337 bool ParseConf(const QString &_value)
338 { return ParseParam(_value, m_value, kConfTable); }
339 bool ParseVDR(const QString &_value)
340 { return ParseParam(_value, m_value, kVdrTable); }
341 bool Parse(const QString &_value)
342 { return ParseParam(_value, m_value, kParseTable); }
343
344 QString toString() const { return toString(m_value); }
345
346 static QString toString(int _value)
347 { return DTVParamHelper::toString(kParseStrings, _value); }
348};
349
351{
352 protected:
357
358 public:
360 {
374 kModulationInvalid = 0x100, /* for removed modulations */
375 kModulationAnalog = 0x200, /* for analog channel scanner */
376 };
377#if CONFIG_DVB
378 static_assert((kModulationQPSK == (Types)QPSK ) &&
379 (kModulationQAM16 == (Types)QAM_16 ) &&
380 (kModulationQAM32 == (Types)QAM_32 ) &&
381 (kModulationQAM64 == (Types)QAM_64 ) &&
382 (kModulationQAM128 == (Types)QAM_128 ) &&
383 (kModulationQAM256 == (Types)QAM_256 ) &&
384 (kModulationQAMAuto == (Types)QAM_AUTO) &&
385 (kModulation8VSB == (Types)VSB_8 ) &&
386 (kModulation16VSB == (Types)VSB_16 ) &&
387 (kModulation8PSK == (Types)PSK_8 ) &&
388 (kModulation16APSK == (Types)APSK_16 ) &&
389 (kModulation32APSK == (Types)APSK_32 ) &&
390 (kModulationDQPSK == (Types)DQPSK ),
391 "Modulation types don't match DVB includes.");
392#endif
393
395 : DTVParamHelper(_default) { }
397 { m_value = _value; return *this; }
398#if CONFIG_DVB
399 DTVModulation& operator=(const fe_modulation_t modulation)
400 { m_value = modulation; return *this; }
401#endif
402
403 bool IsCompatible(const DTVModulation other) const
404 { return m_value == other.m_value || m_value == kModulationQAMAuto ||
406 }
407
408 bool ParseConf(const QString &_value)
409 { return ParseParam(_value, m_value, kConfTable); }
410 bool ParseVDR(const QString &_value)
411 { return ParseParam(_value, m_value, kVdrTable); }
412 bool Parse(const QString &_value)
413 { return ParseParam(_value, m_value, kParseTable); }
414
415 QString toString() const { return toString(m_value); }
416
417 static QString toString(int _value)
418 {
419 if (kModulationInvalid == _value)
420 return "invalid";
421 if (kModulationAnalog == _value)
422 return "analog";
424 }
425};
426
428{
429 protected:
434
435 public:
436 enum Types : std::uint8_t
437 {
445 };
446#if CONFIG_DVB
447 static_assert((kTransmissionMode2K == (Types)TRANSMISSION_MODE_2K ) &&
448 (kTransmissionMode8K == (Types)TRANSMISSION_MODE_8K ) &&
449 (kTransmissionModeAuto == (Types)TRANSMISSION_MODE_AUTO) &&
450 (kTransmissionMode4K == (Types)TRANSMISSION_MODE_4K ) &&
451 (kTransmissionMode1K == (Types)TRANSMISSION_MODE_1K ) &&
452 (kTransmissionMode16K == (Types)TRANSMISSION_MODE_16K ) &&
453 (kTransmissionMode32K == (Types)TRANSMISSION_MODE_32K ),
454 "Transmission types don't match DVB includes.");
455#endif
456
458 : DTVParamHelper(_default) { }
460 { m_value = _value; return *this; }
461#if CONFIG_DVB
462 DTVTransmitMode& operator=(const fe_transmit_mode_t mode)
463 { m_value = mode; return *this; }
464#endif
465
466 bool IsCompatible(const DTVTransmitMode other) const
467 { return m_value == other.m_value || m_value == kTransmissionModeAuto ||
469 }
470
471 bool ParseConf(const QString &_value)
472 { return ParseParam(_value, m_value, kConfTable); }
473 bool ParseVDR(const QString &_value)
474 { return ParseParam(_value, m_value, kVdrTable); }
475 bool Parse(const QString &_value)
476 { return ParseParam(_value, m_value, kParseTable); }
477
478 QString toString() const { return toString(m_value); }
479 QChar toChar() const
480 {
481 if (toString().length() > 0)
482 return toString().at(0);
483 return {};
484 }
485
486 static QString toString(int _value)
487 { return DTVParamHelper::toString(kParseStrings, _value); }
488};
489
491{
492 protected:
497
498 public:
499 enum Types : std::uint8_t
500 {
509 };
510#if CONFIG_DVB
511 static_assert((kGuardInterval_1_32 == (Types)GUARD_INTERVAL_1_32 ) &&
512 (kGuardInterval_1_16 == (Types)GUARD_INTERVAL_1_16 ) &&
513 (kGuardInterval_1_8 == (Types)GUARD_INTERVAL_1_8 ) &&
514 (kGuardInterval_1_4 == (Types)GUARD_INTERVAL_1_4 ) &&
515 (kGuardIntervalAuto == (Types)GUARD_INTERVAL_AUTO ) &&
516 (kGuardInterval_1_128 == (Types)GUARD_INTERVAL_1_128 ) &&
517 (kGuardInterval_19_128 == (Types)GUARD_INTERVAL_19_128) &&
518 (kGuardInterval_19_256 == (Types)GUARD_INTERVAL_19_256),
519 "Guard Interval types don't match DVB includes.");
520#endif
521
523 : DTVParamHelper(_default) { }
525 { m_value = _value; return *this; }
526#if CONFIG_DVB
527 DTVGuardInterval& operator=(const fe_guard_interval_t interval)
528 { m_value = interval; return *this; }
529#endif
530
531 bool IsCompatible(const DTVGuardInterval other) const
532 { return m_value == other.m_value || m_value == kGuardIntervalAuto ||
534 }
535
536 bool ParseConf(const QString &_value)
537 { return ParseParam(_value, m_value, kConfTable); }
538 bool ParseVDR(const QString &_value)
539 { return ParseParam(_value, m_value, kVdrTable); }
540 bool Parse(const QString &_value)
541 { return ParseParam(_value, m_value, kParseTable); }
542
543 QString toString() const { return toString(m_value); }
544
545 static QString toString(int _value)
546 { return DTVParamHelper::toString(kParseStrings, _value); }
547};
548
550{
551 protected:
556
557 public:
558 enum Types : std::uint8_t
559 {
565 };
566#if CONFIG_DVB
567 static_assert((kHierarchyNone == (Types)HIERARCHY_NONE) &&
568 (kHierarchy1 == (Types)HIERARCHY_1 ) &&
569 (kHierarchy2 == (Types)HIERARCHY_2 ) &&
570 (kHierarchy4 == (Types)HIERARCHY_4 ) &&
571 (kHierarchyAuto == (Types)HIERARCHY_AUTO),
572 "Hierarchy types don't match DVB includes.");
573#endif
574
575 explicit DTVHierarchy(Types _default = kHierarchyAuto)
576 : DTVParamHelper(_default) { }
578 { m_value = _value; return *this; }
579#if CONFIG_DVB
580 DTVHierarchy& operator=(const fe_hierarchy_t hierarchy)
581 { m_value = hierarchy; return *this; }
582#endif
583
584 bool IsCompatible(const DTVHierarchy other) const
585 { return m_value == other.m_value || m_value == kHierarchyAuto ||
586 other.m_value == kHierarchyAuto;
587 }
588
589 bool ParseConf(const QString &_value)
590 { return ParseParam(_value, m_value, kConfTable); }
591 bool ParseVDR(const QString &_value)
592 { return ParseParam(_value, m_value, kVdrTable); }
593 bool Parse(const QString &_value)
594 { return ParseParam(_value, m_value, kParseTable); }
595
596 QString toString() const { return toString(m_value); }
597 QChar toChar() const
598 {
599 if (toString().length() > 0)
600 return toString().at(0);
601 return {};
602 }
603
604 static QString toString(int _value)
605 { return DTVParamHelper::toString(kParseStrings, _value); }
606};
607
609{
610 protected:
613
614 public:
615 enum PolarityValues : std::uint8_t
616 {
621 };
622
624 : DTVParamHelper(_default) { }
626 { m_value = _value; return *this; }
627
628 bool ParseConf(const QString &_value)
629 { return ParseParam(_value, m_value, kParseTable); }
630 bool ParseVDR(const QString &_value)
631 { return ParseParam(_value, m_value, kParseTable); }
632 bool Parse(const QString &_value)
633 { return ParseParam(_value, m_value, kParseTable); }
634
635 QString toString() const { return toString(m_value); }
636 QChar toChar() const
637 {
638 if (toString().length() > 0)
639 return toString().at(0);
640 return {};
641 }
642
643 static QString toString(int _value)
644 { return DTVParamHelper::toString(kParseStrings, _value); }
645};
646
648{
649 protected:
654
655 public:
656 enum Types : std::uint8_t
657 {
658 // see fe_delivery_system in frontend.h
678 };
679#if CONFIG_DVB
680 static_assert((kModulationSystem_UNDEFINED == (Types)SYS_UNDEFINED ) &&
681 (kModulationSystem_DVBC_ANNEX_A == (Types)SYS_DVBC_ANNEX_A) &&
682 (kModulationSystem_DVBC_ANNEX_B == (Types)SYS_DVBC_ANNEX_B) &&
683 (kModulationSystem_DVBT == (Types)SYS_DVBT ) &&
684 (kModulationSystem_DSS == (Types)SYS_DSS ) &&
685 (kModulationSystem_DVBS == (Types)SYS_DVBS ) &&
686 (kModulationSystem_DVBS2 == (Types)SYS_DVBS2 ) &&
687 (kModulationSystem_DVBH == (Types)SYS_DVBH ) &&
688 (kModulationSystem_ISDBT == (Types)SYS_ISDBT ) &&
689 (kModulationSystem_ISDBS == (Types)SYS_ISDBS ) &&
690 (kModulationSystem_ISDBC == (Types)SYS_ISDBC ) &&
691 (kModulationSystem_ATSC == (Types)SYS_ATSC ) &&
692 (kModulationSystem_ATSCMH == (Types)SYS_ATSCMH ) &&
693 (kModulationSystem_DTMB == (Types)SYS_DTMB ) &&
694 (kModulationSystem_CMMB == (Types)SYS_CMMB ) &&
695 (kModulationSystem_DAB == (Types)SYS_DAB ) &&
696 (kModulationSystem_DVBT2 == (Types)SYS_DVBT2 ) &&
697 (kModulationSystem_TURBO == (Types)SYS_TURBO ) &&
698 (kModulationSystem_DVBC_ANNEX_C == (Types)SYS_DVBC_ANNEX_C),
699 "Modulation System types don't match DVB includes.");
700#endif
701
703 : DTVParamHelper(_value) { }
704
706 { m_value = _value; return *this; }
707
708 bool IsCompatible(const DTVModulationSystem other) const
709 { return
710 (m_value == other.m_value) ||
713 }
714
715 bool ParseConf(const QString &_value)
716 { return ParseParam(_value, m_value, kConfTable); }
717 bool ParseVDR(const QString &_value)
718 { return ParseParam(_value, m_value, kVdrTable); }
719 bool Parse(const QString &_value)
720 { return ParseParam(_value, m_value, kParseTable); }
721
722 QString toString() const { return toString(m_value); }
723
724 static QString toString(int _value)
725 { return DTVParamHelper::toString(kParseStrings, _value); }
726};
727
729{
730 protected:
735
736 public:
737 enum Types : std::uint8_t
738 {
743 };
744#if CONFIG_DVB
745 static_assert((kRollOff_35 == (Types)ROLLOFF_35)
746 && (kRollOff_Auto == (Types)ROLLOFF_AUTO),
747 "Rolloff types don't match DVB includes.");
748#endif
749
750 explicit DTVRollOff(Types _default = kRollOff_35)
751 : DTVParamHelper(_default) { }
753 { m_value = _value; return *this; }
754#if CONFIG_DVB
755 DTVRollOff& operator=(fe_rolloff_t type)
756 { m_value = type; return *this; }
757#endif
758
759 bool IsCompatible(const DTVRollOff other) const
760 { return m_value == other.m_value || m_value == kRollOff_Auto ||
761 other.m_value == kRollOff_Auto;
762 }
763
764 bool ParseConf(const QString &_value)
765 { return ParseParam(_value, m_value, kConfTable); }
766 bool ParseVDR(const QString &_value)
767 { return ParseParam(_value, m_value, kVdrTable); }
768 bool Parse(const QString &_value)
769 { return ParseParam(_value, m_value, kParseTable); }
770
771 QString toString() const { return toString(m_value); }
772
773 static QString toString(int _value)
774 { return DTVParamHelper::toString(kParseStrings, _value); }
775};
776
777#endif // DTVCONFPARSERHELPERS_H
static const DTVParamHelperVec kConfTable
static const DTVParamHelperVec kVdrTable
static const DTVParamStringVec kParseStrings
kBandwidth8MHz
QString toString() const
DTVBandwidth & operator=(const Types _value)
static const DTVParamHelperVec kParseTable
static QString toString(int _value)
QChar toChar() const
bool Parse(const QString &_value)
DTVBandwidth(Types _default=kBandwidthAuto)
bool ParseConf(const QString &_value)
bool ParseVDR(const QString &_value)
bool IsCompatible(const DTVBandwidth other) const
static const DTVParamStringVec kParseStrings
kFECNone
bool ParseConf(const QString &_value)
bool IsCompatible(const DTVCodeRate other) const
DTVCodeRate(Types _default=kFECAuto)
static QString toString(int _value)
DTVCodeRate & operator=(const Types _value)
static const DTVParamHelperVec kConfTable
static const DTVParamHelperVec kParseTable
bool Parse(const QString &_value)
bool ParseVDR(const QString &_value)
QString toString() const
static const DTVParamHelperVec kVdrTable
bool Parse(const QString &_value)
bool ParseVDR(const QString &_value)
QString toString() const
DTVGuardInterval(Types _default=kGuardIntervalAuto)
static const DTVParamStringVec kParseStrings
kGuardInterval_1_32
static const DTVParamHelperVec kParseTable
bool IsCompatible(const DTVGuardInterval other) const
static QString toString(int _value)
DTVGuardInterval & operator=(const Types _value)
static const DTVParamHelperVec kVdrTable
bool ParseConf(const QString &_value)
static const DTVParamHelperVec kConfTable
DTVHierarchy(Types _default=kHierarchyAuto)
static const DTVParamHelperVec kParseTable
bool ParseConf(const QString &_value)
bool ParseVDR(const QString &_value)
static const DTVParamStringVec kParseStrings
kHierarchyNone
static const DTVParamHelperVec kConfTable
QChar toChar() const
static QString toString(int _value)
DTVHierarchy & operator=(const Types _value)
bool Parse(const QString &_value)
static const DTVParamHelperVec kVdrTable
bool IsCompatible(const DTVHierarchy other) const
QString toString() const
static const DTVParamHelperVec kConfTable
DTVInversion(Types _default=kInversionAuto)
static const DTVParamHelperVec kVdrTable
QChar toChar() const
QString toString() const
static const DTVParamStringVec kParseStrings
kInversionOff
bool IsCompatible(const DTVInversion other) const
bool ParseVDR(const QString &_value)
bool ParseConf(const QString &_value)
static QString toString(int _value)
static const DTVParamHelperVec kParseTable
bool Parse(const QString &_value)
DTVInversion & operator=(const Types _value)
static const DTVParamHelperVec kConfTable
DTVModulationSystem(uint8_t _value=kModulationSystem_UNDEFINED)
bool IsCompatible(const DTVModulationSystem other) const
static QString toString(int _value)
DTVModulationSystem & operator=(uint8_t _value)
static const DTVParamHelperVec kVdrTable
bool ParseConf(const QString &_value)
static const DTVParamHelperVec kParseTable
bool Parse(const QString &_value)
bool ParseVDR(const QString &_value)
static const DTVParamStringVec kParseStrings
kModulationSystem_UNDEFINED
DTVModulation(Types _default=kModulationQAMAuto)
static const DTVParamHelperVec kVdrTable
static const DTVParamHelperVec kConfTable
DTVModulation & operator=(const Types _value)
bool ParseVDR(const QString &_value)
static const DTVParamHelperVec kParseTable
bool ParseConf(const QString &_value)
static QString toString(int _value)
static const DTVParamStringVec kParseStrings
kModulationQPSK,
bool Parse(const QString &_value)
QString toString() const
bool IsCompatible(const DTVModulation other) const
Helper abstract template to do some of the mundane portions of translating and comparing the paramete...
bool operator!=(const int v) const
DTVParamHelper(int _value)
DTVParamHelper & operator=(int _value)
static bool ParseParam(const QString &symbol, int &value, const DTVParamHelperVec &table)
static QString toString(const DTVParamStringVec &strings, int index)
bool operator==(const int v) const
QChar toChar() const
DTVPolarity(PolarityValues _default=kPolarityVertical)
bool ParseConf(const QString &_value)
QString toString() const
bool Parse(const QString &_value)
static const DTVParamHelperVec kParseTable
static QString toString(int _value)
DTVPolarity & operator=(const PolarityValues _value)
bool ParseVDR(const QString &_value)
static const DTVParamStringVec kParseStrings
kPolarityVertical
bool ParseConf(const QString &_value)
bool Parse(const QString &_value)
QString toString() const
static const DTVParamHelperVec kParseTable
DTVRollOff(Types _default=kRollOff_35)
static QString toString(int _value)
bool IsCompatible(const DTVRollOff other) const
static const DTVParamHelperVec kVdrTable
DTVRollOff & operator=(const Types _value)
static const DTVParamStringVec kParseStrings
kRollOff_35
static const DTVParamHelperVec kConfTable
bool ParseVDR(const QString &_value)
static const DTVParamHelperVec kVdrTable
QString toString() const
static const DTVParamHelperVec kConfTable
bool ParseVDR(const QString &_value)
static QString toString(int _value)
bool Parse(const QString &_value)
DTVTransmitMode & operator=(const Types _value)
bool IsCompatible(const DTVTransmitMode other) const
bool ParseConf(const QString &_value)
static const DTVParamStringVec kParseStrings
kTransmissionMode2K
static const DTVParamHelperVec kParseTable
DTVTransmitMode(Types _default=kTransmissionModeAuto)
bool Parse(const QString &_value)
bool IsFECVariable(void) const
bool IsDiSEqCSupported(void) const
static const int kTunerTypeOCUR
static const int kTunerTypeASI
static const int kTunerTypeDVBS2
QString toString() const
uint toUInt() const
DTVTunerType(int _default=kTunerTypeUnknown)
static const int kTunerTypeDVBT
static const int kTunerTypeUnknown
static void initStr(void)
static const int kTunerTypeDVBC
bool IsModulationVariable(void) const
DTVTunerType & operator=(int type)
static const int kTunerTypeDVBS1
static const int kTunerTypeDVBT2
static const int kTunerTypeATSC
static const DTVParamHelperVec kParseTable
static const int kTunerTypeIPTV
unsigned int uint
Definition: compat.h:68
std::vector< DTVParamHelperStruct > DTVParamHelperVec
std::vector< std::string > DTVParamStringVec
unsigned short uint16_t
Definition: iso6937tables.h:3