source: titan/titan/gmultiepg.h @ 10752

Last change on this file since 10752 was 10752, checked in by nit, 11 years ago

[titan] fix memleaks

File size: 18.2 KB
Line 
1#ifndef GMULTIEPG_H
2#define GMULTIEPG_H
3
4void createtimeline(struct skin* gmultiepg, struct skin* timeline, time_t akttime, int zoom)
5{
6        struct skin* node = NULL;
7        struct tm *loctime = NULL;
8        int posx = 0;
9        char* buf = NULL;
10
11        buf = malloc(6);
12        if(buf == NULL)
13        {
14                err("no mem");
15                return;
16        }
17
18        delmarkedscreennodes(gmultiepg, 3);
19
20        while(posx < timeline->iwidth)
21        {
22                node = addlistbox(gmultiepg, timeline, node, 3);
23                if(node != NULL)
24                {
25
26                        loctime = olocaltime(&akttime);
27                        if(loctime != NULL)
28                                strftime(buf, 6, "%H:%M", loctime);
29                        else
30                                snprintf(buf, 6, "00:00");
31                        free(loctime); loctime = NULL;
32
33                        akttime += 30 * 60;
34                        changetext(node, buf);
35                        node->prozwidth = 0;
36                        node->posx = posx;
37                        node->width = 30 * zoom; //30 min * zoom pixel
38                        node->bordersize = 1;
39                        posx += node->width;
40                        if(posx > timeline->iwidth)
41                                node->width -= (posx - timeline->iwidth);
42                }
43        }
44
45        free(buf);
46}
47
48int selectchannelgmepg(struct skin* listbox)
49{
50        struct skin* node = listbox;
51        struct channel* chnode = NULL;
52        listbox->aktpage = -1;
53        listbox->aktline = 1;
54
55        listbox->select = NULL;
56
57        if(status.servicetype == 0)
58                chnode = getchannel(getconfigint("serviceid", NULL), getconfigint("transponderid", NULL));
59        else
60                chnode = getchannel(getconfigint("rserviceid", NULL), getconfigint("rtransponderid", NULL));
61
62        if(chnode == NULL)
63        {
64                debug(1000, "out -> NULL detect");
65                return 1;
66        }
67
68        while(node != NULL)
69        {
70                if(chnode == (struct channel*)node->handle)
71                        return 0;
72
73                if(node->del == 1) listbox->aktline++;
74                node = node->next;
75        }
76        listbox->aktline = 1;
77        return 1;
78}
79
80
81int calcgmultiepg(struct channel* tmpchannel, struct skin* gmultiepg, struct skin* channellistbox, struct skin* listbox, int zoom, time_t akttime, struct channel* aktchannel, int linecol1, int linecol2, int* aktline, struct skin** pchnode, struct skin** pchnode1, int height)
82{
83        int treffer = 0, gridbr = 0, aktcol = 0;
84        struct epg* epgnode = NULL;
85        struct skin* chnode = NULL, *chnode1 = NULL;
86
87        if(tmpchannel != NULL && tmpchannel->servicetype == status.servicetype)
88        {
89                *pchnode = addlistbox(gmultiepg, channellistbox, *pchnode, 1);
90                chnode = *pchnode;
91                if(chnode != NULL)
92                {
93                        chnode->height = height;
94                        changetext(chnode, tmpchannel->name);
95                        epgnode = getepgakt(tmpchannel);
96
97                        while(epgnode != NULL)
98                        {
99                                if(epgnode->endtime <= akttime)
100                                {
101                                        epgnode = epgnode->next;
102                                        continue;
103                                }
104                                if(epgnode->starttime >= akttime + ((listbox->iwidth * 60) / zoom))
105                                        break;
106
107                                *pchnode1 = addlistbox(gmultiepg, listbox, *pchnode1, 1);
108                                chnode1 = *pchnode1;
109                                if(chnode1 != NULL)
110                                {
111                                        (*aktline)++;
112                                        if(gridbr == 0)
113                                        {
114                                                chnode1->type = TEXTBOXGRIDBR;
115                                                if(tmpchannel == aktchannel)
116                                                {
117                                                        listbox->aktline = *aktline;
118                                                        listbox->gridcol = 0;
119                                                }
120                                        }
121                                        else
122                                                chnode1->type = TEXTBOX;
123                                        chnode1->wrap = YES;
124                                        gridbr = 1;
125                                        treffer = 1;
126                                        chnode1->height = height;
127                                        chnode1->width = ((epgnode->endtime - epgnode->starttime) / 60) * zoom;
128                                        chnode1->posx = ((epgnode->starttime - akttime) / 60) * zoom;
129                                        if(chnode1->posx < 0)
130                                        {
131                                                chnode1->width += chnode1->posx;
132                                                chnode1->posx = 0;
133                                        }
134                                        chnode1->prozwidth = 0;
135                                        if(aktcol == linecol1)
136                                                aktcol = linecol2;
137                                        else
138                                                aktcol = linecol1;
139                                        chnode1->bgcol = aktcol;
140                                        chnode1->bgspace = 1;
141                                        chnode1->vspace = 2;
142                                        chnode1->hspace = 2;
143                                       
144                                        //TODO: record timeline
145                                        //chnode1->type = MULTIPROGRESSBAR;
146                                        //chnode1->progresscol = listbox->progresscol;
147                                        //chnode1->epgrecord = getepgrecord(tmpchannel, epgnode);
148               
149                                        changetext(chnode1, epgnode->title);
150                                        chnode1->handle = (char*)tmpchannel;
151                                        chnode1->handle1 = (char*)epgnode;
152                                        if(chnode1->posx + chnode1->width >= listbox->iwidth)
153                                        {
154                                                chnode1->width = listbox->iwidth - chnode1->posx;
155                                                break;
156                                        }
157                                }
158                                epgnode = epgnode->next;
159                        }
160                        if(gridbr == 0)
161                        {
162                                *pchnode1 = addlistbox(gmultiepg, listbox, *pchnode1, 1);
163                                chnode1 = *pchnode1;
164                                if(chnode1 != NULL)
165                                {
166                                        if(gridbr == 0) chnode1->type = GRIDBR;
167                                        gridbr = 1;
168                                        chnode1->height = height;
169                                        chnode1->deaktivcol = 1;
170                                }
171                        }
172
173                        chnode->handle = (char*)tmpchannel;
174                        if(tmpchannel->transponder == NULL)
175                                chnode->deaktivcol = convertcol("deaktivcol");
176                }
177        }
178        return treffer;
179}
180
181int showallgmepgchannel(struct skin* gmultiepg, struct skin* channellistbox, struct skin* listbox, int zoom, time_t akttime, struct channel* aktchannel)
182{
183        int treffer = 0, linecol1 = 0, linecol2 = 0, aktline = 0, height = 0;
184        struct skin* chnode = NULL, *chnode1 = NULL;
185        struct channel* tmpchannel = channel;
186
187        linecol1 = convertcol("epgcol1");
188        linecol2 = convertcol("epgcol2");
189        height = getskinconfigint("epgheight", NULL);
190        if(height == 0) height = 35;
191
192        if(gmultiepg != NULL) delmarkedscreennodes(gmultiepg, 1);
193        if(listbox != NULL) listbox->aktline = 1;
194
195        while(tmpchannel != NULL)
196        {
197                if(calcgmultiepg(tmpchannel, gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel, linecol1, linecol2, &aktline, &chnode, &chnode1, height) == 1)
198                        treffer = 1;
199                tmpchannel = tmpchannel->next;
200        }
201        return treffer;
202}
203
204int showbouquetgmepgchannel(struct skin* gmultiepg, struct skin* channellistbox, struct skin* listbox, struct bouquet* firstbouquet, int zoom, time_t akttime, struct channel* aktchannel)
205{
206        int treffer = 0, linecol1 = 0, linecol2 = 0, aktline = 0, height = 0;
207        struct skin* chnode = NULL, *chnode1 = NULL;
208        struct bouquet* tmpbouquet = firstbouquet;
209
210        linecol1 = convertcol("epgcol1");
211        linecol2 = convertcol("epgcol2");
212        height = getskinconfigint("epgheight", NULL);
213        if(height == 0) height = 35;
214
215        if(gmultiepg != NULL) delmarkedscreennodes(gmultiepg, 1);
216        if(listbox != NULL) listbox->aktline = 1;
217
218        while(tmpbouquet != NULL)
219        {
220                if(calcgmultiepg(tmpbouquet->channel, gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel, linecol1, linecol2, &aktline, &chnode, &chnode1, height) == 1)
221                        treffer = 1;
222                tmpbouquet = tmpbouquet->next;
223        }
224        return treffer;
225}
226
227int showprovidergmepgchannel(struct skin* gmultiepg, struct skin* channellistbox, struct skin* listbox, struct provider* providernode, int zoom, time_t akttime, struct channel* aktchannel)
228{
229        int treffer = 0, linecol1 = 0, linecol2 = 0, aktline = 0, height = 0;
230        struct skin* chnode = NULL, *chnode1 = NULL;
231        struct channel* tmpchannel = channel;
232
233        linecol1 = convertcol("epgcol1");
234        linecol2 = convertcol("epgcol2");
235        height = getskinconfigint("epgheight", NULL);
236        if(height == 0) height = 35;
237
238        if(gmultiepg != NULL) delmarkedscreennodes(gmultiepg, 1);
239
240        while(tmpchannel != NULL)
241        {
242                if(tmpchannel->provider == providernode)
243                {
244                        if(calcgmultiepg(tmpchannel, gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel, linecol1, linecol2, &aktline, &chnode, &chnode1, height) == 1)
245                                treffer = 1;
246                }
247                tmpchannel = tmpchannel->next;
248        }
249        return treffer;
250}
251
252int showsatgmepgchannel(struct skin* gmultiepg, struct skin* channellistbox, struct skin* listbox, struct sat* satnode, int zoom, time_t akttime, struct channel* aktchannel)
253{
254        int treffer = 0, linecol1 = 0, linecol2 = 0, aktline = 0, height = 0;
255        struct skin* chnode = NULL, *chnode1 = NULL;
256        struct channel* tmpchannel = channel;
257       
258        if(satnode == NULL) return 1;
259
260        linecol1 = convertcol("epgcol1");
261        linecol2 = convertcol("epgcol2");
262        height = getskinconfigint("epgheight", NULL);
263        if(height == 0) height = 35;
264
265        if(gmultiepg != NULL) delmarkedscreennodes(gmultiepg, 1);
266
267        while(tmpchannel != NULL)
268        {
269                if(tmpchannel->transponder != NULL && tmpchannel->transponder->orbitalpos == satnode->orbitalpos)
270                {
271                        if(calcgmultiepg(tmpchannel, gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel, linecol1, linecol2, &aktline, &chnode, &chnode1, height) == 1)
272                                treffer = 1;
273                }
274                tmpchannel = tmpchannel->next;
275        }
276        return treffer;
277}
278
279int showazgmepgchannel(struct skin* gmultiepg, struct skin* channellistbox, struct skin* listbox, int character, int zoom, time_t akttime, struct channel* aktchannel)
280{
281        int treffer = 0, linecol1 = 0, linecol2 = 0, aktline = 0, height = 0;
282        struct skin* chnode = NULL, *chnode1 = NULL;
283        struct channel* tmpchannel = channel;
284
285        linecol1 = convertcol("epgcol1");
286        linecol2 = convertcol("epgcol2");
287        height = getskinconfigint("epgheight", NULL);
288        if(height == 0) height = 35;
289
290        if(gmultiepg != NULL) delmarkedscreennodes(gmultiepg, 1);
291
292        while(tmpchannel != NULL)
293        {
294                if(tmpchannel->name != NULL && (tmpchannel->name[0] == character || tmpchannel->name[0] == character + 32))
295                {
296                        if(calcgmultiepg(tmpchannel, gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel, linecol1, linecol2, &aktline, &chnode, &chnode1, height) == 1)
297                                treffer = 1;
298                }
299                tmpchannel = tmpchannel->next;
300        }
301        return treffer;
302}
303
304void drawchannellistgmepg(struct skin* gmultiepg, int list, struct skin* listbox)
305{
306        status.markedchannel = NULL;
307
308        if(list == ALLCHANNEL || list == SATCHANNEL || list == PROVIDERCHANNEL || list == AZCHANNEL || list == BOUQUETCHANNEL)
309        {
310                if(listbox->select == NULL)
311                {
312                        status.screencalc = 2;
313                        drawscreen(gmultiepg, 0);
314                        status.screencalc = 0;
315                }
316                if(listbox->select != NULL)
317                        status.markedchannel = (struct channel*)listbox->select->handle;
318        }
319        drawscreen(gmultiepg, 0);
320}
321
322void screengmultiepg(struct channel* chnode, struct epg* epgnode)
323{
324        int rcret = 0, ret = 0, epgscreenconf = 0;
325        struct skin* gmultiepg = getscreen("gmultiepg");
326        struct skin* listbox = getscreennode(gmultiepg, "listbox");
327        struct skin* channellistbox = getscreennode(gmultiepg, "channellistbox");
328        struct skin* timeline = getscreennode(gmultiepg, "timeline");
329        struct skin* b1 = getscreennode(gmultiepg, "b1");
330        struct skin* b2 = getscreennode(gmultiepg, "b2");
331        struct skin* b3 = getscreennode(gmultiepg, "b3");
332       
333        int list = ALLCHANNEL;
334        char* tmpstr = NULL, *tmpstr1 = NULL;
335        void* aktlist = NULL;
336        int character = 0;
337        struct sat* satnode = NULL;
338        struct provider* providernode = NULL;
339        struct channel* aktchannel = NULL;
340#ifdef SIMULATE
341        time_t akttime = 1315614900;
342        akttime = 1317926400;
343#else
344        time_t akttime = time(NULL);
345#endif
346        int zoom = getconfigint("gmultiepgzoom", NULL);
347        if(zoom < 1) zoom = 2;
348
349        akttime -= (((akttime / 60) % 15) * 60);
350        akttime -= (((akttime) % 60));
351        time_t starttime = akttime;
352
353        //chalc screen, so we have all infos
354        status.screencalc = 2;
355        drawscreen(gmultiepg, 0);
356        status.screencalc = 0;
357
358        time_t addtime = (listbox->iwidth / zoom) * 60;
359        addtime -= (((addtime / 60) % 15) * 60);
360        addtime -= (((addtime) % 60));
361        epgscreenconf = getconfigint("epg_screen", NULL);
362
363        if(status.servicetype == 0)
364        {
365                tmpstr = getconfig("channellist", NULL);
366                aktchannel = getchannel(getconfigint("serviceid", NULL), getconfigint("transponderid", NULL));
367        }
368        else
369        {
370                tmpstr = getconfig("rchannellist", NULL);
371                aktchannel = getchannel(getconfigint("rserviceid", NULL), getconfigint("rtransponderid", NULL));
372        }
373
374        if(ostrncmp("(BOUQUET)-", tmpstr, 10) == 0 && strlen(tmpstr) > 10)
375        {
376                struct mainbouquet* mainbouquetnode = NULL;
377                mainbouquetnode = getmainbouquet(tmpstr + 10);
378                if(mainbouquetnode != NULL && mainbouquetnode->bouquet != NULL)
379                {
380                        tmpstr1 = ostrcat(tmpstr1, _("GRAPHIC MULTI EPG - Bouquets"), 0, 0);
381                        tmpstr1 = ostrcat(tmpstr1, " - ", 1, 0);
382                        tmpstr1 = ostrcat(tmpstr1, tmpstr + 10, 1, 0);
383                        changetitle(gmultiepg, tmpstr1);
384                        free(tmpstr1); tmpstr1 = NULL;
385                        list = BOUQUETCHANNEL;
386                        aktlist = (void*)mainbouquetnode;
387                        showbouquetgmepgchannel(gmultiepg, channellistbox, listbox, mainbouquetnode->bouquet, zoom, akttime, aktchannel);
388                        selectchannelgmepg(channellistbox);
389                }
390        }
391        else if(ostrncmp("(A-Z)-", tmpstr, 6) == 0 && strlen(tmpstr) > 6)
392        {
393                tmpstr1 = ostrcat(tmpstr1, _("GRAPHIC MULTI EPG - Channel"), 0, 0);
394                tmpstr1 = ostrcat(tmpstr1, " - ", 1, 0);
395                tmpstr1 = ostrcat(tmpstr1, tmpstr + 6, 1, 0);
396                changetitle(gmultiepg, tmpstr1);
397                free(tmpstr1); tmpstr1 = NULL;
398                list = AZCHANNEL;
399                character = (int)tmpstr[6];
400                aktlist = (void*)(int)tmpstr[6];
401                showazgmepgchannel(gmultiepg, channellistbox, listbox, character, zoom, akttime, aktchannel);
402                selectchannelgmepg(channellistbox);
403        }
404        else if(ostrncmp("(SAT)-", tmpstr, 6) == 0 && strlen(tmpstr) > 6)
405        {
406                tmpstr1 = ostrcat(tmpstr1, _("GRAPHIC MULTI EPG - Satellites"), 0, 0);
407                tmpstr1 = ostrcat(tmpstr1, " - ", 1, 0);
408                tmpstr1 = ostrcat(tmpstr1, tmpstr + 6, 1, 0);
409                changetitle(gmultiepg, tmpstr1);
410                free(tmpstr1); tmpstr1 = NULL;
411                satnode = getsat(tmpstr + 6);
412                list = SATCHANNEL;
413                aktlist = (void*)satnode;
414                showsatgmepgchannel(gmultiepg, channellistbox, listbox, satnode, zoom, akttime, aktchannel);
415                selectchannelgmepg(channellistbox);
416        }
417        else if(ostrncmp("(PROVIDER)-", tmpstr, 11) == 0 && strlen(tmpstr) > 6)
418        {
419                tmpstr1 = ostrcat(tmpstr1, _("GRAPHIC MULTI EPG - Provider"), 0, 0);
420                tmpstr1 = ostrcat(tmpstr1, " - ", 1, 0);
421                tmpstr1 = ostrcat(tmpstr1, tmpstr + 11, 1, 0);
422                changetitle(gmultiepg, tmpstr1);
423                free(tmpstr1); tmpstr1 = NULL;
424                providernode = getproviderbyname(tmpstr + 11);
425                list = PROVIDERCHANNEL;
426                aktlist = (void*)providernode;
427                showprovidergmepgchannel(gmultiepg, channellistbox, listbox, providernode, zoom, akttime, aktchannel);
428                selectchannelgmepg(channellistbox);
429        }
430        else
431        {
432                changetitle(gmultiepg, _("GRAPHIC MULTI EPG - All Channels"));
433                list = ALLCHANNEL;
434                showallgmepgchannel(gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel);
435                selectchannelgmepg(channellistbox);
436        }
437
438        if(epgscreenconf != 3)
439        {
440                b1->hidden = YES;
441                b2->hidden = YES;
442                b3->hidden = YES;
443        }
444        else
445        {
446                b1->hidden = NO;
447                b2->hidden = NO;
448                b3->hidden = NO;
449        }
450
451        tmpstr = NULL;
452        status.screencalc = 2;
453        drawscreen(gmultiepg, 0);
454        status.screencalc = 0;
455        addscreenrc(gmultiepg, listbox);
456        listbox->aktpage = channellistbox->aktpage;
457
458        createtimeline(gmultiepg, timeline, akttime, zoom);
459
460        drawchannellistgmepg(gmultiepg, list, listbox);
461
462        while(1)
463        {
464                status.screencalc = 2;
465                rcret = waitrc(gmultiepg, 0, 0);
466                status.screencalc = 0;
467
468                channellistbox->aktpage = listbox->aktpage;
469
470                if((rcret == getrcconfigint("rcexit", NULL)) || (rcret == getrcconfigint("rcepg", NULL))) break;
471                if(rcret == getrcconfigint("rcok", NULL)) break;
472                if(rcret == getrcconfigint("rcinfo", NULL)) break;
473               
474                if(epgscreenconf == 3 && rcret == getrcconfigint("rcred", NULL))
475                {
476                        if(listbox->select != NULL)
477                        {
478                                clearscreen(gmultiepg);
479                                screenepg((struct channel*)listbox->select->handle, (struct epg*)listbox->select->handle1);
480                                drawscreen(gmultiepg, 0);
481                        }
482                }
483                if(epgscreenconf == 3 && rcret == getrcconfigint("rcgreen", NULL))
484                {
485                        if(listbox->select != NULL)
486                        {
487                                clearscreen(gmultiepg);
488                                screensingleepg((struct channel*)listbox->select->handle, NULL);
489                                drawscreen(gmultiepg, 0);
490                        }
491                }
492                if(epgscreenconf == 3 && rcret == getrcconfigint("rcyellow", NULL))
493                {
494                        if(listbox->select != NULL)
495                        {
496                                clearscreen(gmultiepg);
497                                screenmultiepg((struct channel*)listbox->select->handle, NULL);
498                                drawscreen(gmultiepg, 0);
499                        }
500                }
501
502                if(rcret == getrcconfigint("rcff", NULL))
503                {
504                        akttime += addtime;
505
506                        if(list == BOUQUETCHANNEL)
507                        {
508                                if(showbouquetgmepgchannel(gmultiepg, channellistbox, listbox, ((struct mainbouquet*)aktlist)->bouquet, zoom, akttime, aktchannel) == 0)
509                                {
510                                        akttime -= addtime;
511                                        if(akttime < starttime)
512                                                akttime = starttime;
513                                        else
514                                                showbouquetgmepgchannel(gmultiepg, channellistbox, listbox, ((struct mainbouquet*)aktlist)->bouquet, zoom, akttime, aktchannel);
515
516                                }
517                        }
518                        else if(list == ALLCHANNEL)
519                        {
520                                if(showallgmepgchannel(gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel) == 0)
521                                {
522                                        akttime -= addtime;
523                                        if(akttime < starttime)
524                                                akttime = starttime;
525                                        else
526                                                showallgmepgchannel(gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel);
527                                }
528                        }
529                        else if(list == AZCHANNEL)
530                        {
531                                if(showazgmepgchannel(gmultiepg, channellistbox, listbox, character, zoom, akttime, aktchannel) == 0)
532                                {
533                                        akttime -= addtime;
534                                        if(akttime < starttime)
535                                                akttime = starttime;
536                                        else
537                                                showazgmepgchannel(gmultiepg, channellistbox, listbox, character, zoom, akttime, aktchannel);
538                                }
539                        }
540                        else if(list == SATCHANNEL)
541                        {
542                                if(showsatgmepgchannel(gmultiepg, channellistbox, listbox, satnode, zoom, akttime, aktchannel) == 0)
543                                {
544                                        akttime -= addtime;
545                                        if(akttime < starttime)
546                                                akttime = starttime;
547                                        else
548                                                showsatgmepgchannel(gmultiepg, channellistbox, listbox, satnode, zoom, akttime, aktchannel);
549                                }
550                        }
551                        else if(list == PROVIDERCHANNEL)
552                        {
553                                if(showprovidergmepgchannel(gmultiepg, channellistbox, listbox, providernode, zoom, akttime, aktchannel) == 0)
554                                {
555                                        akttime -= addtime;
556                                        if(akttime < starttime)
557                                                akttime = starttime;
558                                        else
559                                                showprovidergmepgchannel(gmultiepg, channellistbox, listbox, providernode, zoom, akttime, aktchannel);
560                                }
561                        }
562                        createtimeline(gmultiepg, timeline, akttime, zoom);
563                        drawscreen(gmultiepg, 0);
564                        if(listbox->select != NULL)
565                                aktchannel = (struct channel*)listbox->select->handle;
566                        continue;
567                }
568
569                if(rcret == getrcconfigint("rcfr", NULL))
570                {
571                        akttime -= addtime;
572                        if(akttime < starttime) akttime = starttime;
573
574                        if(list == BOUQUETCHANNEL)
575                                showbouquetgmepgchannel(gmultiepg, channellistbox, listbox, ((struct mainbouquet*)aktlist)->bouquet, zoom, akttime, aktchannel);
576                        else if(list == ALLCHANNEL)
577                                showallgmepgchannel(gmultiepg, channellistbox, listbox, zoom, akttime, aktchannel);
578                        else if(list == AZCHANNEL)
579                                showazgmepgchannel(gmultiepg, channellistbox, listbox, character, zoom, akttime, aktchannel);
580                        else if(list == SATCHANNEL)
581                                showsatgmepgchannel(gmultiepg, channellistbox, listbox, satnode, zoom, akttime, aktchannel);
582                        else if(list == PROVIDERCHANNEL)
583                                showprovidergmepgchannel(gmultiepg, channellistbox, listbox, providernode, zoom, akttime, aktchannel);
584                        createtimeline(gmultiepg, timeline, akttime, zoom);
585                        drawscreen(gmultiepg, 0);
586                        if(listbox->select != NULL)
587                                aktchannel = (struct channel*)listbox->select->handle;
588                        continue;
589                }
590
591                if(rcret == getrcconfigint("rcblue", NULL) && listbox->select != NULL)
592                {
593                        clearscreen(gmultiepg);
594                        ret = addrecepg((struct channel*)listbox->select->handle, (struct epg*)listbox->select->handle1, NULL);
595                        drawscreen(gmultiepg, 0);
596                        continue;
597                }
598
599                drawscreen(gmultiepg, 0);
600                if(listbox->select != NULL)
601                        aktchannel = (struct channel*)listbox->select->handle;
602        }
603
604        status.markedchannel = NULL;
605        status.markmodus = 0;
606        status.screencalc = 0;
607        delmarkedscreennodes(gmultiepg, 1);
608        delmarkedscreennodes(gmultiepg, 3);
609        delownerrc(gmultiepg);
610        clearscreen(gmultiepg);
611}
612
613#endif
Note: See TracBrowser for help on using the repository browser.