source: titan/titan/serviceinfo.h @ 15280

Last change on this file since 15280 was 11120, checked in by nit, 12 years ago

[titan] add tsid, onid and titan id to serviceinfo

File size: 10.1 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)
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}
19
20void fillservice(struct skin* l1, struct skin* l2, struct skin* l3, struct skin* l4)
21{
22        char* tmpstr = NULL;
23       
24        if(status.aktservice != NULL)
25        {
26                if(status.aktservice->channel != NULL)
27                {
28                        changetext(l1, status.aktservice->channel->name);
29                        if(status.aktservice->channel->provider != NULL)
30                                changetext(l2, status.aktservice->channel->provider->name);
31                }
32        }
33        tmpstr = getaspect();
34        changetext(l3, _(tmpstr));
35        free(tmpstr); tmpstr = NULL;
36        tmpstr = getvideomode();
37        changetext(l4, _(tmpstr));
38        free(tmpstr); tmpstr = NULL;
39}
40
41void hiddeservice(struct skin* name, struct skin* provider, struct skin* aspectratio, struct skin* resolution, int hidden)
42{
43        name->hidden = hidden;
44        provider->hidden = hidden;
45        aspectratio->hidden = hidden;
46        resolution->hidden = hidden;
47}
48
49void 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)
50{
51        char* tmpnr = NULL;
52
53        if(status.aktservice != NULL)
54        {
55                if(status.aktservice->channel != NULL)
56                {
57                        tmpnr = oitoa(status.aktservice->channel->videopid);
58                        changetext(l1, tmpnr);
59                        free(tmpnr); tmpnr = NULL;
60                        tmpnr = oitoa(status.aktservice->channel->audiopid);
61                        changetext(l2, tmpnr);
62                        free(tmpnr); tmpnr = NULL;
63                        tmpnr = oitoa(status.aktservice->channel->pcrpid);
64                        changetext(l3, tmpnr);
65                        free(tmpnr); tmpnr = NULL;
66                        tmpnr = oitoa(status.aktservice->channel->pmtpid);
67                        changetext(l4, tmpnr);
68                        free(tmpnr); tmpnr = NULL;
69                        tmpnr = oitoa(status.aktservice->channel->txtpid);
70                        changetext(l5, tmpnr);
71                        free(tmpnr); tmpnr = NULL;
72
73                        tmpnr = oitoa(status.aktservice->channel->transponderid & 0xffff);
74                        changetext(l6, tmpnr);
75                        free(tmpnr); tmpnr = NULL;
76                        tmpnr = oitoa((status.aktservice->channel->transponderid >> 16) & 0xffff);
77                        changetext(l7, tmpnr);
78                        free(tmpnr); tmpnr = NULL;
79                        tmpnr = oitoa(status.aktservice->channel->serviceid);
80                        changetext(l8, tmpnr);
81                        free(tmpnr); tmpnr = NULL;
82                        tmpnr = olutoa(status.aktservice->channel->transponderid);
83                        changetext(l9, tmpnr);
84                        free(tmpnr); tmpnr = NULL;
85                }
86        }
87}
88
89
90void 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)
91{
92        videopid->hidden = hidden;
93        audiopid->hidden = hidden;
94        pcrpid->hidden = hidden;
95        pmtpid->hidden = hidden;
96        txtpid->hidden = hidden;
97        tsid->hidden = hidden;
98        onid->hidden = hidden;
99        sid->hidden = hidden;
100        id->hidden = hidden;
101}
102
103int 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)
104{
105        char* tmpnr = NULL;
106        char* tmpstr = NULL;
107
108        if(status.aktservice != NULL)
109        {
110                if(status.aktservice->fedev != NULL)
111                {
112                        tmpnr = oitoa(status.aktservice->fedev->adapter);
113                        tmpstr = ostrcat(tmpnr, "/", 1, 0);
114                        tmpnr = oitoa(status.aktservice->fedev->devnr);
115                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
116                        changetext(l1, tmpstr);
117                        free(tmpstr); tmpstr = NULL;
118
119                        tmpstr = fegettypestr(status.aktservice->fedev);
120                        changetext(l2, tmpstr);
121                        free(tmpstr); tmpstr = NULL;
122
123                        tmpstr = transpondergetsystemstr(status.aktservice->transponder, 0);
124                        changetext(l3, tmpstr);
125                        free(tmpstr); tmpstr = NULL;
126
127                        tmpstr = transpondergetmodulationstr(status.aktservice->transponder, 0);
128                        changetext(l4, tmpstr);
129                        free(tmpstr); tmpstr = NULL;
130
131                        tmpnr = oitoa(status.aktservice->transponder->orbitalpos);
132                        changetext(l5, tmpnr);
133                        free(tmpnr); tmpnr = NULL;
134                        tmpnr = oitoa(status.aktservice->transponder->frequency);
135                        changetext(l6, tmpnr);
136                        free(tmpnr); tmpnr = NULL;
137                        tmpnr = oitoa(status.aktservice->transponder->symbolrate);
138                        changetext(l7, tmpnr);
139                        free(tmpnr); tmpnr = NULL;
140
141                        tmpstr = transpondergetpolarizationstr(status.aktservice->transponder, 0);
142                        changetext(l8, tmpstr);
143                        free(tmpstr); tmpstr = NULL;
144
145                        tmpstr = transpondergetfecstr(status.aktservice->transponder, 0);
146                        changetext(l9, tmpstr);
147                        free(tmpstr); tmpstr = NULL;
148
149                        if(status.aktservice->transponder->system == 1)
150                        {
151                                tmpstr = transpondergetinversionstr(status.aktservice->transponder, 0);
152                                changetext(l10, tmpstr);
153                                free(tmpstr); tmpstr = NULL;
154
155                                tmpstr = transpondergetrolloffstr(status.aktservice->transponder, 0);
156                                changetext(l11, tmpstr);
157                                free(tmpstr); tmpstr = NULL;
158
159                                tmpstr = transpondergetpilotstr(status.aktservice->transponder, 0);
160                                changetext(l12, tmpstr);
161                                free(tmpstr); tmpstr = NULL;
162                                return 1;
163                        }
164                }
165        }
166        return 0;
167}
168
169void 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, int hidden, int aktsystem)
170{
171        tuner->hidden = hidden;
172        type->hidden = hidden;
173        system->hidden = hidden;
174        modulation->hidden = hidden;
175        orbitalpos->hidden = hidden;
176        frequency->hidden = hidden;
177        symbolrate->hidden = hidden;
178        polarization->hidden = hidden;
179        fec->hidden = hidden;
180
181        if(aktsystem == 1)
182        {
183                inversion->hidden = NO;
184                rolloff->hidden = NO;
185                pilot->hidden = NO;
186        }
187        else
188        {
189                inversion->hidden = YES;
190                rolloff->hidden = YES;
191                pilot->hidden = YES;
192        }
193}
194
195int screenserviceinfo(void)
196{
197        int rcret = 0, aktsystem = 0;
198        struct skin* serviceinfo = getscreen("serviceinfo");
199        struct skin* name = getscreennode(serviceinfo, "name");
200        struct skin* provider = getscreennode(serviceinfo, "provider");
201        struct skin* aspectratio = getscreennode(serviceinfo, "aspectratio");
202        struct skin* resolution = getscreennode(serviceinfo, "resolution");
203
204        struct skin* videopid = getscreennode(serviceinfo, "videopid");
205        struct skin* audiopid = getscreennode(serviceinfo, "audiopid");
206        struct skin* pcrpid = getscreennode(serviceinfo, "pcrpid");
207        struct skin* pmtpid = getscreennode(serviceinfo, "pmtpid");
208        struct skin* txtpid = getscreennode(serviceinfo, "txtpid");
209        struct skin* tsid = getscreennode(serviceinfo, "tsid");
210        struct skin* onid = getscreennode(serviceinfo, "onid");
211        struct skin* sid = getscreennode(serviceinfo, "sid");
212        struct skin* id = getscreennode(serviceinfo, "id");
213
214        struct skin* tuner = getscreennode(serviceinfo, "tuner");
215        struct skin* type = getscreennode(serviceinfo, "type");
216        struct skin* system = getscreennode(serviceinfo, "system");
217        struct skin* modulation = getscreennode(serviceinfo, "modulation");
218        struct skin* orbitalpos = getscreennode(serviceinfo, "orbitalpos");
219        struct skin* frequency = getscreennode(serviceinfo, "frequency");
220        struct skin* symbolrate = getscreennode(serviceinfo, "symbolrate");
221        struct skin* polarization = getscreennode(serviceinfo, "polarization");
222        struct skin* inversion = getscreennode(serviceinfo, "inversion");
223        struct skin* fec = getscreennode(serviceinfo, "fec");
224        struct skin* rolloff = getscreennode(serviceinfo, "rolloff");
225        struct skin* pilot = getscreennode(serviceinfo, "pilot");
226
227        struct skin* l1 = getscreennode(serviceinfo, "l1");
228        struct skin* l2 = getscreennode(serviceinfo, "l2");
229        struct skin* l3 = getscreennode(serviceinfo, "l3");
230        struct skin* l4 = getscreennode(serviceinfo, "l4");
231        struct skin* l5 = getscreennode(serviceinfo, "l5");
232        struct skin* l6 = getscreennode(serviceinfo, "l6");
233        struct skin* l7 = getscreennode(serviceinfo, "l7");
234        struct skin* l8 = getscreennode(serviceinfo, "l8");
235        struct skin* l9 = getscreennode(serviceinfo, "l9");
236        struct skin* l10 = getscreennode(serviceinfo, "l10");
237        struct skin* l11 = getscreennode(serviceinfo, "l11");
238        struct skin* l12 = getscreennode(serviceinfo, "l12");
239
240        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12);
241        fillservice(l1, l2, l3, l4);
242        hiddeservice(name, provider, aspectratio, resolution, NO);
243        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, YES);
244        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, YES, 0);
245
246        drawscreen(serviceinfo, 0);
247
248        while(1)
249        {
250                rcret = waitrc(serviceinfo, 0, 0);
251
252                if(rcret == getrcconfigint("rcexit", NULL)) break;
253                if(rcret == getrcconfigint("rcred", NULL))
254                {
255                        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12);
256                        fillservice(l1, l2, l3, l4);
257                        hiddeservice(name, provider, aspectratio, resolution, NO);
258                        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, YES);
259                        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, YES, 0);
260                        drawscreen(serviceinfo, 0);
261                }
262                if(rcret == getrcconfigint("rcgreen", NULL))
263                {
264                        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12);
265                        fillpids(l1, l2, l3, l4, l5, l6, l7, l8, l9);
266                        hiddeservice(name, provider, aspectratio, resolution, YES);
267                        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, NO);
268                        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, YES, 0);
269                        drawscreen(serviceinfo, 0);
270                }
271                if(rcret == getrcconfigint("rcyellow", NULL))
272                {
273                        clearserviceinfo(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12);
274                        aktsystem = filltuner(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12);
275                        hiddeservice(name, provider, aspectratio, resolution, YES);
276                        hiddepids(videopid, audiopid, pcrpid, pmtpid, txtpid, tsid, onid, sid, id, YES);
277                        hiddetuner(tuner, type, system, modulation, orbitalpos, frequency, symbolrate, polarization, inversion, fec, rolloff, pilot, NO, aktsystem);
278                        drawscreen(serviceinfo, 0);
279                }
280        }
281
282        delownerrc(serviceinfo);
283        clearscreen(serviceinfo);
284        return 0;
285}
286
287#endif
Note: See TracBrowser for help on using the repository browser.