diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/gwps-common.c | 52 | ||||
-rw-r--r-- | apps/gui/gwps.c | 55 | ||||
-rw-r--r-- | apps/gui/gwps.h | 4 |
3 files changed, 37 insertions, 74 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c index 349c92b9a0..5ab6ce8c82 100644 --- a/apps/gui/gwps-common.c +++ b/apps/gui/gwps-common.c | |||
@@ -146,44 +146,31 @@ bool wps_data_preload_tags(struct wps_data *data, char *buf, | |||
146 | case 'X': | 146 | case 'X': |
147 | /* Backdrop image - must be the same size as the LCD */ | 147 | /* Backdrop image - must be the same size as the LCD */ |
148 | { | 148 | { |
149 | int ret = 0; | ||
150 | struct bitmap bm; | ||
151 | char *ptr = buf+2; | 149 | char *ptr = buf+2; |
152 | char *pos = NULL; | 150 | char *pos = NULL; |
153 | char imgname[MAX_PATH]; | 151 | char imgname[MAX_PATH]; |
154 | 152 | ||
155 | /* format: %X|filename.bmp| */ | 153 | /* format: %X|filename.bmp| */ |
156 | { | ||
157 | /* get filename */ | ||
158 | pos = strchr(ptr, '|'); | ||
159 | if ((pos - ptr) < | ||
160 | (int)sizeof(imgname)-ROCKBOX_DIR_LEN-2) | ||
161 | { | ||
162 | memcpy(imgname, bmpdir, bmpdirlen); | ||
163 | imgname[bmpdirlen] = '/'; | ||
164 | memcpy(&imgname[bmpdirlen+1], | ||
165 | ptr, pos - ptr); | ||
166 | imgname[bmpdirlen+1+pos-ptr] = 0; | ||
167 | } | ||
168 | else | ||
169 | /* filename too long */ | ||
170 | imgname[0] = 0; | ||
171 | |||
172 | ptr = pos+1; | ||
173 | 154 | ||
174 | /* load the image */ | 155 | /* get filename */ |
175 | bm.data=(char*)&wps_backdrop[0][0]; | 156 | pos = strchr(ptr, '|'); |
176 | ret = read_bmp_file(imgname, &bm, | 157 | if ((pos - ptr) < |
177 | sizeof(wps_backdrop), FORMAT_NATIVE); | 158 | (int)sizeof(imgname)-ROCKBOX_DIR_LEN-2) |
178 | 159 | { | |
179 | if ((ret > 0) && (bm.width == LCD_WIDTH) | 160 | memcpy(imgname, bmpdir, bmpdirlen); |
180 | && (bm.height == LCD_HEIGHT)) { | 161 | imgname[bmpdirlen] = '/'; |
181 | data->has_backdrop=true; | 162 | memcpy(&imgname[bmpdirlen+1], |
182 | return true; | 163 | ptr, pos - ptr); |
183 | } else { | 164 | imgname[bmpdirlen+1+pos-ptr] = 0; |
184 | return false; | ||
185 | } | ||
186 | } | 165 | } |
166 | else | ||
167 | { | ||
168 | /* filename too long */ | ||
169 | imgname[0] = 0; | ||
170 | } | ||
171 | |||
172 | /* load the image */ | ||
173 | return load_wps_backdrop(imgname); | ||
187 | } | 174 | } |
188 | 175 | ||
189 | break; | 176 | break; |
@@ -2460,6 +2447,9 @@ bool gui_wps_display(void) | |||
2460 | if(i == 0) | 2447 | if(i == 0) |
2461 | { | 2448 | { |
2462 | #ifdef HAVE_LCD_BITMAP | 2449 | #ifdef HAVE_LCD_BITMAP |
2450 | #ifdef HAVE_LCD_COLOR | ||
2451 | unload_wps_backdrop(); | ||
2452 | #endif | ||
2463 | wps_data_load(gui_wps[i].data, | 2453 | wps_data_load(gui_wps[i].data, |
2464 | "%s%?it<%?in<%in. |>%it|%fn>\n" | 2454 | "%s%?it<%?in<%in. |>%it|%fn>\n" |
2465 | "%s%?ia<%ia|%?d2<%d2|(root)>>\n" | 2455 | "%s%?ia<%ia|%?d2<%d2|(root)>>\n" |
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index b84027c61c..d7a27e8eb9 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c | |||
@@ -105,18 +105,8 @@ long gui_wps_show(void) | |||
105 | gui_wps_set_margin(&gui_wps[i]); | 105 | gui_wps_set_margin(&gui_wps[i]); |
106 | } | 106 | } |
107 | #ifdef HAVE_LCD_COLOR | 107 | #ifdef HAVE_LCD_COLOR |
108 | gui_wps[SCREEN_MAIN].data->old_backdrop = lcd_get_backdrop(); | 108 | show_wps_backdrop(); |
109 | if (gui_wps[SCREEN_MAIN].data->has_backdrop) | 109 | #endif /* HAVE_LCD_COLOR */ |
110 | { | ||
111 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
112 | } | ||
113 | else | ||
114 | { | ||
115 | /* wps has no backdrop, so clear it in case we're switching wps */ | ||
116 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | ||
117 | } | ||
118 | |||
119 | #endif | ||
120 | #endif | 110 | #endif |
121 | 111 | ||
122 | #ifdef AB_REPEAT_ENABLE | 112 | #ifdef AB_REPEAT_ENABLE |
@@ -241,12 +231,11 @@ long gui_wps_show(void) | |||
241 | case WPS_RC_CONTEXT: | 231 | case WPS_RC_CONTEXT: |
242 | #endif | 232 | #endif |
243 | #ifdef HAVE_LCD_COLOR | 233 | #ifdef HAVE_LCD_COLOR |
244 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | 234 | show_main_backdrop(); |
245 | #endif | 235 | #endif |
246 | onplay(wps_state.id3->path, TREE_ATTR_MPA, CONTEXT_WPS); | 236 | onplay(wps_state.id3->path, TREE_ATTR_MPA, CONTEXT_WPS); |
247 | #ifdef HAVE_LCD_COLOR | 237 | #ifdef HAVE_LCD_COLOR |
248 | if (gui_wps[SCREEN_MAIN].data->has_backdrop) | 238 | show_wps_backdrop(); |
249 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
250 | #endif | 239 | #endif |
251 | #ifdef HAVE_LCD_BITMAP | 240 | #ifdef HAVE_LCD_BITMAP |
252 | FOR_NB_SCREENS(i) | 241 | FOR_NB_SCREENS(i) |
@@ -557,16 +546,12 @@ long gui_wps_show(void) | |||
557 | gui_wps[i].display->stop_scroll(); | 546 | gui_wps[i].display->stop_scroll(); |
558 | 547 | ||
559 | #ifdef HAVE_LCD_COLOR | 548 | #ifdef HAVE_LCD_COLOR |
560 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | 549 | show_main_backdrop(); |
561 | #endif | 550 | #endif |
562 | if (main_menu()) | 551 | if (main_menu()) |
563 | return true; | 552 | return true; |
564 | #ifdef HAVE_LCD_COLOR | 553 | #ifdef HAVE_LCD_COLOR |
565 | if(global_settings.backdrop_file[0] == 0) | 554 | show_wps_backdrop(); |
566 | gui_wps[SCREEN_MAIN].data->old_backdrop = NULL; | ||
567 | |||
568 | if (gui_wps[SCREEN_MAIN].data->has_backdrop) | ||
569 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
570 | #endif | 555 | #endif |
571 | #ifdef HAVE_LCD_BITMAP | 556 | #ifdef HAVE_LCD_BITMAP |
572 | FOR_NB_SCREENS(i) | 557 | FOR_NB_SCREENS(i) |
@@ -596,13 +581,12 @@ long gui_wps_show(void) | |||
596 | case WPS_RC_QUICK: | 581 | case WPS_RC_QUICK: |
597 | #endif | 582 | #endif |
598 | #ifdef HAVE_LCD_COLOR | 583 | #ifdef HAVE_LCD_COLOR |
599 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | 584 | show_main_backdrop(); |
600 | #endif | 585 | #endif |
601 | if (quick_screen_quick(button)) | 586 | if (quick_screen_quick(button)) |
602 | return SYS_USB_CONNECTED; | 587 | return SYS_USB_CONNECTED; |
603 | #ifdef HAVE_LCD_COLOR | 588 | #ifdef HAVE_LCD_COLOR |
604 | if (gui_wps[SCREEN_MAIN].data->has_backdrop) | 589 | show_wps_backdrop(); |
605 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
606 | #endif | 590 | #endif |
607 | #ifdef HAVE_LCD_BITMAP | 591 | #ifdef HAVE_LCD_BITMAP |
608 | FOR_NB_SCREENS(i) | 592 | FOR_NB_SCREENS(i) |
@@ -629,13 +613,12 @@ long gui_wps_show(void) | |||
629 | case BUTTON_ON | BUTTON_UP: | 613 | case BUTTON_ON | BUTTON_UP: |
630 | case BUTTON_ON | BUTTON_DOWN: | 614 | case BUTTON_ON | BUTTON_DOWN: |
631 | #ifdef HAVE_LCD_COLOR | 615 | #ifdef HAVE_LCD_COLOR |
632 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | 616 | show_main_backdrop(); |
633 | #endif | 617 | #endif |
634 | if (1 == pitch_screen()) | 618 | if (1 == pitch_screen()) |
635 | return SYS_USB_CONNECTED; | 619 | return SYS_USB_CONNECTED; |
636 | #ifdef HAVE_LCD_COLOR | 620 | #ifdef HAVE_LCD_COLOR |
637 | if (gui_wps[SCREEN_MAIN].data->has_backdrop) | 621 | show_wps_backdrop(); |
638 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
639 | #endif | 622 | #endif |
640 | restore = true; | 623 | restore = true; |
641 | break; | 624 | break; |
@@ -730,12 +713,11 @@ long gui_wps_show(void) | |||
730 | #ifdef WPS_ID3 | 713 | #ifdef WPS_ID3 |
731 | case WPS_ID3: | 714 | case WPS_ID3: |
732 | #ifdef HAVE_LCD_COLOR | 715 | #ifdef HAVE_LCD_COLOR |
733 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | 716 | show_main_backdrop(); |
734 | #endif | 717 | #endif |
735 | browse_id3(); | 718 | browse_id3(); |
736 | #ifdef HAVE_LCD_COLOR | 719 | #ifdef HAVE_LCD_COLOR |
737 | if (gui_wps[SCREEN_MAIN].data->has_backdrop) | 720 | show_wps_backdrop(); |
738 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
739 | #endif | 721 | #endif |
740 | #ifdef HAVE_LCD_BITMAP | 722 | #ifdef HAVE_LCD_BITMAP |
741 | FOR_NB_SCREENS(i) | 723 | FOR_NB_SCREENS(i) |
@@ -754,19 +736,14 @@ long gui_wps_show(void) | |||
754 | case SYS_POWEROFF: | 736 | case SYS_POWEROFF: |
755 | bookmark_autobookmark(); | 737 | bookmark_autobookmark(); |
756 | #ifdef HAVE_LCD_COLOR | 738 | #ifdef HAVE_LCD_COLOR |
757 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | 739 | show_main_backdrop(); |
758 | #endif | 740 | #endif |
759 | default_event_handler(SYS_POWEROFF); | 741 | default_event_handler(SYS_POWEROFF); |
760 | break; | 742 | break; |
761 | 743 | ||
762 | default: | 744 | default: |
763 | if(default_event_handler(button) == SYS_USB_CONNECTED) | 745 | if(default_event_handler(button) == SYS_USB_CONNECTED) |
764 | { | ||
765 | #ifdef HAVE_LCD_COLOR | ||
766 | lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop); | ||
767 | #endif | ||
768 | return SYS_USB_CONNECTED; | 746 | return SYS_USB_CONNECTED; |
769 | } | ||
770 | update_track = true; | 747 | update_track = true; |
771 | break; | 748 | break; |
772 | } | 749 | } |
@@ -887,9 +864,6 @@ void wps_data_init(struct wps_data *wps_data) | |||
887 | wps_data->format_buffer[0] = '\0'; | 864 | wps_data->format_buffer[0] = '\0'; |
888 | wps_data->wps_loaded = false; | 865 | wps_data->wps_loaded = false; |
889 | wps_data->peak_meter_enabled = false; | 866 | wps_data->peak_meter_enabled = false; |
890 | #ifdef HAVE_LCD_COLOR | ||
891 | wps_data->has_backdrop = false; | ||
892 | #endif | ||
893 | } | 867 | } |
894 | 868 | ||
895 | static void wps_reset(struct wps_data *data) | 869 | static void wps_reset(struct wps_data *data) |
@@ -1075,4 +1049,7 @@ void gui_sync_wps_init(void) | |||
1075 | gui_wps_set_data(&gui_wps[i], &wps_datas[i]); | 1049 | gui_wps_set_data(&gui_wps[i], &wps_datas[i]); |
1076 | gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]); | 1050 | gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]); |
1077 | } | 1051 | } |
1052 | #ifdef HAVE_LCD_COLOR | ||
1053 | unload_wps_backdrop(); | ||
1054 | #endif | ||
1078 | } | 1055 | } |
diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h index 08299acbfc..3911ad1825 100644 --- a/apps/gui/gwps.h +++ b/apps/gui/gwps.h | |||
@@ -367,10 +367,6 @@ struct wps_data | |||
367 | int progress_end; | 367 | int progress_end; |
368 | bool wps_loaded; | 368 | bool wps_loaded; |
369 | bool peak_meter_enabled; | 369 | bool peak_meter_enabled; |
370 | #ifdef HAVE_LCD_COLOR | ||
371 | bool has_backdrop; | ||
372 | fb_data* old_backdrop; | ||
373 | #endif | ||
374 | }; | 370 | }; |
375 | 371 | ||
376 | /* initial setup of wps_data */ | 372 | /* initial setup of wps_data */ |