forked from len0rd/rockbox
pressing play on an .m3u file will run the playlist code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@891 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
4d1fb48494
commit
c60d12a067
1 changed files with 43 additions and 20 deletions
63
apps/tree.c
63
apps/tree.c
|
@ -172,7 +172,7 @@ static int start=0;
|
||||||
static int dirpos[MAX_DIR_LEVELS];
|
static int dirpos[MAX_DIR_LEVELS];
|
||||||
static int cursorpos[MAX_DIR_LEVELS];
|
static int cursorpos[MAX_DIR_LEVELS];
|
||||||
static int dirlevel=0;
|
static int dirlevel=0;
|
||||||
static bool playing = false;
|
static int playing = 0;
|
||||||
static char currdir[255];
|
static char currdir[255];
|
||||||
|
|
||||||
/* QUICK HACK! this should be handled by the playlist code later */
|
/* QUICK HACK! this should be handled by the playlist code later */
|
||||||
|
@ -180,25 +180,36 @@ char* peek_next_track(int type)
|
||||||
{
|
{
|
||||||
static char buf[256];
|
static char buf[256];
|
||||||
|
|
||||||
/* next-song only works when not browsing */
|
/* next-song only works when playing */
|
||||||
if (!playing)
|
if (!playing)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* get next track in dir */
|
switch(playing) {
|
||||||
while (dircursor + start + 1 < numentries ) {
|
default:
|
||||||
if(dircursor+1 < TREE_MAX_ON_SCREEN)
|
case 1:
|
||||||
|
/* play-full-dir mode */
|
||||||
|
|
||||||
|
/* get next track in dir */
|
||||||
|
while (dircursor + start + 1 < numentries ) {
|
||||||
|
if(dircursor+1 < TREE_MAX_ON_SCREEN)
|
||||||
dircursor++;
|
dircursor++;
|
||||||
else
|
else
|
||||||
start++;
|
start++;
|
||||||
if ( dircacheptr[dircursor+start]->file &&
|
if ( dircacheptr[dircursor+start]->file &&
|
||||||
dircacheptr[dircursor+start]->name[strlen(dircacheptr[dircursor+start]->name)-1] == '3') {
|
dircacheptr[dircursor+start]->name[strlen(dircacheptr[dircursor+start]->name)-1] == '3') {
|
||||||
snprintf(buf,sizeof buf,"%s/%s",
|
snprintf(buf,sizeof buf,"%s/%s",
|
||||||
currdir, dircacheptr[dircursor+start]->name );
|
currdir, dircacheptr[dircursor+start]->name );
|
||||||
lcd_clear_display();
|
lcd_clear_display();
|
||||||
lcd_puts(0,0,"<Playing>");
|
lcd_puts(0,0,"<Playing>");
|
||||||
lcd_puts(0,1,"<all files>");
|
lcd_puts(0,1,"<all files>");
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
/* playlist mode */
|
||||||
|
return playlist_next(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -286,13 +297,25 @@ bool dirbrowse(char *root)
|
||||||
dircursor=0;
|
dircursor=0;
|
||||||
start=0;
|
start=0;
|
||||||
} else {
|
} else {
|
||||||
playing = true;
|
int len=
|
||||||
playtune(currdir, dircacheptr[dircursor+start]->name);
|
strlen(dircacheptr[dircursor+start]->name);
|
||||||
playing = false;
|
if((len > 4) &&
|
||||||
|
!strcmp(&dircacheptr[dircursor+start]->name[len-4],
|
||||||
|
".m3u")) {
|
||||||
|
playing = 2;
|
||||||
|
play_list(currdir, dircacheptr[dircursor+start]->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
playing = 1;
|
||||||
|
playtune(currdir, dircacheptr[dircursor+start]->name);
|
||||||
|
playing = 0;
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
lcd_setmargins(0, MARGIN_Y);
|
lcd_setmargins(0, MARGIN_Y);
|
||||||
lcd_setfont(0);
|
lcd_setfont(0);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
numentries = showdir(currdir, start);
|
numentries = showdir(currdir, start);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue