diff options
author | Christian Soffke <christian.soffke@gmail.com> | 2021-12-12 18:34:41 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2021-12-24 11:08:26 -0500 |
commit | 6c6f0757d7a902feb293be165d1490c42bc8e7ad (patch) | |
tree | 598135a544a1874a9514c1efd4a25828a884c0d3 /apps/plugins/pictureflow/pictureflow.c | |
parent | f4fbc1bcebaca17b251fc8ef8729f317147dd9b0 (diff) | |
download | rockbox-6c6f0757d7a902feb293be165d1490c42bc8e7ad.tar.gz rockbox-6c6f0757d7a902feb293be165d1490c42bc8e7ad.zip |
PictureFlow: Show background cache building progress
There was no easy way to see how far along PictureFlow
was in building the art cache, once background scanning
had commenced.
PF now uses the screen area normally used by the FPS
meter to show completed percentage until building the
art cache has finished.
Change-Id: I60fa7187b522cda219e35f5a9f630835ecac6883
Diffstat (limited to 'apps/plugins/pictureflow/pictureflow.c')
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.c | 25 |
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 | ||
3468 | static void track_list_yh(int char_height) | 3468 | static 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(); |