source: titan/titan/infobar.h @ 27680

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

fix

File size: 21.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        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) || (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                        drawscreen(skin, 0, 0);
335                        if(rcret == getrcconfigint("rcfav", NULL))     
336                                ret = screenchannellist(NULL, NULL, 2);
337                        else
338                                ret = screenchannellist(NULL, NULL, 0);
339                        if(ret >= 20 || ret < 0)
340                                status.servicetype = tmpservicetype;
341                        drawscreen(skin, 0, 0);
342                        status.infobaraktiv = 1;
343                        status.infobar = 2;
344                        infobartimeout = 0;
345                        continue;
346                }
347                if(rcret == getrcconfigint("rcexit", NULL))
348                {
349                        if(status.timeshift == 1 && status.playing == 1)
350                                screenplayinfobar(NULL, NULL, 1, 1, 4);
351                        subtitlepause(1);
352                        status.infobar = 0;
353                        clearscreen(infobar);
354                        if(infobarm != infobar) {
355                                infobar = infobarm;
356                                clearscreen(infobar);
357                        }
358                        drawscreen(skin, 0, 0);
359                        subtitlepause(0);
360                        continue;
361                }
362                if(rcret == getrcconfigint("rctext", NULL))
363                {
364                        if(status.aktservice->channel != NULL && status.aktservice->channel->txtpid > 0)
365                        {
366                                subtitlepause(1);
367                                status.infobar = 0;
368                                status.sec = 0;
369                                clearscreen(infobar);
370                                tmpstr = ostrcat(getconfig("tuxtxtfile", NULL), " ", 0, 0);
371                                tmpnr = oitoa(status.aktservice->channel->txtpid);
372                                tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
373       
374                                if(status.aktservice->fedev != NULL)
375                                {
376                                        tmpnr = oitoa(status.aktservice->fedev->devnr);
377                                        tmpstr = ostrcat(tmpstr, " ", 1, 0);
378                                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
379                                }
380       
381                                drawscreen(skin, 0, 0);
382                                status.tuxtxt = 1;
383                                system(tmpstr);
384                                status.tuxtxt = 0;
385                                free(tmpstr); tmpstr = NULL; tmpnr = NULL;
386                                drawscreen(skin, 0, 0);
387                                subtitlepause(0);
388                        }
389                        continue;
390                }
391                if(rcret == getrcconfigint("rcrecord", NULL))
392                {
393                        subtitlepause(1);
394                        status.infobar = 0;
395                        clearscreen(infobar);
396                        screenrecorddirect();
397                        status.updatevfd = START;
398                        drawscreen(skin, 0, 0);
399                        subtitlepause(0);
400                        continue;
401                }
402                if((status.timeshift == 0 && rcret == getrcconfigint("rcplay", NULL)) || rcret == getrcconfigint("rcarchive", NULL) || rcret == getrcconfigint("rcwebplay", NULL))
403                {
404                        subtitlepause(1);
405                        status.infobar = 0;
406                        status.infobaraktiv = 0;
407                        clearscreen(infobar);
408                        screenplay(NULL, NULL, 1, 0);
409                        status.infobaraktiv = 1;
410                        status.updatevfd = START;
411                        drawscreen(skin, 0, 0);
412                        subtitlepause(0);
413                        continue;
414                }
415                if(rcret == getrcconfigint("rcshoot", NULL))
416                {
417                        subtitlepause(1);
418                        status.infobar = 0;
419                        status.infobaraktiv = 0;
420                        clearscreen(infobar);
421                        screenshoot(0);
422                        status.infobaraktiv = 1;
423                        status.updatevfd = START;
424                        drawscreen(skin, 0, 0);
425                        subtitlepause(0);
426                        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);
427                        continue;
428                }
429
430                if(rcret == getrcconfigint("rcplugin", NULL))
431                {
432                        subtitlepause(1);
433                        status.infobar = 0;
434                        clearscreen(infobar);
435                        screenkeyactions(2, 0);
436                        status.updatevfd = START;
437                        drawscreen(skin, 0, 0);
438                        subtitlepause(0);
439                        continue;
440                }
441                if(rcret == getrcconfigint("rcred", NULL))
442                {
443                        subtitlepause(1);
444                        status.infobar = 0;
445                        status.infobaraktiv = 0;
446                        clearscreen(infobar);
447                        screenkeyactions(1, 0);
448                        status.infobaraktiv = 1;
449                        status.updatevfd = START;
450                        drawscreen(skin, 0, 0);
451                        subtitlepause(0);
452                        continue;
453                }
454                if(rcret == getrcconfigint("rcgreen", NULL))
455                {
456                        subtitlepause(1);
457                        status.infobar = 0;
458                        clearscreen(infobar);
459                        screenvideomode(0);
460                        drawscreen(skin, 0, 0);
461                        subtitlepause(0);
462                        continue;
463                }
464                if(rcret == getrcconfigint("rcsubchannel", NULL))
465                {
466                        subtitlepause(1);
467                        status.infobar = 0;
468                        clearscreen(infobar);
469                        screenlinkedchannel();
470                        drawscreen(skin, 0, 0);
471                        subtitlepause(0);
472                        continue;
473                }
474                if(rcret == getrcconfigint("rcsleep", NULL))
475                {
476                        subtitlepause(1);
477                        status.infobar = 0;
478                        clearscreen(infobar);
479                        screenpowerofftimer();
480                        drawscreen(skin, 0, 0);
481                        subtitlepause(0);
482                        continue;
483                }
484                if(rcret == getrcconfigint("rcsubtitel", NULL))
485                {
486                        subtitlepause(1);
487                        status.infobar = 0;
488                        clearscreen(infobar);
489                        screensubtitle();
490                        drawscreen(skin, 0, 0);
491                        subtitlepause(0);
492                        continue;
493                }
494                if(rcret == getrcconfigint("rcyellow", NULL))
495                {
496                        subtitlepause(1);
497                        status.infobar = 0;
498                        clearscreen(infobar);
499                        screenaudiotrack();
500                        drawscreen(skin, 0, 0);
501                        subtitlepause(0);
502                        continue;
503                }
504                if(rcret == getrcconfigint("rcblue", NULL))
505                {
506                        subtitlepause(1);
507                        status.infobar = 0;
508                        clearscreen(infobar);
509                        screenkeyactions(0, 0);
510                        status.updatevfd = START;
511                        drawscreen(skin, 0, 0);
512                        subtitlepause(0);
513                        continue;
514                }
515                if(rcret == getrcconfigint("rchbbtv", NULL) && status.aktservice->channel != NULL && status.aktservice->channel->hbbtvurl != NULL)
516                {
517                        subtitlepause(1);
518                        status.infobar = 0;
519                        clearscreen(infobar);
520
521                        pluginnode = getplugin("hbbtv Browser");
522                        if(pluginnode != NULL)
523                        {
524                                startplugin = dlsym(pluginnode->pluginhandle, "starturl");
525                                if(startplugin != NULL)
526                                        startplugin();
527                        }
528
529                        status.updatevfd = START;
530                        drawscreen(skin, 0, 0);
531                        subtitlepause(0);
532                        continue;
533                }
534                if(rcret == getrcconfigint("rcwww", NULL))
535                {
536                        subtitlepause(1);
537                        status.infobar = 0;
538                        clearscreen(infobar);
539                       
540                        pluginnode = getplugin("Internet Browser");
541                        if(pluginnode != NULL)
542                        {
543                                startplugin = dlsym(pluginnode->pluginhandle, "screenbrowser");
544                                if(startplugin != NULL)
545                                        startplugin();
546                        }
547                        else
548                                textbox(_("Message"), _("Internet Browser Plugin not installed !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 10, 0);
549                }
550                if(rcret == getrcconfigint("rcmedia", NULL))
551                {
552                        struct skin* pluginnode = getplugin("Media Center");
553                        void (*startplugin)(void);
554                        status.infobaraktiv = 0;
555                        subtitlepause(1);
556                        status.infobar = 0;
557                        clearscreen(infobar);
558                        if(pluginnode != NULL)
559                        {
560                                startplugin = dlsym(pluginnode->pluginhandle, "start");
561                                if(startplugin != NULL)
562                                startplugin();
563                        }
564                        status.infobaraktiv = 1;
565                        drawscreen(skin, 0, 0);
566                        subtitlepause(0);
567                        continue;
568                }
569                if(rcret == getrcconfigint("rcmenu", NULL))
570                {
571                        subtitlepause(1);
572                        status.infobar = 0;
573                        status.infobaraktiv = 0;
574                        clearscreen(infobar);
575                        menu(getscreen("mainmenu"), 1);
576                        status.menurelease = 0;
577                        status.updatevfd = START;
578                        status.infobaraktiv = 1;
579                        drawscreen(skin, 0, 0);
580                        subtitlepause(0);
581                        continue;
582                }
583                if(rcret == getrcconfigint("rcepg", NULL))
584                {
585                        subtitlepause(1);
586                        status.infobar = 0;
587                        status.infobaraktiv = 0;
588                        clearscreen(infobar);
589                        epgchoice(NULL);
590                        drawscreen(skin, 0, 0);
591                        status.infobaraktiv = 1;
592                        subtitlepause(0);
593                        continue;
594                }
595                if(rcret == getrcconfigint("rcresolution", NULL) || rcret == getrcconfigint("rcresolution1", NULL))
596                {
597                        subtitlepause(1);
598                        status.infobar = 0;
599                        clearscreen(infobar);
600                        switchvideomode();
601                        drawscreen(skin, 0, 0);
602                        subtitlepause(0);
603                        continue;
604                }
605                if(rcret == getrcconfigint("rcinfo", NULL))
606                {
607                        if(status.infobar == 1)
608                        {
609                                if(getconfigint("secondinfobar", NULL) == 2)
610                                {
611                                        clearscreen(infobar);
612                                        epgchoice(NULL);
613                                        status.infobar = 0;
614                                        drawscreen(skin, 0, 0);
615                                        subtitlepause(0);
616                                }
617                                else if(getconfigint("secondinfobar", NULL) == 3)
618                                {
619                                        clearscreen(infobar);
620                                        screenepg(NULL, NULL, 0);
621                                        status.infobar = 0;
622                                        drawscreen(skin, 0, 0);
623                                        subtitlepause(0);
624                                }
625                                else if(getconfigint("secondinfobar", NULL) == 0 || infobar2 == status.skinerr || infobar == infobar2)
626                                {
627                                        if(infobarm != infobar) {
628                                                clearscreen(infobar);
629                                                infobar = infobarm;
630                                        }
631                                        clearscreen(infobar);
632                                        status.infobar = 0;
633                                        drawscreen(skin, 0, 0);
634                                        subtitlepause(0);
635                                }
636                                else
637                                {
638                                        infobar = infobar2;
639                                        drawscreen(infobar, 0, 0);
640                                }
641                        }
642                        else
643                        {
644                                subtitlepause(1);
645                                status.infobar = 1;
646                                infobar = infobar1;
647                                drawscreen(infobar, 0, 4);
648                        }
649                        continue;
650                }
651                if(rcret == getrcconfigint("rcpower", NULL))
652                {
653                        subtitlepause(1);
654                        status.infobar = 0;
655                        status.infobaraktiv = 0;
656                        clearscreen(infobar);
657                        drawscreen(skin, 0, 0);
658                        switch(getconfigint("poweraktion", NULL))
659                        {
660                                case 1: //power off
661                                        oshutdown(1, 1);
662                                        break;
663                                case 2: //standby
664                                        status.standby = 1;
665                                        break;
666                                case 3: //restart
667                                        oshutdown(2, 1);
668                                        break;
669                                case 4: //Gui restart
670                                        oshutdown(3, 1);
671                                        break;
672                                default:
673                                        standbymenu = getscreen("standbymenu");
674                                        menu(standbymenu, 1);
675                                        break;
676                        }
677                        status.updatevfd = START;
678                        drawscreen(skin, 0, 0);
679                        status.infobaraktiv = 1;
680                        subtitlepause(0);
681                        continue;
682                }
683                if(rcret == getrcconfigint("rcrecall", NULL))
684                {
685                        subtitlepause(1);
686                        clearscreen(infobar);
687                        drawscreen(skin, 0, 0);
688                        screenchannelhistory();
689                        infobartimeout = 0;
690                        infobar = infobar1;
691                        if(status.infobar == 0)
692                                drawscreen(infobar, 0, 4);
693                        else
694                                drawscreen(infobar, 0, 0);
695                        status.infobar = 1;
696                        continue;
697                }
698                if(rcret == getrcconfigint("rc0", NULL))
699                {
700                        subtitlepause(1);
701                        clearscreen(infobar);
702                        drawscreen(skin, 0, 0);
703                        if(status.lastservice->channel != NULL)
704                        {
705                                tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
706                                servicecheckret(servicestart(status.lastservice->channel, tmpstr, NULL, 0), 0);
707                                free(tmpstr); tmpstr = NULL;
708                        }
709                        infobartimeout = 0;
710                        infobar = infobar1;
711                        if(status.infobar == 0)
712                                drawscreen(infobar, 0, 4);
713                        else
714                                drawscreen(infobar, 0, 0);
715                        status.infobar = 1;
716                        continue;
717                }
718                if(rcret == getrcconfigint("rcchup", NULL) || (status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcdown", NULL)))
719                {
720                        subtitlepause(1);
721                        if(status.crosscontrol > 1 && status.virtualzap == 0 && rcret == getrcconfigint("rcdown", NULL))
722                        {
723                                status.virtualzap = status.crosscontrol - 1;
724                                zapup();
725                                status.virtualzap = 0;
726                        }
727                        else
728                                zapup();
729                        clearscreen(infobar);
730                        drawscreen(skin, 0, 0);
731                        infobartimeout = 0;
732                        status.infobar = 2;
733                        continue;
734                }
735                if(rcret == getrcconfigint("rcchdown", NULL) || (status.crosscontrol > 0 && status.play == 0 && status.pause == 0 && rcret == getrcconfigint("rcup", NULL)))
736                {
737                        subtitlepause(1);
738                        if(status.crosscontrol > 1 && status.virtualzap == 0 && rcret == getrcconfigint("rcup", NULL))
739                        {
740                                status.virtualzap = status.crosscontrol - 1;
741                                zapdown();
742                                status.virtualzap = 0;
743                        }
744                        else
745                                zapdown();
746                        clearscreen(infobar);
747                        drawscreen(skin, 0, 0);
748                        infobartimeout = 0;
749                        status.infobar = 2;
750                        continue;
751                }
752                if(rcret == rcnumber(rcret))
753                {
754                        subtitlepause(1);
755                        clearscreen(infobar);
756                        screenchannelbynr(rcret);
757                        status.infobar = 2;
758                        continue;
759                }
760                //show infobar on program switch (only tv)
761                if(status.infobarprogram == 1 && status.infobar == 0 && status.servicetype == 0)
762                {
763                        time_t akttime = time(NULL);
764                        //show infobar only all 60 sec
765                        if(lasttime < akttime)
766                        {
767                                struct epg* tmpepg = getepgakt(status.aktservice->channel);
768                                if(tmpepg != NULL && akttime - 1 <= tmpepg->starttime && akttime + 1 >= tmpepg->starttime)
769                                {
770                                        lasttime = akttime + 10;
771                                        infobartimeout = 0;
772                                        subtitlepause(1);
773                                        status.infobar = 1;
774                                        infobar = infobar1;
775                                        drawscreen(infobar, 0, 4);
776                                        continue;
777                                }
778                        }
779                }
780    /*
781                if(rcret == getrcconfigint("rcpip", NULL))
782                {
783                        struct channel* tmp = getchannel(12003, 66625); //for test RTL Television
784                        pipstart(tmp, NULL, 0);
785                }
786    */
787                if(rcret == RCTIMEOUT && mark == 0)
788                {
789                        if(getconfigint("infobartimeout", NULL) > infobartimeout)
790                        {
791                                //clearscreen(infobar);
792                                drawscreen(infobar, 0, 0);
793                        }
794                        else
795                        {
796                                clearscreen(infobar);
797                                if(infobarm != infobar) {
798                                        infobar = infobarm;
799                                        clearscreen(infobar);
800                                }
801                                status.infobar = 0;
802                                drawscreen(skin, 0, 0);
803                                subtitlepause(0);
804                        }
805                }
806        }
807}
808
809#endif
Note: See TracBrowser for help on using the repository browser.