diff options
Diffstat (limited to 'apps/plugins/pictureflow/pictureflow.c')
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.c | 30 |
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) | |||
3241 | 3241 | ||
3242 | if(!rb->strcmp(pf_idx.album_names + album_idx, current_album_name) && | 3242 | if(!rb->strcmp(pf_idx.album_names + album_idx, current_album_name) && |
3243 | !rb->strcmp(pf_idx.artist_names + artist_idx, current_album_artist)) | 3243 | !rb->strcmp(pf_idx.artist_names + artist_idx, current_album_artist)) |
3244 | { | ||
3244 | set_current_slide(i); | 3245 | set_current_slide(i); |
3246 | pf_cfg.last_album = i; | ||
3247 | } | ||
3245 | } | 3248 | } |
3246 | return true; | 3249 | return true; |
3247 | } | 3250 | } |
@@ -3651,6 +3654,7 @@ static int settings_menu(void) | |||
3651 | */ | 3654 | */ |
3652 | enum { | 3655 | enum { |
3653 | PF_SHOW_TRACKS_WHILE_BROWSING, | 3656 | PF_SHOW_TRACKS_WHILE_BROWSING, |
3657 | PF_GOTO_LAST_ALBUM, | ||
3654 | PF_GOTO_WPS, | 3658 | PF_GOTO_WPS, |
3655 | #if PF_PLAYBACK_CAPABLE | 3659 | #if PF_PLAYBACK_CAPABLE |
3656 | PF_MENU_CLEAR_PLAYLIST, | 3660 | PF_MENU_CLEAR_PLAYLIST, |
@@ -3664,7 +3668,7 @@ enum { | |||
3664 | static int main_menu(void) | 3668 | static int main_menu(void) |
3665 | { | 3669 | { |
3666 | int selection = 0; | 3670 | int selection = 0; |
3667 | int result; | 3671 | int result, curr_album; |
3668 | 3672 | ||
3669 | #if LCD_DEPTH > 1 | 3673 | #if LCD_DEPTH > 1 |
3670 | rb->lcd_set_foreground(N_BRIGHT(255)); | 3674 | rb->lcd_set_foreground(N_BRIGHT(255)); |
@@ -3672,6 +3676,7 @@ static int main_menu(void) | |||
3672 | 3676 | ||
3673 | MENUITEM_STRINGLIST(main_menu, "PictureFlow Main Menu", NULL, | 3677 | MENUITEM_STRINGLIST(main_menu, "PictureFlow Main Menu", NULL, |
3674 | ID2P(LANG_SHOW_TRACKS_WHILE_BROWSING), | 3678 | ID2P(LANG_SHOW_TRACKS_WHILE_BROWSING), |
3679 | ID2P(LANG_GOTO_LAST_ALBUM), | ||
3675 | ID2P(LANG_GOTO_WPS), | 3680 | ID2P(LANG_GOTO_WPS), |
3676 | #if PF_PLAYBACK_CAPABLE | 3681 | #if PF_PLAYBACK_CAPABLE |
3677 | ID2P(LANG_CLEAR_PLAYLIST), | 3682 | ID2P(LANG_CLEAR_PLAYLIST), |
@@ -3692,6 +3697,24 @@ static int main_menu(void) | |||
3692 | } | 3697 | } |
3693 | show_tracks_while_browsing = true; | 3698 | show_tracks_while_browsing = true; |
3694 | return 0; | 3699 | return 0; |
3700 | case PF_GOTO_LAST_ALBUM: | ||
3701 | if (pf_state == pf_scrolling) | ||
3702 | curr_album = target; | ||
3703 | else | ||
3704 | curr_album = center_index; | ||
3705 | |||
3706 | if (pf_state == pf_show_tracks) | ||
3707 | free_borrowed_tracks(); | ||
3708 | if (pf_state == pf_show_tracks || | ||
3709 | pf_state == pf_cover_in || | ||
3710 | pf_state == pf_cover_out) | ||
3711 | skip_animation_to_idle_state(); | ||
3712 | |||
3713 | set_current_slide(pf_cfg.last_album); | ||
3714 | pf_cfg.last_album = curr_album; | ||
3715 | |||
3716 | pf_state = pf_idle; | ||
3717 | return 0; | ||
3695 | case PF_GOTO_WPS: /* WPS */ | 3718 | case PF_GOTO_WPS: /* WPS */ |
3696 | return -2; | 3719 | return -2; |
3697 | #if PF_PLAYBACK_CAPABLE | 3720 | #if PF_PLAYBACK_CAPABLE |
@@ -4848,7 +4871,10 @@ enum plugin_status plugin_start(const void *parameter) | |||
4848 | 4871 | ||
4849 | ret = file_id3 ? pictureflow_main(file) : pictureflow_main(NULL); | 4872 | ret = file_id3 ? pictureflow_main(file) : pictureflow_main(NULL); |
4850 | if ( ret == PLUGIN_OK || ret == PLUGIN_GOTO_WPS) { | 4873 | if ( ret == PLUGIN_OK || ret == PLUGIN_GOTO_WPS) { |
4851 | pf_cfg.last_album = center_index; | 4874 | if (pf_state == pf_scrolling) |
4875 | pf_cfg.last_album = target; | ||
4876 | else | ||
4877 | pf_cfg.last_album = center_index; | ||
4852 | if (configfile_save(CONFIG_FILE, config, CONFIG_NUM_ITEMS, | 4878 | if (configfile_save(CONFIG_FILE, config, CONFIG_NUM_ITEMS, |
4853 | CONFIG_VERSION)) | 4879 | CONFIG_VERSION)) |
4854 | { | 4880 | { |