diff options
Diffstat (limited to 'apps/playlist_catalog.c')
-rw-r--r-- | apps/playlist_catalog.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/apps/playlist_catalog.c b/apps/playlist_catalog.c index 0813db11c6..65a48611c0 100644 --- a/apps/playlist_catalog.c +++ b/apps/playlist_catalog.c @@ -46,6 +46,7 @@ #include "talk.h" #include "playlist_viewer.h" #include "bookmark.h" +#include "root_menu.h" /* Use for recursive directory search */ struct add_track_context { @@ -160,7 +161,8 @@ static int display_playlists(char* playlist, bool view) restart: browse.flags &= ~BROWSE_SELECTED; - rockbox_browse(&browse); + if (rockbox_browse(&browse) == GO_TO_WPS) + result = 0; if (browse.flags & BROWSE_SELECTED) { @@ -169,13 +171,24 @@ restart: if (view) { - - if (!bookmark_autoload(selected_playlist)) + + int res = bookmark_autoload(selected_playlist); + if (res == BOOKMARK_DO_RESUME) + result = 0; + else { - if (playlist_viewer_ex(selected_playlist) == PLAYLIST_VIEWER_CANCEL) - goto restart; + switch (playlist_viewer_ex(selected_playlist)) { + case PLAYLIST_VIEWER_OK: + result = 0; + break; + case PLAYLIST_VIEWER_CANCEL: + goto restart; + case PLAYLIST_VIEWER_USB: + case PLAYLIST_VIEWER_MAINMENU: + default: + break; + } } - result = 0; } else { |