source: titan/titan/infobar.h @ 27983

Last change on this file since 27983 was 27983, checked in by obi, 9 years ago

fix

File size: 22.1 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        int playpic = 0;
8        struct skin* playinfobarpic = getscreen("playinfobarpic");
9        struct skin* infobar1 = getscreen("infobar");
10        struct skin* infobar2 = getscreen("infobar2");
11        struct skin* infobar = infobar1;
12        struct skin* infobarm = infobar1;
13        struct skin* standbymenu = NULL;
14        char* tmpstr = NULL; char* tmpnr = NULL;
15        struct skin* pluginnode = NULL;
16        void (*startplugin)(void);
17        time_t lasttime = 0;
18        int mark = 0;
19
20        status.mute = 0;
21        status.infobar = 2;
22
23        addrc(getrcconfigint("rcvolup", NULL), screenvolumeup, NULL, NULL);
24        addrc(getrcconfigint("rcvoldown", NULL), screenvolumedown, NULL, NULL);
25        addrc(getrcconfigint("rcmute", NULL), screenmute, NULL, NULL);
26
27        status.infobaraktiv = 1;
28        status.mcaktiv = 0;
29       
30        int playinfobarcount = 0, playinfobarstatus = 0;
31       
32        while(1)
33        {
34                mark = 0;
35
36                if(status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcright", NULL))
37                        writerc(getrcconfigint("rcvolup", NULL));
38                if(status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcleft", NULL))
39                        writerc(getrcconfigint("rcvoldown", NULL));
40
41                //check if mediadb can freed
42                if(status.mediadbthread == NULL)
43                {
44                        if(status.writemediadb == 1)
45                                writemediadb(getconfig("mediadbfile", NULL), NULL);
46                        freemediadb(0);
47                }
48                //check if picmem times out and must freed
49                if(time(NULL) > status.picmemtimeout + 60)
50                {
51                        checkpictimeout();
52                        status.picmemtimeout = time(NULL);
53                }
54
55                if(status.standby == 1)
56                        screenstandby();
57                if(status.infobar == 1 )
58                {
59                        rcret = waitrc(infobar, 1000, 0);
60                        infobartimeout++;
61                }
62                else if(status.infobar == 0 && status.timeshift == 1)
63                {
64                        rcret = waitrc(infobar, 1000, 0);
65                        if(rcret == RCTIMEOUT)
66                        {
67                                if(playpic == 1) {
68//it anymore needed
69//                                      if (checkbox("ATEMIO5000") != 1)
70                                                clearscreen(playinfobarpic);
71                                        drawscreen(playinfobarpic, 0, 0);
72                                }
73                                else
74                                        timeshiftinfobar(&playinfobarstatus, &playinfobarcount);
75                                continue;
76                        }
77                }
78                else if(status.infobar == 2)
79                {
80                        if(getconfigint("infobarsleep", NULL) > 0)
81                                rcret = waitrc(infobar, getconfigint("infobarsleep", NULL) * 1000, 0);
82                        else if(first == 1) //only on first start wait a little for epg
83                        {
84                                first = 0;
85                                rcret = waitrc(infobar, 1000, 0);
86                        }
87                        else
88                                rcret = RCTIMEOUT;
89
90                        if(rcret == RCTIMEOUT)
91                        {
92                                status.infobar = 1;
93                                infobar = infobar1;
94                                drawscreen(infobar, 0, 4);
95                                continue;
96                        }
97                        else
98                                status.infobar = 0;
99                }
100                else
101                {
102                        int screensaver_delay = getconfigint("screensaver_delay", NULL);
103                        rcret = 0; count = 0; rcwait = 1000;
104                        if(status.servicetype == 1 && getconfigint("screensaver", NULL) == 1)
105                        {
106                                initscreensaver();
107                                if(screensaver != NULL) screensaver->flag = 1;
108                        }
109                        if(screensaver == NULL)
110                        {
111                                if(status.infobarprogram == 1) rcwait = 2000;
112                                else rcwait = 0;
113                        }
114                        while(rcret == 0 || rcret == RCTIMEOUT)
115                        {
116                                rcret = waitrc(infobar, rcwait, 0);
117                                count++;
118                                if(screensaver == NULL && status.infobarprogram == 1 && (rcret == 0 || rcret == RCTIMEOUT))
119                                {
120                                        infobartimeout = 99999;
121                                        mark = 1;
122                                        break;
123                                }
124                                if(rcret == RCTIMEOUT && screensaver != NULL && count > screensaver_delay)
125                                {
126                                        if(status.aktservice->channel != NULL)
127                                                screensaver->value = ostrcat(status.aktservice->channel->name, NULL, 0, 0);
128                                        else
129                                                screensaver->value = ostrcat("Radio", NULL, 0, 0);
130                                        showscreensaver();
131                                        free(screensaver->value);
132                                        rcwait = screensaver->speed;
133                                }
134                        }
135                        if(screensaver != NULL) screensaver->flag = 0;
136                        deinitscreensaver();
137                        if(mark == 0)
138                        {
139                                drawscreen(skin, 0, 0);
140                                infobartimeout = 0;
141                        }
142                }
143
144                if(rcret == getrcconfigint("rcpause", NULL) || ((checkbox("ATEMIO520") == 1 || checkbox("ATEMIO530") == 1 || checkbox("ATEMIO5000") == 1) && rcret == getrcconfigint("rcplay", NULL) && status.pause == 0 && status.slowspeed == 0 && status.playspeed == 0 && ostrcmp(getconfig("remotecontrol", NULL), "0") == 0))
145                {
146                        //timeshift
147                        if(playpic == 1) {
148                                clearscreen(playinfobarpic);
149                                playpic = 0;
150                        }
151                        if(status.timeshift == 1 && (status.playing == 0 || status.slowspeed != 0 || status.playspeed != 0 || status.pause != 0))
152                        {
153                                if(status.timeshifttype == 1 && status.timeshiftpos == 0)
154                                {
155                                        timeshiftpause(0);
156                                        timeshiftinfobar(&playinfobarstatus, &playinfobarcount);
157                                }
158                                else
159                                        timeshiftplay(&playinfobarstatus, &playinfobarcount);
160                        }
161                        else
162                        {
163                                if(status.timeshift == 1)
164                                        playpic = 2;
165                                else
166                                        playpic = 0;
167                                timeshiftpause(0);
168                                timeshiftinfobar(&playinfobarstatus, &playinfobarcount);
169                                if(playpic == 0) {
170                                        drawscreen(playinfobarpic, 0, 0);
171                                        playpic = 1;
172                                }
173                        }
174                       
175                        continue;
176                }
177                if(status.timeshift == 1)
178                {
179                        if(rcret == getrcconfigint("rcstop", NULL))
180                        {
181                                if(playpic == 1) {
182                                        clearscreen(playinfobarpic);
183                                        playpic = 0;
184                                }               
185                                timeshiftstop(0);
186                                continue;
187                        }
188                        if(rcret == getrcconfigint("rcplay", NULL))
189                        {
190                                if(playpic == 1) {
191                                        clearscreen(playinfobarpic);
192                                        playpic = 0;
193                                }               
194                                if(((checkbox("ATEMIO520") != 1 && checkbox("ATEMIO530") != 1 && checkbox("ATEMIO5000") != 1) || ostrcmp(getconfig("remotecontrol", NULL), "1") == 1)  && status.timeshifttype == 1)
195                                {
196                                        if(status.playing == 0 || (status.playspeed == 0 && status.slowspeed == 0 && status.pause == 0))
197                                        {
198                                                subtitlepause(1);
199                                                status.infobar = 0;
200                                                status.infobaraktiv = 0;
201                                                clearscreen(infobar);
202                                                screenplay(NULL, NULL, 1, 0);
203                                                status.infobaraktiv = 1;
204                                                status.updatevfd = START;
205                                                drawscreen(skin, 0, 0);
206                                                subtitlepause(0);
207                                                continue;
208                                        }
209                                }
210                                timeshiftplay(&playinfobarstatus, &playinfobarcount);
211                                continue;
212                        }
213                        if(status.timeshifttype == 1 && status.playing == 0)
214                        {
215                                if(rcret == getrcconfigint("rcff", NULL) || (getconfig("timeshiftnumkeys", NULL) == 0 && (rcret == getrcconfigint("rc3", NULL) || rcret == getrcconfigint("rc6", NULL) || rcret == getrcconfigint("rc9", NULL))))
216                                {
217                                        struct service* snode = getservice(RECORDTIMESHIFT, 0);
218                                        if(snode != NULL)
219                                        {
220                                                status.playercan = 0x7FFF;
221                                                playinfobarstatus = 1;
222                                                playinfobarcount = 0;
223                                                screenplayinfobar(snode->recname, NULL, 0, 1, 5);
224                                        }
225                                        continue;
226                                }
227                                if(rcret == getrcconfigint("rcfr", NULL))
228                                {
229                                        timeshiftposplay(&playinfobarstatus, &playinfobarcount);
230                                        if(status.playing == 1)
231                                                playrcfr(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
232                                        continue;
233                                }
234                                if(getconfig("timeshiftnumkeys", NULL) == 0)
235                                {
236                                        if(rcret == getrcconfigint("rc1", NULL))
237                                        {
238                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
239                                                if(status.playing == 1)
240                                                        playrcjumpr(status.playfile, NULL, getconfigint("skip13", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
241                                                continue;
242                                        }
243                                        if(rcret == getrcconfigint("rc4", NULL))
244                                        {
245                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
246                                                if(status.playing == 1)
247                                                        playrcjumpr(status.playfile, NULL, getconfigint("skip46", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
248                                                continue;
249                                        }
250                                        if(rcret == getrcconfigint("rc7", NULL))
251                                        {
252                                                timeshiftposplay(&playinfobarstatus, &playinfobarcount);
253                                                if(status.playing == 1)
254                                                        playrcjumpr(status.playfile, NULL, getconfigint("skip79", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
255                                                continue;
256                                        }
257                                }
258                        }
259                        if(status.playing == 1)
260                        {
261                                if(rcret == getrcconfigint("rcff", NULL))
262                                {
263                                        playrcff(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
264                                        continue;
265                                }
266                                if(rcret == getrcconfigint("rcfr", NULL))
267                                {
268                                        playrcfr(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
269                                        continue;
270                                }
271                                if(rcret == getrcconfigint("rc3", NULL))
272                                {
273                                        playrcjumpf(status.playfile, NULL, getconfigint("skip13", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
274                                        continue;
275                                }
276                                if(rcret == getrcconfigint("rc6", NULL))
277                                {
278                                        playrcjumpf(status.playfile, NULL, getconfigint("skip46", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
279                                        continue;
280                                }
281                                if(rcret == getrcconfigint("rc9", NULL))
282                                {                               
283                                        playrcjumpf(status.playfile, NULL, getconfigint("skip79", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
284                                        continue;
285                                }       
286                                if(rcret == getrcconfigint("rc1", NULL))
287                                {
288                                        playrcjumpr(status.playfile, NULL, getconfigint("skip13", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
289                                        continue;
290                                }
291                                if(rcret == getrcconfigint("rc4", NULL))
292                                {
293                                        playrcjumpr(status.playfile, NULL, getconfigint("skip46", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
294                                        continue;
295                                }
296                                if(rcret == getrcconfigint("rc7", NULL))
297                                {
298                                        playrcjumpr(status.playfile, NULL, getconfigint("skip79", NULL), &playinfobarstatus, &playinfobarcount, 1, 4);
299                                        continue;
300                                }
301                                if(status.timeshifttype == 0 && rcret == getrcconfigint("rcinfo", NULL))
302                                {
303                                        playrcinfo(status.playfile, NULL, &playinfobarstatus, &playinfobarcount, 1, 4);
304                                        continue;       
305                                }
306                        }
307                }
308                if(rcret == getrcconfigint("rcstop", NULL) && status.recording > 0)
309                {
310                        subtitlepause(1);
311                        status.infobar = 0;
312                        clearscreen(infobar);
313                        screenrecordstop();
314                        status.updatevfd = START;
315                        drawscreen(skin, 0, 0);
316                        subtitlepause(0);
317                        continue;
318                }
319                if(rcret == getrcconfigint("rcblue", NULL) && getconfig("bluekey", NULL) == NULL)
320                        rcret = getrcconfigint("rctvradio", NULL);
321                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))))
322                {
323                        int tmpservicetype = status.servicetype;
324                        status.infobaraktiv = 0;
325                        subtitlepause(1);
326                        clearscreen(infobar);
327                        if(rcret == getrcconfigint("rctvradio", NULL))
328                        {
329                                if(status.servicetype == 0)
330                                        status.servicetype = 1;
331                                else
332                                        status.servicetype = 0;
333                        }
334
335                        if(rcret == getrcconfigint("rctv", NULL))
336                                status.servicetype = 0;
337                        if(rcret == getrcconfigint("rcradio", NULL))
338                                status.servicetype = 1;
339
340                        drawscreen(skin, 0, 0);
341                        if(rcret == getrcconfigint("rcfav", NULL))     
342                                ret = screenchannellist(NULL, NULL, 2);
343                        else
344                                ret = screenchannellist(NULL, NULL, 0);
345                        if(ret >= 20 || ret < 0)
346                                status.servicetype = tmpservicetype;
347                        drawscreen(skin, 0, 0);
348                        status.infobaraktiv = 1;
349                        status.infobar = 2;
350                        infobartimeout = 0;
351                        continue;
352                }
353                if(rcret == getrcconfigint("rcexit", NULL))
354                {
355                        if(status.timeshift == 1 && status.playing == 1)
356                                screenplayinfobar(NULL, NULL, 1, 1, 4);
357                        subtitlepause(1);
358                        status.infobar = 0;
359                        clearscreen(infobar);
360                        if(infobarm != infobar) {
361                                infobar = infobarm;
362                                clearscreen(infobar);
363                        }
364                        drawscreen(skin, 0, 0);
365                        subtitlepause(0);
366                        continue;
367                }
368                if(rcret == getrcconfigint("rctext", NULL))
369                {
370                        if(status.aktservice->channel != NULL && status.aktservice->channel->txtpid > 0)
371                        {
372                                subtitlepause(1);
373                                status.infobar = 0;
374                                status.sec = 0;
375                                clearscreen(infobar);
376                                tmpstr = ostrcat(getconfig("tuxtxtfile", NULL), " ", 0, 0);
377                                tmpnr = oitoa(status.aktservice->channel->txtpid);
378                                tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
379       
380                                if(status.aktservice->fedev != NULL)
381                                {
382                                        tmpnr = oitoa(status.aktservice->fedev->devnr);
383                                        tmpstr = ostrcat(tmpstr, " ", 1, 0);
384                                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
385                                }
386       
387                                drawscreen(skin, 0, 0);
388                                status.tuxtxt = 1;
389                                system(tmpstr);
390                                status.tuxtxt = 0;
391                                free(tmpstr); tmpstr = NULL; tmpnr = NULL;
392                                drawscreen(skin, 0, 0);
393                                subtitlepause(0);
394                        }
395                        continue;
396                }
397                if(rcret == getrcconfigint("rcrecord", NULL))
398                {
399                        subtitlepause(1);
400                        status.infobar = 0;
401                        clearscreen(infobar);
402                        screenrecorddirect();
403                        status.updatevfd = START;
404                        drawscreen(skin, 0, 0);
405                        subtitlepause(0);
406                        continue;
407                }
408                if((status.timeshift == 0 && rcret == getrcconfigint("rcplay", NULL)) || rcret == getrcconfigint("rcarchive", NULL) || rcret == getrcconfigint("rcwebplay", NULL))
409                {
410                        subtitlepause(1);
411                        status.infobar = 0;
412                        status.infobaraktiv = 0;
413                        clearscreen(infobar);
414                        screenplay(NULL, NULL, 1, 0);
415                        status.infobaraktiv = 1;
416                        status.updatevfd = START;
417                        drawscreen(skin, 0, 0);
418                        subtitlepause(0);
419                        continue;
420                }
421                if(rcret == getrcconfigint("rcshoot", NULL))
422                {
423                        subtitlepause(1);
424                        status.infobar = 0;
425                        status.infobaraktiv = 0;
426                        clearscreen(infobar);
427                        screenshoot(0);
428                        status.infobaraktiv = 1;
429                        status.updatevfd = START;
430                        drawscreen(skin, 0, 0);
431                        subtitlepause(0);
432                        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);
433                        continue;
434                }
435
436                if(rcret == getrcconfigint("rcplugin", NULL))
437                {
438                        subtitlepause(1);
439                        status.infobar = 0;
440                        clearscreen(infobar);
441                        screenkeyactions(2, 0);
442                        status.updatevfd = START;
443                        drawscreen(skin, 0, 0);
444                        subtitlepause(0);
445                        continue;
446                }
447                if(rcret == getrcconfigint("rcred", NULL))
448                {
449                        subtitlepause(1);
450                        status.infobar = 0;
451                        status.infobaraktiv = 0;
452                        clearscreen(infobar);
453                        screenkeyactions(1, 0);
454                        status.infobaraktiv = 1;
455                        status.updatevfd = START;
456                        drawscreen(skin, 0, 0);
457                        subtitlepause(0);
458                        continue;
459                }
460                if(rcret == getrcconfigint("rcgreen", NULL))
461                {
462                        subtitlepause(1);
463                        status.infobar = 0;
464                        clearscreen(infobar);
465                        screenvideomode(0);
466                        drawscreen(skin, 0, 0);
467                        subtitlepause(0);
468                        continue;
469                }
470                if(rcret == getrcconfigint("rcsubchannel", NULL))
471                {
472                        subtitlepause(1);
473                        status.infobar = 0;
474                        clearscreen(infobar);
475                        screenlinkedchannel();
476                        drawscreen(skin, 0, 0);
477                        subtitlepause(0);
478                        continue;
479                }
480                if(rcret == getrcconfigint("rcsleep", NULL))
481                {
482                        subtitlepause(1);
483                        status.infobar = 0;
484                        clearscreen(infobar);
485                        screenpowerofftimer();
486                        drawscreen(skin, 0, 0);
487                        subtitlepause(0);
488                        continue;
489                }
490                if(rcret == getrcconfigint("rcsubtitel", NULL))
491                {
492                        subtitlepause(1);
493                        status.infobar = 0;
494                        clearscreen(infobar);
495                        screensubtitle();
496                        drawscreen(skin, 0, 0);
497                        subtitlepause(0);
498                        continue;
499                }
500                if(rcret == getrcconfigint("rcyellow", NULL) || rcret == getrcconfigint("rcaudio", NULL))
501                {
502                        subtitlepause(1);
503                        status.infobar = 0;
504                        clearscreen(infobar);
505                        screenaudiotrack();
506                        drawscreen(skin, 0, 0);
507                        subtitlepause(0);
508                        continue;
509                }
510                if(rcret == getrcconfigint("rcblue", NULL))
511                {
512                        subtitlepause(1);
513                        status.infobar = 0;
514                        clearscreen(infobar);
515                        screenkeyactions(0, 0);
516                        status.updatevfd = START;
517                        drawscreen(skin, 0, 0);
518                        subtitlepause(0);
519                        continue;
520                }
521                if(rcret == getrcconfigint("rchbbtv", NULL) && status.aktservice->channel != NULL && status.aktservice->channel->hbbtvurl != NULL)
522                {
523                        subtitlepause(1);
524                        status.infobar = 0;
525                        clearscreen(infobar);
526
527                        pluginnode = getplugin("hbbtv Browser");
528                        if(pluginnode != NULL)
529                        {
530                                startplugin = dlsym(pluginnode->pluginhandle, "starturl");
531                                if(startplugin != NULL)
532                                        startplugin();
533                        }
534
535                        status.updatevfd = START;
536                        drawscreen(skin, 0, 0);
537                        subtitlepause(0);
538                        continue;
539                }
540                if(rcret == getrcconfigint("rcwww", NULL))
541                {
542                        subtitlepause(1);
543                        status.infobar = 0;
544                        clearscreen(infobar);
545                       
546                        pluginnode = getplugin("Internet Browser");
547                        if(pluginnode != NULL)
548                        {
549                                startplugin = dlsym(pluginnode->pluginhandle, "screenbrowser");
550                                if(startplugin != NULL)
551                                        startplugin();
552                        }
553                        else
554                                textbox(_("Message"), _("Internet Browser Plugin not installed !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 10, 0);
555                }
556                if(rcret == getrcconfigint("rcmedia", NULL))
557                {
558                        struct skin* pluginnode = getplugin("Media Center");
559                        void (*startplugin)(void);
560                        status.infobaraktiv = 0;
561                        subtitlepause(1);
562                        status.infobar = 0;
563                        clearscreen(infobar);
564                        if(pluginnode != NULL)
565                        {
566                                startplugin = dlsym(pluginnode->pluginhandle, "start");
567                                if(startplugin != NULL)
568                                startplugin();
569                        }
570                        status.infobaraktiv = 1;
571                        drawscreen(skin, 0, 0);
572                        subtitlepause(0);
573                        continue;
574                }
575                if(rcret == getrcconfigint("rcmenu", NULL))
576                {
577                        subtitlepause(1);
578                        status.infobar = 0;
579                        status.infobaraktiv = 0;
580                        clearscreen(infobar);
581                        menu(getscreen("mainmenu"), 1);
582                        status.menurelease = 0;
583                        status.updatevfd = START;
584                        status.infobaraktiv = 1;
585                        drawscreen(skin, 0, 0);
586                        subtitlepause(0);
587                        continue;
588                }
589                if(rcret == getrcconfigint("rctimer", NULL))
590                {
591                        subtitlepause(1);
592                        status.infobar = 0;
593                        status.infobaraktiv = 0;
594                        clearscreen(infobar);
595                        screenrectimer();
596                        drawscreen(skin, 0, 0);
597                        status.infobaraktiv = 1;
598                        subtitlepause(0);
599                        continue;
600                }
601                if(rcret == getrcconfigint("rcepg", NULL))
602                {
603                        subtitlepause(1);
604                        status.infobar = 0;
605                        status.infobaraktiv = 0;
606                        clearscreen(infobar);
607                        epgchoice(NULL);
608                        drawscreen(skin, 0, 0);
609                        status.infobaraktiv = 1;
610                        subtitlepause(0);
611                        continue;
612                }
613                if(rcret == getrcconfigint("rcresolution", NULL) || rcret == getrcconfigint("rcresolution1", NULL))
614                {
615                        subtitlepause(1);
616                        status.infobar = 0;
617                        clearscreen(infobar);
618                        switchvideomode();
619                        drawscreen(skin, 0, 0);
620                        subtitlepause(0);
621                        continue;
622                }
623                if(rcret == getrcconfigint("rcinfo", NULL))
624                {
625                        if(status.infobar == 1)
626                        {
627                                if(getconfigint("secondinfobar", NULL) == 2)
628                                {
629                                        clearscreen(infobar);
630                                        epgchoice(NULL);
631                                        status.infobar = 0;
632                                        drawscreen(skin, 0, 0);
633                                        subtitlepause(0);
634                                }
635                                else if(getconfigint("secondinfobar", NULL) == 3)
636                                {
637                                        clearscreen(infobar);
638                                        screenepg(NULL, NULL, 0);
639                                        status.infobar = 0;
640                                        drawscreen(skin, 0, 0);
641                                        subtitlepause(0);
642                                }
643                                else if(getconfigint("secondinfobar", NULL) == 0 || infobar2 == status.skinerr || infobar == infobar2)
644                                {
645                                        if(infobarm != infobar) {
646                                                clearscreen(infobar);
647                                                infobar = infobarm;
648                                        }
649                                        clearscreen(infobar);
650                                        status.infobar = 0;
651                                        drawscreen(skin, 0, 0);
652                                        subtitlepause(0);
653                                }
654                                else
655                                {
656                                        infobar = infobar2;
657                                        drawscreen(infobar, 0, 0);
658                                }
659                        }
660                        else
661                        {
662                                subtitlepause(1);
663                                status.infobar = 1;
664                                infobar = infobar1;
665                                drawscreen(infobar, 0, 4);
666                        }
667                        continue;
668                }
669                if(rcret == getrcconfigint("rcpower", NULL))
670                {
671                        subtitlepause(1);
672                        status.infobar = 0;
673                        status.infobaraktiv = 0;
674                        clearscreen(infobar);
675                        drawscreen(skin, 0, 0);
676                        switch(getconfigint("poweraktion", NULL))
677                        {
678                                case 1: //power off
679                                        oshutdown(1, 1);
680                                        break;
681                                case 2: //standby
682                                        status.standby = 1;
683                                        break;
684                                case 3: //restart
685                                        oshutdown(2, 1);
686                                        break;
687                                case 4: //Gui restart
688                                        oshutdown(3, 1);
689                                        break;
690                                default:
691                                        standbymenu = getscreen("standbymenu");
692                                        menu(standbymenu, 1);
693                                        break;
694                        }
695                        status.updatevfd = START;
696                        drawscreen(skin, 0, 0);
697                        status.infobaraktiv = 1;
698                        subtitlepause(0);
699                        continue;
700                }
701                if(rcret == getrcconfigint("rcrecall", NULL))
702                {
703                        subtitlepause(1);
704                        clearscreen(infobar);
705                        drawscreen(skin, 0, 0);
706                        screenchannelhistory();
707                        infobartimeout = 0;
708                        infobar = infobar1;
709                        if(status.infobar == 0)
710                                drawscreen(infobar, 0, 4);
711                        else
712                                drawscreen(infobar, 0, 0);
713                        status.infobar = 1;
714                        continue;
715                }
716                if(rcret == getrcconfigint("rc0", NULL))
717                {
718                        subtitlepause(1);
719                        clearscreen(infobar);
720                        drawscreen(skin, 0, 0);
721                        if(status.lastservice->channel != NULL)
722                        {
723                                tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
724                                servicecheckret(servicestart(status.lastservice->channel, tmpstr, NULL, 0), 0);
725                                free(tmpstr); tmpstr = NULL;
726                        }
727                        infobartimeout = 0;
728                        infobar = infobar1;
729                        if(status.infobar == 0)
730                                drawscreen(infobar, 0, 4);
731                        else
732                                drawscreen(infobar, 0, 0);
733                        status.infobar = 1;
734                        continue;
735                }
736                if(rcret == getrcconfigint("rcchup", NULL) || (status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcdown", NULL)))
737                {
738                        subtitlepause(1);
739                        if(status.crosscontrol > 1 && status.virtualzap == 0 && rcret == getrcconfigint("rcdown", NULL))
740                        {
741                                status.virtualzap = status.crosscontrol - 1;
742                                zapup();
743                                status.virtualzap = 0;
744                        }
745                        else
746                                zapup();
747                        clearscreen(infobar);
748                        drawscreen(skin, 0, 0);
749                        infobartimeout = 0;
750                        status.infobar = 2;
751                        continue;
752                }
753                if(rcret == getrcconfigint("rcchdown", NULL) || (status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcup", NULL)))
754                {
755                        subtitlepause(1);
756                        if(status.crosscontrol > 1 && status.virtualzap == 0 && rcret == getrcconfigint("rcup", NULL))
757                        {
758                                status.virtualzap = status.crosscontrol - 1;
759                                zapdown();
760                                status.virtualzap = 0;
761                        }
762                        else
763                                zapdown();
764                        clearscreen(infobar);
765                        drawscreen(skin, 0, 0);
766                        infobartimeout = 0;
767                        status.infobar = 2;
768                        continue;
769                }
770                if(rcret == rcnumber(rcret))
771                {
772                        subtitlepause(1);
773                        clearscreen(infobar);
774                        screenchannelbynr(rcret);
775                        status.infobar = 2;
776                        continue;
777                }
778                //show infobar on program switch (only tv)
779                if(status.infobarprogram == 1 && status.infobar == 0 && status.servicetype == 0)
780                {
781                        time_t akttime = time(NULL);
782                        //show infobar only all 60 sec
783                        if(lasttime < akttime)
784                        {
785                                struct epg* tmpepg = getepgakt(status.aktservice->channel);
786                                if(tmpepg != NULL && akttime - 1 <= tmpepg->starttime && akttime + 1 >= tmpepg->starttime)
787                                {
788                                        lasttime = akttime + 10;
789                                        infobartimeout = 0;
790                                        subtitlepause(1);
791                                        status.infobar = 1;
792                                        infobar = infobar1;
793                                        drawscreen(infobar, 0, 4);
794                                        continue;
795                                }
796                        }
797                }
798    /*
799                if(rcret == getrcconfigint("rcpip", NULL))
800                {
801                        struct channel* tmp = getchannel(12003, 66625); //for test RTL Television
802                        pipstart(tmp, NULL, 0);
803                }
804    */
805                if(rcret == RCTIMEOUT && mark == 0)
806                {
807                        if(getconfigint("infobartimeout", NULL) > infobartimeout)
808                        {
809                                //clearscreen(infobar);
810                                drawscreen(infobar, 0, 0);
811                        }
812                        else
813                        {
814                                clearscreen(infobar);
815                                if(infobarm != infobar) {
816                                        infobar = infobarm;
817                                        clearscreen(infobar);
818                                }
819                                status.infobar = 0;
820                                drawscreen(skin, 0, 0);
821                                subtitlepause(0);
822                        }
823                }
824        }
825}
826
827#endif
Note: See TracBrowser for help on using the repository browser.