Fix:
[mplayer/glamo.git] / libmpdemux / dvbin.h
blob02c75b67d4477fc54ecca1c6f26a4910c48946ba
1 /* Imported from the dvbstream project
3 * Modified for use with MPlayer, for details see the CVS changelog at
4 * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
5 * $Id$
6 */
8 #ifndef DVBIN_H
9 #define DVBIN_H
11 #include "dvb_defaults.h"
12 #include "stream.h"
14 #ifdef HAVE_DVB_HEAD
15 #include <linux/dvb/dmx.h>
16 #include <linux/dvb/frontend.h>
17 #include <linux/dvb/version.h>
18 #else
19 #include <ost/dmx.h>
20 #include <ost/sec.h>
21 #include <ost/frontend.h>
22 #define fe_status_t FrontendStatus
23 #define fe_spectral_inversion_t SpectralInversion
24 #define fe_modulation_t Modulation
25 #define fe_code_rate_t CodeRate
26 #define fe_transmit_mode_t TransmitMode
27 #define fe_guard_interval_t GuardInterval
28 #define fe_bandwidth_t BandWidth
29 #define fe_hierarchy_t Hierarchy
30 #define fe_sec_voltage_t SecVoltage
31 #define dmx_pes_filter_params dmxPesFilterParams
32 #define dmx_sct_filter_params dmxSctFilterParams
33 #define dmx_pes_type_t dmxPesType_t
34 #endif
36 #undef DVB_ATSC
37 #if defined(DVB_API_VERSION_MINOR)
38 #if DVB_API_VERSION == 3 && DVB_API_VERSION_MINOR >= 1
39 #define DVB_ATSC 1
40 #endif
41 #endif
44 #define DVB_CHANNEL_LOWER -1
45 #define DVB_CHANNEL_HIGHER 1
47 #include "inttypes.h"
49 #ifndef DMX_FILTER_SIZE
50 #define DMX_FILTER_SIZE 16
51 #endif
53 typedef struct {
54 char *name;
55 int freq, srate, diseqc, tone;
56 char pol;
57 int tpid, dpid1, dpid2, progid, ca, pids[DMX_FILTER_SIZE], pids_cnt;
58 fe_spectral_inversion_t inv;
59 fe_modulation_t mod;
60 fe_transmit_mode_t trans;
61 fe_bandwidth_t bw;
62 fe_guard_interval_t gi;
63 fe_code_rate_t cr, cr_lp;
64 fe_hierarchy_t hier;
65 } dvb_channel_t;
68 typedef struct {
69 uint16_t NUM_CHANNELS;
70 uint16_t current;
71 dvb_channel_t *channels;
72 } dvb_channels_list;
74 typedef struct {
75 int type;
76 dvb_channels_list *list;
77 char *name;
78 int devno;
79 } dvb_card_config_t;
81 typedef struct {
82 int count;
83 dvb_card_config_t *cards;
84 void *priv;
85 } dvb_config_t;
88 typedef struct {
89 int card;
90 int fe_fd;
91 int sec_fd;
92 int demux_fd[3], demux_fds[DMX_FILTER_SIZE], demux_fds_cnt;
93 int dvr_fd;
95 dvb_config_t *config;
96 dvb_channels_list *list;
97 int tuner_type;
98 int is_on;
99 stream_t *stream;
100 char new_tuning[256], prev_tuning[256];
101 int retry;
102 } dvb_priv_t;
105 #define TUNER_SAT 1
106 #define TUNER_TER 2
107 #define TUNER_CBL 3
108 #define TUNER_ATSC 4
110 extern int dvb_step_channel(dvb_priv_t *, int);
111 extern int dvb_set_channel(dvb_priv_t *, int, int);
112 extern dvb_config_t *dvb_get_config(void);
114 #endif