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

Last change on this file since 41741 was 41741, checked in by gost, 3 years ago

[plugin] mc/lcdpöearl.. some fixes

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