From 3b75c86d74937a6bffcb371bb08bdfb182db9d2b Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Mon, 3 Aug 2009 15:06:30 +0000 Subject: A bit mroe wps/skin engine cleanup so that the structs the wps uses can be static: -add wrappers wps_data_load() and wps_data_init() so that other code doesn't need the structs for that -change (and rename) gui_sync_wps_uses_albumart() to take points to be filled as parameter to get the AA size of a wps git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22139 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/wps.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'apps/gui/wps.c') diff --git a/apps/gui/wps.c b/apps/gui/wps.c index 4a7de875d2..447c1d6b00 100644 --- a/apps/gui/wps.c +++ b/apps/gui/wps.c @@ -75,8 +75,8 @@ static int wpsbars; /* currently only one wps_state is needed */ -struct wps_state wps_state; -struct gui_wps gui_wps[NB_SCREENS]; +static struct wps_state wps_state; +static struct gui_wps gui_wps[NB_SCREENS]; static struct wps_data wps_datas[NB_SCREENS]; /* initial setup of wps_data */ @@ -90,6 +90,19 @@ static void nextid3available_callback(void* param); /* 3% of 30min file == 54s step size */ #define MIN_FF_REWIND_STEP 500 +void wps_data_load(enum screen_type screen, const char *buf, bool is_file) +{ + skin_data_load(gui_wps[screen].data, &screens[screen], buf, is_file); +#ifdef HAVE_REMOVE_LCD + gui_wps[screen].data->remote_wps = !(screen == SCREEN_MAIN); +#endif +} + +void wps_data_init(enum screen_type screen) +{ + skin_data_init(gui_wps[screen].data); +} + bool wps_fading_out = false; void fade(bool fade_in, bool updatewps) { @@ -165,6 +178,7 @@ bool update_onvol_change(struct gui_wps * gwps) return false; } + bool ffwd_rew(int button) { unsigned int step = 0; /* current ff/rewind step */ @@ -1176,7 +1190,7 @@ void gui_sync_wps_init(void) int i; FOR_NB_SCREENS(i) { - wps_data_init(&wps_datas[i]); + skin_data_init(&wps_datas[i]); #ifdef HAVE_ALBUMART wps_datas[i].wps_uses_albumart = 0; #endif @@ -1201,15 +1215,19 @@ void gui_sync_wps_init(void) } #ifdef HAVE_ALBUMART -/* Returns true if at least one of the gui_wps screens has an album art - tag in its wps structure */ -bool gui_sync_wps_uses_albumart(void) +bool wps_uses_albumart(int *width, int *height) { int i; FOR_NB_SCREENS(i) { struct gui_wps *gwps = &gui_wps[i]; if (gwps->data && (gwps->data->wps_uses_albumart != WPS_ALBUMART_NONE)) + { + if (width) + *width = gui_wps[0].data->albumart_max_width; + if (height) + *height = gui_wps[0].data->albumart_max_height; return true; + } } return false; } -- cgit v1.2.3