summaryrefslogtreecommitdiff
path: root/apps/wps-display.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/wps-display.c')
-rw-r--r--apps/wps-display.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/apps/wps-display.c b/apps/wps-display.c
index 973a9a3325..a0aeaf8e36 100644
--- a/apps/wps-display.c
+++ b/apps/wps-display.c
@@ -124,9 +124,13 @@ static bool wps_loaded = false;
124/* Display images */ 124/* Display images */
125static void wps_display_images(void) { 125static void wps_display_images(void) {
126 int n; 126 int n;
127 lcd_set_drawmode(DRMODE_FG);
128 for (n = 0; n < MAX_IMAGES; n++) { 127 for (n = 0; n < MAX_IMAGES; n++) {
129 if (img[n].loaded && img[n].display) { 128 if (img[n].loaded && img[n].display) {
129 if(img[n].always_display)
130 lcd_set_drawmode(DRMODE_FG);
131 else
132 lcd_set_drawmode(DRMODE_SOLID);
133
130 lcd_mono_bitmap(img[n].ptr, img[n].x, img[n].y, img[n].w, img[n].h); 134 lcd_mono_bitmap(img[n].ptr, img[n].x, img[n].y, img[n].w, img[n].h);
131 lcd_update_rect(img[n].x, img[n].y, img[n].w, img[n].h); 135 lcd_update_rect(img[n].x, img[n].y, img[n].w, img[n].h);
132 } 136 }
@@ -692,6 +696,7 @@ static char* get_tag(struct mp3entry* cid3,
692 return "\x01"; 696 return "\x01";
693#endif 697#endif
694 case 's': /* shuffle */ 698 case 's': /* shuffle */
699 *flags |= WPS_REFRESH_DYNAMIC;
695 if ( global_settings.playlist_shuffle ) 700 if ( global_settings.playlist_shuffle )
696 return "s"; 701 return "s";
697 else 702 else
@@ -711,6 +716,7 @@ static char* get_tag(struct mp3entry* cid3,
711 switch (tag[1]) 716 switch (tag[1])
712 { 717 {
713 case 'm': /* playback repeat mode */ 718 case 'm': /* playback repeat mode */
719 *flags |= WPS_REFRESH_DYNAMIC;
714 *intval = global_settings.repeat_mode + 1; 720 *intval = global_settings.repeat_mode + 1;
715 snprintf(buf, buf_size, "%d", *intval); 721 snprintf(buf, buf_size, "%d", *intval);
716 return buf; 722 return buf;
@@ -963,15 +969,10 @@ static void format_display(char* buf,
963 int level = 0; 969 int level = 0;
964 unsigned char tag_length; 970 unsigned char tag_length;
965 int intval; 971 int intval;
966
967 int cur_align; 972 int cur_align;
968 char* cur_align_start; 973 char* cur_align_start;
969#ifdef HAVE_LCD_BITMAP 974#ifdef HAVE_LCD_BITMAP
970 int n; 975 int n;
971 /* Set images to not to be displayed */
972 for (n = 0; n < MAX_IMAGES; n++) {
973 img[n].display = false;
974 }
975#endif 976#endif
976 977
977 cur_align_start = buf; 978 cur_align_start = buf;
@@ -1167,6 +1168,11 @@ bool wps_refresh(struct mp3entry* id3,
1167 or sleep is called but who knows...) 1168 or sleep is called but who knows...)
1168 */ 1169 */
1169 bool enable_pm = false; 1170 bool enable_pm = false;
1171
1172 /* Set images to not to be displayed */
1173 for (i = 0; i < MAX_IMAGES; i++) {
1174 img[i].display = false;
1175 }
1170#endif 1176#endif
1171 1177
1172 /* reset to first subline if refresh all flag is set */ 1178 /* reset to first subline if refresh all flag is set */
@@ -1522,15 +1528,15 @@ bool wps_refresh(struct mp3entry* id3,
1522#ifdef HAVE_LCD_BITMAP 1528#ifdef HAVE_LCD_BITMAP
1523 if (update_line) { 1529 if (update_line) {
1524 lcd_update_rect(0, i*h + offset, LCD_WIDTH, h); 1530 lcd_update_rect(0, i*h + offset, LCD_WIDTH, h);
1525 wps_display_images();
1526 } 1531 }
1527#endif 1532#endif
1528 } 1533 }
1529 1534
1530#ifdef HAVE_LCD_BITMAP 1535#ifdef HAVE_LCD_BITMAP
1531 /* Display images marked as "always display" */ 1536 /* Display all images */
1532 for (i = 0; i < MAX_IMAGES; i++) { 1537 for (i = 0; i < MAX_IMAGES; i++) {
1533 img[i].display = img[i].always_display; 1538 if(img[i].always_display)
1539 img[i].display = img[i].always_display;
1534 } 1540 }
1535 wps_display_images(); 1541 wps_display_images();
1536 1542