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 @@ | |||
46 | #include "talk.h" | 46 | #include "talk.h" |
47 | #include "playlist_viewer.h" | 47 | #include "playlist_viewer.h" |
48 | #include "bookmark.h" | 48 | #include "bookmark.h" |
49 | #include "root_menu.h" | ||
49 | 50 | ||
50 | /* Use for recursive directory search */ | 51 | /* Use for recursive directory search */ |
51 | struct add_track_context { | 52 | struct add_track_context { |
@@ -160,7 +161,8 @@ static int display_playlists(char* playlist, bool view) | |||
160 | 161 | ||
161 | restart: | 162 | restart: |
162 | browse.flags &= ~BROWSE_SELECTED; | 163 | browse.flags &= ~BROWSE_SELECTED; |
163 | rockbox_browse(&browse); | 164 | if (rockbox_browse(&browse) == GO_TO_WPS) |
165 | result = 0; | ||
164 | 166 | ||
165 | if (browse.flags & BROWSE_SELECTED) | 167 | if (browse.flags & BROWSE_SELECTED) |
166 | { | 168 | { |
@@ -169,13 +171,24 @@ restart: | |||
169 | 171 | ||
170 | if (view) | 172 | if (view) |
171 | { | 173 | { |
172 | 174 | ||
173 | if (!bookmark_autoload(selected_playlist)) | 175 | int res = bookmark_autoload(selected_playlist); |
176 | if (res == BOOKMARK_DO_RESUME) | ||
177 | result = 0; | ||
178 | else | ||
174 | { | 179 | { |
175 | if (playlist_viewer_ex(selected_playlist) == PLAYLIST_VIEWER_CANCEL) | 180 | switch (playlist_viewer_ex(selected_playlist)) { |
176 | goto restart; | 181 | case PLAYLIST_VIEWER_OK: |
182 | result = 0; | ||
183 | break; | ||
184 | case PLAYLIST_VIEWER_CANCEL: | ||
185 | goto restart; | ||
186 | case PLAYLIST_VIEWER_USB: | ||
187 | case PLAYLIST_VIEWER_MAINMENU: | ||
188 | default: | ||
189 | break; | ||
190 | } | ||
177 | } | 191 | } |
178 | result = 0; | ||
179 | } | 192 | } |
180 | else | 193 | else |
181 | { | 194 | { |