source: titan/titan/infobar.h @ 30921

Last change on this file since 30921 was 30921, checked in by obi, 8 years ago

[titan] fix pts pause picture on first pause and add pause picture after error msg

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