From fe2f042670a59cf73c3775945df9185d933ca9b4 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Mon, 7 Sep 2009 02:36:56 +0000 Subject: rework AA load/display handling in the skins to get them working in viewports again git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22646 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_display.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'apps/gui/skin_engine/skin_display.c') diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 01f8b13acb..4a87b69ce4 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c @@ -77,6 +77,9 @@ void skin_data_init(struct wps_data *wps_data) wps_data->peak_meter_enabled = false; wps_data->images = NULL; wps_data->progressbars = NULL; +#ifdef HAVE_ALBUMART + wps_data->albumart = NULL; +#endif /* progress bars */ #else /* HAVE_LCD_CHARCELLS */ int i; @@ -265,6 +268,14 @@ static void wps_display_images(struct gui_wps *gwps, struct viewport* vp) } list = list->next; } +#ifdef HAVE_ALBUMART + /* now draw the AA */ + if (data->albumart && data->albumart->vp == vp && data->albumart->draw) + { + draw_album_art(gwps, audio_current_aa_hid(), false); + } +#endif + display->set_drawmode(DRMODE_SOLID); } @@ -465,8 +476,11 @@ static bool evaluate_conditional(struct gui_wps *gwps, int *token_index) clear_image_pos(gwps, find_image(data->tokens[i].value.i&0xFF, gwps->data)); #endif #ifdef HAVE_ALBUMART - if (data->tokens[i].type == WPS_TOKEN_ALBUMART_DISPLAY) + if (data->albumart && data->tokens[i].type == WPS_TOKEN_ALBUMART_DISPLAY) + { draw_album_art(gwps, audio_current_aa_hid(), true); + data->albumart->draw = false; + } #endif } @@ -961,9 +975,9 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) skin_viewport->hidden_flags |= VP_DRAW_HIDDEN; } } - + int viewport_count = 0; for (viewport_list = data->viewports; - viewport_list; viewport_list = viewport_list->next) + viewport_list; viewport_list = viewport_list->next, viewport_count++) { struct skin_viewport *skin_viewport = (struct skin_viewport *)viewport_list->token->value.data; -- cgit v1.2.3