source: titan/plugins/mc/mc_audioplayer.h @ 28982

Last change on this file since 28982 was 28982, checked in by obi, 10 years ago

fix

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