summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/bookmark.c23
-rw-r--r--apps/bookmark.h2
-rw-r--r--apps/tree.c23
-rw-r--r--apps/tree.h2
4 files changed, 31 insertions, 19 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c
index 3d4705960c..91c823b018 100644
--- a/apps/bookmark.c
+++ b/apps/bookmark.c
@@ -404,7 +404,16 @@ bool bookmark_autoload(const char* file)
if (bookmark != NULL)
{
- return play_bookmark(bookmark);
+ if (!play_bookmark(bookmark))
+ {
+ /* Selected bookmark not found. */
+ gui_syncsplash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME));
+ }
+
+ /* Act as if autoload was done even if it failed, since the
+ * user did make an active selection.
+ */
+ return true;
}
return false;
@@ -418,7 +427,7 @@ bool bookmark_autoload(const char* file)
bool bookmark_load(const char* file, bool autoload)
{
int fd;
- char* bookmark = NULL;;
+ char* bookmark = NULL;
if(autoload)
{
@@ -438,7 +447,12 @@ bool bookmark_load(const char* file, bool autoload)
if (bookmark != NULL)
{
- return play_bookmark(bookmark);
+ if (!play_bookmark(bookmark))
+ {
+ /* Selected bookmark not found. */
+ gui_syncsplash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME));
+ return false;
+ }
}
return true;
@@ -875,9 +889,8 @@ static bool play_bookmark(const char* bookmark)
&global_settings.playlist_shuffle,
global_filename))
{
- bookmark_play(global_temp_buffer, index, offset, seed,
+ return bookmark_play(global_temp_buffer, index, offset, seed,
global_filename);
- return true;
}
return false;
diff --git a/apps/bookmark.h b/apps/bookmark.h
index 16f4e5609f..81b03285ba 100644
--- a/apps/bookmark.h
+++ b/apps/bookmark.h
@@ -27,8 +27,6 @@ bool bookmark_create_menu(void);
bool bookmark_mrb_load(void);
bool bookmark_autoload(const char* file);
bool bookmark_load(const char* file, bool autoload);
-void bookmark_play(char* resume_file, int index, int offset, int seed,
- char *filename);
bool bookmark_exist(void);
#endif /* __BOOKMARK_H__ */
diff --git a/apps/tree.c b/apps/tree.c
index a0e5ef000a..0b4ea95c41 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -1076,11 +1076,12 @@ void tree_mem_init(void)
tree_get_filetypes(&filetypes, &filetypes_count);
}
-void bookmark_play(char *resume_file, int index, int offset, int seed,
+bool bookmark_play(char *resume_file, int index, int offset, int seed,
char *filename)
{
int i;
char* suffix = strrchr(resume_file, '.');
+ bool started = false;
if (suffix != NULL &&
(!strcasecmp(suffix, ".m3u") || !strcasecmp(suffix, ".m3u8")))
@@ -1090,7 +1091,7 @@ void bookmark_play(char *resume_file, int index, int offset, int seed,
/* check that the file exists */
int fd = open(resume_file, O_RDONLY);
if(fd<0)
- return;
+ return false;
close(fd);
slash = strrchr(resume_file,'/');
@@ -1108,6 +1109,7 @@ void bookmark_play(char *resume_file, int index, int offset, int seed,
if (global_settings.playlist_shuffle)
playlist_shuffle(seed, -1);
playlist_start(index,offset);
+ started = true;
}
*slash='/';
}
@@ -1128,7 +1130,7 @@ void bookmark_play(char *resume_file, int index, int offset, int seed,
peek_filename = playlist_peek(index);
if (peek_filename == NULL)
- return;
+ return false;
if (strcmp(strrchr(peek_filename, '/') + 1, filename))
{
@@ -1137,7 +1139,7 @@ void bookmark_play(char *resume_file, int index, int offset, int seed,
peek_filename = playlist_peek(i);
if (peek_filename == NULL)
- return;
+ return false;
if (!strcmp(strrchr(peek_filename, '/') + 1, filename))
break;
@@ -1145,19 +1147,16 @@ void bookmark_play(char *resume_file, int index, int offset, int seed,
if (i < playlist_amount())
index = i;
else
- {
- /* File not found, so bail out. Maybe not the best
- * message; perhaps "Bookmarked file not found"?
- */
- gui_syncsplash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME));
- return;
- }
+ return false;
}
playlist_start(index,offset);
+ started = true;
}
}
- start_wps=true;
+ if (started)
+ start_wps = true;
+ return started;
}
static void say_filetype(int attr)
diff --git a/apps/tree.h b/apps/tree.h
index e49ac722b9..e6742d3c1a 100644
--- a/apps/tree.h
+++ b/apps/tree.h
@@ -82,6 +82,8 @@ struct tree_context* tree_get_context(void);
void tree_flush(void);
void tree_restore(void);
+bool bookmark_play(char* resume_file, int index, int offset, int seed,
+ char *filename);
extern struct gui_synclist tree_lists;
extern struct gui_syncstatusbar statusbars;