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

Last change on this file since 20034 was 20034, checked in by obi, 11 years ago

fix mediadb

File size: 9.6 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
9        if(menuentry == NULL){
10                debug(1000, "out -> NULL detect");
11                return 1;
12        }
13
14        if(ostrcmp("mc_videoplayer", menuentry->name) == 0)
15        {
16                drawscreen(skin, 0, 0);
17                screenmc_videoplayer(NULL);
18                drawscreen(skin, 0, 0);
19                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
20        }
21        else if(ostrcmp("mc_audioplayer", menuentry->name) == 0)
22        {
23                drawscreen(skin, 0, 0);
24                servicestop(status.aktservice, 1, 1);   
25                screenmc_audioplayer(NULL);
26                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
27        }
28        else if(ostrcmp("mc_pictureplayer", menuentry->name) == 0)
29        {
30                drawscreen(skin, 0, 0);
31                servicestop(status.aktservice, 1, 1);   
32                screenmc_pictureplayer(NULL);
33                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
34        }
35        else if(ostrcmp("mc_appletrailer", menuentry->name) == 0)
36        {
37                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
38                screenmc_appletrailer();
39        }
40        else if(ostrcmp("mc_myvideo", menuentry->name) == 0)
41        {
42                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
43                screenmc_myvideo();
44        }
45        else if(ostrcmp("mc_vlcplayer", menuentry->name) == 0)
46        {
47                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
48                screenmc_vlcplayer();
49        }
50        else if(ostrcmp("mc_dateibrowser", menuentry->name) == 0)
51        {
52                drawscreen(skin, 0, 0);
53                servicestop(status.aktservice, 1, 1);   
54                screenmc_dateibrowser(NULL);
55                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
56        }
57        else if(ostrcmp("mc_internetbrowser", menuentry->name) == 0)
58        {
59                drawscreen(skin, 0, 0);
60                servicestop(status.aktservice, 1, 1);   
61                screenmc_internetbrowser(NULL);
62                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
63        }
64        else if(ostrcmp("mc_mediathek", menuentry->name) == 0)
65        {
66                drawscreen(skin, 0, 0);
67                servicestop(status.aktservice, 1, 1);   
68                screenmc_mediathek(NULL);
69                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
70        }
71        else if(ostrcmp("mc_radio", menuentry->name) == 0)
72        {
73                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);   
74                screenmc_radio();
75        }
76        else if(ostrcmp("mc_webradio", menuentry->name) == 0)
77        {
78                textbox(_("Message"), _("comming soon"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);   
79                screenmc_webradio();
80        }
81        else if(ostrcmp("mc_wetterinfo", menuentry->name) == 0)
82        {
83                drawscreen(skin, 0, 0);
84                servicestop(status.aktservice, 1, 1);   
85                screenmc_wetterinfo(NULL);
86                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
87        }
88        else if(ostrcmp("mc_settings", menuentry->name) == 0)
89        {
90                drawscreen(skin, 0, 0);
91                servicestop(status.aktservice, 1, 1);   
92                screenmc_settings(NULL);
93                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
94        }
95        else
96                ret = 1;
97
98        debug(1000, "out");
99        return ret;
100}
101
102void mc_main()
103{
104        status.mcaktiv = 1;
105        status.hangtime = 99999;
106        int rcret = 0, ret = 0;
107        char* videomode = NULL, *currvideomode = NULL;
108
109        writevfd("Mediacenter");
110        resettvpic();
111        videomode = getvideomode();
112        debug(50, "save videomode: %s", videomode);
113
114        debug(50, "setfbtransparent 255");
115        setfbtransparent(255);
116        debug(50, "servicestop: lastservice");
117        ret = servicestop(status.aktservice, 1, 1);
118        if(ret == 1) return;
119        ret = 0;
120
121        if(getconfigint("emucontrol", NULL) == 1)
122                system("emu.sh halt");
123
124        if(!file_exist(getconfig("mediadbpath", NULL)))
125                mkdir(getconfig("mediadbpath", NULL), 0777);
126               
127        debug(50, "drop_caches");
128        writesysint("/proc/sys/vm/drop_caches", 3, 0);
129       
130        debug(50, "[mc_main] umounting: fuse, (rarfs,isofs,imgfs)");
131        system("/bin/umount -fl `mount | grep fuse | grep rarfs | grep -v '/dev/' | cut -d ' ' -f3`; killall -9 rarfs");
132        system("/bin/umount -fl `mount | grep fuse | grep -v '/dev/' | cut -d ' ' -f3`; /bin/umount -fl `mount | grep iso9660 | cut -d ' ' -f3`; killall -9 rarfs fusesmb curlftpfs");
133
134        char* tmpstr = NULL;
135        tmpstr = ostrcat(getconfig("pluginpath", NULL), "/mc/skin.xml", 0, 0);
136        readscreen(tmpstr, 101, 1);
137        free(tmpstr); tmpstr = NULL;
138       
139        struct skin* mc_main = NULL;
140        mc_main = getscreen("mc_main_mvi");
141               
142        struct skin* listbox = getscreennode(mc_main, "listbox");
143        struct skin* mc_main_selected = getscreennode(mc_main, "mc_main_selected_pic");
144
145        singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
146                       
147        drawscreen(mc_main, 0, 0);
148        addscreenrc(mc_main, listbox);
149        int first = 1;
150
151        while(1)
152        {
153                if(first == 1 && listbox->select != NULL)
154                {
155        // menu is slow if enable
156                        writevfd(listbox->select->text);
157               
158                        if(ostrcmp(listbox->select->name, "mc_videoplayer") == 0)
159                        {
160                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
161                        }
162                        else if(ostrcmp(listbox->select->name, "mc_audioplayer") == 0)
163                        {
164                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
165                        }
166                        else if(ostrcmp(listbox->select->name, "mc_pictureplayer") == 0)
167                        {
168                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
169                        }
170                        else if(ostrcmp(listbox->select->name, "mc_myvideo") == 0)
171                        {
172                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
173                        }
174                        else if(ostrcmp(listbox->select->name, "mc_dateibrowser") == 0)
175                        {
176                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
177                        }
178                        else if(ostrcmp(listbox->select->name, "mc_internetbrowser") == 0)
179                        {
180                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
181                        }
182                        else if(ostrcmp(listbox->select->name, "mc_mediathek") == 0)
183                        {
184                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
185                        }
186                        else if(ostrcmp(listbox->select->name, "mc_wetterinfo") == 0)
187                        {
188                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
189                        }       
190                        first = 0;
191                }
192               
193                rcret = waitrc(mc_main, 0, 1);
194                if (rcret == getrcconfigint("rcexit", NULL)) break;             
195                       
196                if(rcret == getrcconfigint("rcok", NULL))
197                {
198                        clearscreen(mc_main);
199                        ret = mc_menucall(listbox->select);
200                        if(ret != 0)
201                                textbox(_("Message"), _("Menu not implemented !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
202
203                        mc_main = getscreen("mc_main_mvi");
204
205                        listbox = getscreennode(mc_main, "listbox");
206                        mc_main_selected = getscreennode(mc_main, "mc_main_selected_pic");
207
208                        drawscreen(mc_main, 0, 0);
209                        debug(50, "ret: %d", ret);
210                        addscreenrc(mc_main, listbox);
211
212                }
213
214                drawscreen(mc_main, 0, 0);
215// menu is slow if enable
216                writevfd(listbox->select->text);
217               
218                if(listbox->select != NULL && (rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL) || rcret == getrcconfigint("rcup", NULL) || rcret == getrcconfigint("rcdown", NULL)))
219                {
220                        if(ostrcmp(listbox->select->name, "mc_videoplayer") == 0)
221                        {
222                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
223                        }
224                        else if(ostrcmp(listbox->select->name, "mc_audioplayer") == 0)
225                        {
226                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
227                        }
228                        else if(ostrcmp(listbox->select->name, "mc_pictureplayer") == 0)
229                        {
230                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
231                        }
232                        else if(ostrcmp(listbox->select->name, "mc_myvideo") == 0)
233                        {
234                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
235                        }
236                        else if(ostrcmp(listbox->select->name, "mc_dateibrowser") == 0)
237                        {
238                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
239                        }
240                        else if(ostrcmp(listbox->select->name, "mc_internetbrowser") == 0)
241                        {
242                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
243                        }
244                        else if(ostrcmp(listbox->select->name, "mc_mediathek") == 0)
245                        {
246                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
247                        }
248                        else if(ostrcmp(listbox->select->name, "mc_wetterinfo") == 0)
249                        {
250                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgWeather.mvi", 0);
251                        }
252                        drawscreen(mc_main, 0, 0);
253                }
254        }
255
256
257        delownerrc(mc_main);
258        clearscreen(mc_main);
259        drawscreen(skin, 0, 0);
260
261        debug(50, "drop_caches");
262        writesysint("/proc/sys/vm/drop_caches", 3, 0);
263        debug(1000, "out");
264        debug(50, "startservice: lastservice");
265        tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
266        servicestart(status.lastservice->channel, tmpstr, NULL, 0);
267        free(tmpstr); tmpstr = NULL;
268        debug(50, "set default osdtransparent");
269        setosdtransparent(getskinconfigint("osdtransparent", NULL));
270        status.hangtime = getconfigint("hangtime", NULL);
271        status.mcaktiv = 0;
272
273        if(getconfigint("emucontrol", NULL) == 1)
274                system("emu.sh unhalt");
275
276        currvideomode = getvideomode();
277        if(videomode != NULL && currvideomode != NULL && ostrcmp(videomode, currvideomode) != 0)
278        {
279                debug(50, "detected videomode change: %s > %s", videomode, currvideomode);
280                debug(50, "reset videomode: %s", videomode);
281                setvideomode(videomode, 0);
282                changefbresolution(videomode);
283                writeallconfig(1);
284                if((ostrncmp("576", videomode, 3) == 0) || (ostrncmp("pal", videomode, 3) == 0))
285                        writesys("/var/etc/.scart", "0", 0);
286                else
287                        unlink("/var/etc/.scart");
288        }
289
290        free(videomode),videomode = NULL;
291        free(currvideomode),currvideomode = NULL;
292}
293
294#endif
Note: See TracBrowser for help on using the repository browser.