source: titan/titan/infobar.h @ 38001

Last change on this file since 38001 was 38001, checked in by obi, 7 years ago

fix sh4 building

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