source: titan/titan/infobar.h @ 45039

Last change on this file since 45039 was 45039, checked in by obi, 2 years ago

add teletext debug

File size: 37.6 KB
Line 
1#ifndef INFOBAR_H
2#define INFOBAR_H
3
4void screeninfobar()
5{
6        int rcret = 0, ret = 0, infobartimeout = 0, rcwait = 1000, count = 0, first = 1;
7        struct channel* pipchannel = NULL;
8        struct skin* playinfobarpic = getscreen("playinfobarpic");
9
10        char* infobar_sel = getskinconfig("infobar_selection", NULL);
11        char* infobar2_sel = getskinconfig("infobar2_selection", NULL);
12        debug(10, "get initial infobar1=%s", infobar_sel);
13        debug(10, "get initial infobar2=%s", infobar2_sel);
14
15        if(infobar_sel == NULL) {
16                infobar_sel = ostrcat(infobar_sel, "infobar", 1, 0); // fallback to default
17                debug(10, "fallback to default, set infobar1=%s", infobar_sel);
18        }
19
20        if(infobar2_sel == NULL) {
21                infobar2_sel = ostrcat(infobar2_sel, "infobar2", 1, 0); // fallback to default
22                debug(10, "fallback to default, set infobar2=%s", infobar2_sel);
23        }
24
25        struct skin* infobar1 = getscreen(infobar_sel);
26        debug(10, "final infobar1=%s", infobar_sel);
27        struct skin* infobar2 = getscreen(infobar2_sel);
28        debug(10, "final infobar2=%s", infobar2_sel);
29        struct skin* infobar = infobar1;
30        struct skin* infobarm = infobar1;
31
32// dynamic default skin infobar start
33        struct skin* infobar1_bottombar = getscreennode(infobar1, "bottombar");
34        status.getepgaktstart = 0;
35        status.getepgaktend = 0;
36        status.getepgakttitle = 0;
37        status.getepgakttimeremaining = 0;
38        status.getepgnextstart = 0;
39        status.getepgnextend = 0;
40        status.getepgnexttitle = 0;
41        status.getepgnexttimeremaining = 0;
42
43        if(status.fontsizeadjust > 0)
44        {
45                infobar1->height += (status.fontsizeadjust * 2);
46                infobar1->posy -= (status.fontsizeadjust * 2);
47                infobar1_bottombar->posy += (status.fontsizeadjust * 2);
48
49//              infobar2->height += (status.fontsizeadjust * 2);
50//              infobar2->posy -= (status.fontsizeadjust * 4);
51                infobar2->posy -= (status.fontsizeadjust * 2);
52        }
53// dynamic default skin infobar end
54
55        struct skin* standbymenu = NULL;
56        char* tmpstr = NULL; char* tmpnr = NULL;
57        struct skin* pluginnode = NULL;
58        void (*startplugin)(void);
59        time_t lasttime = 0;
60        int mark = 0;
61        int playstop = 1;
62
63        status.mute = 0;
64        status.infobar = 2;
65
66        addrc(getrcconfigint("rcvolup", NULL), screenvolumeup, NULL, NULL);
67        addrc(getrcconfigint("rcvoldown", NULL), screenvolumedown, NULL, NULL);
68        addrc(getrcconfigint("rcmute", NULL), screenmute, NULL, NULL);
69
70        status.infobaraktiv = 1;
71        status.mcaktiv = 0;
72       
73        int playinfobarcount = 0, playinfobarstatus = 0;
74       
75        if(file_exist("/etc/.mipsel") || ((checkbox("ATEMIO520") == 1 || checkbox("ATEMIO530") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1 || checkbox("DM920") == 1 || checkbox("DM520") == 1 || checkbox("DM525") == 1) && ostrcmp(getconfig("remotecontrol", NULL), "1") != 1))
76                playstop = 0;
77        else
78                playstop = 1;
79       
80        while(1)
81        {
82                mark = 0;
83
84                if(status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcright", NULL))
85                        writerc(getrcconfigint("rcvolup", NULL));
86                if(status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcleft", NULL))
87                        writerc(getrcconfigint("rcvoldown", NULL));
88
89                //check if mediadb can freed
90                if(status.mediadbthread == NULL)
91                {
92                        if(status.writemediadb == 1)
93                                writemediadb(getconfig("mediadbfile", NULL), NULL);
94                        freemediadb(0);
95                }
96                //check if picmem times out and must freed
97                if(time(NULL) > status.picmemtimeout + 60)
98                {
99                        checkpictimeout();
100                        status.picmemtimeout = time(NULL);
101                }
102
103                if(status.standby == 1)
104                        screenstandby();
105                if(status.infobar == 1 )
106                {
107                        rcret = waitrc(infobar, 1000, 0);
108                        infobartimeout++;
109                }
110                else if(status.infobar == 0 && status.timeshift == 1)
111                {
112                        rcret = waitrc(infobar, 1000, 0);
113                        if(rcret == RCTIMEOUT)
114                        {
115                                if(status.playpic == 1)
116                                {
117                                        clearscreen(playinfobarpic);
118                                        drawscreen(playinfobarpic, 0, 0);
119                                }
120                                else
121                                        timeshiftinfobar(&playinfobarstatus, &playinfobarcount);
122                                continue;
123                        }
124                }
125                else if(status.infobar == 2)
126                {
127                        if(getconfigint("infobarsleep", NULL) > 0)
128                                rcret = waitrc(infobar, getconfigint("infobarsleep", NULL) * 1000, 0);
129                        else if(first == 1) //only on first start wait a little for epg
130                        {
131                                first = 0;
132                                rcret = waitrc(infobar, 1000, 0);
133                        }
134                        else
135                                rcret = RCTIMEOUT;
136
137                        if(rcret == RCTIMEOUT)
138                        {
139                                status.infobar = 1;
140                                infobar = infobar1;
141                                drawscreen(infobar, 0, 4);
142                                continue;
143                        }
144                        else
145                                status.infobar = 0;
146                }
147                else
148                {
149                        int screensaver_delay = getconfigint("screensaver_delay", NULL);
150                        rcret = 0; count = 0; rcwait = 1000;
151                        if(status.servicetype == 1 && getconfigint("screensaver", NULL) == 1)
152                        {
153                                initscreensaver();
154                                if(screensaver != NULL) screensaver->flag = 1;
155                        }
156                        if(screensaver == NULL)
157                        {
158                                if(status.infobarprogram == 1) rcwait = 2000;
159                                else rcwait = 0;
160                        }
161                        while(rcret == 0 || rcret == RCTIMEOUT)
162                        {
163                                rcret = waitrc(infobar, rcwait, 0);
164                                count++;
165                                if(screensaver == NULL && status.infobarprogram == 1 && (rcret == 0 || rcret == RCTIMEOUT))
166                                {
167                                        infobartimeout = 99999;
168                                        mark = 1;
169                                        break;
170                                }
171                                if(rcret == RCTIMEOUT && screensaver != NULL && count > screensaver_delay)
172                                {
173                                        if(status.aktservice->channel != NULL)
174                                                screensaver->value = ostrcat(status.aktservice->channel->name, NULL, 0, 0);
175                                        else
176                                                screensaver->value = ostrcat("Radio", NULL, 0, 0);
177                                        showscreensaver();
178                                        free(screensaver->value);
179                                        rcwait = screensaver->speed;
180                                }
181                        }
182                        if(screensaver != NULL) screensaver->flag = 0;
183                        deinitscreensaver();
184                        if(mark == 0)
185                        {
186                                drawscreen(skin, 0, 0);
187                                infobartimeout = 0;
188                        }
189                }
190
191                if(status.pipservice->videodev != NULL)
192                {
193                        if(rcret == getrcconfigint("rcpip", NULL))
194                        {
195                                if(getconfigint("pip_screen", NULL) == 1)
196                                {
197                                        pipstop(status.pipservice, 0);
198                                        continue;
199                                }
200                                else
201                                {
202                                        pipmenu();
203                                        drawscreen(skin, 0, 0);
204                                        clearscreen(infobar);
205                                        continue;
206                                }
207                        }
208                        if(rcret == getrcconfigint("rc0", NULL))
209                        {
210                                if(getconfigint("pip_swap", NULL) == 1)
211                                {
212                                        pipswap(status.pipservice);
213                                        continue;
214                                }
215                        }
216                        if(rcret == getrcconfigint("rcpiprec", NULL))
217                        {
218                                        pipstop(status.pipservice, 0);
219                                        continue;
220                        }                               
221                }
222                //Plugin von aussen aufrufen
223                //if(rcret == RCTIMEOUT && status.extplugin != NULL)
224                if(status.extplugin != NULL)
225                {
226                        subtitlepause(1);
227                        status.infobar = 0;
228                        clearscreen(infobar);
229
230                        pluginnode = getplugin(status.extplugin);
231                        free(status.extplugin); status.extplugin = NULL;
232                        if(pluginnode != NULL)
233                        {
234                                startplugin = dlsym(pluginnode->pluginhandle, "start");
235                                if(startplugin != NULL)
236                                        startplugin();
237                        }
238                        status.updatevfd = START;
239                        drawscreen(skin, 0, 0);
240                        subtitlepause(0);
241                        continue;
242                }
243                       
244               
245                if(status.pvr == 1 && (rcret == getrcconfigint("rcpause", NULL) || ((checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1 || checkbox("DM920") == 1 || checkbox("DM520") == 1 || checkbox("DM525") == 1 || checkbox("ATEMIO520") == 1 || checkbox("ATEMIO530") == 1) && rcret == getrcconfigint("rcplay", NULL) && status.pause == 0 && status.slowspeed == 0 && status.playspeed == 0 && ostrcmp(getconfig("remotecontrol", NULL), "0") == 0)))
246                {
247                        // currently works only 1 rec or timeshift
248//                      if(checkbox("VUSOLO2") == 1 && status.recording > 0)
249//                              continue;
250
251                        //timeshift
252                        if(status.playpic == 1)
253                        {
254                                clearscreen(playinfobarpic);
255                                status.playpic = 0;
256                        }
257                        if(status.timeshift == 1 && (status.playing == 0 || status.slowspeed != 0 || status.playspeed != 0 || status.pause != 0))
258                        {
259                                if(status.timeshifttype == 1 && status.timeshiftpos == 0)
260                                {
261                                        timeshiftpause(0);
262                                        timeshiftinfobar(&playinfobarstatus, &playinfobarcount);
263                                        if(status.playpic == 0)
264                                        {
265                                                drawscreen(playinfobarpic, 0, 0);
266                                                status.playpic = 1;
267                                        }
268                                }
269                                else
270                                        timeshiftplay(&playinfobarstatus, &playinfobarcount);
271                        }
272                        else
273                        {
274                                if(status.timeshift == 1)
275                                        status.playpic = 2;
276                                else
277                                        status.playpic = 0;
278
279                                timeshiftpause(0);
280                                timeshiftinfobar(&playinfobarstatus, &playinfobarcount);
281                                if(status.playpic == 0)
282                                {
283                                        drawscreen(playinfobarpic, 0, 0);
284                                        status.playpic = 1;
285                                }
286                        }
287
288                        continue;
289                }
290                if(status.timeshift == 1)
291                {
292                        if(rcret == getrcconfigint("rcstop", NULL))
293                        {
294                                if(status.playpic == 1)
295                                {
296                                        clearscreen(playinfobarpic);
297                                        status.playpic = 0;
298                                }               
299                                timeshiftstop(0);
300                                continue;
301                        }
302                        if(rcret == getrcconfigint("rcplay", NULL))
303                        {
304                                if(status.playpic == 1)
305                                {
306                                        clearscreen(playinfobarpic);
307                                        status.playpic = 0;
308                                }               
309                                if(playstop == 1 && status.timeshifttype == 1)
310                                {
311                                        if(status.playing == 0 || (status.playspeed == 0 && status.slowspeed == 0 && status.pause == 0))
312                                        {
313                                                subtitlepause(1);
314                                                status.infobar = 0;
315                                                status.infobaraktiv = 0;
316                                                clearscreen(infobar);
317                                                screenplay(NULL, NULL, 1, 0);
318                                                status.infobaraktiv = 1;
319                                                status.updatevfd = START;
320                                                drawscreen(skin, 0, 0);
321                                                subtitlepause(0);
322                                                continue;
323                                        }
324                                }
325                                timeshiftplay(&playinfobarstatus, &playinfobarcount);
326                                continue;
327                        }
328                        if(status.timeshifttype == 1 && status.playing == 0)
329                        {
330                                if(rcret == getrcconfigint("rcff", NULL) || (getconfig("timeshiftnumkeys", NULL) == 0 && (rcret == getrcconfigint("rc3", NULL) || rcret == getrcconfigint("rc6", NULL) || rcret == getrcconfigint("rc9", NULL) || rcret == getrcconfigint("rcright", NULL) || rcret == getrcconfigint("rcup", NULL) || rcret == getrcconfigint("rc2", NULL))))
331                                {
332                                        struct service* snode = getservice(RECORDTIMESHIFT, 0);
333                                        if(snode != NULL)
334                                        {
335                                                status.playercan = 0x7FFF;
336                                                playinfobarstatus = 1;
337                                                playinfobarcount = 0;
338                                                screenplayinfobar(snode->recname, NULL, 0, 1, 5);
339                                        }
340                                        continue;
341                                }
342                                if(rcret == getrcconfigint("rcfr", NULL))
343                                {
344                                        timeshiftposplay(&playinfobarstatus, &playinfobarcount);
345                                        if(status.playing == 1)
346                                                playrcfr(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
347                                        continue;
348                                }
349                                if(getconfig("timeshiftnumkeys", NULL) == 0)
350                                {
351                                        if(rcret == getrcconfigint("rcleft", NULL))
352                                        {
353                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
354                                                if(status.playing == 1)
355                                                        playrcjumpr(status.playfile, NULL, 60, &playinfobarstatus, &playinfobarcount, 1, 4);
356                                                continue;
357                                        }
358                                        if(rcret == getrcconfigint("rcdown", NULL))
359                                        {
360                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
361                                                if(status.playing == 1)
362                                                        playrcjumpr(status.playfile, NULL, 300, &playinfobarstatus, &playinfobarcount, 1, 4);
363                                                continue;
364                                        }
365                                        if(rcret == getrcconfigint("rc1", NULL))
366                                        {
367                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
368                                                if(status.playing == 1)
369                                                        playrcjumpr(status.playfile, NULL, getconfigint("skip13", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
370                                                continue;
371                                        }
372                                        if(rcret == getrcconfigint("rc4", NULL))
373                                        {
374                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
375                                                if(status.playing == 1)
376                                                        playrcjumpr(status.playfile, NULL, getconfigint("skip46", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
377                                                continue;
378                                        }
379                                        if(rcret == getrcconfigint("rc7", NULL))
380                                        {
381                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
382                                                if(status.playing == 1)
383                                                        playrcjumpr(status.playfile, NULL, getconfigint("skip79", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
384                                                continue;
385                                        }
386                                }
387                        }
388                        if(status.playing == 1)
389                        {
390                                if(rcret == getrcconfigint("rcff", NULL))
391                                {
392                                        playrcff(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
393                                        continue;
394                                }
395                                if(rcret == getrcconfigint("rcfr", NULL))
396                                {
397                                        playrcfr(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
398                                        continue;
399                                }
400                                if(rcret == getrcconfigint("rc3", NULL))
401                                {
402                                        playrcjumpf(status.playfile, NULL, getconfigint("skip13", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
403                                        continue;
404                                }
405                                if(rcret == getrcconfigint("rc6", NULL))
406                                {
407                                        playrcjumpf(status.playfile, NULL, getconfigint("skip46", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
408                                        continue;
409                                }
410                                if(rcret == getrcconfigint("rc9", NULL))
411                                {                               
412                                        playrcjumpf(status.playfile, NULL, getconfigint("skip79", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
413                                        continue;
414                                }
415                                if(rcret == getrcconfigint("rcdown", NULL))
416                                {
417                                        playrcjumpr(status.playfile, NULL, 300, &playinfobarstatus, &playinfobarcount, 1, 4);
418                                        continue;
419                                }
420                                if(rcret == getrcconfigint("rcup", NULL))
421                                {
422                                        playrcjumpf(status.playfile, NULL, 300, &playinfobarstatus, &playinfobarcount, 1, 4);
423#ifdef MIPSEL
424// workaround fixes image flicker when jumping over the border also
425                                        playrcjumpr(status.playfile, NULL, 10, &playinfobarstatus, &playinfobarcount, 1, 4);
426#endif
427                                        continue;
428                                }
429                                if(rcret == getrcconfigint("rcleft", NULL))
430                                {
431                                        playrcjumpr(status.playfile, NULL, 60, &playinfobarstatus, &playinfobarcount, 1, 4);
432                                        continue;
433                                }
434                                if(rcret == getrcconfigint("rcright", NULL))
435                                {
436                                        playrcjumpf(status.playfile, NULL, 60, &playinfobarstatus, &playinfobarcount, 1, 4);
437#ifdef MIPSEL
438// workaround fixes image flicker when jumping over the border also
439                                        playrcjumpr(status.playfile, NULL, 10, &playinfobarstatus, &playinfobarcount, 1, 4);
440#endif
441                                        continue;
442                                }
443                                if(rcret == getrcconfigint("rc1", NULL))
444                                {
445                                        playrcjumpr(status.playfile, NULL, getconfigint("skip13", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
446                                        continue;
447                                }
448                                if(rcret == getrcconfigint("rc4", NULL))
449                                {
450                                        playrcjumpr(status.playfile, NULL, getconfigint("skip46", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
451                                        continue;
452                                }
453                                if(rcret == getrcconfigint("rc7", NULL))
454                                {
455                                        playrcjumpr(status.playfile, NULL, getconfigint("skip79", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
456                                        continue;
457                                }
458                                if(rcret == getrcconfigint("rc2", NULL))
459                                {
460                                        playrcjumpto(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
461                                        continue;
462                                }
463                                if(rcret == getrcconfigint("rc0", NULL))
464                                {
465                                        setmarker();
466                                        continue;
467                                }
468                                if(rcret == getrcconfigint("rc5", NULL))
469                                {
470                                        screenmarker(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
471                                        continue;
472                                }       
473                                if(rcret == getrcconfigint("rc8", NULL))
474                                {
475                                        continue;
476                                }
477                                if(status.timeshifttype == 0 && rcret == getrcconfigint("rcinfo", NULL))
478                                {
479                                        playrcinfo(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
480                                        continue;       
481                                }
482                        }
483                }
484                if(rcret == getrcconfigint("rcstop", NULL) && status.recording > 0)
485                {
486                        subtitlepause(1);
487                        status.infobar = 0;
488                        clearscreen(infobar);
489                        screenrecordstop();
490                        status.updatevfd = START;
491                        drawscreen(skin, 0, 0);
492                        subtitlepause(0);
493                        continue;
494                }
495                if(rcret == getrcconfigint("rcblue", NULL) && getconfig("bluekey", NULL) == NULL)
496                {
497                        if(checkbox("DM7020HD") == 0 && checkbox("DM7020HDV2") == 0 && checkbox("DM900") == 0 && checkbox("DM920") == 0 && checkbox("DM520") == 0 && checkbox("DM525") == 0)
498                                rcret = getrcconfigint("rctvradio", NULL);
499                        else
500                                rcret = getrcconfigint("rcepg", NULL);
501                }
502                if(rcret == getrcconfigint("rcok", NULL) || rcret == getrcconfigint("rctvradio", NULL) || rcret == getrcconfigint("rcfav", NULL) || rcret == getrcconfigint("rctv", NULL) || rcret == getrcconfigint("rcradio", NULL) || (status.crosscontrol == 0 && status.play == 0 && status.pause == 0 && (rcret == getrcconfigint("rcup", NULL) || rcret == getrcconfigint("rcdown", NULL) || rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL))))
503                {
504                        int tmpservicetype = status.servicetype;
505                        status.infobaraktiv = 0;
506                        subtitlepause(1);
507                        clearscreen(infobar);
508                        if(rcret == getrcconfigint("rctvradio", NULL))
509                        {
510                                if(status.servicetype == 0)
511                                        status.servicetype = 1;
512                                else
513                                        status.servicetype = 0;
514                        }
515
516                        if(rcret == getrcconfigint("rctv", NULL))
517                        {
518#ifdef MIPSEL
519                                if(checkchipset("BCM7424") == 1 && status.servicetype == 0)
520                                {
521                                        if(status.aktservice->type == CHANNEL)
522                                                servicefullHDMIin_start();
523                                        else if(status.aktservice->type == HDMIIN)
524                                        {
525                                                if(status.lastservice->channel != NULL)
526                                                {
527                                                        tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
528                                                        servicecheckret(servicestart(status.lastservice->channel, tmpstr, NULL, 0), 0);
529                                                        free(tmpstr); tmpstr = NULL;
530                                                }
531                                        }
532                                        infobartimeout = 0;
533                                        infobar = infobar1;
534                                        if(status.infobar == 0)
535                                                drawscreen(infobar, 0, 4);
536                                        else
537                                                drawscreen(infobar, 0, 0);
538                                        status.infobar = 1;
539                                        continue;
540                                }
541#endif                         
542                                status.servicetype = 0;
543                        }
544                        if(rcret == getrcconfigint("rcradio", NULL))
545                                status.servicetype = 1;
546
547                        drawscreen(skin, 0, 0);
548                        if(rcret == getrcconfigint("rcfav", NULL))     
549                                ret = screenchannellist(NULL, NULL, 2);
550                        else
551                                ret = screenchannellist(NULL, NULL, 0);
552                        if(ret >= 20 || ret < 0)
553                                status.servicetype = tmpservicetype;
554                        drawscreen(skin, 0, 0);
555                        status.infobaraktiv = 1;
556                        status.infobar = 2;
557                        infobartimeout = 0;
558                        continue;
559                }
560                if(rcret == getrcconfigint("rcexit", NULL) && status.infobar == 1)
561                {
562                        if(status.timeshift == 1 && status.playing == 1)
563                                screenplayinfobar(NULL, NULL, 1, 1, 4);
564                        subtitlepause(1);
565                        status.infobar = 0;
566                        clearscreen(infobar);
567                        if(infobarm != infobar) {
568                                infobar = infobarm;
569                                clearscreen(infobar);
570                        }
571                        drawscreen(skin, 0, 0);
572                        subtitlepause(0);
573                        continue;
574                }
575                if(rcret == getrcconfigint("rctext", NULL))
576                {
577                        if(status.aktservice->channel != NULL && status.aktservice->channel->txtpid > 0)
578                        {
579                                subtitlepause(1);
580                                status.infobar = 0;
581                                status.sec = 0;
582                                clearscreen(infobar);
583                                tmpstr = ostrcat(getconfig("tuxtxtfile", NULL), " ", 0, 0);
584                                tmpnr = oitoa(status.aktservice->channel->txtpid);
585                                tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
586       
587                                if(status.aktservice->fedev != NULL)
588                                {
589                                        tmpnr = oitoa(status.aktservice->fedev->devnr);
590                                        tmpstr = ostrcat(tmpstr, " ", 1, 0);
591                                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
592                                }
593#ifdef OEBUILD         
594        saveframebuffer();
595#endif
596                                drawscreen(skin, 0, 0);
597                                status.tuxtxt = 1;
598#ifdef MIPSEL
599                                disablemanualblit();
600                                int tmprcret = -1;
601                                delrc(getrcconfigint("rcvolup", NULL), NULL, NULL);
602                                delrc(getrcconfigint("rcvoldown", NULL), NULL, NULL);
603
604                                tmpstr = ostrcat(tmpstr, " &", 1, 0);
605                                printf("cmd1: %s\n", tmpstr);
606                                system(tmpstr);
607
608                                while(1)
609                                {
610                                        rcret = waitrc(infobar, 0, 0);
611                                        if(rcret == getrcconfigint("rc0", NULL)) tmprcret = 0x00;
612                                        else if(rcret == getrcconfigint("rc1", NULL)) tmprcret = 0x01;
613                                        else if(rcret == getrcconfigint("rc2", NULL)) tmprcret = 0x02;
614                                        else if(rcret == getrcconfigint("rc3", NULL)) tmprcret = 0x03;
615                                        else if(rcret == getrcconfigint("rc4", NULL)) tmprcret = 0x04;
616                                        else if(rcret == getrcconfigint("rc5", NULL)) tmprcret = 0x05;
617                                        else if(rcret == getrcconfigint("rc6", NULL)) tmprcret = 0x06;
618                                        else if(rcret == getrcconfigint("rc7", NULL)) tmprcret = 0x07;
619                                        else if(rcret == getrcconfigint("rc8", NULL)) tmprcret = 0x08;
620                                        else if(rcret == getrcconfigint("rc9", NULL)) tmprcret = 0x09; 
621                                        else if(rcret == getrcconfigint("rcright", NULL)) tmprcret = 0x0A;
622                                        else if(rcret == getrcconfigint("rcleft", NULL)) tmprcret = 0x0B;
623                                        else if(rcret == getrcconfigint("rcup", NULL)) tmprcret = 0x0C;
624                                        else if(rcret == getrcconfigint("rcdown", NULL)) tmprcret = 0x0D;
625                                        else if(rcret == getrcconfigint("rcok", NULL)) tmprcret = 0x0E;
626                                        else if(rcret == getrcconfigint("rcmute", NULL)) tmprcret = 0x0F;       
627                                        else if(rcret == getrcconfigint("rcpower", NULL)) tmprcret = 0x10;
628                                        else if(rcret == getrcconfigint("rcgreen", NULL)) tmprcret = 0x11;
629                                        else if(rcret == getrcconfigint("rcyellow", NULL)) tmprcret = 0x12;
630                                        else if(rcret == getrcconfigint("rcred", NULL)) tmprcret = 0x13;               
631                                        else if(rcret == getrcconfigint("rcblue", NULL)) tmprcret = 0x14;
632                                        else if(rcret == getrcconfigint("rcchup", NULL)) tmprcret = 0x15;
633                                        else if(rcret == getrcconfigint("rcchdown", NULL)) tmprcret = 0x16;
634                                        else if(rcret == getrcconfigint("rchelp", NULL)) tmprcret = 0x17;
635                                        //else if(rcret == getrcconfigint("rcdbox", NULL)) tmprcret = 0x18;
636                                        else if(rcret == getrcconfigint("rctext", NULL)) tmprcret = 0x1F;
637                                        else if(rcret == getrcconfigint("rcexit", NULL)) tmprcret = 0x1F;
638                                       
639                                        sendtuxtxt(tmprcret);
640                                       
641                                        if(rcret == getrcconfigint("rcexit", NULL)) break;
642                                        if(rcret == getrcconfigint("rctext", NULL)) break;
643                                }
644                               
645                                addrc(getrcconfigint("rcvolup", NULL), screenvolumeup, NULL, NULL);
646                                addrc(getrcconfigint("rcvoldown", NULL), screenvolumedown, NULL, NULL);
647
648                                if(status.fdrctxt != -1)
649                                {
650                                        close(status.fdrctxt);
651                                        status.fdrctxt = -1;
652                                }
653#ifndef OEBUILD
654                                system("resetfb.sh");
655#endif
656                                enablemanualblit();
657#else
658                                printf("cmd2: %s\n", tmpstr);
659                                system(tmpstr);
660#endif
661#ifdef MIPSEL
662
663                                if(status.aktservice != NULL)
664                                        resetvmpeg(status.aktservice->videodev);
665#endif
666#ifdef OEBUILD
667                                restoreframebuffer();
668#endif
669                                status.tuxtxt = 0;
670                                free(tmpstr); tmpstr = NULL; tmpnr = NULL;
671                                drawscreen(skin, 0, 0);
672                                subtitlepause(0);
673                        }
674                        continue;
675                }
676//      if(rcret == getrcconfigint("rcrecord", NULL))
677                if(rcret == getrcconfigint("rcrecord", NULL) && status.pvr == 1)
678                {
679                        // currently works only 1 rec or timeshift
680//                      if(checkbox("VUSOLO2") == 1 && status.timeshift == 1)
681//                              continue;
682                        subtitlepause(1);
683                        status.infobar = 0;
684                        clearscreen(infobar);
685                        screenrecorddirect();
686                        status.updatevfd = START;
687                        drawscreen(skin, 0, 0);
688                        subtitlepause(0);
689                        continue;
690                }
691                if((status.pvr == 1 && ((status.timeshift == 0 && rcret == getrcconfigint("rcplay", NULL)) || rcret == getrcconfigint("rcarchive", NULL) || rcret == getrcconfigint("rcwebplay", NULL))))
692                {
693                        subtitlepause(1);
694                        status.infobar = 0;
695                        status.infobaraktiv = 0;
696                        clearscreen(infobar);
697                        screenplay(NULL, NULL, 1, 0);
698                        status.infobaraktiv = 1;
699                        status.updatevfd = START;
700                        drawscreen(skin, 0, 0);
701                        subtitlepause(0);
702                        continue;
703                }
704                if(rcret == getrcconfigint("rcshoot", NULL))
705                {
706                        subtitlepause(1);
707                        status.infobar = 0;
708                        status.infobaraktiv = 0;
709                        clearscreen(infobar);
710                        screenshoot(0);
711                        status.infobaraktiv = 1;
712                        status.updatevfd = START;
713                        drawscreen(skin, 0, 0);
714                        subtitlepause(0);
715                        textbox(_("Message"), _("Shooting Background done !\nSave Screenshoot Path: /tmp/screenshot.jpg"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0);
716                        continue;
717                }
718
719                if(rcret == getrcconfigint("rcplugin", NULL))
720                {
721                        subtitlepause(1);
722                        status.infobar = 0;
723                        clearscreen(infobar);
724                        status.updatevfd = PAUSE;
725                        screenkeyactions(2, 0);
726                        status.updatevfd = START;
727                        drawscreen(skin, 0, 0);
728                        subtitlepause(0);
729                        continue;
730                }
731                if(rcret == getrcconfigint("rcred", NULL))
732                {
733                        subtitlepause(1);
734                        status.infobar = 0;
735                        status.infobaraktiv = 0;
736                        clearscreen(infobar);
737                        status.updatevfd = PAUSE;
738                        screenkeyactions(1, 0);
739                        status.infobaraktiv = 1;
740                        status.updatevfd = START;
741                        drawscreen(skin, 0, 0);
742                        subtitlepause(0);
743                        continue;
744                }
745                if(rcret == getrcconfigint("rcgreen", NULL) || rcret ==  getrcconfigint("rcvmode", NULL))
746                {
747                        subtitlepause(1);
748                        status.infobar = 0;
749                        clearscreen(infobar);
750                        screenvideomode(0);
751                        drawscreen(skin, 0, 0);
752                        subtitlepause(0);
753                        continue;
754                }
755                if(rcret == getrcconfigint("rcsubchannel", NULL))
756                {
757                        subtitlepause(1);
758                        status.infobar = 0;
759                        clearscreen(infobar);
760                        screenlinkedchannel();
761                        drawscreen(skin, 0, 0);
762                        subtitlepause(0);
763                        continue;
764                }
765                if(rcret == getrcconfigint("rcsleep", NULL))
766                {
767                        subtitlepause(1);
768                        status.infobar = 0;
769                        clearscreen(infobar);
770                        screenpowerofftimer();
771                        drawscreen(skin, 0, 0);
772                        subtitlepause(0);
773                        continue;
774                }
775                if(rcret == getrcconfigint("rcsubtitel", NULL))
776                {
777                        subtitlepause(1);
778                        status.infobar = 0;
779                        clearscreen(infobar);
780                        screensubtitle();
781                        drawscreen(skin, 0, 0);
782                        subtitlepause(0);
783                        continue;
784                }
785                if(rcret == getrcconfigint("rcyellow", NULL) || rcret == getrcconfigint("rcaudio", NULL))
786                {
787                        subtitlepause(1);
788                        status.infobar = 0;
789                        clearscreen(infobar);
790                        screenaudiotrack();
791                        drawscreen(skin, 0, 0);
792                        subtitlepause(0);
793                        continue;
794                }
795                if(rcret == getrcconfigint("rcblue", NULL))
796                {
797                        subtitlepause(1);
798                        status.infobar = 0;
799                        clearscreen(infobar);
800                        screenkeyactions(0, 0);
801                        status.updatevfd = START;
802                        drawscreen(skin, 0, 0);
803                        subtitlepause(0);
804                        continue;
805                }
806                if(rcret == getrcconfigint("rchbbtv", NULL) && status.aktservice->channel != NULL && status.aktservice->channel->hbbtvurl != NULL && file_exist("/usr/bin/browser"))
807                {
808#ifdef OEBUILD
809//oebuild hbbtv start
810                        subtitlepause(1);
811                        status.infobar = 0;
812                        status.sec = 0;
813                        clearscreen(infobar);
814#ifdef OEBUILD
815                saveframebuffer();
816#endif
817                        drawscreen(skin, 0, 0);
818                        status.tuxtxt = 1;
819
820                        tmpstr = ostrcat("run.sh restart ", oitoa(getfbxres()), 0, 1);
821                        tmpstr = ostrcat(tmpstr, " ", 1, 0);
822                        tmpstr = ostrcat(tmpstr, oitoa(getfbyres()), 1, 1);
823                        tmpstr = ostrcat(tmpstr, " ", 1, 0);
824                        tmpstr = ostrcat(tmpstr, status.aktservice->channel->hbbtvurl, 1, 0);
825                        tmpstr = ostrcat(tmpstr, " &", 1, 0);
826#ifdef MIPSEL
827                        disablemanualblit();
828                        int tmprcret = -1;
829
830                        delrc(getrcconfigint("rcvolup", NULL), NULL, NULL);
831                        delrc(getrcconfigint("rcvoldown", NULL), NULL, NULL);
832
833                        debug(10, "cmd=%s", tmpstr);
834                        system(tmpstr);
835                        free(tmpstr), tmpstr = NULL;
836
837                        while(1)
838                        {
839                                rcret = waitrc(infobar, 0, 0);
840                                if(rcret == getrcconfigint("rc0", NULL)) tmprcret = 0x00;
841                                else if(rcret == getrcconfigint("rc1", NULL)) tmprcret = 0x01;
842                                else if(rcret == getrcconfigint("rc2", NULL)) tmprcret = 0x02;
843                                else if(rcret == getrcconfigint("rc3", NULL)) tmprcret = 0x03;
844                                else if(rcret == getrcconfigint("rc4", NULL)) tmprcret = 0x04;
845                                else if(rcret == getrcconfigint("rc5", NULL)) tmprcret = 0x05;
846                                else if(rcret == getrcconfigint("rc6", NULL)) tmprcret = 0x06;
847                                else if(rcret == getrcconfigint("rc7", NULL)) tmprcret = 0x07;
848                                else if(rcret == getrcconfigint("rc8", NULL)) tmprcret = 0x08;
849                                else if(rcret == getrcconfigint("rc9", NULL)) tmprcret = 0x09; 
850                                else if(rcret == getrcconfigint("rcright", NULL)) tmprcret = 0x0A;
851                                else if(rcret == getrcconfigint("rcleft", NULL)) tmprcret = 0x0B;
852                                else if(rcret == getrcconfigint("rcup", NULL)) tmprcret = 0x0C;
853                                else if(rcret == getrcconfigint("rcdown", NULL)) tmprcret = 0x0D;
854                                else if(rcret == getrcconfigint("rcok", NULL)) tmprcret = 0x0E;
855                                else if(rcret == getrcconfigint("rcmute", NULL)) tmprcret = 0x0F;       
856                                else if(rcret == getrcconfigint("rcpower", NULL)) tmprcret = 0x10;
857                                else if(rcret == getrcconfigint("rcgreen", NULL)) tmprcret = 0x11;
858                                else if(rcret == getrcconfigint("rcyellow", NULL)) tmprcret = 0x12;
859                                else if(rcret == getrcconfigint("rcred", NULL)) tmprcret = 0x13;               
860                                else if(rcret == getrcconfigint("rcblue", NULL)) tmprcret = 0x14;
861                                else if(rcret == getrcconfigint("rcchup", NULL)) tmprcret = 0x15;
862                                else if(rcret == getrcconfigint("rcchdown", NULL)) tmprcret = 0x16;
863                                else if(rcret == getrcconfigint("rchelp", NULL)) tmprcret = 0x17;
864                                //else if(rcret == getrcconfigint("rcdbox", NULL)) tmprcret = 0x18;
865                                else if(rcret == getrcconfigint("rctext", NULL)) tmprcret = 0x1F;
866                                else if(rcret == getrcconfigint("rcexit", NULL)) tmprcret = 0x1F;
867                               
868                                sendtuxtxt(tmprcret);
869                               
870                                if(rcret == getrcconfigint("rcexit", NULL)) break;
871                                if(rcret == getrcconfigint("rctext", NULL)) break;
872                        }
873                       
874                        addrc(getrcconfigint("rcvolup", NULL), screenvolumeup, NULL, NULL);
875                        addrc(getrcconfigint("rcvoldown", NULL), screenvolumedown, NULL, NULL);
876
877                        if(status.fdrctxt != -1)
878                        {
879                                close(status.fdrctxt);
880                                status.fdrctxt = -1;
881                        }
882                        system("killall -9 run.sh browser");
883#ifndef OEBUILD
884                        system("resetfb.sh");
885#endif
886                        enablemanualblit();
887#else
888                        debug(10, "cmd=%s", tmpstr);
889                        system(tmpstr);
890                        free(tmpstr), tmpstr = NULL;
891#endif
892
893#ifdef MIPSEL
894
895                        if(status.aktservice != NULL)
896                                resetvmpeg(status.aktservice->videodev);
897#endif
898#ifdef OEBUILD
899                        restoreframebuffer();
900#endif
901                        status.tuxtxt = 0;
902                        free(tmpstr); tmpstr = NULL; tmpnr = NULL;
903                        drawscreen(skin, 0, 0);
904                        subtitlepause(0);
905//oebuild hbbtv end
906#else
907                        subtitlepause(1);
908                        status.infobar = 0;
909                        clearscreen(infobar);
910
911                        pluginnode = getplugin("hbbtv Browser");
912                        if(pluginnode != NULL)
913                        {
914                                startplugin = dlsym(pluginnode->pluginhandle, "starturl");
915                                if(startplugin != NULL)
916                                        startplugin();
917                        }
918
919                        status.updatevfd = START;
920                        drawscreen(skin, 0, 0);
921                        subtitlepause(0);
922#endif
923                        continue;
924                }
925                if(rcret == getrcconfigint("rcwww", NULL))
926                {
927                        subtitlepause(1);
928                        status.infobar = 0;
929                        clearscreen(infobar);
930                       
931                        pluginnode = getplugin("Internet Browser");
932                        if(pluginnode != NULL)
933                        {
934                                startplugin = dlsym(pluginnode->pluginhandle, "screenbrowser");
935                                if(startplugin != NULL)
936                                        startplugin();
937                        }
938                        else
939                                textbox(_("Message"), _("Internet Browser Plugin not installed !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 10, 0);
940                }
941                if(rcret == getrcconfigint("rcmedia", NULL))
942                {
943/*
944                        struct skin* pluginnode = getplugin("Media Center");
945                        void (*startplugin)(void);
946                        status.infobaraktiv = 0;
947                        subtitlepause(1);
948                        status.infobar = 0;
949                        clearscreen(infobar);
950                        if(pluginnode != NULL)
951                        {
952                                startplugin = dlsym(pluginnode->pluginhandle, "start");
953                                if(startplugin != NULL)
954                                startplugin();
955                        }
956                        status.infobaraktiv = 1;
957                        drawscreen(skin, 0, 0);
958                        subtitlepause(0);
959                        continue;
960*/
961                        subtitlepause(1);
962                        status.infobar = 0;
963                        clearscreen(infobar);
964                        status.updatevfd = PAUSE;
965                        screenkeyactions(3, 0);
966                        status.updatevfd = START;
967                        drawscreen(skin, 0, 0);
968                        subtitlepause(0);
969                        resettvpic();
970                        continue;
971                }
972                if(rcret == getrcconfigint("rcmenu", NULL))
973                {
974                        subtitlepause(1);
975                        status.infobar = 0;
976                        status.infobaraktiv = 0;
977                        clearscreen(infobar);
978                        menu(getscreen("mainmenu"), 1);
979                        status.menurelease = 0;
980                        status.updatevfd = START;
981                        status.infobaraktiv = 1;
982                        drawscreen(skin, 0, 0);
983                        subtitlepause(0);
984                        continue;
985                }
986                if(rcret == getrcconfigint("rctimer", NULL))
987                {
988                        subtitlepause(1);
989                        status.infobar = 0;
990                        status.infobaraktiv = 0;
991                        clearscreen(infobar);
992                        screenrectimer();
993                        drawscreen(skin, 0, 0);
994                        status.infobaraktiv = 1;
995                        subtitlepause(0);
996                        resettvpic();
997                        continue;
998                }
999                if(rcret == getrcconfigint("rcepg", NULL))
1000                {
1001                        subtitlepause(1);
1002                        status.infobar = 0;
1003                        status.infobaraktiv = 0;
1004                        clearscreen(infobar);
1005                        epgchoice(NULL);
1006                        drawscreen(skin, 0, 0);
1007                        status.infobaraktiv = 1;
1008                        subtitlepause(0);
1009                        continue;
1010                }
1011                if(rcret == getrcconfigint("rcresolution", NULL) || rcret == getrcconfigint("rcresolution1", NULL))
1012                {
1013                        subtitlepause(1);
1014                        status.infobar = 0;
1015                        clearscreen(infobar);
1016                        switchvideomode();
1017                        drawscreen(skin, 0, 0);
1018                        subtitlepause(0);
1019                        continue;
1020                }
1021                if(rcret == getrcconfigint("rcinfo", NULL))
1022                {
1023                        if(status.infobar == 1)
1024                        {
1025                                if(getconfigint("secondinfobar", NULL) == 2)
1026                                {
1027                                        clearscreen(infobar);
1028                                        epgchoice(NULL);
1029                                        status.infobar = 0;
1030                                        drawscreen(skin, 0, 0);
1031                                        subtitlepause(0);
1032                                }
1033                                else if(getconfigint("secondinfobar", NULL) == 3)
1034                                {
1035                                        clearscreen(infobar);
1036                                        screenepg(NULL, NULL, 0);
1037                                        status.infobar = 0;
1038                                        drawscreen(skin, 0, 0);
1039                                        subtitlepause(0);
1040                                }
1041                                else if(getconfigint("secondinfobar", NULL) == 0 || infobar2 == status.skinerr || infobar == infobar2)
1042                                {
1043                                        if(infobarm != infobar) {
1044                                                clearscreen(infobar);
1045                                                infobar = infobarm;
1046                                        }
1047                                        clearscreen(infobar);
1048                                        status.infobar = 0;
1049                                        drawscreen(skin, 0, 0);
1050                                        subtitlepause(0);
1051                                }
1052                                else
1053                                {
1054                                        infobar = infobar2;
1055                                        drawscreen(infobar, 0, 0);
1056                                }
1057                        }
1058                        else
1059                        {
1060                                subtitlepause(1);
1061                                status.infobar = 1;
1062                                infobar = infobar1;
1063                                drawscreen(infobar, 0, 4);
1064                        }
1065                        continue;
1066                }
1067                if(rcret == getrcconfigint("rcpower", NULL))
1068                {
1069                        subtitlepause(1);
1070                        status.infobar = 0;
1071                        status.infobaraktiv = 0;
1072                        clearscreen(infobar);
1073                        drawscreen(skin, 0, 0);
1074                        switch(getconfigint("poweraktion", NULL))
1075                        {
1076                                case 1: //power off
1077                                        oshutdown(1, 1);
1078                                        break;
1079                                case 2: //standby
1080                                        status.standby = 1;
1081                                        break;
1082                                case 3: //restart
1083                                        oshutdown(2, 1);
1084                                        break;
1085                                case 4: //Gui restart
1086                                        oshutdown(3, 1);
1087                                        break;
1088                                default:
1089                                        standbymenu = getscreen("standbymenu");
1090                                        menu(standbymenu, 1);
1091                                        break;
1092                        }
1093                        status.updatevfd = START;
1094                        drawscreen(skin, 0, 0);
1095                        status.infobaraktiv = 1;
1096                        subtitlepause(0);
1097                        continue;
1098                }
1099                if(rcret == getrcconfigint("rcfrontpower", NULL))
1100                {
1101                        subtitlepause(1);
1102                        status.infobar = 0;
1103                        status.infobaraktiv = 0;
1104                        clearscreen(infobar);
1105                        drawscreen(skin, 0, 0);
1106                        switch(getconfigint("frontpoweraktion", NULL))
1107                        {
1108                                case 1: //power off
1109                                        oshutdown(1, 1);
1110                                        break;
1111                                case 2: //standby
1112                                        status.standby = 1;
1113                                        break;
1114                                case 3: //restart
1115                                        oshutdown(2, 1);
1116                                        break;
1117                                case 4: //Gui restart
1118                                        oshutdown(3, 1);
1119                                        break;
1120                                default:
1121                                        status.standby = 1;
1122                                        break;
1123                        }
1124                        status.updatevfd = START;
1125                        drawscreen(skin, 0, 0);
1126                        status.infobaraktiv = 1;
1127                        subtitlepause(0);
1128                        continue;
1129                }
1130                if(rcret == getrcconfigint("rcrecall", NULL) || rcret == getrcconfigint("rcexit", NULL))
1131                {
1132                        subtitlepause(1);
1133                        clearscreen(infobar);
1134                        drawscreen(skin, 0, 0);
1135                        screenchannelhistory();
1136                        infobartimeout = 0;
1137                        infobar = infobar1;
1138                        if(status.infobar == 0)
1139                                drawscreen(infobar, 0, 4);
1140                        else
1141                                drawscreen(infobar, 0, 0);
1142                        status.infobar = 1;
1143                        continue;
1144                }
1145                if(rcret == getrcconfigint("rc0", NULL))
1146                {
1147                        subtitlepause(1);
1148                        clearscreen(infobar);
1149                        drawscreen(skin, 0, 0);
1150                        if(status.lastservice->channel != NULL)
1151                        {
1152                                tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
1153                                servicecheckret(servicestart(status.lastservice->channel, tmpstr, NULL, 0), 0);
1154                                free(tmpstr); tmpstr = NULL;
1155                        }
1156                        infobartimeout = 0;
1157                        infobar = infobar1;
1158                        if(status.infobar == 0)
1159                                drawscreen(infobar, 0, 4);
1160                        else
1161                                drawscreen(infobar, 0, 0);
1162                        status.infobar = 1;
1163                        continue;
1164                }
1165                if(rcret == getrcconfigint("rcchup", NULL) || (status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcdown", NULL)))
1166                {
1167                        subtitlepause(1);
1168                        if(status.crosscontrol > 1 && status.virtualzap == 0 && rcret == getrcconfigint("rcdown", NULL))
1169                        {
1170                                status.virtualzap = status.crosscontrol - 1;
1171                                zapup();
1172                                status.virtualzap = 0;
1173                        }
1174                        else
1175                                zapup();
1176                        clearscreen(infobar);
1177                        drawscreen(skin, 0, 0);
1178                        if(status.pipzap == 0)
1179                        {       
1180                                infobartimeout = 0;
1181                                status.infobar = 2;
1182                        }
1183                        continue;
1184                }
1185                if(rcret == getrcconfigint("rcchdown", NULL) || (status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcup", NULL)))
1186                {
1187                        subtitlepause(1);
1188                        if(status.crosscontrol > 1 && status.virtualzap == 0 && rcret == getrcconfigint("rcup", NULL))
1189                        {
1190                                status.virtualzap = status.crosscontrol - 1;
1191                                zapdown();
1192                                status.virtualzap = 0;
1193                        }
1194                        else
1195                                zapdown();
1196                        clearscreen(infobar);
1197                        drawscreen(skin, 0, 0);
1198                        if(status.pipzap == 0)
1199                        {       
1200                                infobartimeout = 0;
1201                                status.infobar = 2;
1202                        }
1203                        continue;
1204                }
1205                if(rcret == rcnumber(rcret))
1206                {
1207                        subtitlepause(1);
1208                        clearscreen(infobar);
1209                        screenchannelbynr(rcret);
1210                        status.infobar = 2;
1211                        continue;
1212                }
1213                //show infobar on program switch (only tv)
1214                if(status.infobarprogram == 1 && status.infobar == 0 && status.servicetype == 0)
1215                {
1216                        time_t akttime = time(NULL);
1217                        //show infobar only all 60 sec
1218                        if(lasttime < akttime)
1219                        {
1220                                struct epg* tmpepg = getepgakt(status.aktservice->channel);
1221                                if(tmpepg != NULL && akttime - 1 <= tmpepg->starttime && akttime + 1 >= tmpepg->starttime)
1222                                {
1223                                        lasttime = akttime + 10;
1224                                        infobartimeout = 0;
1225                                        subtitlepause(1);
1226                                        status.infobar = 1;
1227                                        infobar = infobar1;
1228                                        drawscreen(infobar, 0, 4);
1229                                        continue;
1230                                }
1231                        }
1232                }
1233                // pip atemio7600 ??
1234                //if((rcret == getrcconfigint("rcpip", NULL) || rcret == getrcconfigint("rcpiprec", NULL)) && (checkchipset("BCM7424") == 1 || checkbox("ATEMIO6200") == 1 || checkbox("UFS922") == 1 || checkbox("UFS913") == 1 || checkbox("DM900") == 1 || checkbox("DM520") == 1 || checkbox("DM525") == 1))
1235                if((rcret == getrcconfigint("rcpip", NULL) || rcret == getrcconfigint("rcpiprec", NULL)) && status.videodevs > 1)       
1236                {
1237                        if(status.pipservice->videodev == NULL)
1238                        {
1239                                printf("---------> %i\n",rcret);
1240                                if(status.recording > 0 && rcret == getrcconfigint("rcpiprec", NULL))
1241                                {
1242                                        int i;
1243                                        for(i = 0; i < 9; i++)
1244                                        {
1245                                                if(status.recchnode[i] != NULL)
1246                                                {
1247                                                        pipchannel = status.recchnode[i];
1248                                                        break;
1249                                                }
1250                                        }
1251                                }
1252                                else if(rcret == getrcconfigint("rcpiprec", NULL))
1253                                        textbox(_("Message"), _("no record channel found"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0);
1254                                else   
1255                                        pipchannel = status.aktservice->channel;
1256                                printf("++++ RC: %i\n",pipstart(pipchannel, NULL, 0));
1257                                pipchannel = NULL;
1258                        }
1259                }
1260       
1261                if(rcret == getrcconfigint("rchdmi", NULL))
1262                {
1263                        char *value = NULL;
1264                        value = readsys("/proc/stb/hdmi-rx/0/hdmi_rx_monitor", 1);
1265                        if(value != NULL)
1266                        {
1267                                if(ostrstr(value, "off") != NULL)
1268                                {
1269                                        writesys("/proc/stb/video/videomode", "720p", 1);
1270                                        writesys("/proc/stb/audio/hdmi_rx_monitor", "on", 1);
1271                                        writesys("/proc/stb/hdmi-rx/0/hdmi_rx_monitor", "on", 1);
1272                                }
1273                                else
1274                                {
1275                                        writesys("/proc/stb/audio/hdmi_rx_monitor", "off", 1);
1276                                        writesys("/proc/stb/hdmi-rx/0/hdmi_rx_monitor", "off", 1);
1277                                        setvideomode(getconfig("av_videomode", NULL), 0);
1278                                }
1279                        }
1280                        free(value); value=NULL;
1281                }
1282               
1283                if(rcret == RCTIMEOUT && mark == 0)
1284                {
1285                        if(getconfigint("infobartimeout", NULL) > infobartimeout)
1286                        {
1287                                //clearscreen(infobar);
1288                                drawscreen(infobar, 0, 0);
1289                        }
1290                        else
1291                        {
1292                                clearscreen(infobar);
1293                                if(infobarm != infobar) {
1294                                        infobar = infobarm;
1295                                        clearscreen(infobar);
1296                                }
1297                                status.infobar = 0;
1298                                drawscreen(skin, 0, 0);
1299                                subtitlepause(0);
1300                        }
1301                }
1302        }
1303}
1304
1305#endif
Note: See TracBrowser for help on using the repository browser.