source: titan/titan/epgsettings.h @ 30678

Last change on this file since 30678 was 28436, checked in by obi, 10 years ago

step 2 cleanup

File size: 11.0 KB
Line 
1#ifndef EPGSETTINGS_H
2#define EPGSETTINGS_H
3
4void createepgscanlist(struct skin* scanlist, struct skin* listbox)
5{
6        struct epgscanlist *node = epgscanlist;
7        struct skin* tmp = NULL;
8
9        while(node != NULL)
10        {
11                struct channel* chnode = getchannel(node->serviceid, node->transponderid);
12                if(chnode != NULL)
13                {
14                        tmp = addlistbox(scanlist, listbox, tmp, 1);
15                        if(tmp != NULL)
16                        {
17                                changetext(tmp, chnode->name);
18                                tmp->handle = (char*)node;
19                        }
20                }
21                node = node->next;
22        }
23}
24
25void screenepgscanlist()
26{
27        int rcret = 0;
28        struct skin* scanlist = getscreen("epgscanlist");
29        struct skin* listbox = getscreennode(scanlist, "listbox");
30        char* tmpstr = NULL, *tmpchannellist = NULL;
31
32        if(status.servicetype == 0)
33                tmpchannellist = ostrcat(getconfig("channellist", NULL), NULL, 0, 0);
34        else
35                tmpchannellist = ostrcat(getconfig("rchannellist", NULL), NULL, 0, 0);
36
37        scanlist->aktline = 1;
38        scanlist->aktpage = -1;
39
40        createepgscanlist(scanlist, listbox);
41
42        drawscreen(scanlist, 0, 0);
43        addscreenrc(scanlist, listbox);
44
45        while(1)
46        {
47                rcret = waitrc(scanlist, 0, 0);
48
49                if(rcret == getrcconfigint("rcok", NULL)) break;
50                if(rcret == getrcconfigint("rcred", NULL) && listbox->select != NULL && listbox->select->handle != NULL)
51                {
52                        if(delepgscanlist(((struct epgscanlist*)listbox->select->handle)->serviceid, ((struct epgscanlist*)listbox->select->handle)->transponderid) == 0)
53                        {
54                                listbox->aktline--;
55                                listbox->aktpage = -1;
56                                delmarkedscreennodes(scanlist, 1);
57                                createepgscanlist(scanlist, listbox);
58                                drawscreen(scanlist, 0, 0);
59                        }
60                }
61                if(rcret == getrcconfigint("rcgreen", NULL))
62                {
63                        clearscreen(scanlist);
64                        int saveservicetype = status.servicetype;
65                        struct channel* tmpchnode = NULL;
66
67                        screenchannellist(&tmpchnode, &tmpchannellist, 1);
68                        status.servicetype = saveservicetype;
69
70                        if(tmpchnode != NULL && getepgscanlist(tmpchnode->serviceid, tmpchnode->transponderid) == NULL)
71                        {
72                                tmpstr = ostrcat(oitoa(tmpchnode->serviceid), "#", 1, 0);
73                                tmpstr = ostrcat(tmpstr, ollutoa(tmpchnode->transponderid), 1, 1);
74                                if(addepgscanlist(tmpstr, 1, NULL) != NULL)
75                                {
76                                        delmarkedscreennodes(scanlist, 1);
77                                        createepgscanlist(scanlist, listbox);
78                                }
79                                free(tmpstr); tmpstr = NULL;
80                        }
81
82                        drawscreen(scanlist, 0, 0);
83                }
84                if(rcret == getrcconfigint("rcyellow", NULL))
85                {
86                        clearscreen(scanlist);
87                        struct mainbouquet* mbouquet = screenmainbouquet();
88                       
89                        mainbouquet2epgscanlist(mbouquet);
90                        delmarkedscreennodes(scanlist, 1);
91                        createepgscanlist(scanlist, listbox);
92                       
93                        drawscreen(scanlist, 0, 0);
94                }
95        }
96
97        delmarkedscreennodes(scanlist, 1);
98        delownerrc(scanlist);
99        clearscreen(scanlist);
100}
101
102void screenepgsettings()
103{
104        int rcret = 0;
105        char* ret = NULL;
106        struct skin* epgsettings = getscreen("epgsettings");
107        struct skin* listbox = getscreennode(epgsettings, "listbox");
108        struct skin* epgpath = getscreennode(epgsettings, "epgpath");
109        struct skin* epgdays = getscreennode(epgsettings, "epgdays");
110        struct skin* epgdel = getscreennode(epgsettings, "epgdel");
111        struct skin* epgscreen = getscreennode(epgsettings, "epgscreen");
112        struct skin* epgfreespace = getscreennode(epgsettings, "epgfreespace");
113        struct skin* epglistmode = getscreennode(epgsettings, "epglistmode");
114        struct skin* epgrefresh = getscreennode(epgsettings, "epgrefresh");
115        struct skin* epgbutton = getscreennode(epgsettings, "epgbutton");
116        struct skin* epgzoom = getscreennode(epgsettings, "epgzoom");
117        struct skin* epgpicon = getscreennode(epgsettings, "epgpicon");
118        struct skin* epgsave = getscreennode(epgsettings, "epgsave");
119        struct skin* delepgbeforescan = getscreennode(epgsettings, "delepgbeforescan");
120        struct skin* mhwepg = getscreennode(epgsettings, "mhwepg");
121        struct skin* mhw2epg = getscreennode(epgsettings, "mhw2epg");
122        struct skin* opentv = getscreennode(epgsettings, "opentv");
123        struct skin* epg_afterevent = getscreennode(epgsettings, "epg_afterevent");
124        struct skin* b4 = getscreennode(epgsettings, "b4");
125
126        struct skin* load = getscreen("loading");
127        struct skin* tmp = NULL;
128
129        changeinput(epgpath, getconfig("epg_path", NULL));
130
131        changeinput(epgdays, "0\n2\n4\n6\n8\n10\n12\n14\n16\n18\n20");
132        setchoiceboxselection(epgdays, getconfig("epg_days", NULL));
133
134        addchoicebox(epgdel, "0", _("no"));
135        addchoicebox(epgdel, "1", _("yes"));
136        setchoiceboxselection(epgdel, getconfig("epg_del", NULL));
137
138        addchoicebox(epgscreen, "0", _("Channel EPG"));
139        addchoicebox(epgscreen, "1", _("Single EPG"));
140        addchoicebox(epgscreen, "2", _("Multi EPG"));
141        addchoicebox(epgscreen, "3", _("Graphic Multi EPG"));
142        setchoiceboxselection(epgscreen, getconfig("epg_screen", NULL));
143
144        changeinput(epgfreespace, "50\n100\n200\n300\n400\n500\n600\n700\n800\n900\n1000");
145        setchoiceboxselection(epgfreespace, getconfig("epgfreespace", NULL));
146
147        addchoicebox(epglistmode, "0", _("deaktiv"));
148        addchoicebox(epglistmode, "1", _("scan"));
149        addchoicebox(epglistmode, "2", _("whitelist"));
150        addchoicebox(epglistmode, "3", _("scan and whitelist"));
151        setchoiceboxselection(epglistmode, getconfig("epg_listmode", NULL));
152
153        addchoicebox(epgrefresh, "0", _("deaktiv"));
154        addchoicebox(epgrefresh, "01:00", "01:00");
155        addchoicebox(epgrefresh, "02:00", "02:00");
156        addchoicebox(epgrefresh, "03:00", "03:00");
157        addchoicebox(epgrefresh, "04:00", "04:00");
158        addchoicebox(epgrefresh, "05:00", "05:00");
159        addchoicebox(epgrefresh, "06:00", "06:00");
160        addchoicebox(epgrefresh, "07:00", "07:00");
161        addchoicebox(epgrefresh, "08:00", "08:00");
162        addchoicebox(epgrefresh, "09:00", "09:00");
163        addchoicebox(epgrefresh, "10:00", "10:00");
164        addchoicebox(epgrefresh, "11:00", "11:00");
165        addchoicebox(epgrefresh, "12:00", "12:00");
166        addchoicebox(epgrefresh, "13:00", "13:00");
167        addchoicebox(epgrefresh, "14:00", "14:00");
168        addchoicebox(epgrefresh, "15:00", "15:00");
169        addchoicebox(epgrefresh, "16:00", "16:00");
170        addchoicebox(epgrefresh, "17:00", "17:00");
171        addchoicebox(epgrefresh, "18:00", "18:00");
172        addchoicebox(epgrefresh, "19:00", "19:00");
173        addchoicebox(epgrefresh, "20:00", "20:00");
174        addchoicebox(epgrefresh, "21:00", "21:00");
175        addchoicebox(epgrefresh, "22:00", "22:00");
176        addchoicebox(epgrefresh, "23:00", "23:00");
177        addchoicebox(epgrefresh, "23:59", "24:00");
178        setchoiceboxselection(epgrefresh, getconfig("epg_refreshtime", NULL));
179               
180        addchoicebox(epgbutton, "0", _("Single EPG"));           
181        addchoicebox(epgbutton, "1", _("Multi EPG"));           
182        setchoiceboxselection(epgbutton, getconfig("epgbutton", NULL));
183
184        changeinput(epgzoom, "1\n2\n3\n4\n5\n6\n7");
185        setchoiceboxselection(epgzoom, getconfig("gmultiepgzoom", NULL));
186       
187        addchoicebox(epgpicon, "0", _("no"));
188        addchoicebox(epgpicon, "1", _("yes"));
189        setchoiceboxselection(epgpicon, getconfig("epgpicon", NULL));
190       
191        addchoicebox(epgsave, "0", _("always"));
192        addchoicebox(epgsave, "1", _("only on power off / restart"));
193        addchoicebox(epgsave, "2", _("never"));
194        setchoiceboxselection(epgsave, getconfig("epgsave", NULL));
195
196        addchoicebox(delepgbeforescan, "0", _("no"));
197        addchoicebox(delepgbeforescan, "1", _("yes"));
198        setchoiceboxselection(delepgbeforescan, getconfig("delepgbeforescan", NULL));
199
200        addchoicebox(mhwepg, "0", _("no"));
201        addchoicebox(mhwepg, "1", _("only for scan"));
202        addchoicebox(mhwepg, "2", _("always"));
203        setchoiceboxselection(mhwepg, getconfig("mhwepg", NULL));
204
205        addchoicebox(mhw2epg, "0", _("no"));
206        addchoicebox(mhw2epg, "1", _("only for scan"));
207        addchoicebox(mhw2epg, "2", _("always"));
208        setchoiceboxselection(mhw2epg, getconfig("mhw2epg", NULL));
209
210        addchoicebox(opentv, "0", _("no"));
211        addchoicebox(opentv, "1", _("only for scan"));
212        addchoicebox(opentv, "2", _("always"));
213        setchoiceboxselection(opentv, getconfig("opentv", NULL));
214
215        addchoicebox(epg_afterevent, "0", _("nothing"));
216        addchoicebox(epg_afterevent, "1", _("poweroff"));
217        setchoiceboxselection(epg_afterevent, getconfig("epg_afterevent", NULL));
218
219        b4->hidden = NO;
220        b4->usesavebg = 1;
221
222        drawscreen(epgsettings, 0, 0);
223        addscreenrc(epgsettings, listbox);
224
225        tmp = listbox->select;
226        while(1)
227        {
228                addscreenrc(epgsettings, tmp);
229                rcret = waitrc(epgsettings, 0, 0);
230                tmp = listbox->select;
231
232                if(rcret == getrcconfigint("rcexit", NULL)) break;
233                if(rcret == getrcconfigint("rcok", NULL))
234                {
235                        addconfigscreen("epg_path", epgpath);
236                        addconfigscreen("epg_days", epgdays);
237                        status.epgdays = getconfigint("epg_days", NULL);
238                        addconfigscreen("epg_del", epgdel);
239                        addconfigscreen("epg_screen", epgscreen);
240                        addconfigscreen("epgfreespace", epgfreespace);
241                        addconfigscreencheck("epg_listmode", epglistmode, "0");
242                        status.epglistmode = getconfigint("epg_listmode", NULL);
243                        addconfigscreencheck("epg_refreshtime", epgrefresh, "0");
244                        addconfigscreencheck("epgbutton", epgbutton, "0");
245                        addconfigscreen("gmultiepgzoom", epgzoom);
246                        addconfigscreencheck("epgpicon", epgpicon, "0");
247                        addconfigscreencheck("epgsave", epgsave, "0");
248                        addconfigscreencheck("delepgbeforescan", delepgbeforescan, "0");
249                        addconfigscreencheck("mhwepg", mhwepg, "0");
250                        addconfigscreencheck("mhw2epg", mhw2epg, "0");
251                        addconfigscreencheck("opentv", opentv, "0");
252                        addconfigscreencheck("epg_afterevent", epg_afterevent, "0");
253
254                        if(getconfig("epg_refreshtime", NULL) == NULL || ostrcmp(getconfig("epg_refreshtime", NULL), "0") == 0)
255                                epgscandeltimer();
256                        else
257                                epgscancreatetimer();
258                       
259                        if(getconfig("epg_refreshtime", NULL) != NULL || getconfigint("epg_afterevent", NULL) != 0)
260                        {       
261                                if(getconfigint("epg_listmode", NULL) == 1 || getconfigint("epg_listmode", NULL) == 3)
262                                {
263                                        textbox(_("Message"), _("Deavtivate Refresh Time and After EPG in scan-mode"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 15, 0);
264                                        delconfig("epg_refreshtime");
265                                        delconfig("epg_afterevent");           
266                                }
267                        }
268
269                        break;
270                }
271                if(rcret == getrcconfigint("rcgreen", NULL))
272                {
273                        if(listbox->select != NULL && ostrcmp(listbox->select->name, "epgpath") == 0)
274                        {
275                                clearscreen(epgsettings);
276                                ret = screendir(listbox->select->ret, "", NULL, NULL, NULL, NULL, 0, "SELECT", 0, NULL, 0, NULL, 0, 750, 0, 650, 0, 0);
277                                if(ret != NULL)
278                                        changeinput(listbox->select, ret);
279                                free(ret);
280
281                                drawscreen(epgsettings, 0, 0);
282                        }
283                }
284                if(rcret == getrcconfigint("rcred", NULL))
285                {
286                        drawscreen(load, 0, 0);
287                        resetepg(0);
288                        clearscreen(load);
289                        textbox(_("Message"), _("EPG resetet and now clear."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
290                        drawscreen(epgsettings, 0, 0);
291                }
292                if(rcret == getrcconfigint("rcyellow", NULL))
293                {
294                        clearscreen(epgsettings);
295                        screenepgscanlist();
296                        drawscreen(epgsettings, 0, 0);
297                }
298                if(rcret == getrcconfigint("rcblue", NULL))
299                {
300                        clearscreen(epgsettings);
301                        char* log = readfiletomem(EPGSCANLOG, 0);
302                        if(log == NULL) log = ostrcat("No log infos available.", NULL, 0, 0);
303                        textbox(_("EPG Scan Log"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
304                        free(log); log = NULL;
305                        drawscreen(epgsettings, 0, 0);
306                }
307
308                if(ostrcmp(listbox->select->name, "epgpath") == 0)
309                        b4->hidden = NO;
310                else
311                        b4->hidden = YES;
312                drawscreen(epgsettings, 0, 0);
313        }
314
315        delownerrc(epgsettings);
316        clearscreen(epgsettings);
317}
318
319#endif
Note: See TracBrowser for help on using the repository browser.