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

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

[titan] add emucontrol and deepcontrol

File size: 9.5 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        debug(50, "drop_caches");
125        writesysint("/proc/sys/vm/drop_caches", 3, 0);
126       
127        debug(50, "[mc_main] umounting: fuse, (rarfs,isofs,imgfs)");
128        system("/bin/umount -fl `mount | grep fuse | grep rarfs | grep -v '/dev/' | cut -d ' ' -f3`; killall -9 rarfs");
129        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");
130
131        char* tmpstr = NULL;
132        tmpstr = ostrcat(getconfig("pluginpath", NULL), "/mc/skin.xml", 0, 0);
133        readscreen(tmpstr, 101, 1);
134        free(tmpstr); tmpstr = NULL;
135       
136        struct skin* mc_main = NULL;
137        mc_main = getscreen("mc_main_mvi");
138               
139        struct skin* listbox = getscreennode(mc_main, "listbox");
140        struct skin* mc_main_selected = getscreennode(mc_main, "mc_main_selected_pic");
141
142        singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
143                       
144        drawscreen(mc_main, 0, 0);
145        addscreenrc(mc_main, listbox);
146        int first = 1;
147
148        while(1)
149        {
150                if(first == 1 && listbox->select != NULL)
151                {
152        // menu is slow if enable
153                        writevfd(listbox->select->text);
154               
155                        if(ostrcmp(listbox->select->name, "mc_videoplayer") == 0)
156                        {
157                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
158                        }
159                        else if(ostrcmp(listbox->select->name, "mc_audioplayer") == 0)
160                        {
161                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
162                        }
163                        else if(ostrcmp(listbox->select->name, "mc_pictureplayer") == 0)
164                        {
165                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
166                        }
167                        else if(ostrcmp(listbox->select->name, "mc_myvideo") == 0)
168                        {
169                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
170                        }
171                        else if(ostrcmp(listbox->select->name, "mc_dateibrowser") == 0)
172                        {
173                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
174                        }
175                        else if(ostrcmp(listbox->select->name, "mc_internetbrowser") == 0)
176                        {
177                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
178                        }
179                        else if(ostrcmp(listbox->select->name, "mc_mediathek") == 0)
180                        {
181                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
182                        }
183                        else if(ostrcmp(listbox->select->name, "mc_wetterinfo") == 0)
184                        {
185                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
186                        }       
187                        first = 0;
188                }
189               
190                rcret = waitrc(mc_main, 0, 1);
191                if (rcret == getrcconfigint("rcexit", NULL)) break;             
192                       
193                if(rcret == getrcconfigint("rcok", NULL))
194                {
195                        clearscreen(mc_main);
196                        ret = mc_menucall(listbox->select);
197                        if(ret != 0)
198                                textbox(_("Message"), _("Menu not implemented !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
199
200                        mc_main = getscreen("mc_main_mvi");
201
202                        listbox = getscreennode(mc_main, "listbox");
203                        mc_main_selected = getscreennode(mc_main, "mc_main_selected_pic");
204
205                        drawscreen(mc_main, 0, 0);
206                        debug(50, "ret: %d", ret);
207                        addscreenrc(mc_main, listbox);
208
209                }
210
211                drawscreen(mc_main, 0, 0);
212// menu is slow if enable
213                writevfd(listbox->select->text);
214               
215                if(listbox->select != NULL && (rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL) || rcret == getrcconfigint("rcup", NULL) || rcret == getrcconfigint("rcdown", NULL)))
216                {
217                        if(ostrcmp(listbox->select->name, "mc_videoplayer") == 0)
218                        {
219                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
220                        }
221                        else if(ostrcmp(listbox->select->name, "mc_audioplayer") == 0)
222                        {
223                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgMusic.mvi", 0);
224                        }
225                        else if(ostrcmp(listbox->select->name, "mc_pictureplayer") == 0)
226                        {
227                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgPicture.mvi", 0);
228                        }
229                        else if(ostrcmp(listbox->select->name, "mc_myvideo") == 0)
230                        {
231                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
232                        }
233                        else if(ostrcmp(listbox->select->name, "mc_dateibrowser") == 0)
234                        {
235                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgSettings.mvi", 0);
236                        }
237                        else if(ostrcmp(listbox->select->name, "mc_internetbrowser") == 0)
238                        {
239                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgBrowser.mvi", 0);
240                        }
241                        else if(ostrcmp(listbox->select->name, "mc_mediathek") == 0)
242                        {
243                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgVideo.mvi", 0);
244                        }
245                        else if(ostrcmp(listbox->select->name, "mc_wetterinfo") == 0)
246                        {
247                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/bgWeather.mvi", 0);
248                        }
249                        drawscreen(mc_main, 0, 0);
250                }
251        }
252
253
254        delownerrc(mc_main);
255        clearscreen(mc_main);
256        drawscreen(skin, 0, 0);
257
258        debug(50, "drop_caches");
259        writesysint("/proc/sys/vm/drop_caches", 3, 0);
260        debug(1000, "out");
261        debug(50, "startservice: lastservice");
262        tmpstr = ostrcat(status.lastservice->channellist, NULL, 0, 0);
263        servicestart(status.lastservice->channel, tmpstr, NULL, 0);
264        free(tmpstr); tmpstr = NULL;
265        debug(50, "set default osdtransparent");
266        setosdtransparent(getskinconfigint("osdtransparent", NULL));
267        status.hangtime = getconfigint("hangtime", NULL);
268        status.mcaktiv = 0;
269
270        if(getconfigint("emucontrol", NULL) == 1)
271                system("emu.sh unhalt");
272
273        currvideomode = getvideomode();
274        if(videomode != NULL && currvideomode != NULL && ostrcmp(videomode, currvideomode) != 0)
275        {
276                debug(50, "detected videomode change: %s > %s", videomode, currvideomode);
277                debug(50, "reset videomode: %s", videomode);
278                setvideomode(videomode, 0);
279                changefbresolution(videomode);
280                writeallconfig(1);
281                if((ostrncmp("576", videomode, 3) == 0) || (ostrncmp("pal", videomode, 3) == 0))
282                        writesys("/var/etc/.scart", "0", 0);
283                else
284                        unlink("/var/etc/.scart");
285        }
286
287        free(videomode),videomode = NULL;
288        free(currvideomode),currvideomode = NULL;
289}
290
291#endif
Note: See TracBrowser for help on using the repository browser.