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

Last change on this file since 25589 was 25589, checked in by obi, 9 years ago

atemio520 fix player stuff

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