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