summaryrefslogtreecommitdiffstats
path: root/apps/playlist_catalog.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playlist_catalog.c')
-rw-r--r--apps/playlist_catalog.c25
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
{