source: titan/titan/serviceinfo.h @ 38580

Last change on this file since 38580 was 19444, checked in by nit, 11 years ago

[titan] update serviceinfo for dvbt

File size: 14.7 KB
Line 
1#ifndef SERVICEINFO_H
2#define SERVICEINFO_H
3
4void clearserviceinfo(struct skin* l1, struct skin* l2, struct skin* l3, struct skin* l4, struct skin* l5, struct skin* l6, struct skin* l7, struct skin* l8, struct skin* l9, struct skin* l10, struct skin* l11, struct skin* l12, struct skin* l13, struct skin* l14, struct skin* l15, struct skin* l16, struct skin* l17, struct skin* l18)
5{
6        changetext(l1, NULL);
7        changetext(l2, NULL);
8        changetext(l3, NULL);
9        changetext(l4, NULL);
10        changetext(l5, NULL);
11        changetext(l6, NULL);
12        changetext(l7, NULL);
13        changetext(l8, NULL);
14        changetext(l9, NULL);
15        changetext(l10, NULL);
16        changetext(l11, NULL);
17        changetext(l12, NULL);
18        changetext(l13, NULL);
19        changetext(l14, NULL);
20        changetext(l15, NULL);
21        changetext(l16, NULL);
22        changetext(l17, NULL);
23        changetext(l18, NULL);
24}
25
26void fillservice(struct skin* l1, struct skin* l2, struct skin* l3, struct skin* l4, struct skin* l5, struct skin* l6)
27{
28        char* tmpstr = NULL;
29        unsigned long tmpnr = 0;
30       
31        if(status.aktservice != NULL)
32        {
33                if(status.aktservice->channel != NULL)
34                {
35                        changetext(l1, status.aktservice->channel->name);
36                        if(status.aktservice->channel->provider != NULL)
37                                changetext(l2, status.aktservice->channel->provider->name);
38                }
39        }
40        tmpstr = getaspect();
41        changetext(l3, _(tmpstr));
42        free(tmpstr); tmpstr = NULL;
43        tmpstr = getvideomode();
44        changetext(l4, _(tmpstr));
45        free(tmpstr); tmpstr = NULL;
46
47        tmpstr = getdevcontent("vmpegxresdev");
48        if(tmpstr != NULL)
49        {
50                tmpnr = strtol(tmpstr, 0, 16);
51                free(tmpstr); tmpstr = NULL;
52                tmpstr = olutoa(tmpnr);
53                changetext(l5, tmpstr);
54        }
55        free(tmpstr); tmpstr = NULL;
56
57        tmpstr = getdevcontent("vmpegyresdev");
58        if(tmpstr != NULL)
59        {
60                tmpnr = strtol(tmpstr, 0, 16);
61                free(tmpstr); tmpstr = NULL;
62                tmpstr = olutoa(tmpnr);
63                changetext(l6, tmpstr);
64        }
65        free(tmpstr); tmpstr = NULL;
66}
67
68void hiddeservice(struct skin* name, struct skin* provider, struct skin* aspectratio, struct skin* resolution, struct skin* xres, struct skin* yres, int hidden)
69{
70        name->hidden = hidden;
71        provider->hidden = hidden;
72        aspectratio->hidden = hidden;
73        resolution->hidden = hidden;
74        xres->hidden = hidden;
75        yres->hidden = hidden;
76}
77
78void fillpids(struct skin* l1, struct skin* l2, struct skin* l3, struct skin* l4, struct skin* l5, struct skin* l6, struct skin* l7, struct skin* l8, struct skin* l9)
79{
80        char* tmpnr = NULL;
81
82        if(status.aktservice != NULL)
83        {
84                if(status.aktservice->channel != NULL)
85                {
86                        tmpnr = oitoa(status.aktservice->channel->videopid);
87                        changetext(l1, tmpnr);
88                        free(tmpnr); tmpnr = NULL;
89                        tmpnr = oitoa(status.aktservice->channel->audiopid);
90                        changetext(l2, tmpnr);
91                        free(tmpnr); tmpnr = NULL;
92                        tmpnr = oitoa(status.aktservice->channel->pcrpid);
93                        changetext(l3, tmpnr);
94                        free(tmpnr); tmpnr = NULL;
95                        tmpnr = oitoa(status.aktservice->channel->pmtpid);
96                        changetext(l4, tmpnr);
97                        free(tmpnr); tmpnr = NULL;
98                        tmpnr = oitoa(status.aktservice->channel->txtpid);
99                        changetext(l5, tmpnr);
100                        free(tmpnr); tmpnr = NULL;
101
102                        tmpnr = oitoa(status.aktservice->channel->transponderid & 0xffff);
103                        changetext(l6, tmpnr);
104                        free(tmpnr); tmpnr = NULL;
105                        tmpnr = oitoa((status.aktservice->channel->transponderid >> 16) & 0xffff);
106                        changetext(l7, tmpnr);
107                        free(tmpnr); tmpnr = NULL;
108                        tmpnr = oitoa(status.aktservice->channel->serviceid);
109                        changetext(l8, tmpnr);
110                        free(tmpnr); tmpnr = NULL;
111                        tmpnr = ollutoa(status.aktservice->channel->transponderid);
112                        changetext(l9, tmpnr);
113                        free(tmpnr); tmpnr = NULL;
114                }
115        }
116}
117
118
119void hiddepids(struct skin* videopid, struct skin* audiopid, struct skin* pcrpid, struct skin* pmtpid, struct skin* txtpid, struct skin* tsid, struct skin* onid, struct skin* sid, struct skin* id, int hidden)
120{
121        videopid->hidden = hidden;
122        audiopid->hidden = hidden;
123        pcrpid->hidden = hidden;
124        pmtpid->hidden = hidden;
125        txtpid->hidden = hidden;
126        tsid->hidden = hidden;
127        onid->hidden = hidden;
128        sid->hidden = hidden;
129        id->hidden = hidden;
130}
131
132int filltuner(struct skin* l1, struct skin* l2, struct skin* l3, struct skin* l4, struct skin* l5, struct skin* l6, struct skin* l7, struct skin* l8, struct skin* l9, struct skin* l10, struct skin* l11, struct skin* l12, struct skin* l13, struct skin* l14, struct skin* l15, struct skin* l16, struct skin* l17, struct skin* l18)
133{
134        char* tmpnr = NULL;
135        char* tmpstr = NULL;
136
137        if(status.aktservice != NULL)
138        {
139                if(status.aktservice->fedev != NULL && status.aktservice->transponder != NULL)
140                {
141                        tmpnr = oitoa(status.aktservice->fedev->adapter);
142                        tmpstr = ostrcat(tmpnr, "/", 1, 0);
143                        tmpnr = oitoa(status.aktservice->fedev->devnr);
144                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
145                        changetext(l1, tmpstr);
146                        free(tmpstr); tmpstr = NULL;
147
148                        tmpstr = fegettypestr(status.aktservice->fedev);
149                        changetext(l2, tmpstr);
150                        free(tmpstr); tmpstr = NULL;
151
152                        if(status.aktservice->transponder->fetype == FE_QPSK)
153                        {
154                                tmpstr = transpondergetsystemstr(status.aktservice->transponder, 0);
155                                changetext(l3, tmpstr);
156                                free(tmpstr); tmpstr = NULL;
157                        }
158
159                        tmpstr = transpondergetmodulationstr(status.aktservice->transponder, -1, 0);
160                        changetext(l4, tmpstr);
161                        free(tmpstr); tmpstr = NULL;
162
163                        tmpnr = oitoa(status.aktservice->transponder->orbitalpos);
164                        changetext(l5, tmpnr);
165                        free(tmpnr); tmpnr = NULL;
166
167                        tmpnr = oitoa(status.aktservice->transponder->frequency);
168                        changetext(l6, tmpnr);
169                        free(tmpnr); tmpnr = NULL;
170
171                        if(status.aktservice->transponder->fetype == FE_QPSK || status.aktservice->transponder->fetype == FE_QAM)
172                        {
173                                tmpnr = oitoa(status.aktservice->transponder->symbolrate);
174                                changetext(l7, tmpnr);
175                                free(tmpnr); tmpnr = NULL;
176                        }
177
178                        if(status.aktservice->transponder->fetype == FE_QPSK)
179                        {
180                                tmpstr = transpondergetpolarizationstr(status.aktservice->transponder, 0);
181                                changetext(l8, tmpstr);
182                                free(tmpstr); tmpstr = NULL;
183                        }
184
185                        if(status.aktservice->transponder->fetype == FE_QPSK || status.aktservice->transponder->fetype == FE_QAM)
186                        {
187                                tmpstr = transpondergetfecstr(status.aktservice->transponder, -1, 0);
188                                changetext(l9, tmpstr);
189                                free(tmpstr); tmpstr = NULL;
190                        }
191
192                        if(status.aktservice->transponder->fetype == FE_QPSK && status.aktservice->transponder->system == 1)
193                        {
194                                tmpstr = transpondergetinversionstr(status.aktservice->transponder, 0);
195                                changetext(l10, tmpstr);
196                                free(tmpstr); tmpstr = NULL;
197
198                                tmpstr = transpondergetrolloffstr(status.aktservice->transponder, 0);
199                                changetext(l11, tmpstr);
200                                free(tmpstr); tmpstr = NULL;
201
202                                tmpstr = transpondergetpilotstr(status.aktservice->transponder, 0);
203                                changetext(l12, tmpstr);
204                                free(tmpstr); tmpstr = NULL;
205                        }
206
207                        if(status.aktservice->transponder->fetype == FE_OFDM)
208                        {
209                                tmpstr = transpondergetfecstr(status.aktservice->transponder, -1, 0);
210                                changetext(l13, tmpstr);
211                                free(tmpstr); tmpstr = NULL;
212
213                                tmpstr = transpondergetfecstr(status.aktservice->transponder, -1, 3);
214                                changetext(l14, tmpstr);
215                                free(tmpstr); tmpstr = NULL;
216
217                                tmpstr = transpondergetbandwidthstr(status.aktservice->transponder, 0);
218                                changetext(l15, tmpstr);
219                                free(tmpstr); tmpstr = NULL;
220
221                                tmpstr = transpondergettransmissionstr(status.aktservice->transponder, 0);
222                                changetext(l16, tmpstr);
223                                free(tmpstr); tmpstr = NULL;
224
225                                tmpstr = transpondergetguardintervalstr(status.aktservice->transponder, 0);
226                                changetext(l17, tmpstr);
227                                free(tmpstr); tmpstr = NULL;
228
229                                tmpstr = transpondergethierarchystr(status.aktservice->transponder, 0);
230                                changetext(l18, tmpstr);
231                                free(tmpstr); tmpstr = NULL;
232                        }
233                }
234        }
235
236        return 0;
237}
238
239void hiddetuner(struct skin* tuner, struct skin* type, struct skin* system, struct skin* modulation, struct skin* orbitalpos, struct skin* frequency, struct skin* symbolrate, struct skin* polarization, struct skin* inversion, struct skin* fec, struct skin* rolloff, struct skin* pilot, struct skin* hp, struct skin* lp, struct skin* bandwidth, struct skin* transmission, struct skin* guardinterval, struct skin* hierarchy, int hidden)
240{
241        tuner->hidden = hidden;
242        type->hidden = hidden;
243        system->hidden = hidden;
244        modulation->hidden = hidden;
245        orbitalpos->hidden = hidden;
246        frequency->hidden = hidden;
247        symbolrate->hidden = hidden;
248        polarization->hidden = hidden;
249        fec->hidden = hidden;
250        inversion->hidden = hidden;
251        rolloff->hidden = hidden;
252        pilot->hidden = hidden;
253        hp->hidden = hidden;
254        lp->hidden = hidden;
255        bandwidth->hidden = hidden;
256        transmission->hidden = hidden;
257        guardinterval->hidden = hidden;
258        hierarchy->hidden = hidden;
259
260        if(status.aktservice != NULL && status.aktservice->transponder != NULL)
261        {
262                if(status.aktservice->transponder->fetype != FE_QPSK) system->hidden = YES;
263                if(status.aktservice->transponder->fetype != FE_QPSK && status.aktservice->transponder->fetype != FE_QAM) symbolrate->hidden = YES;
264                if(status.aktservice->transponder->fetype != FE_QPSK) polarization->hidden = YES;
265                if(status.aktservice->transponder->fetype != FE_QPSK && status.aktservice->transponder->fetype != FE_QAM) fec->hidden = YES;
266                if(status.aktservice->transponder->fetype != FE_QPSK || (status.aktservice->transponder->fetype == FE_QPSK && status.aktservice->transponder->system == 0))
267                {
268                        inversion->hidden = YES;
269                        rolloff->hidden = YES;
270                        pilot->hidden = YES;
271                }
272                if(status.aktservice->transponder->fetype != FE_OFDM)
273                {
274                        hp->hidden = YES;
275                        lp->hidden = YES;
276                        bandwidth->hidden = YES;
277                        transmission->hidden = YES;
278                        guardinterval->hidden = YES;
279                        hierarchy->hidden = YES;
280                }
281        }
282}
283
284int screenserviceinfo(void)
285{
286        int rcret = 0;
287        struct skin* serviceinfo = getscreen("serviceinfo");
288        struct skin* name = getscreennode(serviceinfo, "name");
289        struct skin* provider = getscreennode(serviceinfo, "provider");
290        struct skin* aspectratio = getscreennode(serviceinfo, "aspectratio");
291        struct skin* resolution = getscreennode(serviceinfo, "resolution");
292        struct skin* xres = getscreennode(serviceinfo, "xres");
293        struct skin* yres = getscreennode(serviceinfo, "yres");
294
295        struct skin* videopid = getscreennode(serviceinfo, "videopid");
296        struct skin* audiopid = getscreennode(serviceinfo, "audiopid");
297        struct skin* pcrpid = getscreennode(serviceinfo, "pcrpid");
298        struct skin* pmtpid = getscreennode(serviceinfo, "pmtpid");
299        struct skin* txtpid = getscreennode(serviceinfo, "txtpid");
300        struct skin* tsid = getscreennode(serviceinfo, "tsid");
301        struct skin* onid = getscreennode(serviceinfo, "onid");
302        struct skin* sid = getscreennode(serviceinfo, "sid");
303        struct skin* id = getscreennode(serviceinfo, "id");
304
305        struct skin* tuner = getscreennode(serviceinfo, "tuner");
306        struct skin* type = getscreennode(serviceinfo, "type");
307        struct skin* system = getscreennode(serviceinfo, "system");
308        struct skin* modulation = getscreennode(serviceinfo, "modulation");
309        struct skin* orbitalpos = getscreennode(serviceinfo, "orbitalpos");
310        struct skin* frequency = getscreennode(serviceinfo, "frequency");
311        struct skin* symbolrate = getscreennode(serviceinfo, "symbolrate");
312        struct skin* polarization = getscreennode(serviceinfo, "polarization");
313        struct skin* inversion = getscreennode(serviceinfo, "inversion");
314        struct skin* fec = getscreennode(serviceinfo, "fec");
315        struct skin* rolloff = getscreennode(serviceinfo, "rolloff");
316        struct skin* pilot = getscreennode(serviceinfo, "pilot");
317        struct skin* hp = getscreennode(serviceinfo, "hp");
318        struct skin* lp = getscreennode(serviceinfo, "lp");
319        struct skin* bandwidth = getscreennode(serviceinfo, "bandwidth");
320        struct skin* transmission = getscreennode(serviceinfo, "transmission");
321        struct skin* guardinterval = getscreennode(serviceinfo, "guardinterval");
322        struct skin* hierarchy = getscreennode(serviceinfo, "hierarchy");
323
324        struct skin* l1 = getscreennode(serviceinfo, "l1");
325        struct skin* l2 = getscreennode(serviceinfo, "l2");
326        struct skin* l3 = getscreennode(serviceinfo, "l3");
327        struct skin* l4 = getscreennode(serviceinfo, "l4");
328        struct skin* l5 = getscreennode(serviceinfo, "l5");
329        struct skin* l6 = getscreennode(serviceinfo, "l6");
330        struct skin* l7 = getscreennode(serviceinfo, "l7");
331        struct skin* l8 = getscreennode(serviceinfo, "l8");
332        struct skin* l9 = getscreennode(serviceinfo, "l9");
333        struct skin* l10 = getscreennode(serviceinfo, "l10");
334        struct skin* l11 = getscreennode(serviceinfo, "l11");
335        struct skin* l12 = getscreennode(serviceinfo, "l12");
336        struct skin* l13 = getscreennode(serviceinfo, "l13");
337        struct skin* l14 = getscreennode(serviceinfo, "l14");
338        struct skin* l15 = getscreennode(serviceinfo, "l15");
339        struct skin* l16 = getscreennode(serviceinfo, "l16");
340        struct skin* l17 = getscreennode(serviceinfo, "l17");
341        struct skin* l18 = getscreennode(serviceinfo, "l18");
342
343        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18);
344        fillservice(l1, l2, l3, l4, l5, l6);
345        hiddeservice(name, provider, aspectratio, resolution, xres, yres, NO);
346        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, YES);
347        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, hp, lp, bandwidth, transmission, guardinterval, hierarchy, YES);
348
349        drawscreen(serviceinfo, 0, 0);
350
351        while(1)
352        {
353                rcret = waitrc(serviceinfo, 0, 0);
354
355                if(rcret == getrcconfigint("rcexit", NULL)) break;
356                if(rcret == getrcconfigint("rcred", NULL))
357                {
358                        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18);
359                        fillservice(l1, l2, l3, l4, l5, l6);
360                        hiddeservice(name, provider, aspectratio, resolution, xres, yres, NO);
361                        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, YES);
362                        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, hp, lp, bandwidth, transmission, guardinterval, hierarchy, YES);
363                        drawscreen(serviceinfo, 0, 0);
364                }
365                if(rcret == getrcconfigint("rcgreen", NULL))
366                {
367                        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18);
368                        fillpids(l1, l2, l3, l4, l5, l6, l7, l8, l9);
369                        hiddeservice(name, provider, aspectratio, resolution, xres, yres, YES);
370                        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, NO);
371                        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, hp, lp, bandwidth, transmission, guardinterval, hierarchy, YES);
372                        drawscreen(serviceinfo, 0, 0);
373                }
374                if(rcret == getrcconfigint("rcyellow", NULL))
375                {
376                        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18);
377                        filltuner(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18);
378                        hiddeservice(name, provider, aspectratio, resolution, xres, yres, YES);
379                        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, YES);
380                        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, hp, lp, bandwidth, transmission, guardinterval, hierarchy, NO);
381                        drawscreen(serviceinfo, 0, 0);
382                }
383        }
384
385        delownerrc(serviceinfo);
386        clearscreen(serviceinfo);
387        return 0;
388}
389
390#endif
Note: See TracBrowser for help on using the repository browser.