Index: rockbox/apps/lang/english.lang =================================================================== --- apps/lang/english.lang (revision 15258) +++ apps/lang/english.lang (working copy) @@ -11431,3 +11431,87 @@ *: "Empty list" + + id: LANG_BOOKMARK_SYSTEM_FAILURE + desc: Basic sanity check for information needed to bookmark failed + user: + + *: "Invalid Bookmark State!" + + + *: "Invalid Bookmark State!" + + + *: "Invalid Bookmark State!" + + + + id: LANG_BOOKMARK_DATA_CREATE_FAILURE + desc: Indicates bookmark was not created + user: + + *: "Error Building Bookmark!" + + + *: "Error Building Bookmark!" + + + *: "Error Building Bookmark!" + + + + id: LANG_BOOKMARK_NO_TRACK + desc: Could not find a playing track to bookmark + user: + + *: "No Track Playing!" + + + *: "No Track Playing!" + + + *: "No Track Playing!" + + + + id: LANG_BOOKMARK_NO_ID3 + desc: Could not find a playing track to bookmark + user: + + *: "Track Missing ID3!" + + + *: "Track Missing ID3!" + + + *: "Track Missing ID3!" + + + + id: LANG_BOOKMARK_BAD_INFO + desc: Could not load resume info to create a bookmark from + user: + + *: "No Resume Info Found!" + + + *: "No Resume Info Found!" + + + *: "No Resume Info Found!" + + + + id: LANG_BOOKMARK_PLAYLIST_MODIFIED + desc: Cannot bookmark a modified playlist + user: + + *: "Playlist Modified! Please Save Playlist" + + + *: "Playlist Modified! Please Save Playlist" + + + *: "Playlist Modified! Please Save Playlist" + + Index: rockbox/apps/bookmark.c =================================================================== --- apps/bookmark.c (revision 15258) +++ apps/bookmark.c (working copy) @@ -222,17 +222,21 @@ bool success=false; char* bookmark; - if (!system_check()) + if (!system_check()) { + gui_syncsplash(HZ, ID2P(LANG_BOOKMARK_SYSTEM_FAILURE)); return false; /* something didn't happen correctly, do nothing */ + } bookmark = create_bookmark(); - if (!bookmark) - return false; /* something didn't happen correctly, do nothing */ + if (!bookmark) { + gui_syncsplash(HZ, ID2P(LANG_BOOKMARK_DATA_CREATE_FAILURE)); + return false; /* something didn't happen correctly, do nothing */ + } - if (global_settings.usemrb) + if (global_settings.usemrb) { success = add_bookmark(RECENT_BOOKMARK_FILE, bookmark, true); + } - /* writing the bookmark */ if (create_bookmark_file) { @@ -984,11 +988,10 @@ { bool exist=false; - if(system_check()) - { - char* name = playlist_get_name(NULL, global_temp_buffer, + char* name = playlist_get_name(NULL, global_temp_buffer, sizeof(global_temp_buffer)); - if (generate_bookmark_file_name(name)) + if(name) { + if (generate_bookmark_file_name(name)) { int fd=open(global_bookmark_file_name, O_RDONLY); if (fd >=0) @@ -1015,20 +1018,30 @@ { int resume_index = 0; - if (!(audio_status() && audio_current_track())) - { + if(!audio_status()) { + gui_syncsplash(HZ, ID2P(LANG_BOOKMARK_NO_TRACK)); + /* no track playing */ return false; + } else if(!audio_current_track()) { + gui_syncsplash(HZ, ID2P(LANG_BOOKMARK_NO_ID3)); + + /* playing track is missing id3 tags */ + return false; } /* Checking to see if playing a queued track */ if (playlist_get_resume_info(&resume_index) == -1) { + gui_syncsplash(HZ, ID2P(LANG_BOOKMARK_BAD_INFO)); + /* something bad happened while getting the queue information */ return false; } else if (playlist_modified(NULL)) { + gui_syncsplash(HZ, ID2P(LANG_BOOKMARK_PLAYLIST_MODIFIED)); + /* can't bookmark while in the queue */ return false; }