1 /* 2 * Simple MPEG/DVB parser to achieve network/service information without initial tuning data 3 * 4 * Copyright (C) 2006-2014 Winfried Koehler 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 * Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 */ 21 22 /* this file is shared between w_scan2 and the VDR plugin wirbelscan. 23 * For details on the latter see http://wirbel.htpc-forum.de 24 */ 25 26 #ifndef _EXTENDED_DVBFRONTEND_H_ 27 #define _EXTENDED_DVBFRONTEND_H_ 28 29 #include <linux/dvb/frontend.h> 30 #include <linux/dvb/version.h> 31 32 #define DVB_API ( 10 * DVB_API_VERSION + DVB_API_VERSION_MINOR ) 33 34 /****************************************************************************** 35 * definitions which are missing in <linux/dvb/frontend.h> 36 * 37 *****************************************************************************/ 38 39 #ifndef fe_polarization // 300468 v181 6.2.13.2 Satellite delivery system descriptor 40 typedef enum fe_polarization { 41 POLARIZATION_HORIZONTAL, 42 POLARIZATION_VERTICAL, 43 POLARIZATION_CIRCULAR_LEFT, 44 POLARIZATION_CIRCULAR_RIGHT, 45 } fe_polarization_t; 46 #endif 47 48 #ifndef fe_west_east_flag // 300468 v181 6.2.13.2 Satellite delivery system descriptor 49 typedef enum fe_west_east_flag { 50 EAST_FLAG, 51 WEST_FLAG, 52 } fe_west_east_flag_t; 53 #endif 54 55 #ifndef fe_interleave // 300468 v181 6.2.13.4 Terrestrial delivery system descriptor 56 typedef enum fe_interleaver { 57 INTERLEAVE_NATIVE, 58 INTERLEAVE_IN_DEPTH, 59 INTERLEAVE_AUTO, 60 } fe_interleave_t; 61 #endif 62 63 #ifndef fe_alpha // 300468 v181 6.2.13.4 Terrestrial delivery system descriptor 64 typedef enum fe_alpha { 65 ALPHA_1, 66 ALPHA_2, 67 ALPHA_4, 68 ALPHA_AUTO, 69 } fe_alpha_t; 70 #endif 71 72 typedef enum fe_siso_miso { 73 SISO, 74 MISO, 75 SISO_MISO_RESERVED1, 76 SISO_MISO_RESERVED2, 77 } fe_siso_miso_t; 78 79 #ifndef SYS_DVBC2 //// \BEGIN FIX_ME: _REALLY_ DIRTY HACK. JUST FOR TESTING THIS CODE. REMOVE LATER!!!!! 80 #define SYS_DVBC2 (63U) /* max value in use: 18U */ 81 #ifndef QAM_512 82 #define QAM_512 (61U) /* max value in use: 13U */ 83 #endif 84 #ifndef QAM_1024 85 #define QAM_1024 (62U) /* max value in use: 13U */ 86 #endif 87 #ifndef QAM_4096 88 #define QAM_4096 (63U) /* max value in use: 13U */ 89 #endif 90 #ifndef GUARD_INTERVAL_1_64 91 #define GUARD_INTERVAL_1_64 (127U) /* max value in use: 10U */ 92 #endif 93 #endif //// \END REMOVE UP TO HERE!!! 94 95 #ifndef SYS_TURBO // remove later. 96 #define SYS_TURBO (SYS_DVBT2 + 1) /* correct in any case. */ 97 #endif 98 99 #ifndef DTV_ENUM_DELSYS // remove later. 100 #define DTV_ENUM_DELSYS 44 101 #endif 102 103 #if !defined DTV_STREAM_ID && defined DTV_DVBT2_PLP_ID 104 #define DTV_STREAM_ID DTV_DVBT2_PLP_ID 105 #endif 106 107 typedef enum { 108 DATA_SLICE_TUNING_FREQUENCY, 109 C2_SYSTEM_CENTER_FREQUENCY, 110 INITIAL_TUNING_FOR_STATIC_DATA_SLICE, 111 } fe_frequency_type_t; 112 113 typedef enum { 114 FFT_4K_8MHZ, 115 FFT_4K_6MHZ, 116 } fe_ofdm_symbol_duration_t; 117 118 /* don't use FE_OFDM, FE_QAM, FE_QPSK, FE_ATSC any longer. 119 * 120 * With evolving delivery systems, cable uses also ofdm (DVB-C2), satellites doesnt 121 * use only qpsk (DVB-S2), 2nd gen terrestrial and cable use physical layer pipes. 122 * Use of delivery_system doesnt fit for me either, since i dont want to distinguish 123 * between DVB-S <-> DVB-S2 or DVB-C <-> DVB-C2 or DVB-T <-> DVB-T2. 124 * Therefore, name it on physical path for now. 125 * 20120107 wirbel 126 */ 127 typedef enum { 128 SCAN_UNDEFINED, 129 SCAN_SATELLITE, 130 SCAN_CABLE, 131 SCAN_TERRESTRIAL, 132 SCAN_TERRCABLE_ATSC, /* I dislike this mixture of terr and cable. fix later, as it leads to problems now. */ 133 } scantype_t; 134 135 #endif 136