76 | | typedef enum |
77 | | { |
78 | | // Modulations which may be supported |
79 | | kTunerTypeDVBS1 = 0x00, // QPSK |
80 | | kTunerTypeDVBS2 = 0x20, // QPSK, 8PSK, 16APSK, 32APSK |
81 | | kTunerTypeDVBC = 0x01, // QAM-64, QAM-256 |
82 | | kTunerTypeDVBT = 0x02, // OFDM |
83 | | kTunerTypeATSC = 0x03, // 8-VSB, 16-VSB, QAM-16, QAM-64, QAM-256, QPSK |
84 | | kTunerTypeUnknown = 0x80000000, |
| 76 | // WARNING: kTunerTypes can not be defined by an enum because |
| 77 | // gcc 4.3.3 will treat 0x80000000 inconsistently on 32-bit |
| 78 | // platforms, so some of the time it is 0x80000000 and other |
| 79 | // times it is 0xFFFFFFFF80000000. |
86 | | // Note: Just because some cards sold in different regions support the same |
87 | | // modulation scheme does not mean that they decode the same signals, there |
88 | | // are also region specific FEC algorithms and the tuner which precedes the |
89 | | // demodulator may be limited to frequencies used in that specific market. |
90 | | // The tuner may also be bandwidth limited to 6 or 7 Mhz, so it could not |
91 | | // support the 8 Mhz channels used in some contries, and/or the ADC which |
92 | | // sits between the tuner and the demodulator may be bandwidth limited. |
93 | | // While often the same hardware could physically support more than it |
94 | | // is designed for the card/device maker does not write the firmware |
95 | | // but licenses blocks of it and so only selects the pieces absolutely |
96 | | // necessary for their market segment. Some ATSC cards only supported |
97 | | // 8-VSB, newer cards don't support the unpopular 16-VSB, no consumer |
98 | | // card supports the QAM-16 or QPSK used for USA Cable PSIP, etc. |
99 | | // DVB-S cards also generally support DiSEqC signaling, and future |
100 | | // ATSC cards may support similar but incompatible signalling for |
101 | | // pointable antennas. |
102 | | // |
103 | | // Note 2: These values are keyed to the Linux DVB driver values, in |
104 | | // reality some hardware does support multiple formats and this should |
105 | | // be a mask. Also the transmission schemes used in Asia and South |
106 | | // America are not represented here. |
107 | | } my_enum; |
| 81 | // // Modulations which may be supported |
| 82 | static const int kTunerTypeDVBS1; // QPSK |
| 83 | static const int kTunerTypeDVBS2; // QPSK, 8PSK, 16APSK, 32APSK |
| 84 | static const int kTunerTypeDVBC; // QAM-64, QAM-256 |
| 85 | static const int kTunerTypeDVBT; // OFDM |
| 86 | static const int kTunerTypeATSC; // 8-VSB, 16-VSB, |
| 87 | // QAM-16, QAM-64, QAM-256, QPSK |
| 88 | static const int kTunerTypeUnknown; |
109 | | bool operator==(const my_enum& v) const { return value == (int) v; } |
110 | | bool operator!=(const my_enum& v) const { return value != (int) v; } |
| 90 | // Note: Just because some cards sold in different regions support the same |
| 91 | // modulation scheme does not mean that they decode the same signals, there |
| 92 | // are also region specific FEC algorithms and the tuner which precedes the |
| 93 | // demodulator may be limited to frequencies used in that specific market. |
| 94 | // The tuner may also be bandwidth limited to 6 or 7 Mhz, so it could not |
| 95 | // support the 8 Mhz channels used in some contries, and/or the ADC which |
| 96 | // sits between the tuner and the demodulator may be bandwidth limited. |
| 97 | // While often the same hardware could physically support more than it |
| 98 | // is designed for the card/device maker does not write the firmware |
| 99 | // but licenses blocks of it and so only selects the pieces absolutely |
| 100 | // necessary for their market segment. Some ATSC cards only supported |
| 101 | // 8-VSB, newer cards don't support the unpopular 16-VSB, no consumer |
| 102 | // card supports the QAM-16 or QPSK used for USA Cable PSIP, etc. |
| 103 | // DVB-S cards also generally support DiSEqC signaling, and future |
| 104 | // ATSC cards may support similar but incompatible signalling for |
| 105 | // pointable antennas. |
| 106 | // |
| 107 | // Note 2: These values are keyed to the Linux DVB driver values, in |
| 108 | // reality some hardware does support multiple formats and this should |
| 109 | // be a mask. Also the transmission schemes used in Asia and South |
| 110 | // America are not represented here. |