summaryrefslogtreecommitdiff
path: root/apps/bookmark.c
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2008-02-10 12:16:27 +0000
committerMagnus Holmgren <magnushol@gmail.com>2008-02-10 12:16:27 +0000
commit04dc828c9f7e76785b0478f3b1905c75c2eb5cb7 (patch)
tree83e960cce0c0cb8553787d0f89a63d6bd0fc0ee8 /apps/bookmark.c
parent05e82a45da2bddc0d88a4f77d0cd2b128458d355 (diff)
downloadrockbox-04dc828c9f7e76785b0478f3b1905c75c2eb5cb7.tar.gz
rockbox-04dc828c9f7e76785b0478f3b1905c75c2eb5cb7.zip
Better bookmark resume handling, in particular when resuming a directory. If Load Last Bookmark is set to Yes and the last bookmarked file could not be found, play the selected file instead. When selecting a bookmark for a missing file in the bookmark list, show a message that resume isn't possible (and don't play any selected file if Load Last Bookmark is set to Ask).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16267 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/bookmark.c')
-rw-r--r--apps/bookmark.c23
1 files changed, 18 insertions, 5 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)
404 404
405 if (bookmark != NULL) 405 if (bookmark != NULL)
406 { 406 {
407 return play_bookmark(bookmark); 407 if (!play_bookmark(bookmark))
408 {
409 /* Selected bookmark not found. */
410 gui_syncsplash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME));
411 }
412
413 /* Act as if autoload was done even if it failed, since the
414 * user did make an active selection.
415 */
416 return true;
408 } 417 }
409 418
410 return false; 419 return false;
@@ -418,7 +427,7 @@ bool bookmark_autoload(const char* file)
418bool bookmark_load(const char* file, bool autoload) 427bool bookmark_load(const char* file, bool autoload)
419{ 428{
420 int fd; 429 int fd;
421 char* bookmark = NULL;; 430 char* bookmark = NULL;
422 431
423 if(autoload) 432 if(autoload)
424 { 433 {
@@ -438,7 +447,12 @@ bool bookmark_load(const char* file, bool autoload)
438 447
439 if (bookmark != NULL) 448 if (bookmark != NULL)
440 { 449 {
441 return play_bookmark(bookmark); 450 if (!play_bookmark(bookmark))
451 {
452 /* Selected bookmark not found. */
453 gui_syncsplash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME));
454 return false;
455 }
442 } 456 }
443 457
444 return true; 458 return true;
@@ -875,9 +889,8 @@ static bool play_bookmark(const char* bookmark)
875 &global_settings.playlist_shuffle, 889 &global_settings.playlist_shuffle,
876 global_filename)) 890 global_filename))
877 { 891 {
878 bookmark_play(global_temp_buffer, index, offset, seed, 892 return bookmark_play(global_temp_buffer, index, offset, seed,
879 global_filename); 893 global_filename);
880 return true;
881 } 894 }
882 895
883 return false; 896 return false;