annotate libmpdemux/dvb_tune.c @ 10252:d275152390ee

I've found some time to implement the encoding support for the new DivX API. Now it's possible to play and encode movies with the latest DivX release. One thing that doesn't work is the new Video Buffer Verifier (VBV) multipass encoding. The encoder segfaults. Maybe it just isn't supported with the standard profile of the released binary encoder. Andreas Hess <jaska@gmx.net>
author arpi
date Fri, 06 Jun 2003 19:57:37 +0000
parents 76c6d8f1ebf5
children 11826d9f90c7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
1 /* dvbtune - tune.c
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
2
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
3 Copyright (C) Dave Chapman 2001,2002
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
4
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
5 This program is free software; you can redistribute it and/or
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
6 modify it under the terms of the GNU General Public License
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
7 as published by the Free Software Foundation; either version 2
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
8 of the License, or (at your option) any later version.
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
9
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
13 GNU General Public License for more details.
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
14
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
16 along with this program; if not, write to the Free Software
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
18 Or, point your browser to http://www.gnu.org/copyleft/gpl.html
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
19
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
20 */
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
21
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
22 #include <stdio.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
23 #include <stdlib.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
24 #include <ctype.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
25 #include <sys/ioctl.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
26 #include <sys/poll.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
27 #include <unistd.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
28 #include <fcntl.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
29 #include <error.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
30 #include "config.h"
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
31
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
32 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
33 #include <linux/dvb/dmx.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
34 #include <linux/dvb/frontend.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
35 char* frontenddev[4]={"/dev/dvb/adapter0/frontend0","/dev/dvb/adapter1/frontend0","/dev/dvb/adapter2/frontend0","/dev/dvb/adapter3/frontend0"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
36 char* dvrdev[4]={"/dev/dvb/adapter0/dvr0","/dev/dvb/adapter1/dvr0","/dev/dvb/adapter2/dvr0","/dev/dvb/adapter3/dvr0"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
37 char* demuxdev[4]={"/dev/dvb/adapter0/demux0","/dev/dvb/adapter1/demux0","/dev/dvb/adapter2/demux0","/dev/dvb/adapter3/demux0"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
38 char* secdev[4]={"","","",""}; //UNUSED, ONLY FOR UNIFORMITY
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
39 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
40 #include <ost/dmx.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
41 #include <ost/sec.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
42 #include <ost/frontend.h>
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
43 char* frontenddev[4]={"/dev/ost/frontend0","/dev/ost/frontend1","/dev/ost/frontend2","/dev/ost/frontend3"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
44 char* dvrdev[4]={"/dev/ost/dvr0","/dev/ost/dvr1","/dev/ost/dvr2","/dev/ost/dvr3"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
45 char* secdev[4]={"/dev/ost/sec0","/dev/ost/sec1","/dev/ost/sec2","/dev/ost/sec3"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
46 char* demuxdev[4]={"/dev/ost/demux0","/dev/ost/demux1","/dev/ost/demux2","/dev/ost/demux3"};
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
47 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
48
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
49 #include "dvbin.h"
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
50 #include "dvb_defaults.h"
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
51 #include "../mp_msg.h"
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
52
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
53
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
54 extern int card;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
55
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
56 int open_fe(int* fd_frontend, int* fd_sec)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
57 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
58 if((*fd_frontend = open(frontenddev[card], O_RDWR)) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
59 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
60 perror("ERROR IN OPENING FRONTEND DEVICE: ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
61 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
62 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
63 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
64 fd_sec=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
65 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
66 if (fd_sec != 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
67 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
68 if((*fd_sec = open(secdev[card], O_RDWR)) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
69 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
70 perror("ERROR IN OPENING SEC DEVICE: ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
71 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
72 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
73 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
74 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
75 return 1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
76 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
77
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
78
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
79
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
80 int set_ts_filt(int fd, uint16_t pid, dmx_pes_type_t pestype)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
81 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
82 int i;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
83 struct dmx_pes_filter_params pesFilterParams;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
84
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
85 pesFilterParams.pid = pid;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
86 pesFilterParams.input = DMX_IN_FRONTEND;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
87 pesFilterParams.output = DMX_OUT_TS_TAP;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
88 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
89 pesFilterParams.pes_type = pestype;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
90 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
91 pesFilterParams.pesType = pestype;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
92 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
93
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
94 //pesFilterParams.pesType = pestype;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
95
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
96 pesFilterParams.flags = DMX_IMMEDIATE_START;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
97
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
98 if ((i = ioctl(fd, DMX_SET_PES_FILTER, &pesFilterParams)) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
99 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
100 mp_msg(MSGT_DEMUX, MSGL_DBG2, "ERROR IN SETTING DMX_FILTER %i: ", pid);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
101 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
102
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
103 mp_msg(MSGT_DEMUX, MSGL_V, "SET PES FILTER ON PID %d, RESULT: %d\n", pid, i );
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
104 return 1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
105 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
106
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
107
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
108 int demux_stop(int fd)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
109 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
110 int i;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
111 i = ioctl(fd, DMX_STOP);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
112
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
113 mp_msg(MSGT_DEMUX, MSGL_DBG2, "STOPPING FD: %d, RESULT: %d\n", fd, i);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
114
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
115 return (i==0);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
116 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
117
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
118
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
119
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
120 void make_nonblock(int f)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
121 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
122 int oldflags;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
123
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
124 if ((oldflags=fcntl(f, F_GETFL, 0)) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
125 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
126 perror("ERROR IN F_GETFL");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
127 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
128
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
129 oldflags|=O_NONBLOCK;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
130 if (fcntl(f, F_SETFL, oldflags) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
131 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
132 perror("F_SETFL");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
133 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
134 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
135
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
136
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
137 static int tune_it(int fd_frontend, int fd_sec, unsigned int freq, unsigned int srate, char pol, int tone,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
138 fe_spectral_inversion_t specInv, unsigned int diseqc, fe_modulation_t modulation, fe_code_rate_t HP_CodeRate,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
139 fe_transmit_mode_t TransmissionMode, fe_guard_interval_t guardInterval, fe_bandwidth_t bandwidth);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
140
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
141
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
142 //int dvb_tune(dvb_priv_t *priv, int freq, char pol, int srate, int diseqc, int tone)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
143 dvb_tune(dvb_priv_t *priv, int freq, char pol, int srate, int diseqc, int tone,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
144 fe_spectral_inversion_t specInv, fe_modulation_t modulation, fe_guard_interval_t guardInterval,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
145 fe_transmit_mode_t TransmissionMode, fe_bandwidth_t bandWidth, fe_code_rate_t HP_CodeRate)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
146 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
147 mp_msg(MSGT_DEMUX, MSGL_DBG2, "dvb_tune con Freq: %lu, pol: %c, srate: %lu, diseqc %d, tone %d\n", freq, pol, srate, diseqc, tone);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
148 /* INPUT: frequency, polarization, srate */
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
149 if(freq > 100000000)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
150 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
151 if(open_fe(&(priv->fe_fd), 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
152 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
153 //tune_it(fd_frontend, 0, freq, 0, 0, tone, specInv, diseqc,modulation,HP_CodeRate,TransmissionMode,guardInterval,bandWidth);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
154 tune_it(priv->fe_fd, 0, freq, 0, 0, tone, specInv, diseqc, modulation, HP_CodeRate, TransmissionMode, guardInterval, bandWidth);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
155
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
156 close(priv->fe_fd);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
157 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
158 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
159 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
160 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
161 else if ((freq != 0) && (pol != 0) && (srate != 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
162 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
163 if (open_fe(&(priv->fe_fd), &(priv->sec_fd)))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
164 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
165 tune_it(priv->fe_fd, priv->sec_fd, freq, srate, pol, tone, specInv, diseqc, modulation, HP_CodeRate, TransmissionMode, guardInterval, bandWidth);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
166 close(priv->fe_fd);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
167 close(priv->sec_fd);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
168 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
169 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
170 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
171 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
172
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
173 priv->channel.freq = freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
174 priv->channel.srate = srate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
175 priv->channel.pol = pol;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
176 priv->channel.diseqc = diseqc;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
177 priv->channel.tone = tone;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
178 priv->channel.inv = specInv;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
179 priv->channel.mod = modulation;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
180 priv->channel.gi = guardInterval;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
181 priv->channel.trans = TransmissionMode;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
182 priv->channel.bw = bandWidth;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
183 priv->channel.cr = HP_CodeRate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
184
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
185 return 1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
186 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
187
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
188
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
189
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
190
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
191
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
192 #ifndef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
193 static int OSTSelftest(int fd)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
194 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
195 int ans;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
196
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
197 if ((ans = ioctl(fd, FE_SELFTEST,0) < 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
198 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
199 mp_msg(MSGT_DEMUX, MSGL_ERR, "FE SELF TEST: ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
200 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
201 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
202
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
203 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
204 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
205
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
206 static int OSTSetPowerState(int fd, uint32_t state)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
207 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
208 int ans;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
209
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
210 if ((ans = ioctl(fd,FE_SET_POWER_STATE,state) < 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
211 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
212 mp_msg(MSGT_DEMUX, MSGL_ERR, "OST SET POWER STATE: ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
213 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
214 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
215
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
216 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
217 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
218
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
219 static int OSTGetPowerState(int fd, uint32_t *state)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
220 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
221 int ans;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
222
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
223 if ((ans = ioctl(fd,FE_GET_POWER_STATE,state) < 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
224 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
225 mp_msg(MSGT_DEMUX, MSGL_ERR, "OST GET POWER STATE: ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
226 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
227 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
228
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
229 switch(*state)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
230 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
231 case FE_POWER_ON:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
232 mp_msg(MSGT_DEMUX, MSGL_V, "POWER ON (%d)\n",*state);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
233 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
234 case FE_POWER_STANDBY:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
235 mp_msg(MSGT_DEMUX, MSGL_V, "POWER STANDBY (%d)\n",*state);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
236 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
237 case FE_POWER_SUSPEND:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
238 mp_msg(MSGT_DEMUX, MSGL_V, "POWER SUSPEND (%d)\n",*state);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
239 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
240 case FE_POWER_OFF:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
241 mp_msg(MSGT_DEMUX, MSGL_V, "POWER OFF (%d)\n",*state);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
242 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
243 default:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
244 mp_msg(MSGT_DEMUX, MSGL_V, "unknown (%d)\n",*state);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
245 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
246 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
247
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
248 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
249 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
250
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
251
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
252 static int SecGetStatus (int fd, struct secStatus *state)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
253 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
254 int ans;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
255
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
256 if ((ans = ioctl(fd, SEC_GET_STATUS, state) < 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
257 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
258 mp_msg(MSGT_DEMUX, MSGL_ERR, ("SEC GET STATUS: "));
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
259 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
260 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
261
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
262 switch (state->busMode)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
263 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
264 case SEC_BUS_IDLE:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
265 mp_msg(MSGT_DEMUX, MSGL_V, "SEC BUS MODE: IDLE (%d)\n",state->busMode);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
266 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
267 case SEC_BUS_BUSY:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
268 mp_msg(MSGT_DEMUX, MSGL_V, "SEC BUS MODE: BUSY (%d)\n",state->busMode);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
269 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
270 case SEC_BUS_OFF:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
271 mp_msg(MSGT_DEMUX, MSGL_V, "SEC BUS MODE: OFF (%d)\n",state->busMode);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
272 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
273 case SEC_BUS_OVERLOAD:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
274 mp_msg(MSGT_DEMUX, MSGL_V, "SEC BUS MODE: OVERLOAD (%d)\n",state->busMode);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
275 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
276 default:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
277 mp_msg(MSGT_DEMUX, MSGL_V, "SEC BUS MODE: unknown (%d)\n",state->busMode);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
278 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
279 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
280
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
281 switch (state->selVolt)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
282 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
283 case SEC_VOLTAGE_OFF:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
284 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: OFF (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
285 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
286 case SEC_VOLTAGE_LT:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
287 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: LT (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
288 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
289 case SEC_VOLTAGE_13:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
290 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: 13 (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
291 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
292 case SEC_VOLTAGE_13_5:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
293 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: 13.5 (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
294 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
295 case SEC_VOLTAGE_18:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
296 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: 18 (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
297 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
298 case SEC_VOLTAGE_18_5:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
299 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: 18.5 (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
300 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
301 default:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
302 mp_msg(MSGT_DEMUX, MSGL_V, "SEC VOLTAGE: unknown (%d)\n",state->selVolt);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
303 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
304 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
305
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
306 mp_msg(MSGT_DEMUX, MSGL_V, "SEC CONT TONE: %s\n", (state->contTone == SEC_TONE_ON ? "ON" : "OFF"));
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
307 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
308 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
309
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
310 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
311
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
312 static void print_status(fe_status_t festatus)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
313 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
314 mp_msg(MSGT_DEMUX, MSGL_V, "FE_STATUS:");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
315 if (festatus & FE_HAS_SIGNAL) mp_msg(MSGT_DEMUX, MSGL_V," FE_HAS_SIGNAL");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
316 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
317 if (festatus & FE_TIMEDOUT) mp_msg(MSGT_DEMUX, MSGL_V, " FE_TIMEDOUT");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
318 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
319 if (festatus & FE_HAS_POWER) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_POWER");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
320 if (festatus & FE_SPECTRUM_INV) mp_msg(MSGT_DEMUX, MSGL_V, " FE_SPECTRUM_INV");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
321 if (festatus & FE_TUNER_HAS_LOCK) mp_msg(MSGT_DEMUX, MSGL_V, " FE_TUNER_HAS_LOCK");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
322 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
323 if (festatus & FE_HAS_LOCK) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_LOCK");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
324 if (festatus & FE_HAS_CARRIER) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_CARRIER");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
325 if (festatus & FE_HAS_VITERBI) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_VITERBI");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
326 if (festatus & FE_HAS_SYNC) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_SYNC");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
327 mp_msg(MSGT_DEMUX, MSGL_V, "\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
328 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
329
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
330
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
331 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
332 static int check_status(int fd_frontend,struct dvb_frontend_parameters* feparams,int tone)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
333 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
334 int i,res;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
335 int32_t strength;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
336 fe_status_t festatus;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
337 struct dvb_frontend_event event;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
338 struct dvb_frontend_info fe_info;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
339 struct pollfd pfd[1];
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
340
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
341 if (ioctl(fd_frontend,FE_SET_FRONTEND,feparams) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
342 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
343 mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR tuning channel\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
344 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
345 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
346
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
347 pfd[0].fd = fd_frontend;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
348 pfd[0].events = POLLIN;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
349
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
350 event.status=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
351 while (((event.status & FE_TIMEDOUT)==0) && ((event.status & FE_HAS_LOCK)==0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
352 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
353 mp_msg(MSGT_DEMUX, MSGL_V, "polling....\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
354 if (poll(pfd,1,10000))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
355 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
356 if (pfd[0].revents & POLLIN)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
357 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
358 mp_msg(MSGT_DEMUX, MSGL_V, "Getting frontend event\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
359 if ( ioctl(fd_frontend, FE_GET_EVENT, &event) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
360 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
361 mp_msg(MSGT_DEMUX, MSGL_ERR, "FE_GET_EVENT");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
362 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
363 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
364 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
365 print_status(event.status);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
366 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
367 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
368
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
369 if (event.status & FE_HAS_LOCK)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
370 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
371 switch(fe_info.type)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
372 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
373 case FE_OFDM:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
374 mp_msg(MSGT_DEMUX, MSGL_V, "Event: Frequency: %d\n",event.parameters.frequency);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
375 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
376 case FE_QPSK:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
377 mp_msg(MSGT_DEMUX, MSGL_V, "Event: Frequency: %d\n",(unsigned int)((event.parameters.frequency)+(tone==SEC_TONE_OFF ? LOF1 : LOF2)));
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
378 mp_msg(MSGT_DEMUX, MSGL_V, " SymbolRate: %d\n",event.parameters.u.qpsk.symbol_rate);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
379 mp_msg(MSGT_DEMUX, MSGL_V, " FEC_inner: %d\n",event.parameters.u.qpsk.fec_inner);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
380 mp_msg(MSGT_DEMUX, MSGL_V, "\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
381 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
382 case FE_QAM:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
383 mp_msg(MSGT_DEMUX, MSGL_V, "Event: Frequency: %d\n",event.parameters.frequency);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
384 mp_msg(MSGT_DEMUX, MSGL_V, " SymbolRate: %d\n",event.parameters.u.qpsk.symbol_rate);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
385 mp_msg(MSGT_DEMUX, MSGL_V, " FEC_inner: %d\n",event.parameters.u.qpsk.fec_inner);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
386 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
387 default:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
388 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
389 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
390
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
391 strength=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
392 ioctl(fd_frontend,FE_READ_BER,&strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
393 mp_msg(MSGT_DEMUX, MSGL_V, "Bit error rate: %d\n",strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
394
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
395 strength=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
396 ioctl(fd_frontend,FE_READ_SIGNAL_STRENGTH,&strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
397 mp_msg(MSGT_DEMUX, MSGL_V, "Signal strength: %d\n",strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
398
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
399 strength=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
400 ioctl(fd_frontend,FE_READ_SNR,&strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
401 mp_msg(MSGT_DEMUX, MSGL_V, "SNR: %d\n",strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
402
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
403 festatus=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
404 ioctl(fd_frontend,FE_READ_STATUS,&festatus);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
405 print_status(festatus);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
406 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
407 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
408 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
409 mp_msg(MSGT_DEMUX, MSGL_V, "Not able to lock to the signal on the given frequency\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
410 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
411 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
412 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
413 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
414
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
415 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
416
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
417 static int check_status(int fd_frontend,FrontendParameters* feparams,int tone)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
418 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
419 int i,res;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
420 int32_t strength;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
421 fe_status_t festatus;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
422 FrontendEvent event;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
423 FrontendInfo fe_info;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
424 struct pollfd pfd[1];
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
425
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
426 i = 0; res = -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
427 while ((i < 3) && (res < 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
428 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
429 if (ioctl(fd_frontend,FE_SET_FRONTEND,feparams) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
430 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
431 mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR tuning channel\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
432 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
433 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
434
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
435 pfd[0].fd = fd_frontend;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
436 pfd[0].events = POLLIN;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
437
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
438 if (poll(pfd,1,10000))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
439 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
440 if (pfd[0].revents & POLLIN)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
441 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
442 mp_msg(MSGT_DEMUX, MSGL_V, "Getting frontend event\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
443 if ( ioctl(fd_frontend, FE_GET_EVENT, &event) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
444 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
445 mp_msg(MSGT_DEMUX, MSGL_ERR, "FE_GET_EVENT");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
446 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
447 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
448 mp_msg(MSGT_DEMUX, MSGL_V, "Received ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
449 switch(event.type)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
450 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
451 case FE_UNEXPECTED_EV:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
452 mp_msg(MSGT_DEMUX, MSGL_V, "unexpected event\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
453 res = -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
454 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
455
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
456 case FE_FAILURE_EV:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
457 mp_msg(MSGT_DEMUX, MSGL_V, "failure event\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
458 res = -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
459 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
460
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
461 case FE_COMPLETION_EV:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
462 mp_msg(MSGT_DEMUX, MSGL_V, "completion event\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
463 res = 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
464 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
465 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
466 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
467 i++;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
468 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
469 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
470
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
471 if (res > 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
472 switch (event.type)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
473 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
474 case FE_UNEXPECTED_EV: mp_msg(MSGT_DEMUX, MSGL_V, "FE_UNEXPECTED_EV\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
475 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
476 case FE_COMPLETION_EV: mp_msg(MSGT_DEMUX, MSGL_V, "FE_COMPLETION_EV\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
477 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
478 case FE_FAILURE_EV: mp_msg(MSGT_DEMUX, MSGL_V, "FE_FAILURE_EV\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
479 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
480 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
481
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
482 if (event.type == FE_COMPLETION_EV)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
483 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
484 switch(fe_info.type)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
485 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
486 case FE_OFDM:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
487 mp_msg(MSGT_DEMUX, MSGL_V, "Event: Frequency: %d\n",event.u.completionEvent.Frequency);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
488 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
489
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
490 case FE_QPSK:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
491 mp_msg(MSGT_DEMUX, MSGL_V, "Event: Frequency: %d\n",(unsigned int)((event.u.completionEvent.Frequency)+(tone==SEC_TONE_OFF ? LOF1 : LOF2)));
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
492 mp_msg(MSGT_DEMUX, MSGL_V, " SymbolRate: %d\n",event.u.completionEvent.u.qpsk.SymbolRate);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
493 mp_msg(MSGT_DEMUX, MSGL_V, " FEC_inner: %d\n",event.u.completionEvent.u.qpsk.FEC_inner);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
494 mp_msg(MSGT_DEMUX, MSGL_V, "\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
495 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
496
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
497 case FE_QAM:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
498 mp_msg(MSGT_DEMUX, MSGL_V, "Event: Frequency: %d\n",event.u.completionEvent.Frequency);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
499 mp_msg(MSGT_DEMUX, MSGL_V, " SymbolRate: %d\n",event.u.completionEvent.u.qpsk.SymbolRate);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
500 mp_msg(MSGT_DEMUX, MSGL_V, " FEC_inner: %d\n",event.u.completionEvent.u.qpsk.FEC_inner);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
501 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
502
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
503 default:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
504 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
505 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
506
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
507 strength=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
508 ioctl(fd_frontend,FE_READ_BER,&strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
509 mp_msg(MSGT_DEMUX, MSGL_V, "Bit error rate: %d\n",strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
510
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
511 strength=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
512 ioctl(fd_frontend,FE_READ_SIGNAL_STRENGTH,&strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
513 mp_msg(MSGT_DEMUX, MSGL_V, "Signal strength: %d\n",strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
514
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
515 strength=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
516 ioctl(fd_frontend,FE_READ_SNR,&strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
517 mp_msg(MSGT_DEMUX, MSGL_V, "SNR: %d\n",strength);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
518
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
519 festatus=0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
520 ioctl(fd_frontend,FE_READ_STATUS,&festatus);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
521
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
522 mp_msg(MSGT_DEMUX, MSGL_V, "FE_STATUS:");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
523 if (festatus & FE_HAS_POWER) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_POWER");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
524 if (festatus & FE_HAS_SIGNAL) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_SIGNAL");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
525 if (festatus & FE_SPECTRUM_INV) mp_msg(MSGT_DEMUX, MSGL_V, " FE_SPECTRUM_INV");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
526 if (festatus & FE_HAS_LOCK) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_LOCK");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
527 if (festatus & FE_HAS_CARRIER) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_CARRIER");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
528 if (festatus & FE_HAS_VITERBI) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_VITERBI");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
529 if (festatus & FE_HAS_SYNC) mp_msg(MSGT_DEMUX, MSGL_V, " FE_HAS_SYNC");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
530 if (festatus & FE_TUNER_HAS_LOCK) mp_msg(MSGT_DEMUX, MSGL_V, " FE_TUNER_HAS_LOCK");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
531 mp_msg(MSGT_DEMUX, MSGL_V, "\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
532 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
533 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
534 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
535 mp_msg(MSGT_DEMUX, MSGL_V, "Not able to lock to the signal on the given frequency\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
536 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
537 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
538 return 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
539 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
540 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
541
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
542 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
543
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
544 struct diseqc_cmd {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
545 struct dvb_diseqc_master_cmd cmd;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
546 uint32_t wait;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
547 };
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
548
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
549 static void diseqc_send_msg(int fd, fe_sec_voltage_t v, struct diseqc_cmd *cmd,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
550 fe_sec_tone_mode_t t, fe_sec_mini_cmd_t b)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
551 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
552 ioctl(fd, FE_SET_TONE, SEC_TONE_OFF);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
553 ioctl(fd, FE_SET_VOLTAGE, v);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
554 usleep(15 * 1000);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
555 ioctl(fd, FE_DISEQC_SEND_MASTER_CMD, &cmd->cmd);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
556 usleep(cmd->wait * 1000);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
557 usleep(15 * 1000);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
558 ioctl(fd, FE_DISEQC_SEND_BURST, b);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
559 usleep(15 * 1000);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
560 ioctl(fd, FE_SET_TONE, t);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
561 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
562
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
563
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
564
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
565
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
566 /* digital satellite equipment control,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
567 * specification is available from http://www.eutelsat.com/
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
568 */
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
569 static int head_diseqc(int secfd, int sat_no, int pol, int hi_lo)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
570 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
571 struct diseqc_cmd cmd = { {{0xe0, 0x10, 0x38, 0xf0, 0x00, 0x00}, 4}, 0 };
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
572
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
573 /* param: high nibble: reset bits, low nibble set bits,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
574 * bits are: option, position, polarizaion, band
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
575 */
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
576 cmd.cmd.msg[3] =
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
577 0xf0 | (((sat_no * 4) & 0x0f) | (hi_lo ? 1 : 0) | (pol ? 0 : 2));
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
578
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
579 diseqc_send_msg(secfd, pol ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
580 &cmd, hi_lo ? SEC_TONE_ON : SEC_TONE_OFF,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
581 (sat_no / 4) % 2 ? SEC_MINI_B : SEC_MINI_A);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
582
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
583 return 1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
584 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
585
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
586 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
587
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
588
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
589 static int tune_it(int fd_frontend, int fd_sec, unsigned int freq, unsigned int srate, char pol, int tone,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
590 fe_spectral_inversion_t specInv, unsigned int diseqc, fe_modulation_t modulation, fe_code_rate_t HP_CodeRate,
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
591 fe_transmit_mode_t TransmissionMode, fe_guard_interval_t guardInterval, fe_bandwidth_t bandwidth)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
592 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
593 int res;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
594 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
595 struct dvb_frontend_parameters feparams;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
596 struct dvb_frontend_info fe_info;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
597 fe_sec_voltage_t voltage;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
598 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
599 FrontendParameters feparams;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
600 FrontendInfo fe_info;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
601 secVoltage voltage;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
602 struct secStatus sec_state;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
603 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
604
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
605
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
606 mp_msg(MSGT_DEMUX, MSGL_V, "TUNE_IT, fd_frontend %d, fd_sec %d, freq %lu, srate %lu, pol %c, tone %i, specInv, diseqc %u, fe_modulation_t modulation,fe_code_rate_t HP_CodeRate, fe_transmit_mode_t TransmissionMode,fe_guard_interval_t guardInterval, fe_bandwidth_t bandwidth\n",
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
607 fd_frontend, fd_sec, freq, srate, pol, tone, diseqc);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
608
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
609
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
610 if ( (res = ioctl(fd_frontend,FE_GET_INFO, &fe_info) < 0))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
611 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
612 mp_msg(MSGT_DEMUX, MSGL_ERR, "FE_GET_INFO: ");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
613 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
614 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
615
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
616
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
617 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
618 mp_msg(MSGT_DEMUX, MSGL_V, "Using DVB card \"%s\"\n",fe_info.name);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
619 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
620
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
621 switch(fe_info.type)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
622 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
623 case FE_OFDM:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
624 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
625 if (freq < 1000000) freq*=1000UL;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
626 feparams.frequency=freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
627 feparams.inversion=INVERSION_OFF;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
628 feparams.u.ofdm.bandwidth=bandwidth;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
629 feparams.u.ofdm.code_rate_HP=HP_CodeRate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
630 feparams.u.ofdm.code_rate_LP=LP_CODERATE_DEFAULT;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
631 feparams.u.ofdm.constellation=modulation;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
632 feparams.u.ofdm.transmission_mode=TransmissionMode;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
633 feparams.u.ofdm.guard_interval=guardInterval;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
634 feparams.u.ofdm.hierarchy_information=HIERARCHY_DEFAULT;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
635 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
636 if (freq < 1000000) freq*=1000UL;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
637 feparams.Frequency=freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
638 feparams.Inversion=INVERSION_OFF;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
639 feparams.u.ofdm.bandWidth=bandwidth;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
640 feparams.u.ofdm.HP_CodeRate=HP_CodeRate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
641 feparams.u.ofdm.LP_CodeRate=LP_CODERATE_DEFAULT;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
642 feparams.u.ofdm.Constellation=modulation;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
643 feparams.u.ofdm.TransmissionMode=TransmissionMode;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
644 feparams.u.ofdm.guardInterval=guardInterval;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
645 feparams.u.ofdm.HierarchyInformation=HIERARCHY_DEFAULT;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
646 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
647 mp_msg(MSGT_DEMUX, MSGL_V, "tuning DVB-T (%s) to %d Hz\n",DVB_T_LOCATION,freq);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
648 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
649 case FE_QPSK:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
650 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
651 mp_msg(MSGT_DEMUX, MSGL_V, "tuning DVB-S to L-Band:%d, Pol:%c Srate=%d, 22kHz=%s\n",feparams.frequency,pol,srate,tone == SEC_TONE_ON ? "on" : "off");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
652 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
653 mp_msg(MSGT_DEMUX, MSGL_V, "tuning DVB-S to L-Band:%d, Pol:%c Srate=%d, 22kHz=%s\n",feparams.Frequency,pol,srate,tone == SEC_TONE_ON ? "on" : "off");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
654 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
655 if ((pol=='h') || (pol=='H'))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
656 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
657 voltage = SEC_VOLTAGE_18;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
658 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
659 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
660 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
661 voltage = SEC_VOLTAGE_13;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
662 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
663 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
664 if (ioctl(fd_frontend,FE_SET_VOLTAGE,voltage) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
665 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
666 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
667 if (ioctl(fd_sec,SEC_SET_VOLTAGE,voltage) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
668 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
669 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
670 mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR setting voltage\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
671 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
672
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
673 if (freq > 2200000)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
674 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
675 // this must be an absolute frequency
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
676 if (freq < SLOF)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
677 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
678 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
679 feparams.frequency=(freq-LOF1);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
680 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
681 feparams.Frequency=(freq-LOF1);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
682 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
683 if (tone < 0) tone = SEC_TONE_OFF;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
684 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
685 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
686 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
687 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
688 feparams.frequency=(freq-LOF2);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
689 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
690 feparams.Frequency=(freq-LOF2);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
691 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
692 if (tone < 0) tone = SEC_TONE_ON;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
693 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
694 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
695 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
696 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
697 // this is an L-Band frequency
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
698 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
699 feparams.frequency=freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
700 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
701 feparams.Frequency=freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
702 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
703 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
704
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
705 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
706 feparams.inversion=specInv;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
707 feparams.u.qpsk.symbol_rate=srate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
708 feparams.u.qpsk.fec_inner=FEC_AUTO;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
709 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
710 feparams.Inversion=specInv;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
711 feparams.u.qpsk.SymbolRate=srate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
712 feparams.u.qpsk.FEC_inner=FEC_AUTO;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
713 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
714
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
715 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
716 if (ioctl(fd_frontend, FE_SET_TONE,tone) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
717 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
718 mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR setting tone\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
719 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
720 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
721 if (ioctl(fd_sec, SEC_SET_TONE,tone) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
722 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
723 mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR setting tone\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
724 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
725 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
726
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
727 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
728 //#warning DISEQC is unimplemented for HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
729 if(diseqc > 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
730 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
731 int ipol = (pol == 'V' ? 1 : 0);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
732 int hiband = (freq >= SLOF);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
733
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
734 if(head_diseqc(fd_frontend, diseqc-1, ipol, hiband))
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
735 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
736 mp_msg(MSGT_DEMUX, MSGL_V, "DISEQC SETTING SUCCEDED\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
737 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
738 else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
739 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
740 mp_msg(MSGT_DEMUX, MSGL_V, "DISEQC SETTING FAILED\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
741 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
742 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
743 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
744 if (diseqc > 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
745 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
746 struct secCommand scmd;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
747 struct secCmdSequence scmds;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
748
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
749 scmds.continuousTone = tone;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
750 scmds.voltage = voltage;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
751 /*
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
752 scmds.miniCommand = toneBurst ? SEC_MINI_B : SEC_MINI_A;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
753 */
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
754 scmds.miniCommand = SEC_MINI_NONE;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
755
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
756 scmd.type = 0;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
757 scmds.numCommands = 1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
758 scmds.commands = &scmd;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
759
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
760 scmd.u.diseqc.addr = 0x10;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
761 scmd.u.diseqc.cmd = 0x38;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
762 scmd.u.diseqc.numParams = 1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
763 scmd.u.diseqc.params[0] = 0xf0 |
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
764 (((diseqc - 1) << 2) & 0x0c) |
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
765 (voltage==SEC_VOLTAGE_18 ? 0x02 : 0) |
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
766 (tone==SEC_TONE_ON ? 0x01 : 0);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
767
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
768 if (ioctl(fd_sec,SEC_SEND_SEQUENCE,&scmds) < 0)
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
769 {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
770 mp_msg(MSGT_DEMUX, MSGL_ERR, "Error sending DisEqC");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
771 return -1;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
772 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
773 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
774 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
775 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
776 case FE_QAM:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
777 mp_msg(MSGT_DEMUX, MSGL_V, "tuning DVB-C to %d, srate=%d\n",freq,srate);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
778 #ifdef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
779 feparams.frequency=freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
780 feparams.inversion=INVERSION_OFF;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
781 feparams.u.qam.symbol_rate = srate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
782 feparams.u.qam.fec_inner = FEC_AUTO;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
783 feparams.u.qam.modulation = QAM_64;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
784 #else
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
785 feparams.Frequency=freq;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
786 feparams.Inversion=INVERSION_OFF;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
787 feparams.u.qam.SymbolRate = srate;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
788 feparams.u.qam.FEC_inner = FEC_AUTO;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
789 feparams.u.qam.QAM = QAM_64;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
790 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
791 break;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
792 default:
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
793 mp_msg(MSGT_DEMUX, MSGL_V, "Unknown FE type. Aborting\n");
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
794 exit(-1);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
795 }
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
796 usleep(100000);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
797
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
798 #ifndef HAVE_DVB_HEAD
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
799 if (fd_sec) SecGetStatus(fd_sec, &sec_state);
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
800 #endif
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
801
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
802 return(check_status(fd_frontend,&feparams,tone));
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
803 }