source: titan/plugins/mc/mc_main.h @ 33794

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

mc/tithek save/restore tv vol

File size: 14.0 KB
Line 
1#ifndef MC_MAIN_H
2#define MC_MAIN_H
3
4int mc_menucall(struct skin* menuentry)
5{
6        debug(1000, "in");
7        int ret = 0;
8        char* tmpstr = NULL;
9
10        if(menuentry == NULL){
11                debug(1000, "out -> NULL detect");
12                return 1;
13        }
14
15        if(ostrcmp("mc_videoplayer", menuentry->name) == 0)
16        {
17                drawscreen(skin, 0, 0);
18                screenmc_videoplayer(NULL);
19                drawscreen(skin, 0, 0);
20//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
21                tmpstr = createpluginpath("/mc/skin/bgVideo.mvi", 0);
22                singlepicstart(tmpstr, 0);
23                free(tmpstr); tmpstr = NULL;
24        }
25        else if(ostrcmp("mc_audioplayer", menuentry->name) == 0)
26        {
27                drawscreen(skin, 0, 0);
28                screenmc_audioplayer(NULL);
29//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
30                tmpstr = createpluginpath("/mc/skin/bgMusic.mvi", 0);
31                singlepicstart(tmpstr, 0);
32                free(tmpstr); tmpstr = NULL;
33        }
34        else if(ostrcmp("mc_pictureplayer", menuentry->name) == 0)
35        {
36                drawscreen(skin, 0, 0);
37//#ifdef MIPSEL
38//              servicestop(status.aktservice, 0, 4);   
39//#else
40                servicestop(status.aktservice, 1, 1);   
41//#endif
42                screenmc_pictureplayer(NULL);
43//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
44                tmpstr = createpluginpath("/mc/skin/bgPicture.mvi", 0);
45                singlepicstart(tmpstr, 0);
46                free(tmpstr); tmpstr = NULL;
47        }
48        else if(ostrcmp("mc_appletrailer", menuentry->name) == 0)
49        {
50                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
51                screenmc_appletrailer();
52        }
53        else if(ostrcmp("mc_myvideo", menuentry->name) == 0)
54        {
55                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
56                screenmc_myvideo();
57        }
58        else if(ostrcmp("mc_vlcplayer", menuentry->name) == 0)
59        {
60                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
61                screenmc_vlcplayer();
62        }
63        else if(ostrcmp("mc_dateibrowser", menuentry->name) == 0)
64        {
65                drawscreen(skin, 0, 0);
66                servicestop(status.aktservice, 1, 1);   
67                screenmc_dateibrowser(NULL);
68//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
69                tmpstr = createpluginpath("/mc/skin/bgSettings.mvi", 0);
70                singlepicstart(tmpstr, 0);
71                free(tmpstr); tmpstr = NULL;
72        }
73        else if(ostrcmp("mc_internetbrowser", menuentry->name) == 0)
74        {
75                drawscreen(skin, 0, 0);
76                servicestop(status.aktservice, 1, 1);   
77                screenmc_internetbrowser(NULL);
78//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
79                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
80                singlepicstart(tmpstr, 0);
81                free(tmpstr); tmpstr = NULL;
82        }
83        else if(ostrcmp("mc_mediathek", menuentry->name) == 0)
84        {
85                drawscreen(skin, 0, 0);
86                servicestop(status.aktservice, 1, 1);   
87                screenmc_mediathek(NULL);
88//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
89                tmpstr = createpluginpath("/mc/skin/bgVideo.mvi", 0);
90                singlepicstart(tmpstr, 0);
91                free(tmpstr); tmpstr = NULL;
92        }
93        else if(ostrcmp("mc_radio", menuentry->name) == 0)
94        {
95                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);   
96                screenmc_radio();
97        }
98        else if(ostrcmp("mc_webradio", menuentry->name) == 0)
99        {
100                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);   
101                screenmc_webradio();
102        }
103        else if(ostrcmp("mc_wetterinfo", menuentry->name) == 0)
104        {
105                drawscreen(skin, 0, 0);
106                servicestop(status.aktservice, 1, 1);   
107                screenmc_wetterinfo(NULL);
108//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
109                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
110                singlepicstart(tmpstr, 0);
111                free(tmpstr); tmpstr = NULL;
112        }
113        else if(ostrcmp("mc_settings", menuentry->name) == 0)
114        {
115                drawscreen(skin, 0, 0);
116                servicestop(status.aktservice, 1, 1);   
117                screenmc_settings(NULL);
118//              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
119                tmpstr = createpluginpath("/mc/skin/bgMusic.mvi", 0);
120                singlepicstart(tmpstr, 0);
121                free(tmpstr); tmpstr = NULL;
122        }
123        else
124                ret = 1;
125
126        debug(1000, "out");
127        return ret;
128}
129
130void mc_main()
131{
132        status.mcaktiv = 1;
133        status.hangtime = 99999;
134        int rcret = 0, ret = 0;
135        char* videomode = NULL, *currvideomode = NULL;
136
137        int savevol = getvol();
138        set_player_sound(0);
139
140        writevfdmenu("Mediacenter");
141        resettvpic();
142        videomode = getvideomode();
143        debug(50, "save videomode: %s", videomode);
144
145        debug(50, "setfbtransparent 255");
146        setfbtransparent(255);
147        debug(50, "servicestop: lastservice");
148        ret = servicestop(status.aktservice, 1, 1);
149        if(ret == 1) return;
150        ret = 0;
151
152        if(getconfigint("emucontrol", NULL) == 1)
153                system("emu.sh halt");
154       
155        if(!file_exist(getconfig("mediadbpath", NULL)))
156                mkdir(getconfig("mediadbpath", NULL), 0777);
157               
158        debug(50, "drop_caches");
159        writesysint("/proc/sys/vm/drop_caches", 3, 0);
160       
161        debug(50, "[mc_main] umounting: fuse, (rarfs,isofs,imgfs)");
162        system("/bin/umount -fl `mount | grep fuse | grep rarfs | grep -v '/dev/' | cut -d ' ' -f3` > /dev/null 2>&1; killall -9 rarfs > /dev/null 2>&1");
163        system("/bin/umount -fl `mount | grep fuse | grep -v '/dev/' | cut -d ' ' -f3` > /dev/null 2>&1; /bin/umount -fl `mount | grep iso9660 | cut -d ' ' -f3` `mount | grep udf | cut -d ' ' -f3` > /dev/null 2>&1; killall -9 rarfs fusesmb curlftpfs > /dev/null 2>&1");
164        system("umount -a -f -t fuse.rarfs,iso9660,udf,fuse.djmount,fuse.fusesmb,fuse.curlftpfs > /dev/null 2>&1");
165
166        char* tmpstr = NULL;
167        tmpstr = createpluginpath("/mc/skin.xml", 0);
168        readscreen(tmpstr, 101, 1);
169        free(tmpstr); tmpstr = NULL;
170       
171        struct skin* mc_main = NULL;
172        mc_main = getscreen("mc_main_mvi");
173               
174        struct skin* listbox = getscreennode(mc_main, "listbox");
175        struct skin* mc_main_selected = getscreennode(mc_main, "mc_main_selected_pic");
176
177        struct skin* mc_audioplayer = getscreennode(mc_main, "mc_audioplayer");
178        struct skin* mc_videoplayer = getscreennode(mc_main, "mc_videoplayer");
179        struct skin* mc_pictureplayer = getscreennode(mc_main, "mc_pictureplayer");
180        struct skin* mc_mediathek = getscreennode(mc_main, "mc_mediathek");
181        struct skin* mc_dateibrowser = getscreennode(mc_main, "mc_dateibrowser");
182        struct skin* mc_internetbrowser = getscreennode(mc_main, "mc_internetbrowser");
183        struct skin* mc_wetterinfo = getscreennode(mc_main, "mc_wetterinfo");
184
185//      singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
186        tmpstr = createpluginpath("/mc/skin/bgMusic.mvi", 0);
187        singlepicstart(tmpstr, 0);
188        free(tmpstr); tmpstr = NULL;
189
190        mc_audioplayer->usesavebg = 2;
191        mc_videoplayer->usesavebg = 2;
192        mc_pictureplayer->usesavebg = 2;
193        mc_mediathek->usesavebg = 2;
194        mc_dateibrowser->usesavebg = 2;
195        mc_internetbrowser->usesavebg = 2;
196        mc_wetterinfo->usesavebg = 2;
197               
198        drawscreen(mc_main, 0, 0);
199        addscreenrc(mc_main, listbox);
200        int first = 1;
201
202        while(1)
203        {
204                if(first == 1 && listbox->select != NULL)
205                {
206        // menu is slow if enable
207                        writevfdmenu(listbox->select->text);
208               
209                        if(ostrcmp(listbox->select->name, "mc_videoplayer") == 0)
210                        {
211//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
212                                tmpstr = createpluginpath("/mc/skin/bgVideo.mvi", 0);
213                                singlepicstart(tmpstr, 0);
214                                free(tmpstr); tmpstr = NULL;
215                        }
216                        else if(ostrcmp(listbox->select->name, "mc_audioplayer") == 0)
217                        {
218//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
219                                tmpstr = createpluginpath("/mc/skin/bgMusic.mvi", 0);
220                                singlepicstart(tmpstr, 0);
221                                free(tmpstr); tmpstr = NULL;
222                        }
223                        else if(ostrcmp(listbox->select->name, "mc_pictureplayer") == 0)
224                        {
225//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
226                                tmpstr = createpluginpath("/mc/skin/bgPicture.mvi", 0);
227                                singlepicstart(tmpstr, 0);
228                                free(tmpstr); tmpstr = NULL;
229                        }
230                        else if(ostrcmp(listbox->select->name, "mc_myvideo") == 0)
231                        {
232//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
233                                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
234                                singlepicstart(tmpstr, 0);
235                                free(tmpstr); tmpstr = NULL;
236                        }
237                        else if(ostrcmp(listbox->select->name, "mc_dateibrowser") == 0)
238                        {
239//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
240                                tmpstr = createpluginpath("/mc/skin/bgSettings.mvi", 0);
241                                singlepicstart(tmpstr, 0);
242                                free(tmpstr); tmpstr = NULL;
243                        }
244                        else if(ostrcmp(listbox->select->name, "mc_internetbrowser") == 0)
245                        {
246//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
247                                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
248                                singlepicstart(tmpstr, 0);
249                                free(tmpstr); tmpstr = NULL;
250                        }
251                        else if(ostrcmp(listbox->select->name, "mc_mediathek") == 0)
252                        {
253//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
254                                tmpstr = createpluginpath("/mc/skin/bgVideo.mvi", 0);
255                                singlepicstart(tmpstr, 0);
256                                free(tmpstr); tmpstr = NULL;
257                        }
258                        else if(ostrcmp(listbox->select->name, "mc_wetterinfo") == 0)
259                        {
260//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
261                                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
262                                singlepicstart(tmpstr, 0);
263                                free(tmpstr); tmpstr = NULL;
264                        }       
265                        first = 0;
266                }
267               
268                rcret = waitrc(mc_main, 0, 1);
269                if (rcret == getrcconfigint("rcexit", NULL)) break;             
270
271                if (rcret == getrcconfigint("rcrecord", NULL) || rcret == getrcconfigint("rcshoot", NULL))
272                {
273                        system("grab -j 100");
274                        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);
275                        drawscreen(mc_main, 0, 0);
276                }
277
278                if(rcret == getrcconfigint("rcok", NULL))
279                {
280                        clearscreen(mc_main);
281                        ret = mc_menucall(listbox->select);
282                        if(ret != 0)
283                                textbox(_("Message"), _("Menu not implemented !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
284
285                        mc_main = getscreen("mc_main_mvi");
286
287                        listbox = getscreennode(mc_main, "listbox");
288                        mc_main_selected = getscreennode(mc_main, "mc_main_selected_pic");
289
290                        drawscreen(mc_main, 0, 0);
291                        debug(50, "ret: %d", ret);
292                        addscreenrc(mc_main, listbox);
293
294                }
295
296                drawscreen(mc_main, 0, 0);
297// menu is slow if enable
298                writevfdmenu(listbox->select->text);
299               
300                if(listbox->select != NULL && (rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL) || rcret == getrcconfigint("rcup", NULL) || rcret == getrcconfigint("rcdown", NULL)))
301                {
302                        if(ostrcmp(listbox->select->name, "mc_videoplayer") == 0)
303                        {
304//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
305                                tmpstr = createpluginpath("/mc/skin/bgVideo.mvi", 0);
306                                singlepicstart(tmpstr, 0);
307                                free(tmpstr); tmpstr = NULL;
308                        }
309                        else if(ostrcmp(listbox->select->name, "mc_audioplayer") == 0)
310                        {
311//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
312                                tmpstr = createpluginpath("/mc/skin/bgMusic.mvi", 0);
313                                singlepicstart(tmpstr, 0);
314                                free(tmpstr); tmpstr = NULL;
315                        }
316                        else if(ostrcmp(listbox->select->name, "mc_pictureplayer") == 0)
317                        {
318//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
319                                tmpstr = createpluginpath("/mc/skin/bgPicture.mvi", 0);
320                                singlepicstart(tmpstr, 0);
321                                free(tmpstr); tmpstr = NULL;
322                        }
323                        else if(ostrcmp(listbox->select->name, "mc_myvideo") == 0)
324                        {
325//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
326                                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
327                                singlepicstart(tmpstr, 0);
328                                free(tmpstr); tmpstr = NULL;
329                        }
330                        else if(ostrcmp(listbox->select->name, "mc_dateibrowser") == 0)
331                        {
332//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
333                                tmpstr = createpluginpath("/mc/skin/bgSettings.mvi", 0);
334                                singlepicstart(tmpstr, 0);
335                                free(tmpstr); tmpstr = NULL;
336                        }
337                        else if(ostrcmp(listbox->select->name, "mc_internetbrowser") == 0)
338                        {
339//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
340                                tmpstr = createpluginpath("/mc/skin/bgBrowser.mvi", 0);
341                                singlepicstart(tmpstr, 0);
342                                free(tmpstr); tmpstr = NULL;
343                        }
344                        else if(ostrcmp(listbox->select->name, "mc_mediathek") == 0)
345                        {
346//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
347                                tmpstr = createpluginpath("/mc/skin/bgVideo.mvi", 0);
348                                singlepicstart(tmpstr, 0);
349                                free(tmpstr); tmpstr = NULL;
350                        }
351                        else if(ostrcmp(listbox->select->name, "mc_wetterinfo") == 0)
352                        {
353//                              singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgWeather.mvi", 0);
354                                tmpstr = createpluginpath("/mc/skin/bgWeather.mvi", 0);
355                                singlepicstart(tmpstr, 0);
356                                free(tmpstr); tmpstr = NULL;
357                        }
358                        drawscreen(mc_main, 0, 0);
359                }
360        }
361
362
363        delownerrc(mc_main);
364        clearscreen(mc_main);
365        drawscreen(skin, 0, 0);
366
367        debug(50, "drop_caches");
368        writesysint("/proc/sys/vm/drop_caches", 3, 0);
369        debug(1000, "out");
370        debug(50, "startservice: lastservice");
371        tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
372        servicestart(status.lastservice->channel, tmpstr, NULL, 0);
373        free(tmpstr); tmpstr = NULL;
374        debug(50, "set default osdtransparent");
375        setosdtransparent(getskinconfigint("osdtransparent", NULL));
376        status.hangtime = getconfigint("hangtime", NULL);
377        status.mcaktiv = 0;
378
379        if(getconfigint("emucontrol", NULL) == 1)
380                system("emu.sh unhalt");
381
382        currvideomode = getvideomode();
383        if(videomode != NULL && currvideomode != NULL && ostrcmp(videomode, currvideomode) != 0)
384        {
385                debug(50, "detected videomode change: %s > %s", videomode, currvideomode);
386                debug(50, "reset videomode: %s", videomode);
387                setvideomode(videomode, 0);
388                changefbresolution(videomode, 0);
389                writeallconfig(1);
390                if((ostrncmp("576", videomode, 3) == 0) || (ostrncmp("pal", videomode, 3) == 0))
391                        writesys("/var/etc/.scart", "0", 0);
392                else
393                        unlink("/var/etc/.scart");
394        }
395
396        set_player_sound(1);
397        setvol(savevol);
398
399        free(videomode),videomode = NULL;
400        free(currvideomode),currvideomode = NULL;
401}
402
403#endif
Note: See TracBrowser for help on using the repository browser.