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

Last change on this file since 41695 was 41695, checked in by gost, 2 years ago

[plugins] mc.. fix Segmentation fault, I hope

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