summaryrefslogtreecommitdiffstats
path: root/apps/plugins/pictureflow/pictureflow.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/pictureflow/pictureflow.c')
-rw-r--r--apps/plugins/pictureflow/pictureflow.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index 87db58aa34..9896ca45bf 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -3241,7 +3241,10 @@ static bool sort_albums(int new_sorting, bool from_settings)
if(!rb->strcmp(pf_idx.album_names + album_idx, current_album_name) &&
!rb->strcmp(pf_idx.artist_names + artist_idx, current_album_artist))
+ {
set_current_slide(i);
+ pf_cfg.last_album = i;
+ }
}
return true;
}
@@ -3651,6 +3654,7 @@ static int settings_menu(void)
*/
enum {
PF_SHOW_TRACKS_WHILE_BROWSING,
+ PF_GOTO_LAST_ALBUM,
PF_GOTO_WPS,
#if PF_PLAYBACK_CAPABLE
PF_MENU_CLEAR_PLAYLIST,
@@ -3664,7 +3668,7 @@ enum {
static int main_menu(void)
{
int selection = 0;
- int result;
+ int result, curr_album;
#if LCD_DEPTH > 1
rb->lcd_set_foreground(N_BRIGHT(255));
@@ -3672,6 +3676,7 @@ static int main_menu(void)
MENUITEM_STRINGLIST(main_menu, "PictureFlow Main Menu", NULL,
ID2P(LANG_SHOW_TRACKS_WHILE_BROWSING),
+ ID2P(LANG_GOTO_LAST_ALBUM),
ID2P(LANG_GOTO_WPS),
#if PF_PLAYBACK_CAPABLE
ID2P(LANG_CLEAR_PLAYLIST),
@@ -3692,6 +3697,24 @@ static int main_menu(void)
}
show_tracks_while_browsing = true;
return 0;
+ case PF_GOTO_LAST_ALBUM:
+ if (pf_state == pf_scrolling)
+ curr_album = target;
+ else
+ curr_album = center_index;
+
+ if (pf_state == pf_show_tracks)
+ free_borrowed_tracks();
+ if (pf_state == pf_show_tracks ||
+ pf_state == pf_cover_in ||
+ pf_state == pf_cover_out)
+ skip_animation_to_idle_state();
+
+ set_current_slide(pf_cfg.last_album);
+ pf_cfg.last_album = curr_album;
+
+ pf_state = pf_idle;
+ return 0;
case PF_GOTO_WPS: /* WPS */
return -2;
#if PF_PLAYBACK_CAPABLE
@@ -4848,7 +4871,10 @@ enum plugin_status plugin_start(const void *parameter)
ret = file_id3 ? pictureflow_main(file) : pictureflow_main(NULL);
if ( ret == PLUGIN_OK || ret == PLUGIN_GOTO_WPS) {
- pf_cfg.last_album = center_index;
+ if (pf_state == pf_scrolling)
+ pf_cfg.last_album = target;
+ else
+ pf_cfg.last_album = center_index;
if (configfile_save(CONFIG_FILE, config, CONFIG_NUM_ITEMS,
CONFIG_VERSION))
{