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 bool operator==(const int v) const { return m_value == v; }
66 bool operator!=(const int v) const { return m_value != v; }
67
68 protected:
69 static bool ParseParam(const QString &symbol, int &value,
70 const DTVParamHelperVec &table);
71
72 static QString toString(const DTVParamStringVec &strings, int index);
73
74 protected:
76};
77
79{
81
82 public:
83 // WARNING: kTunerTypes cannot be defined by a C++03 enum
84 // because gcc 4.3.3 will reportedly promote an enum inconsistently
85 // to int on IA-32 platforms. I don't know whether this is
86 // correct or not, it comes down to interpretation of section
87 // 7.2.5 and whether 0x80000000 should be considered too big
88 // for a 32 bit integer or not. Using an enum to represent int
89 // bitmasks is valid C code, but the C++03 standard was still a
90 // bit loosey gosey on this point. It looks like the breakage
91 // was caused by work in gcc to support C++0x which will allow
92 // one to specify things as exactly as C does. -- dtk 2009-10-05
93
94 // // Modulations which may be supported
95 static const int kTunerTypeDVBS1; // QPSK
96 static const int kTunerTypeDVBS2; // QPSK, 8PSK, 16APSK, 32APSK
97 static const int kTunerTypeDVBC; // QAM-64, QAM-256
98 static const int kTunerTypeDVBT; // OFDM
99 static const int kTunerTypeDVBT2; // OFDM
100 static const int kTunerTypeATSC; // 8-VSB, 16-VSB,
101 // QAM-16, QAM-64, QAM-256, QPSK
102 static const int kTunerTypeASI; // baseband
103 static const int kTunerTypeOCUR; // Virtual Channel tuning of QAM-64/256
104 static const int kTunerTypeIPTV; // IPTV
105 static const int kTunerTypeUnknown;
106
107 // Note: Just because some cards sold in different regions support the same
108 // modulation scheme does not mean that they decode the same signals, there
109 // are also region specific FEC algorithms and the tuner which precedes the
110 // demodulator may be limited to frequencies used in that specific market.
111 // The tuner may also be bandwidth limited to 6 or 7 Mhz, so it could not
112 // support the 8 Mhz channels used in some contries, and/or the ADC which
113 // sits between the tuner and the demodulator may be bandwidth limited.
114 // While often the same hardware could physically support more than it
115 // is designed for the card/device maker does not write the firmware
116 // but licenses blocks of it and so only selects the pieces absolutely
117 // necessary for their market segment. Some ATSC cards only supported
118 // 8-VSB, newer cards don't support the unpopular 16-VSB, no consumer
119 // card supports the QAM-16 or QPSK used for USA Cable PSIP, etc.
120 // DVB-S cards also generally support DiSEqC signaling, and future
121 // ATSC cards may support similar but incompatible signalling for
122 // pointable antennas.
123 //
124 // Note 2: These values are keyed to the Linux DVB driver values, in
125 // reality some hardware does support multiple formats and this should
126 // be a mask. Also the transmission schemes used in Asia and South
127 // America are not represented here.
128
129 explicit DTVTunerType(int _default = kTunerTypeUnknown)
130 : DTVParamHelper(_default) { initStr(); }
131 DTVTunerType& operator=(int type) { m_value = type; return *this; }
132
133 bool Parse(const QString &_value)
134 { return ParseParam(_value, m_value, kParseTable); }
135
136 bool IsFECVariable(void) const
137 {
138 return ((kTunerTypeDVBC == m_value) ||
141 }
142
143 bool IsModulationVariable(void) const
144 {
145 return ((kTunerTypeDVBC == m_value) ||
146 (kTunerTypeATSC == m_value) ||
148 }
149
150 bool IsDiSEqCSupported(void) const
151 {
152 return ((kTunerTypeDVBS1 == m_value) ||
154 }
155
156 QString toString() const { return toString(m_value); }
157
158 uint toUInt() const { return static_cast<uint>(m_value); }
159
160 static void initStr(void);
161 static QString toString(int _value);
162};
163
165{
166 protected:
171
172 public:
173 enum Types : std::uint8_t
174 {
178 };
179#if CONFIG_DVB
180 static_assert((kInversionOff == (Types)INVERSION_OFF ) &&
181 (kInversionOn == (Types)INVERSION_ON ) &&
182 (kInversionAuto == (Types)INVERSION_AUTO),
183 "Inversion types don't match DVB includes.");
184#endif
185
186 explicit DTVInversion(Types _default = kInversionAuto)
187 : DTVParamHelper(_default) { }
189 { m_value = _value; return *this; }
190#if CONFIG_DVB
191 DTVInversion& operator=(const fe_spectral_inversion_t type)
192 { m_value = type; return *this; }
193#endif
194
195 bool IsCompatible(const DTVInversion other) const
196 { return m_value == other.m_value || m_value == kInversionAuto ||
197 other.m_value == kInversionAuto;
198 }
199
200 bool ParseConf(const QString &_value)
201 { return ParseParam(_value, m_value, kConfTable); }
202 bool ParseVDR(const QString &_value)
203 { return ParseParam(_value, m_value, kVdrTable); }
204 bool Parse(const QString &_value)
205 { return ParseParam(_value, m_value, kParseTable); }
206
207 QString toString() const { return toString(m_value); }
208 QChar toChar() const
209 {
210 if (toString().length() > 0)
211 return toString().at(0);
212 return {};
213 }
214
215 static QString toString(int _value)
216 { return DTVParamHelper::toString(kParseStrings, _value); }
217};
218
220{
221 protected:
226
227 public:
228 enum Types : std::uint8_t
229 {
237 };
238#if CONFIG_DVB
239 static_assert((kBandwidth8MHz == (Types)BANDWIDTH_8_MHZ ) &&
240 (kBandwidth7MHz == (Types)BANDWIDTH_7_MHZ ) &&
241 (kBandwidth6MHz == (Types)BANDWIDTH_6_MHZ ) &&
242 (kBandwidthAuto == (Types)BANDWIDTH_AUTO ) &&
243 (kBandwidth5MHz == (Types)BANDWIDTH_5_MHZ ) &&
244 (kBandwidth10MHz == (Types)BANDWIDTH_10_MHZ ) &&
245 (kBandwidth1712kHz == (Types)BANDWIDTH_1_712_MHZ),
246 "Bandwidth types don't match DVB includes.");
247#endif
248
249 explicit DTVBandwidth(Types _default = kBandwidthAuto)
250 : DTVParamHelper(_default) { }
252 { m_value = _value; return *this; }
253#if CONFIG_DVB
254 DTVBandwidth& operator=(const fe_bandwidth_t bwidth)
255 { m_value = bwidth; return *this; }
256#endif
257
258 bool IsCompatible(const DTVBandwidth other) const
259 { return m_value == other.m_value || m_value == kBandwidthAuto ||
260 other.m_value == kBandwidthAuto;
261 }
262
263 bool ParseConf(const QString &_value)
264 { return ParseParam(_value, m_value, kConfTable); }
265 bool ParseVDR(const QString &_value)
266 { return ParseParam(_value, m_value, kVdrTable); }
267 bool Parse(const QString &_value)
268 { return ParseParam(_value, m_value, kParseTable); }
269
270 QString toString() const { return toString(m_value); }
271 QChar toChar() const
272 {
273 if (toString().length() > 0)
274 return toString().at(0);
275 return {};
276 }
277
278 static QString toString(int _value)
279 { return DTVParamHelper::toString(kParseStrings, _value); }
280};
281
283{
284 protected:
289
290 public:
291 enum Types : std::uint8_t
292 {
305 };
306#if CONFIG_DVB
307 static_assert((kFECNone == (Types)FEC_NONE) &&
308 (kFEC_1_2 == (Types)FEC_1_2 ) &&
309 (kFEC_2_3 == (Types)FEC_2_3 ) &&
310 (kFEC_3_4 == (Types)FEC_3_4 ) &&
311 (kFEC_4_5 == (Types)FEC_4_5 ) &&
312 (kFEC_5_6 == (Types)FEC_5_6 ) &&
313 (kFEC_6_7 == (Types)FEC_6_7 ) &&
314 (kFEC_7_8 == (Types)FEC_7_8 ) &&
315 (kFEC_8_9 == (Types)FEC_8_9 ) &&
316 (kFECAuto == (Types)FEC_AUTO) &&
317 (kFEC_3_5 == (Types)FEC_3_5 ) &&
318 (kFEC_9_10 == (Types)FEC_9_10),
319 "FEC types don't match DVB includes.");
320#endif
321
322 explicit DTVCodeRate(Types _default = kFECAuto)
323 : DTVParamHelper(_default) { }
325 { m_value = _value; return *this; }
326#if CONFIG_DVB
327 DTVCodeRate& operator=(const fe_code_rate_t rate)
328 { m_value = rate; return *this; }
329#endif
330
331 bool IsCompatible(const DTVCodeRate other) const
332 { return m_value == other.m_value || m_value == kFECAuto ||
333 other.m_value == kFECAuto;
334 }
335
336 bool ParseConf(const QString &_value)
337 { return ParseParam(_value, m_value, kConfTable); }
338 bool ParseVDR(const QString &_value)
339 { return ParseParam(_value, m_value, kVdrTable); }
340 bool Parse(const QString &_value)
341 { return ParseParam(_value, m_value, kParseTable); }
342
343 QString toString() const { return toString(m_value); }
344
345 static QString toString(int _value)
346 { return DTVParamHelper::toString(kParseStrings, _value); }
347};
348
350{
351 protected:
356
357 public:
359 {
373 kModulationInvalid = 0x100, /* for removed modulations */
374 kModulationAnalog = 0x200, /* for analog channel scanner */
375 };
376#if CONFIG_DVB
377 static_assert((kModulationQPSK == (Types)QPSK ) &&
378 (kModulationQAM16 == (Types)QAM_16 ) &&
379 (kModulationQAM32 == (Types)QAM_32 ) &&
380 (kModulationQAM64 == (Types)QAM_64 ) &&
381 (kModulationQAM128 == (Types)QAM_128 ) &&
382 (kModulationQAM256 == (Types)QAM_256 ) &&
383 (kModulationQAMAuto == (Types)QAM_AUTO) &&
384 (kModulation8VSB == (Types)VSB_8 ) &&
385 (kModulation16VSB == (Types)VSB_16 ) &&
386 (kModulation8PSK == (Types)PSK_8 ) &&
387 (kModulation16APSK == (Types)APSK_16 ) &&
388 (kModulation32APSK == (Types)APSK_32 ) &&
389 (kModulationDQPSK == (Types)DQPSK ),
390 "Modulation types don't match DVB includes.");
391#endif
392
394 : DTVParamHelper(_default) { }
396 { m_value = _value; return *this; }
397#if CONFIG_DVB
398 DTVModulation& operator=(const fe_modulation_t modulation)
399 { m_value = modulation; return *this; }
400#endif
401
402 bool IsCompatible(const DTVModulation other) const
403 { return m_value == other.m_value || m_value == kModulationQAMAuto ||
405 }
406
407 bool ParseConf(const QString &_value)
408 { return ParseParam(_value, m_value, kConfTable); }
409 bool ParseVDR(const QString &_value)
410 { return ParseParam(_value, m_value, kVdrTable); }
411 bool Parse(const QString &_value)
412 { return ParseParam(_value, m_value, kParseTable); }
413
414 QString toString() const { return toString(m_value); }
415
416 static QString toString(int _value)
417 {
418 if (kModulationInvalid == _value)
419 return "invalid";
420 if (kModulationAnalog == _value)
421 return "analog";
423 }
424};
425
427{
428 protected:
433
434 public:
435 enum Types : std::uint8_t
436 {
444 };
445#if CONFIG_DVB
446 static_assert((kTransmissionMode2K == (Types)TRANSMISSION_MODE_2K ) &&
447 (kTransmissionMode8K == (Types)TRANSMISSION_MODE_8K ) &&
448 (kTransmissionModeAuto == (Types)TRANSMISSION_MODE_AUTO) &&
449 (kTransmissionMode4K == (Types)TRANSMISSION_MODE_4K ) &&
450 (kTransmissionMode1K == (Types)TRANSMISSION_MODE_1K ) &&
451 (kTransmissionMode16K == (Types)TRANSMISSION_MODE_16K ) &&
452 (kTransmissionMode32K == (Types)TRANSMISSION_MODE_32K ),
453 "Transmission types don't match DVB includes.");
454#endif
455
457 : DTVParamHelper(_default) { }
459 { m_value = _value; return *this; }
460#if CONFIG_DVB
461 DTVTransmitMode& operator=(const fe_transmit_mode_t mode)
462 { m_value = mode; return *this; }
463#endif
464
465 bool IsCompatible(const DTVTransmitMode other) const
466 { return m_value == other.m_value || m_value == kTransmissionModeAuto ||
468 }
469
470 bool ParseConf(const QString &_value)
471 { return ParseParam(_value, m_value, kConfTable); }
472 bool ParseVDR(const QString &_value)
473 { return ParseParam(_value, m_value, kVdrTable); }
474 bool Parse(const QString &_value)
475 { return ParseParam(_value, m_value, kParseTable); }
476
477 QString toString() const { return toString(m_value); }
478 QChar toChar() const
479 {
480 if (toString().length() > 0)
481 return toString().at(0);
482 return {};
483 }
484
485 static QString toString(int _value)
486 { return DTVParamHelper::toString(kParseStrings, _value); }
487};
488
490{
491 protected:
496
497 public:
498 enum Types : std::uint8_t
499 {
508 };
509#if CONFIG_DVB
510 static_assert((kGuardInterval_1_32 == (Types)GUARD_INTERVAL_1_32 ) &&
511 (kGuardInterval_1_16 == (Types)GUARD_INTERVAL_1_16 ) &&
512 (kGuardInterval_1_8 == (Types)GUARD_INTERVAL_1_8 ) &&
513 (kGuardInterval_1_4 == (Types)GUARD_INTERVAL_1_4 ) &&
514 (kGuardIntervalAuto == (Types)GUARD_INTERVAL_AUTO ) &&
515 (kGuardInterval_1_128 == (Types)GUARD_INTERVAL_1_128 ) &&
516 (kGuardInterval_19_128 == (Types)GUARD_INTERVAL_19_128) &&
517 (kGuardInterval_19_256 == (Types)GUARD_INTERVAL_19_256),
518 "Guard Interval types don't match DVB includes.");
519#endif
520
522 : DTVParamHelper(_default) { }
524 { m_value = _value; return *this; }
525#if CONFIG_DVB
526 DTVGuardInterval& operator=(const fe_guard_interval_t interval)
527 { m_value = interval; return *this; }
528#endif
529
530 bool IsCompatible(const DTVGuardInterval other) const
531 { return m_value == other.m_value || m_value == kGuardIntervalAuto ||
533 }
534
535 bool ParseConf(const QString &_value)
536 { return ParseParam(_value, m_value, kConfTable); }
537 bool ParseVDR(const QString &_value)
538 { return ParseParam(_value, m_value, kVdrTable); }
539 bool Parse(const QString &_value)
540 { return ParseParam(_value, m_value, kParseTable); }
541
542 QString toString() const { return toString(m_value); }
543
544 static QString toString(int _value)
545 { return DTVParamHelper::toString(kParseStrings, _value); }
546};
547
549{
550 protected:
555
556 public:
557 enum Types : std::uint8_t
558 {
564 };
565#if CONFIG_DVB
566 static_assert((kHierarchyNone == (Types)HIERARCHY_NONE) &&
567 (kHierarchy1 == (Types)HIERARCHY_1 ) &&
568 (kHierarchy2 == (Types)HIERARCHY_2 ) &&
569 (kHierarchy4 == (Types)HIERARCHY_4 ) &&
570 (kHierarchyAuto == (Types)HIERARCHY_AUTO),
571 "Hierarchy types don't match DVB includes.");
572#endif
573
574 explicit DTVHierarchy(Types _default = kHierarchyAuto)
575 : DTVParamHelper(_default) { }
577 { m_value = _value; return *this; }
578#if CONFIG_DVB
579 DTVHierarchy& operator=(const fe_hierarchy_t hierarchy)
580 { m_value = hierarchy; return *this; }
581#endif
582
583 bool IsCompatible(const DTVHierarchy other) const
584 { return m_value == other.m_value || m_value == kHierarchyAuto ||
585 other.m_value == kHierarchyAuto;
586 }
587
588 bool ParseConf(const QString &_value)
589 { return ParseParam(_value, m_value, kConfTable); }
590 bool ParseVDR(const QString &_value)
591 { return ParseParam(_value, m_value, kVdrTable); }
592 bool Parse(const QString &_value)
593 { return ParseParam(_value, m_value, kParseTable); }
594
595 QString toString() const { return toString(m_value); }
596 QChar toChar() const
597 {
598 if (toString().length() > 0)
599 return toString().at(0);
600 return {};
601 }
602
603 static QString toString(int _value)
604 { return DTVParamHelper::toString(kParseStrings, _value); }
605};
606
608{
609 protected:
612
613 public:
614 enum PolarityValues : std::uint8_t
615 {
620 };
621
623 : DTVParamHelper(_default) { }
625 { m_value = _value; return *this; }
626
627 bool ParseConf(const QString &_value)
628 { return ParseParam(_value, m_value, kParseTable); }
629 bool ParseVDR(const QString &_value)
630 { return ParseParam(_value, m_value, kParseTable); }
631 bool Parse(const QString &_value)
632 { return ParseParam(_value, m_value, kParseTable); }
633
634 QString toString() const { return toString(m_value); }
635 QChar toChar() const
636 {
637 if (toString().length() > 0)
638 return toString().at(0);
639 return {};
640 }
641
642 static QString toString(int _value)
643 { return DTVParamHelper::toString(kParseStrings, _value); }
644};
645
647{
648 protected:
653
654 public:
655 enum Types : std::uint8_t
656 {
657 // see fe_delivery_system in frontend.h
677 };
678#if CONFIG_DVB
679 static_assert((kModulationSystem_UNDEFINED == (Types)SYS_UNDEFINED ) &&
680 (kModulationSystem_DVBC_ANNEX_A == (Types)SYS_DVBC_ANNEX_A) &&
681 (kModulationSystem_DVBC_ANNEX_B == (Types)SYS_DVBC_ANNEX_B) &&
682 (kModulationSystem_DVBT == (Types)SYS_DVBT ) &&
683 (kModulationSystem_DSS == (Types)SYS_DSS ) &&
684 (kModulationSystem_DVBS == (Types)SYS_DVBS ) &&
685 (kModulationSystem_DVBS2 == (Types)SYS_DVBS2 ) &&
686 (kModulationSystem_DVBH == (Types)SYS_DVBH ) &&
687 (kModulationSystem_ISDBT == (Types)SYS_ISDBT ) &&
688 (kModulationSystem_ISDBS == (Types)SYS_ISDBS ) &&
689 (kModulationSystem_ISDBC == (Types)SYS_ISDBC ) &&
690 (kModulationSystem_ATSC == (Types)SYS_ATSC ) &&
691 (kModulationSystem_ATSCMH == (Types)SYS_ATSCMH ) &&
692 (kModulationSystem_DTMB == (Types)SYS_DTMB ) &&
693 (kModulationSystem_CMMB == (Types)SYS_CMMB ) &&
694 (kModulationSystem_DAB == (Types)SYS_DAB ) &&
695 (kModulationSystem_DVBT2 == (Types)SYS_DVBT2 ) &&
696 (kModulationSystem_TURBO == (Types)SYS_TURBO ) &&
697 (kModulationSystem_DVBC_ANNEX_C == (Types)SYS_DVBC_ANNEX_C),
698 "Modulation System types don't match DVB includes.");
699#endif
700
702 : DTVParamHelper(_value) { }
703
705 { m_value = _value; return *this; }
706
707 bool IsCompatible(const DTVModulationSystem other) const
708 { return
709 (m_value == other.m_value) ||
712 }
713
714 bool ParseConf(const QString &_value)
715 { return ParseParam(_value, m_value, kConfTable); }
716 bool ParseVDR(const QString &_value)
717 { return ParseParam(_value, m_value, kVdrTable); }
718 bool Parse(const QString &_value)
719 { return ParseParam(_value, m_value, kParseTable); }
720
721 QString toString() const { return toString(m_value); }
722
723 static QString toString(int _value)
724 { return DTVParamHelper::toString(kParseStrings, _value); }
725};
726
728{
729 protected:
734
735 public:
736 enum Types : std::uint8_t
737 {
742 };
743#if CONFIG_DVB
744 static_assert((kRollOff_35 == (Types)ROLLOFF_35)
745 && (kRollOff_Auto == (Types)ROLLOFF_AUTO),
746 "Rolloff types don't match DVB includes.");
747#endif
748
749 explicit DTVRollOff(Types _default = kRollOff_35)
750 : DTVParamHelper(_default) { }
752 { m_value = _value; return *this; }
753#if CONFIG_DVB
754 DTVRollOff& operator=(fe_rolloff_t type)
755 { m_value = type; return *this; }
756#endif
757
758 bool IsCompatible(const DTVRollOff other) const
759 { return m_value == other.m_value || m_value == kRollOff_Auto ||
760 other.m_value == kRollOff_Auto;
761 }
762
763 bool ParseConf(const QString &_value)
764 { return ParseParam(_value, m_value, kConfTable); }
765 bool ParseVDR(const QString &_value)
766 { return ParseParam(_value, m_value, kVdrTable); }
767 bool Parse(const QString &_value)
768 { return ParseParam(_value, m_value, kParseTable); }
769
770 QString toString() const { return toString(m_value); }
771
772 static QString toString(int _value)
773 { return DTVParamHelper::toString(kParseStrings, _value); }
774};
775
776#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
std::vector< DTVParamHelperStruct > DTVParamHelperVec
std::vector< std::string > DTVParamStringVec
unsigned int uint
Definition: freesurround.h:24
unsigned short uint16_t
Definition: iso6937tables.h:3