forked from len0rd/rockbox
Repaired broken resume
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5596 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
84c7d88021
commit
cdd79a35d4
4 changed files with 13 additions and 10 deletions
|
@ -184,11 +184,16 @@ static int compare(const void* p1, const void* p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* load and sort directory into dircache. returns NULL on failure. */
|
/* load and sort directory into dircache. returns NULL on failure. */
|
||||||
int ft_load(struct tree_context* c)
|
int ft_load(struct tree_context* c, const char* tempdir)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int name_buffer_used = 0;
|
int name_buffer_used = 0;
|
||||||
DIR *dir = opendir(c->currdir);
|
DIR *dir;
|
||||||
|
|
||||||
|
if (tempdir)
|
||||||
|
dir = opendir(tempdir);
|
||||||
|
else
|
||||||
|
dir = opendir(c->currdir);
|
||||||
if(!dir)
|
if(!dir)
|
||||||
return -1; /* not a directory */
|
return -1; /* not a directory */
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#define FILETREE_H
|
#define FILETREE_H
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
|
|
||||||
int ft_load(struct tree_context* c);
|
int ft_load(struct tree_context* c, const char* tempdir);
|
||||||
int ft_play_filenumber(int pos, int attr);
|
int ft_play_filenumber(int pos, int attr);
|
||||||
int ft_play_dirname(int start_index);
|
int ft_play_dirname(int start_index);
|
||||||
void ft_play_filename(char *dir, char *file);
|
void ft_play_filename(char *dir, char *file);
|
||||||
|
|
|
@ -544,8 +544,7 @@ static int add_directory_to_playlist(struct playlist_info* playlist,
|
||||||
|
|
||||||
/* use the tree browser dircache to load files */
|
/* use the tree browser dircache to load files */
|
||||||
global_settings.dirfilter = SHOW_ALL;
|
global_settings.dirfilter = SHOW_ALL;
|
||||||
strncpy(tc->currdir, dirname, sizeof(tc->currdir));
|
num_files = ft_load(tc, dirname);
|
||||||
num_files = ft_load(tc);
|
|
||||||
files = (struct entry*) tc->dircache;
|
files = (struct entry*) tc->dircache;
|
||||||
|
|
||||||
if(!num_files)
|
if(!num_files)
|
||||||
|
@ -584,8 +583,7 @@ static int add_directory_to_playlist(struct playlist_info* playlist,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* we now need to reload our current directory */
|
/* we now need to reload our current directory */
|
||||||
strncpy(tc->currdir, dirname, sizeof(tc->currdir));
|
num_files = ft_load(tc, dirname);
|
||||||
num_files = ft_load(tc);
|
|
||||||
files = (struct entry*) tc->dircache;
|
files = (struct entry*) tc->dircache;
|
||||||
if (!num_files)
|
if (!num_files)
|
||||||
{
|
{
|
||||||
|
|
|
@ -279,7 +279,7 @@ static int showdir(void)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (strncmp(tc.currdir, lastdir, sizeof(lastdir)) || reload_dir) {
|
if (strncmp(tc.currdir, lastdir, sizeof(lastdir)) || reload_dir) {
|
||||||
if (ft_load(&tc) < 0)
|
if (ft_load(&tc, NULL) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
strcpy(lastdir, tc.currdir);
|
strcpy(lastdir, tc.currdir);
|
||||||
newdir = true;
|
newdir = true;
|
||||||
|
@ -499,7 +499,7 @@ static bool ask_resume(bool ask_once)
|
||||||
void resume_directory(const char *dir)
|
void resume_directory(const char *dir)
|
||||||
{
|
{
|
||||||
strcpy(tc.currdir, dir);
|
strcpy(tc.currdir, dir);
|
||||||
if (!ft_load(&tc))
|
if (ft_load(&tc, NULL) < 0)
|
||||||
return;
|
return;
|
||||||
lastdir[0] = 0;
|
lastdir[0] = 0;
|
||||||
|
|
||||||
|
@ -602,7 +602,7 @@ static bool check_changed_id3mode(bool currmode)
|
||||||
db_load(&tc);
|
db_load(&tc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ft_load(&tc);
|
ft_load(&tc, NULL);
|
||||||
}
|
}
|
||||||
return currmode;
|
return currmode;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue