1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Linus Nielsen Feltzing 2006-03-14 12:05:22 +00:00
parent a137e7ff86
commit 2499601955
3 changed files with 18 additions and 26 deletions

View file

@ -61,10 +61,6 @@ static void draw_player_fullbar(struct gui_wps *gwps,
/* 3% of 30min file == 54s step size */ /* 3% of 30min file == 54s step size */
#define MIN_FF_REWIND_STEP 500 #define MIN_FF_REWIND_STEP 500
#ifdef HAVE_LCD_COLOR
extern bool wps_has_backdrop;
#endif
/* Skip leading UTF-8 BOM, if present. */ /* Skip leading UTF-8 BOM, if present. */
static char* skip_utf8_bom(char* buf) 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) if ((ret > 0) && (bm.width == LCD_WIDTH)
&& (bm.height == LCD_HEIGHT)) { && (bm.height == LCD_HEIGHT)) {
wps_has_backdrop=true; data->has_backdrop=true;
return true; return true;
} else { } else {
return false; return false;

View file

@ -64,11 +64,6 @@ struct wps_state wps_state;
struct gui_wps gui_wps[NB_SCREENS]; struct gui_wps gui_wps[NB_SCREENS];
static struct wps_data wps_datas[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; bool keys_locked = false;
/* change the path to the current played track */ /* change the path to the current played track */
@ -110,8 +105,8 @@ long gui_wps_show(void)
gui_wps_set_margin(&gui_wps[i]); gui_wps_set_margin(&gui_wps[i]);
} }
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
old_backdrop = lcd_get_backdrop(); gui_wps[SCREEN_MAIN].data->old_backdrop = lcd_get_backdrop();
if (wps_has_backdrop) { if (gui_wps[SCREEN_MAIN].data->has_backdrop) {
lcd_set_backdrop(&wps_backdrop[0][0]); lcd_set_backdrop(&wps_backdrop[0][0]);
} }
#endif #endif
@ -239,11 +234,11 @@ long gui_wps_show(void)
case WPS_RC_CONTEXT: case WPS_RC_CONTEXT:
#endif #endif
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
lcd_set_backdrop(old_backdrop); lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif #endif
onplay(wps_state.id3->path, TREE_ATTR_MPA, CONTEXT_WPS); onplay(wps_state.id3->path, TREE_ATTR_MPA, CONTEXT_WPS);
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
if (wps_has_backdrop) if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]); lcd_set_backdrop(&wps_backdrop[0][0]);
#endif #endif
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
@ -531,12 +526,12 @@ long gui_wps_show(void)
gui_wps[i].display->stop_scroll(); gui_wps[i].display->stop_scroll();
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
lcd_set_backdrop(old_backdrop); lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif #endif
if (main_menu()) if (main_menu())
return true; return true;
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
if (wps_has_backdrop) if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]); lcd_set_backdrop(&wps_backdrop[0][0]);
#endif #endif
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
@ -568,12 +563,12 @@ long gui_wps_show(void)
case WPS_RC_QUICK: case WPS_RC_QUICK:
#endif #endif
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
lcd_set_backdrop(old_backdrop); lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif #endif
if (quick_screen_quick(button)) if (quick_screen_quick(button))
return SYS_USB_CONNECTED; return SYS_USB_CONNECTED;
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
if (wps_has_backdrop) if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]); lcd_set_backdrop(&wps_backdrop[0][0]);
#endif #endif
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
@ -604,12 +599,12 @@ long gui_wps_show(void)
case BUTTON_ON | BUTTON_OFF: case BUTTON_ON | BUTTON_OFF:
#endif #endif
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
lcd_set_backdrop(old_backdrop); lcd_set_backdrop(gui_wps[SCREEN_MAIN].data->old_backdrop);
#endif #endif
if (2 == pitch_screen()) if (2 == pitch_screen())
return SYS_USB_CONNECTED; return SYS_USB_CONNECTED;
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
if (wps_has_backdrop) if (gui_wps[SCREEN_MAIN].data->has_backdrop)
lcd_set_backdrop(&wps_backdrop[0][0]); lcd_set_backdrop(&wps_backdrop[0][0]);
#endif #endif
restore = true; restore = true;
@ -837,6 +832,9 @@ void wps_data_init(struct wps_data *wps_data)
wps_data->format_buffer[0] = '\0'; wps_data->format_buffer[0] = '\0';
wps_data->wps_loaded = false; wps_data->wps_loaded = false;
wps_data->peak_meter_enabled = 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) static void wps_reset(struct wps_data *data)
@ -844,9 +842,6 @@ static void wps_reset(struct wps_data *data)
data->wps_loaded = false; data->wps_loaded = false;
memset(&data->format_buffer, 0, sizeof data->format_buffer); memset(&data->format_buffer, 0, sizeof data->format_buffer);
wps_data_init(data); 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) /* 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_data(&gui_wps[i], &wps_datas[i]);
gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]); gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]);
} }
#ifdef HAVE_LCD_COLOR
wps_has_backdrop = false;
#endif
} }

View file

@ -345,6 +345,10 @@ struct wps_data
int progress_end; int progress_end;
bool wps_loaded; bool wps_loaded;
bool peak_meter_enabled; bool peak_meter_enabled;
#ifdef HAVE_LCD_COLOR
bool has_backdrop;
fb_data* old_backdrop;
#endif
}; };
/* initial setup of wps_data */ /* initial setup of wps_data */