summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/pictureflow/pictureflow.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index 9592ac5266..35afdaf7e4 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -3467,30 +3467,32 @@ static inline void draw_gradient(int y, int h)
3467 3467
3468static void track_list_yh(int char_height) 3468static void track_list_yh(int char_height)
3469{ 3469{
3470 bool needs_space = pf_cfg.show_fps || aa_cache.inspected < pf_idx.album_ct;
3471
3470 switch (pf_cfg.show_album_name) 3472 switch (pf_cfg.show_album_name)
3471 { 3473 {
3472 case ALBUM_NAME_HIDE: 3474 case ALBUM_NAME_HIDE:
3473 pf_tracks.list_y = (pf_cfg.show_fps ? char_height : 0); 3475 pf_tracks.list_y = (needs_space ? char_height : 0);
3474 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y; 3476 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y;
3475 break; 3477 break;
3476 case ALBUM_NAME_BOTTOM: 3478 case ALBUM_NAME_BOTTOM:
3477 pf_tracks.list_y = (pf_cfg.show_fps ? char_height : 0); 3479 pf_tracks.list_y = (needs_space ? char_height : 0);
3478 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y - (char_height * 3); 3480 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y - (char_height * 3);
3479 break; 3481 break;
3480 case ALBUM_AND_ARTIST_TOP: 3482 case ALBUM_AND_ARTIST_TOP:
3481 pf_tracks.list_y = char_height * 3; 3483 pf_tracks.list_y = char_height * 3;
3482 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y - 3484 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y -
3483 (pf_cfg.show_fps ? char_height : 0); 3485 (needs_space ? char_height : 0);
3484 break; 3486 break;
3485 case ALBUM_AND_ARTIST_BOTTOM: 3487 case ALBUM_AND_ARTIST_BOTTOM:
3486 pf_tracks.list_y = (pf_cfg.show_fps ? char_height : 0); 3488 pf_tracks.list_y = (needs_space ? char_height : 0);
3487 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y - (char_height * 3); 3489 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y - (char_height * 3);
3488 break; 3490 break;
3489 case ALBUM_NAME_TOP: 3491 case ALBUM_NAME_TOP:
3490 default: 3492 default:
3491 pf_tracks.list_y = char_height * 3; 3493 pf_tracks.list_y = char_height * 3;
3492 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y - 3494 pf_tracks.list_h = LCD_HEIGHT - pf_tracks.list_y -
3493 (pf_cfg.show_fps ? char_height : 0); 3495 (needs_space ? char_height : 0);
3494 break; 3496 break;
3495 } 3497 }
3496} 3498}
@@ -3945,15 +3947,22 @@ static int pictureflow_main(void)
3945 last_update = current_update; 3947 last_update = current_update;
3946 frames = 0; 3948 frames = 0;
3947 } 3949 }
3948 /* Draw FPS */ 3950 /* Draw FPS or draw percentage of already built album cache */
3949 if (pf_cfg.show_fps) 3951 if (pf_cfg.show_fps || aa_cache.inspected < pf_idx.album_ct)
3950 { 3952 {
3951#ifdef USEGSLIB 3953#ifdef USEGSLIB
3952 mylcd_set_foreground(G_BRIGHT(255)); 3954 mylcd_set_foreground(G_BRIGHT(255));
3953#else 3955#else
3954 mylcd_set_foreground(G_PIX(255,0,0)); 3956 mylcd_set_foreground(G_PIX(255,0,0));
3955#endif 3957#endif
3956 rb->snprintf(fpstxt, sizeof(fpstxt), "FPS: %d", fps); 3958 if(aa_cache.inspected >= pf_idx.album_ct)
3959 rb->snprintf(fpstxt, sizeof(fpstxt), "FPS: %d", fps);
3960 else
3961 {
3962 int progress_pct = 100 * aa_cache.inspected / pf_idx.album_ct;
3963 rb->snprintf(fpstxt, sizeof(fpstxt), "%d %%", progress_pct);
3964 }
3965
3957 if (pf_cfg.show_album_name == ALBUM_NAME_TOP) 3966 if (pf_cfg.show_album_name == ALBUM_NAME_TOP)
3958 fpstxt_y = LCD_HEIGHT - 3967 fpstxt_y = LCD_HEIGHT -
3959 rb->screens[SCREEN_MAIN]->getcharheight(); 3968 rb->screens[SCREEN_MAIN]->getcharheight();