source: titan/plugins/mc/mc_videoplayer.h @ 16512

Last change on this file since 16512 was 16512, checked in by nit, 8 years ago

[titan] update all plugins

File size: 22.7 KB
Line 
1#ifndef MC_VIDEOPLAYER_H
2#define MC_VIDEOPLAYER_H
3
4extern struct skin* skin;
5extern struct screensaver* screensaver;
6extern struct mediadb* mediadb;
7
8void startmediadb()
9{
10        if(status.mediadbthread == NULL)
11                freemediadb(0);
12
13        char* tmpstr = NULL;
14        tmpstr = ostrcat("mkdir -p ", getconfig("mc_vp_mediadb", NULL), 0, 0);
15        tmpstr = ostrcat(tmpstr, "/mediadb_mc/vp", 1, 0);
16        system(tmpstr);
17       
18        free(tmpstr), tmpstr = NULL;
19        tmpstr = ostrcat(getconfig("mc_vp_mediadb", NULL), "/mediadb_mc/vp", 0, 0);
20//      not working...
21//      mkdir(tmpstr, 777);
22
23        //disable autoscanning
24        addconfigtmp("mediadbscantimeout", "0");
25       
26        addconfigtmp("mediadbpath", tmpstr);
27        debug(50, "mediadbpath=%s", tmpstr);
28
29        tmpstr = ostrcat(tmpstr, "/mediadb", 0, 0);     
30        addconfigtmp("mediadbfile", tmpstr);
31        debug(50, "mediadbfile=%s", tmpstr);
32
33        free(tmpstr), tmpstr = NULL;
34        tmpstr = ostrcat(getconfig("mc_vp_mediadbscandelall", NULL), NULL, 0, 0);
35        addconfigtmp("mediadbscandelall", tmpstr);
36
37        free(tmpstr), tmpstr = NULL;
38        tmpstr = ostrcat(getconfig("mc_vp_mediadbscandelnotfound", NULL), NULL, 0, 0);
39        addconfigtmp("mediadbscandelnotfound", tmpstr); 
40
41        readmediadb(getconfig("mediadbfile", NULL), 0, 0);
42//      dbnode = mediadb;
43
44//      printf("%p\n", mediadb);
45       
46//      while(dbnode != NULL)
47//      {
48//              printf("dbnode->file: %s\n",dbnode->file);
49//              dbnode = dbnode->next;
50//      }
51
52        free(tmpstr), tmpstr = NULL;
53        tmpstr = ostrcat(getconfig("mc_vp_dirsort", NULL), NULL, 0, 0);
54        addconfigtmp("dirsort", tmpstr);
55}
56
57void screenmc_videoplayer()
58{
59        struct mediadb* dbnode = NULL;
60        startmediadb();
61        dbnode = mediadb;
62
63        char* filename = NULL;
64        char* tmppolicy = NULL;
65        char* currentdirectory = NULL;
66        char* selectedfile = NULL;
67        int rcret = 0, rcwait = 1000, playerret = 0, flag = 1, skip = 0, eof = 0, playinfobarcount = 0, playinfobarstatus = 1, tmpview = 0, playlist = 0, playertype = 0, files = 0;
68        // workaround for grey background mvi
69        struct skin* blackscreen = getscreen("blackscreen");
70        drawscreen(blackscreen, 0, 0);
71
72        // main screen
73        struct skin* apskin = getscreen("mc_videoplayer");
74        struct skin* filelistpath = getscreennode(apskin, "filelistpath");
75        struct skin* filelist = getscreennode(apskin, "filelist");
76        struct skin* listbox = getscreennode(apskin, "listbox");
77        struct skin* b2 = getscreennode(apskin, "b2");
78        struct skin* b3 = getscreennode(apskin, "b3");
79        struct skin* b4 = getscreennode(apskin, "b4");
80       
81        struct skin* skin_cover = getscreennode(apskin, "cover");
82//      skin_cover->hidden = YES;
83                       
84        currentdirectory = ostrcat(currentdirectory, getconfig("mc_vp_path", NULL), 1, 0);
85        selectedfile = ostrcat(selectedfile, getconfig("mc_vp_selectedfile", NULL), 1, 0);
86
87        // enable listbox and set hidden
88        listbox->aktpage = -1;
89        listbox->aktline = 0;
90        listbox->hidden = YES;
91
92        // read configs
93        int view = getconfigint("mc_vp_view", NULL);
94        int skip13 = getconfigint("skip13", NULL);
95        int skip46 = getconfigint("skip46", NULL);
96        int skip79 = getconfigint("skip79", NULL);
97
98        // save policy
99        tmppolicy = getpolicy();
100       
101        // set allowed filemask
102        char* filemask = NULL;
103        if((status.expertmodus > 0) || (file_exist("/var/swap/etc/.mcfull")))
104                filemask = ostrcat("*.m3u *.pls *.ifo *.rar *.iso *.img *.avi *.dat *.divx *.flv *.mkv *.m4v *.mp4 *.mov *.mpg *.mpeg *.mts *.m2ts *.trp *.ts *.vdr *.vob *.wmv *.rm", NULL, 0, 0);
105        else
106                filemask = ostrcat("*.m3u *.pls *.avi *.mkv *.mpg *.mpeg *.ts", NULL, 0, 0);
107       
108        // disable global transparent/hangtime
109        setfbtransparent(255);
110        status.hangtime = 99999;
111        status.playspeed = 0, status.play = 0, status.pause = 0, status.random = 0;
112
113        debug(50, "start screenmc_videoplayer view=%d", view);
114
115        singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/default.mvi", 0);
116
117        if(getconfigint("screensaver", NULL) == 1)
118                initscreensaver();
119
120        tmpview = view;
121        mc_changeview(view, filelist);
122
123        getfilelist(apskin, filelistpath, filelist, currentdirectory, filemask, tmpview, selectedfile);
124        addscreenrc(apskin, filelist);
125
126        char* savecmd = NULL;
127                       
128        while(1)
129        {
130                rcret = waitrc(apskin, rcwait, 0);
131//              debug(50, "while status play=%d", status.play);
132
133                if((status.play == 1) || (status.playspeed != 0))
134                {
135                        playinfobarcount ++;
136                        if(playinfobarstatus > 0)
137                        {
138                                screenplayinfobar(filename, 0, playertype, 0);
139                        }
140                        if(playinfobarstatus == 1 && playinfobarcount >= getconfigint("infobartimeout", NULL))
141                        {
142                                playinfobarstatus = 0;
143                                screenplayinfobar(NULL, 1, playertype, 0);
144                        }
145                }
146                else if(status.filelistextend == 5 && filelist->select != NULL)
147                {
148                        char* cmd = NULL;
149/*
150                        cmd = ostrcat(cmd, filelist->select->filelist->imdbpath, 1, 0);
151                        cmd = ostrcat(cmd, ".jpg", 1, 0);                       
152                        changepic(skin_cover, cmd);
153                        drawscreen(apskin, 0, 0);
154
155                        free(cmd), cmd = NULL;
156                        cmd = ostrcat(cmd, filelist->select->filelist->imdbpath, 1, 0);
157                        cmd = ostrcat(cmd, ".backdrop.mvi", 1, 0);
158*/
159                        cmd = ostrcat(cmd, filelist->select->filelist->imdbpath, 1, 0);
160                        cmd = ostrcat(cmd, "_thumb.jpg", 1, 0);                 
161                        changepic(skin_cover, cmd);
162                        drawscreen(apskin, 0, 0);
163
164                        free(cmd), cmd = NULL;
165                        cmd = ostrcat(cmd, filelist->select->filelist->imdbpath, 1, 0);
166                        cmd = ostrcat(cmd, "_backdrop.mvi", 1, 0);
167
168/*
169                        if(filelist->select != NULL && filelist->select->input == NULL)
170                        {
171                                while(dbnode != NULL)
172                                {
173                                        char* tmpstr = NULL;
174                                        tmpstr = ostrcat(tmpstr, basename(dbnode->file), 1, 0);
175                                        if(ostrcmp(listbox->select->name, tmpstr) == 0)
176                                        {
177                                                char* tmpstr1 = NULL;
178                                                tmpstr1 = ostrcat(tmpstr1, getconfig("mediadbpath", NULL), 1, 0);
179                                                tmpstr1 = ostrcat(tmpstr1, "/", 1, 0);                                                                                                                                                 
180                                                tmpstr1 = ostrcat(tmpstr1, dbnode->poster, 1, 0);
181                                                cmd = ostrcat(cmd, tmpstr1, 1, 0);
182                                                tmpstr1 = ostrcat(tmpstr1, "_thumb.jpg", 1, 0);
183                                                changepic(skin_cover, tmpstr1);
184                                                free(tmpstr1), tmpstr1 = NULL;
185                                                cmd = ostrcat(cmd, ".backdrop.mvi", 1, 0);
186                                                break;
187                                        }
188                                        free(tmpstr), tmpstr = NULL;
189                                        dbnode = dbnode->next;
190                                }
191                        }
192*/
193                        drawscreen(apskin, 0, 0);
194                                       
195                        if(!file_exist(cmd)){
196                                free(cmd), cmd = NULL;
197                                cmd = ostrcat(cmd, "/var/usr/local/share/titan/plugins/mc/skin/default.mvi", 1, 0);
198                        }
199
200                        if(savecmd == NULL)
201                        {
202                                singlepicstart(cmd, 0);
203                                free(savecmd), savecmd = NULL;
204                                savecmd = ostrcat(savecmd, cmd, 1, 0);
205                        }
206                        else
207                        {
208                                if(ostrcmp(savecmd, cmd) != 0)
209                                {
210                                        singlepicstart(cmd, 0);
211                                        free(savecmd), savecmd = NULL;
212                                        savecmd = ostrcat(savecmd, cmd, 1, 0);
213                                }
214                        }
215                        free(cmd), cmd = NULL;
216                }
217               
218                if(rcret == getrcconfigint("rc1", NULL))
219                {
220                        if((status.play == 1) || (status.playspeed != 0))
221                                playrcjumpr(filename, skip13, &playinfobarstatus, &playinfobarcount, playertype, flag);
222                }
223                else if(rcret == getrcconfigint("rc4", NULL))
224                {
225                        if((status.play == 1) || (status.playspeed != 0))
226                                playrcjumpr(filename, skip46, &playinfobarstatus, &playinfobarcount, playertype, flag);
227                }
228                else if(rcret == getrcconfigint("rc7", NULL))
229                {
230                        if((status.play == 1) || (status.playspeed != 0))
231                                playrcjumpr(filename, skip79, &playinfobarstatus, &playinfobarcount, playertype, flag);
232                }
233                else if(rcret == getrcconfigint("rc3", NULL))
234                {
235                        if((status.play == 1) || (status.playspeed != 0))
236                                playrcjumpf(filename, skip13, &playinfobarstatus, &playinfobarcount, playertype, flag);
237                }
238                else if(rcret == getrcconfigint("rc6", NULL))
239                {
240                        if((status.play == 1) || (status.playspeed != 0))
241                                playrcjumpf(filename, skip46, &playinfobarstatus, &playinfobarcount, playertype, flag);
242                }
243                else if(rcret == getrcconfigint("rc9", NULL))
244                {
245                        if((status.play == 1) || (status.playspeed != 0))
246                                playrcjumpf(filename, skip79, &playinfobarstatus, &playinfobarcount, playertype, flag);
247                }
248                else if(rcret == getrcconfigint("rcleft", NULL))
249                {
250                        if((status.play == 1) || (status.playspeed != 0))
251                                playrcjumpr(filename, 60, &playinfobarstatus, &playinfobarcount, playertype, flag);
252                }
253                else if(rcret == getrcconfigint("rcright", NULL))
254                {
255                        if((status.play == 1) || (status.playspeed != 0))
256                                playrcjumpf(filename, 60, &playinfobarstatus, &playinfobarcount, playertype, flag);
257                }
258                else if(rcret == getrcconfigint("rcdown", NULL))
259                {
260                        if((status.play == 1) || (status.playspeed != 0))
261                                playrcjumpr(filename, 600, &playinfobarstatus, &playinfobarcount, playertype, flag);
262                }
263                else if(rcret == getrcconfigint("rcup", NULL))
264                {
265                        if((status.play == 1) || (status.playspeed != 0))
266                                playrcjumpf(filename, 600, &playinfobarstatus, &playinfobarcount, playertype, flag);
267                }
268
269                else if(rcret == getrcconfigint("rcff", NULL))
270                {
271                        if((status.play == 1) || (status.playspeed != 0))
272                                playrcff(filename, &playinfobarstatus, &playinfobarcount, playertype, flag);
273                }       
274                else if(rcret == getrcconfigint("rcfr", NULL))
275                {
276                        if((status.play == 1) || (status.playspeed != 0))
277                                playrcfr(filename, &playinfobarstatus, &playinfobarcount, playertype, flag);
278                }
279                else if(rcret == getrcconfigint("rcplay", NULL))
280                {
281                        if((status.play == 1) || (status.playspeed != 0))
282                                playrcplay(filename, &playinfobarstatus, &playinfobarcount, playertype, flag);
283                }
284                else if(rcret == getrcconfigint("rcpause", NULL))
285                {
286                        if((status.play == 1) || (status.pause == 1))
287                                playrcpause(filename, &playinfobarstatus, &playinfobarcount, playertype, flag);
288                }
289                else if(rcret == getrcconfigint("rcnext", NULL))
290                {
291                        if(status.play == 1)
292                                eof = 1;
293                }
294                else if(rcret == getrcconfigint("rcprev", NULL))
295                {
296                        if(status.play == 1)
297                                eof = 2;
298                }
299                else if(rcret == getrcconfigint("rcblue", NULL))
300                {
301                        if(status.play == 1)
302                                playrcblue(filename, playinfobarstatus, playertype, flag);
303                        else
304                        {
305                                if(status.repeat == 0)
306                                {
307                                        changetext(b4, _("Repeat-On"));
308                                        drawscreen(apskin, 0, 0);
309                                        status.repeat = 1;
310                                }
311                                else
312                                {
313                                        status.repeat = 0;
314                                        changetext(b4, _("Repeat"));
315                                        drawscreen(apskin, 0, 0);
316                                }
317                        }
318                }
319
320                else if(rcret == getrcconfigint("rcyellow", NULL))
321                {
322                        if(status.play == 1)
323                                playrcyellow(filename, playinfobarstatus, playertype, flag);                                           
324                        else
325                                playerrandom(apskin, filelist, listbox, b3, playlist, flag);
326                }
327                else if(rcret == getrcconfigint("rcred", NULL))
328                {
329                        if(status.play == 1)
330                                playrcred(filename, playinfobarstatus, playertype, flag);
331                        else
332                        {
333                                if(playlist == 0)
334                                {
335                                        int sort = screenmc_sort();
336                                        debug(50, "rcred: tmpsort=%d", sort);
337
338                                        addconfiginttmp("dirsort", sort);
339                                        mc_changeview(tmpview, filelist);
340
341                                        delownerrc(apskin);     
342                                        getfilelist(apskin, filelistpath, filelist, filelistpath->text, filemask, tmpview, filelist->select->text);
343                                        addscreenrc(apskin, filelist);
344                                        drawscreen(apskin, 0, 0);
345                                }
346                        }
347                }
348                else if(rcret == getrcconfigint("rcgreen", NULL))
349                {
350                        if(status.play == 1)
351                                playrcgreen(filename, playinfobarstatus, playertype, flag);
352                        else
353                        {
354                                showplaylist(apskin, filelistpath, filelist, listbox, b2, 0, &playlist, &eof, &filename, &currentdirectory, &playertype, flag);
355                                drawscreen(apskin, 0, 0);
356                                continue;                       
357                        }
358                }
359                else if(rcret == getrcconfigint("rctext", NULL) || rcret == getrcconfigint("rcsubtitel", NULL))
360                {               
361                        if(status.play == 1)
362                                playrctext(filename, playinfobarstatus, playertype, flag);     
363                }
364                else if(rcret == getrcconfigint("rcmenu", NULL))
365                {
366                        if(status.play == 0 && status.pause == 0)
367                        {
368                                debug(50, "rcmenu: settings");
369                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/default.mvi", 0);
370                                view = getconfigint("mc_vp_view", NULL);
371                                screenmc_videoplayer_settings();
372                               
373                                if(view != getconfigint("mc_vp_view", NULL))
374                                {
375                                        printf("view changed > change tmpview\n");
376                                        tmpview = getconfigint("mc_vp_view", NULL);
377                                }
378                               
379                                mc_changeview(tmpview, filelist);
380
381//                              startmediadb();
382//                              dbnode = mediadb;
383       
384                                delownerrc(apskin);     
385                                getfilelist(apskin, filelistpath, filelist, filelistpath->text, filemask, tmpview, filelist->select->text);
386                                addscreenrc(apskin, filelist);
387                                drawscreen(apskin, 0, 0);
388                        }
389                }
390                else if(rcret == getrcconfigint("rcinfo", NULL))
391                {
392                        printf("Title: %s\n", playergetinfo("Title"));
393                        printf("Artist: %s\n", playergetinfo("Artist"));
394                        printf("Album: %s\n", playergetinfo("Album"));
395                        printf("Year: %s\n", playergetinfo("Year"));
396                        printf("Genre: %s\n", playergetinfo("Genre"));
397                        printf("Comment: %s\n", playergetinfo("Comment"));
398                        printf("Track: %s\n", playergetinfo("Track"));
399                        printf("Copyright: %s\n", playergetinfo("Copyright"));
400                        printf("TestLibEplayer: %s\n", playergetinfo("TestLibEplayer"));
401                       
402                        int videocount = 0, audiocount = 0, picturecount = 0;
403                        getmediadbcounts(&videocount, &audiocount, &picturecount);
404
405                        char* tmpstr = NULL;
406                        tmpstr = ostrcat(tmpstr, "scanning (", 1, 0);
407                        tmpstr = ostrcat(tmpstr, oitoa(videocount), 1, 1);
408                        tmpstr = ostrcat(tmpstr, "/", 1, 0);
409                        tmpstr = ostrcat(tmpstr, oitoa(files), 1, 1);
410                        tmpstr = ostrcat(tmpstr, ")", 1, 0);
411                       
412                        tmpstr = ostrcat(tmpstr, "\n\n ", 1, 0);
413                        tmpstr = ostrcat(tmpstr, _("MediaDB directory scan started in Background !"), 1, 0);
414                        tmpstr = ostrcat(tmpstr, "\n\n  ", 1, 0);
415                        tmpstr = ostrcat(tmpstr, _("Delete MediaDB before scan"), 1, 0);
416                        tmpstr = ostrcat(tmpstr, ": \t", 1, 0);
417                        if(ostrcmp(getconfig("mediadbscandelall", NULL), "1") == 0)
418                                tmpstr = ostrcat(tmpstr, _("yes"), 1, 0);
419                        else
420                                tmpstr = ostrcat(tmpstr, _("no"), 1, 0);
421                        tmpstr = ostrcat(tmpstr, "\n  ", 1, 0);                 
422                        tmpstr = ostrcat(tmpstr, _("Delete unused entrys before scan"), 1, 0);
423                        tmpstr = ostrcat(tmpstr, ": \t", 1, 0);         
424                        if(ostrcmp(getconfig("mediadbscandelnotfound", NULL), "1") == 0)
425                                tmpstr = ostrcat(tmpstr, _("yes"), 1, 0);
426                        else
427                                tmpstr = ostrcat(tmpstr, _("no"), 1, 0);
428                        tmpstr = ostrcat(tmpstr, "\n  ", 1, 0);
429                        tmpstr = ostrcat(tmpstr, _("scan Directory:"), 1, 0);
430                        tmpstr = ostrcat(tmpstr, " \t\t\t", 1, 0);
431                        tmpstr = ostrcat(tmpstr, getconfig("mc_vp_path", NULL), 1, 0);
432                        tmpstr = ostrcat(tmpstr, "\n  ", 1, 0);         
433                        tmpstr = ostrcat(tmpstr, _("MediaDB place:"), 1, 0);
434                        tmpstr = ostrcat(tmpstr, " \t\t\t", 1, 0);                             
435                        tmpstr = ostrcat(tmpstr, getconfig("mediadbpath", NULL), 1, 0);
436               
437                        textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 500, 10, 0);
438                        free(tmpstr), tmpstr = NULL;                   
439                }
440                else if(rcret == getrcconfigint("rcstop", NULL))
441                {
442
443//                      if((status.play == 1) || (status.pause == 1))
444//                      {
445                                debug(50, "rcstop: stopplayback");
446                                playrcstop(playertype, flag);
447                                singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/default.mvi", 0);
448       
449                                apskin->hidden = NO;
450                                filelist->hidden = NO;
451                                listbox->hidden = YES;
452                                changetext(filelistpath, _(getconfig("mc_vp_path", NULL)));
453                                changetext(b2, _("Filelist-Mode"));
454
455                                // switch filelist
456                                delownerrc(apskin);
457                                addscreenrc(apskin, filelist);
458                                // show skin
459                                setfbtransparent(255);
460                                drawscreen(apskin, 0, 0);
461
462                                sleep(1);
463
464                                playinfobarcount = 0;
465                                playinfobarstatus = 1;
466                                status.playspeed = 0;
467                                status.pause = 0;
468                                status.play = 0;
469                                playlist = 0;
470                                playinfobarcount = 0;
471                               
472                                if(playertype == 1)
473                                        playerafterendts();
474                                else
475                                        playerafterend();
476                       
477                                writevfd("VideoPlayer Filelist-Mode");
478//                              startmediadb();
479//                              dbnode = mediadb;
480//                      }
481                }
482                else if(rcret == getrcconfigint("rcexit", NULL))
483                {
484                        debug(50, "exit - save mc_vp_path: %s", filelistpath->text);
485                        if(playlist == 0)
486                        {
487                                if(ostrcmp(getconfig("mc_vp_path", NULL), filelistpath->text) != 0)
488                                        addconfig("mc_vp_path", filelistpath->text);
489                                if(ostrcmp(getconfig("mc_vp_selectedfile", NULL), filelist->select->name) != 0)
490                                        addconfig("mc_vp_selectedfile", filelist->select->name);
491                        }
492
493                        playrcstop(playertype, flag);
494                        // show skin
495                        setfbtransparent(255);
496                        sleep(1);
497                        apskin->hidden = NO;
498                        filelist->hidden = NO;
499                        listbox->hidden = YES;
500                        changetext(b2, _("Filelist-Mode"));
501                        changetext(b3, _("Random"));
502                        changetext(b4, _("Repeat"));                                                                           
503                        status.playspeed = 0;
504                        status.pause = 0;
505                        status.play = 0;
506                        status.random = 0;
507                        status.repeat = 0;
508                        playlist = 0;
509                        writevfd("Mediacenter");
510                        playinfobarcount = 0;
511       
512                        printf("exit: view=%d tmpview=%d\n", view, tmpview);                   
513                        status.filelistextend = 0;
514                        break;
515                }
516                else if(rcret == getrcconfigint("rcok", NULL))
517                {
518                        if((status.play == 1) || (status.playspeed != 0))
519                        {
520                                playrcok(filename, playinfobarstatus, playertype, flag);
521                                continue;
522                        }
523
524                        playinfobarcount = 0;
525                        playinfobarstatus = 1;
526                        status.playspeed = 0;
527                        status.pause = 0;
528//                      status.play = 0;
529//                      playlist = 0;
530                        playinfobarcount = 0;
531
532                        if(playlist == 1 && listbox->select != NULL)
533                        {
534                                debug(50, "listbox->select->name: %s", listbox->select->name);
535                                filename = ostrcat("", listbox->select->name, 0, 0);
536
537                                if(getconfigint("playertype", NULL) == 1 && (cmpfilenameext(filename, ".ts") == 0 || cmpfilenameext(filename, ".mts") == 0 || cmpfilenameext(filename, ".m2ts") == 0))
538                                        playertype = 1;
539                                else
540                                        playertype = 0;
541
542                                changetext(b2, _("Playlist-Mode"));
543                       
544                                debug(50, "screensaver title: %s", listbox->select->text);
545                                if(screensaver != NULL && screensaver->type == 0)
546                                        screensaver->value = listbox->select->text;
547
548                                debug(50, "playerstop");
549                                playrcstop(playertype, flag);
550//                              sleep(1);
551//                              drawscreen(infobar, 0, 0);
552
553                                debug(50, "playerstart: %s", filename);
554                                eof = 0;
555
556                                delownerrc(apskin);
557                                setfbtransparent(255);
558//////////
559                                servicestop(status.aktservice, 1, 1);
560                                drawscreen(skin, 0, 0);
561                                setfbtransparent(255);
562                                debug(50, "check");
563                                debug(50, "autostart_playlist: %d", getconfigint("mc_vp_autostart_playlist", NULL));
564                                debug(50, "status.play: %d", status.play);
565                                debug(50, "flag: %d", flag);
566///////////
567                                debug(50, "playertype: %d", playertype);
568                                if(playertype == 1)
569                                        playerret = playerstartts(filename, 0);
570                                else
571                                        playerret = playerstart(filename);
572
573                                playwritevfd(filename);
574
575                                #ifndef SIMULATE
576                                        if(playerret != 0)
577                                        {
578                                                writevfd("VideoPlayer Filelist-Mode");
579                                                status.play = 0;
580                                                playlist = 0;
581                                                status.playspeed = 0;
582                                                textbox(_("Message"), _("Can't start playback !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
583
584                                                changetext(filelistpath, _(getconfig("mc_vp_path", NULL)));
585                                                filelist->hidden = NO;
586                                                listbox->hidden = YES;
587
588                                                addscreenrc(apskin, filelist);
589                                                drawscreen(apskin, 0, 0);
590                                                continue;
591                                        }
592                                #endif
593
594                                screenplayinfobar(filename, 0, playertype, 0);                 
595                                status.play = 1;
596                               
597                                free(status.playfile); status.playfile = NULL;
598                                status.playfile = ostrcat(filename, "", 0, 0);
599                        }
600                        else if(filelist->select != NULL && filelist->select->input != NULL)
601                        {
602                                // workaround dont open folder on rcchup
603                                if(skip == 1)
604                                {
605                                        drawscreen(apskin, 0, 0);
606                                        writerc(getrcconfigint("rcok", NULL));
607                                        skip = 0;
608                                }
609                                else
610                                {
611                                        debug(50, "mc_mounter_chk start");
612                                        mc_mounter_chk(filelistpath);
613                                        debug(50, "mc_mounter_chk done");
614                                }
615                        }
616                        else if(filelist->select != NULL && filelist->select->input == NULL)
617                        {
618                                if(ostrcmp(getconfig("mc_vp_path", NULL), filelistpath->text) != 0)
619                                        addconfig("mc_vp_path", filelistpath->text);
620
621                                debug(50, "filelist->select->text: %s", filelist->select->text);
622                                filename = createpath(filelistpath->text, filelist->select->name);
623                                printf("name: %s\n",filelist->select->name);
624                                printf("text: %s\n",filelist->select->text);
625
626
627                                if(getconfigint("playertype", NULL) == 1 && (cmpfilenameext(filename, ".ts") == 0 || cmpfilenameext(filename, ".mts") == 0 || cmpfilenameext(filename, ".m2ts") == 0))         
628                                        playertype = 1;
629                                else
630                                        playertype = 0;
631
632                                if(!strncmp(".rar",filename+strlen(filename)-4,4) || !strncmp(".iso",filename+strlen(filename)-4,4) || !strncmp(".img",filename+strlen(filename)-4,4))
633                                {
634                                        debug(50, "mc_mounter_main filename: %s", filename);
635                                        //addconfig("mc_vp_path", filelistpath->text);
636                                        currentdirectory = ostrcat("", getconfig("mc_vp_path", NULL), 0, 0);
637                                        selectedfile = ostrcat(selectedfile, getconfig("mc_vp_selectedfile", NULL), 0, 0);
638
639                                        mc_mounter_main(0,filename,filelistpath,filelist,apskin,filemask,tmpview,currentdirectory);
640                                        debug(50, "mc_mounter_main done");
641       
642                                        singlepicstart("/var/usr/local/share/titan/plugins/mc/skin/default.mvi", 0);
643                                        continue;
644                                }
645                                else if(!strncmp(".m3u",filename+strlen(filename)-4,4) || !strncmp(".pls",filename+strlen(filename)-4,4)) 
646                                {
647                                        showplaylist(apskin, filelistpath, filelist, listbox, b2, 1, &playlist, &eof, &filename, &currentdirectory, &playertype, flag);
648
649                                        if(getconfigint("mc_vp_autostart_playlist", NULL) == 0)
650                                                drawscreen(apskin, 0, 0);
651                                        continue;
652
653                                }
654
655                                changetext(b2, _("Filelist-Mode"));
656                       
657                                if(screensaver != NULL && screensaver->type == 0)
658                                        screensaver->value = (void*)filelist->select->text;
659
660                                debug(50, "playerstop");
661                                playrcstop(playertype, flag);
662//                              sleep(1);
663
664                                servicestop(status.aktservice, 1, 1);
665                                drawscreen(skin, 0, 0);
666
667                                delownerrc(apskin);
668                                setfbtransparent(255);
669
670                                debug(50, "playerstart: %s", filename);
671                                eof = 0;
672
673                                debug(50, "playertype: %d", playertype);
674                                if(playertype == 1)
675                                        playerret = playerstartts(filename, 0);
676                                else
677                                        playerret = playerstart(filename);
678
679                                playwritevfd(filename);
680
681                                #ifndef SIMULATE
682                                        if(playerret != 0)
683                                        {
684                                                writevfd("VideoPlayer Filelist-Mode");
685                                                status.play = 0;
686                                                status.playspeed = 0;
687                                                textbox(_("Message"), _("Can't start playback !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
688                                                addscreenrc(apskin, filelist);
689//                                              drawscreen(apskin, 0, 0);
690                                                continue;
691                                        }
692                                #endif
693                                screenplayinfobar(filename, 0, playertype, 0);
694                                status.play = 1;
695
696                                free(status.playfile); status.playfile = NULL;
697                                status.playfile = ostrcat(filename, "", 0, 0);
698                               
699                                if(getconfig("mc_vp_autoscan", NULL) != NULL)
700                                {
701                                        mediadbscan(filelistpath->text, 0, 1);
702                                        files = findfiles(filelistpath->text, 0, 0, 1);
703                                }
704                        }
705                }
706
707                if(eof >=1 || (playertype == 0 && playerisplaying() == 0) || (playertype == 1 && playerisplayingts() == 0))
708                {
709                        if(status.play == 1)
710                        {
711                                setfbtransparent(0);
712                                apskin->hidden = NO;
713                                drawscreen(skin, 0, 0);
714                                playereof(apskin, filelist, listbox, filelistpath, b2, NULL, NULL, NULL, &skip, &eof, &playlist, playertype, flag);
715                        }
716                }
717        }
718
719        deinitscreensaver();
720        status.hangtime = getconfigint("hangtime", NULL);
721        delconfigtmp("dirsort");
722        delconfigtmp("mediadbpath");
723        delconfigtmp("mediadbfile");
724        delconfigtmp("mediadbscandelall");
725        delconfigtmp("mediadbscandelnotfound"); 
726        delconfigtmp("mediadbscantimeout");
727       
728        delmarkedscreennodes(apskin, FILELISTDELMARK);
729        delownerrc(apskin);
730        clearscreen(apskin);
731
732        free(filename), filename = NULL;
733        free(currentdirectory), currentdirectory = NULL;
734        free(selectedfile), selectedfile = NULL;
735
736        free(status.playfile); status.playfile = NULL;
737        if(tmppolicy != NULL)
738        {
739                setpolicy(tmppolicy);
740                free(tmppolicy);
741        }
742
743        if(playertype == 1)
744                playerafterendts();
745        else
746                playerafterend();
747
748                       
749        writevfd("Mediacenter");
750        debug(50, "closed");
751}
752
753
754
755#endif
756
Note: See TracBrowser for help on using the repository browser.