summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2005-01-18 22:50:47 +0000
committerBjörn Stenberg <bjorn@haxx.se>2005-01-18 22:50:47 +0000
commitcdd79a35d40b314a723752cd40eb03ece79620b9 (patch)
treeff31772a603d41fc1f70ce84ea895493d1e82d14 /apps
parent84c7d8802106266c94d0a30827dff418a2fcac6d (diff)
downloadrockbox-cdd79a35d40b314a723752cd40eb03ece79620b9.tar.gz
rockbox-cdd79a35d40b314a723752cd40eb03ece79620b9.zip
Repaired broken resume
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5596 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/filetree.c9
-rw-r--r--apps/filetree.h2
-rw-r--r--apps/playlist.c6
-rw-r--r--apps/tree.c6
4 files changed, 13 insertions, 10 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index a46ffbb2bc..324266e64f 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -184,11 +184,16 @@ static int compare(const void* p1, const void* p2)
184} 184}
185 185
186/* load and sort directory into dircache. returns NULL on failure. */ 186/* load and sort directory into dircache. returns NULL on failure. */
187int ft_load(struct tree_context* c) 187int ft_load(struct tree_context* c, const char* tempdir)
188{ 188{
189 int i; 189 int i;
190 int name_buffer_used = 0; 190 int name_buffer_used = 0;
191 DIR *dir = opendir(c->currdir); 191 DIR *dir;
192
193 if (tempdir)
194 dir = opendir(tempdir);
195 else
196 dir = opendir(c->currdir);
192 if(!dir) 197 if(!dir)
193 return -1; /* not a directory */ 198 return -1; /* not a directory */
194 199
diff --git a/apps/filetree.h b/apps/filetree.h
index 143b75ad66..cdcdfca261 100644
--- a/apps/filetree.h
+++ b/apps/filetree.h
@@ -20,7 +20,7 @@
20#define FILETREE_H 20#define FILETREE_H
21#include "tree.h" 21#include "tree.h"
22 22
23int ft_load(struct tree_context* c); 23int ft_load(struct tree_context* c, const char* tempdir);
24int ft_play_filenumber(int pos, int attr); 24int ft_play_filenumber(int pos, int attr);
25int ft_play_dirname(int start_index); 25int ft_play_dirname(int start_index);
26void ft_play_filename(char *dir, char *file); 26void ft_play_filename(char *dir, char *file);
diff --git a/apps/playlist.c b/apps/playlist.c
index 4506ec5f54..651a5afeea 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -544,8 +544,7 @@ static int add_directory_to_playlist(struct playlist_info* playlist,
544 544
545 /* use the tree browser dircache to load files */ 545 /* use the tree browser dircache to load files */
546 global_settings.dirfilter = SHOW_ALL; 546 global_settings.dirfilter = SHOW_ALL;
547 strncpy(tc->currdir, dirname, sizeof(tc->currdir)); 547 num_files = ft_load(tc, dirname);
548 num_files = ft_load(tc);
549 files = (struct entry*) tc->dircache; 548 files = (struct entry*) tc->dircache;
550 549
551 if(!num_files) 550 if(!num_files)
@@ -584,8 +583,7 @@ static int add_directory_to_playlist(struct playlist_info* playlist,
584 break; 583 break;
585 584
586 /* we now need to reload our current directory */ 585 /* we now need to reload our current directory */
587 strncpy(tc->currdir, dirname, sizeof(tc->currdir)); 586 num_files = ft_load(tc, dirname);
588 num_files = ft_load(tc);
589 files = (struct entry*) tc->dircache; 587 files = (struct entry*) tc->dircache;
590 if (!num_files) 588 if (!num_files)
591 { 589 {
diff --git a/apps/tree.c b/apps/tree.c
index 2ba4585047..e4c6110040 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -279,7 +279,7 @@ static int showdir(void)
279 } 279 }
280 else { 280 else {
281 if (strncmp(tc.currdir, lastdir, sizeof(lastdir)) || reload_dir) { 281 if (strncmp(tc.currdir, lastdir, sizeof(lastdir)) || reload_dir) {
282 if (ft_load(&tc) < 0) 282 if (ft_load(&tc, NULL) < 0)
283 return -1; 283 return -1;
284 strcpy(lastdir, tc.currdir); 284 strcpy(lastdir, tc.currdir);
285 newdir = true; 285 newdir = true;
@@ -499,7 +499,7 @@ static bool ask_resume(bool ask_once)
499void resume_directory(const char *dir) 499void resume_directory(const char *dir)
500{ 500{
501 strcpy(tc.currdir, dir); 501 strcpy(tc.currdir, dir);
502 if (!ft_load(&tc)) 502 if (ft_load(&tc, NULL) < 0)
503 return; 503 return;
504 lastdir[0] = 0; 504 lastdir[0] = 0;
505 505
@@ -602,7 +602,7 @@ static bool check_changed_id3mode(bool currmode)
602 db_load(&tc); 602 db_load(&tc);
603 } 603 }
604 else 604 else
605 ft_load(&tc); 605 ft_load(&tc, NULL);
606 } 606 }
607 return currmode; 607 return currmode;
608} 608}