diff options
author | Magnus Holmgren <magnushol@gmail.com> | 2008-02-10 12:16:27 +0000 |
---|---|---|
committer | Magnus Holmgren <magnushol@gmail.com> | 2008-02-10 12:16:27 +0000 |
commit | 04dc828c9f7e76785b0478f3b1905c75c2eb5cb7 (patch) | |
tree | 83e960cce0c0cb8553787d0f89a63d6bd0fc0ee8 /apps/bookmark.c | |
parent | 05e82a45da2bddc0d88a4f77d0cd2b128458d355 (diff) | |
download | rockbox-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.c | 23 |
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) | |||
418 | bool bookmark_load(const char* file, bool autoload) | 427 | bool 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; |