summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2006-03-14 12:05:22 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2006-03-14 12:05:22 +0000
commit249960195523e5b7f2ae9ca84b55d3a33dea35ff (patch)
tree922988278f5d5e38d91579d2f5875f9f17dda12a
parenta137e7ff860e17a71c66356674f79b67e5e22388 (diff)
downloadrockbox-249960195523e5b7f2ae9ca84b55d3a33dea35ff.zip
rockbox-249960195523e5b7f2ae9ca84b55d3a33dea35ff.tar.gz
rockbox-249960195523e5b7f2ae9ca84b55d3a33dea35ff.tar.bz2
rockbox-249960195523e5b7f2ae9ca84b55d3a33dea35ff.tar.xz
Correct a problem with WPS backdrops not loading correctly, and semi-prepare for remote WPS backdrops
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9035 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/gui/gwps-common.c6
-rw-r--r--apps/gui/gwps.c34
-rw-r--r--apps/gui/gwps.h4
3 files changed, 18 insertions, 26 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index 76ed7d8..a959ba4 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -61,10 +61,6 @@ static void draw_player_fullbar(struct gui_wps *gwps,
/* 3% of 30min file == 54s step size */
#define MIN_FF_REWIND_STEP 500
-#ifdef HAVE_LCD_COLOR
-extern bool wps_has_backdrop;
-#endif
-
/* Skip leading UTF-8 BOM, if present. */
static char* skip_utf8_bom(char* buf)
{
@@ -179,7 +175,7 @@ bool wps_data_preload_tags(struct wps_data *data, char *buf,
if ((ret > 0) && (bm.width == LCD_WIDTH)
&& (bm.height == LCD_HEIGHT)) {
- wps_has_backdrop=true;
+ data->has_backdrop=true;
return true;
} else {
return false;
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index 6134cb5..334fc79 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -64,11 +64,6 @@ struct wps_state wps_state;
struct gui_wps gui_wps[NB_SCREENS];
static struct wps_data wps_datas[NB_SCREENS];
-#ifdef HAVE_LCD_COLOR
-bool wps_has_backdrop;
-fb_data* old_backdrop;
-#endif
-
bool keys_locked = false;
/* change the path to the current played track */
@@ -110,8 +105,8 @@ long gui_wps_show(void)
gui_wps_set_margin(&gui_wps[i]);
}
#ifdef HAVE_LCD_COLOR
- old_backdrop = lcd_get_backdrop();
- if (wps_has_backdrop) {
+ gui_wps[SCREEN_MAIN].data->old_backdrop = lcd_get_backdrop();
+ if (gui_wps[SCREEN_MAIN].data->has_backdrop) {
lcd_set_backdrop(&wps_backdrop[0][0]);
}
#endif
@@ -239,11 +234,11 @@ long gui_wps_show(void)
case WPS_RC_CONTEXT:
#endif
#ifdef HAVE_LCD_COLOR
- lcd_set_backdrop(old_backdrop);
+ lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif
onplay(wps_state.id3->path, TREE_ATTR_MPA, CONTEXT_WPS);
#ifdef HAVE_LCD_COLOR
- if (wps_has_backdrop)
+ if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]);
#endif
#ifdef HAVE_LCD_BITMAP
@@ -531,12 +526,12 @@ long gui_wps_show(void)
gui_wps[i].display->stop_scroll();
#ifdef HAVE_LCD_COLOR
- lcd_set_backdrop(old_backdrop);
+ lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif
if (main_menu())
return true;
#ifdef HAVE_LCD_COLOR
- if (wps_has_backdrop)
+ if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]);
#endif
#ifdef HAVE_LCD_BITMAP
@@ -568,12 +563,12 @@ long gui_wps_show(void)
case WPS_RC_QUICK:
#endif
#ifdef HAVE_LCD_COLOR
- lcd_set_backdrop(old_backdrop);
+ lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif
if (quick_screen_quick(button))
return SYS_USB_CONNECTED;
#ifdef HAVE_LCD_COLOR
- if (wps_has_backdrop)
+ if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]);
#endif
#ifdef HAVE_LCD_BITMAP
@@ -604,12 +599,12 @@ long gui_wps_show(void)
case BUTTON_ON | BUTTON_OFF:
#endif
#ifdef HAVE_LCD_COLOR
- lcd_set_backdrop(old_backdrop);
+ lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif
if (2 == pitch_screen())
return SYS_USB_CONNECTED;
#ifdef HAVE_LCD_COLOR
- if (wps_has_backdrop)
+ if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]);
#endif
restore = true;
@@ -837,6 +832,9 @@ void wps_data_init(struct wps_data *wps_data)
wps_data->format_buffer[0] = '\0';
wps_data->wps_loaded = false;
wps_data->peak_meter_enabled = false;
+#ifdef HAVE_LCD_COLOR
+ wps_data->has_backdrop = false;
+#endif
}
static void wps_reset(struct wps_data *data)
@@ -844,9 +842,6 @@ static void wps_reset(struct wps_data *data)
data->wps_loaded = false;
memset(&data->format_buffer, 0, sizeof data->format_buffer);
wps_data_init(data);
-#ifdef HAVE_LCD_COLOR
- wps_has_backdrop = false;
-#endif
}
/* to setup up the wps-data from a format-buffer (isfile = false)
@@ -1025,7 +1020,4 @@ void gui_sync_wps_init(void)
gui_wps_set_data(&gui_wps[i], &wps_datas[i]);
gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]);
}
-#ifdef HAVE_LCD_COLOR
- wps_has_backdrop = false;
-#endif
}
diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h
index 5c3b726..461c5c9 100644
--- a/apps/gui/gwps.h
+++ b/apps/gui/gwps.h
@@ -345,6 +345,10 @@ struct wps_data
int progress_end;
bool wps_loaded;
bool peak_meter_enabled;
+#ifdef HAVE_LCD_COLOR
+ bool has_backdrop;
+ fb_data* old_backdrop;
+#endif
};
/* initial setup of wps_data */