static bool_t draw_cb (GtkWidget * widget, cairo_t * cr) { g_return_val_if_fail (area, FALSE); clear (widget, cr); draw_album_art (cr); draw_title (cr); return TRUE; }
void wps_display_images(struct gui_wps *gwps, struct viewport* vp) { if(!gwps || !gwps->data || !gwps->display) return; struct wps_data *data = gwps->data; struct screen *display = gwps->display; struct skin_token_list *list = data->images; while (list) { struct gui_img *img = (struct gui_img*)list->token->value.data; if (img->using_preloaded_icons && img->display >= 0) { screen_put_icon(display, img->x, img->y, img->display); } else if (img->loaded) { if (img->display >= 0) { wps_draw_image(gwps, img, img->display); } else if (img->always_display && img->vp == vp) { wps_draw_image(gwps, img, 0); } } list = list->next; } #ifdef HAVE_ALBUMART /* now draw the AA */ if (data->albumart && data->albumart->vp == vp && data->albumart->draw_handle >= 0) { draw_album_art(gwps, data->albumart->draw_handle, false); data->albumart->draw_handle = -1; } #endif display->set_drawmode(DRMODE_SOLID); }
void wps_display_images(struct gui_wps *gwps, struct viewport* vp) { if(!gwps || !gwps->data || !gwps->display) return; (void)vp; struct wps_data *data = gwps->data; struct screen *display = gwps->display; struct skin_token_list *list = SKINOFFSETTOPTR(get_skin_buffer(data), data->images); while (list) { struct wps_token *token = SKINOFFSETTOPTR(get_skin_buffer(data), list->token); struct gui_img *img = (struct gui_img*)SKINOFFSETTOPTR(get_skin_buffer(data), token->value.data); if (img->using_preloaded_icons && img->display >= 0) { screen_put_icon(display, img->x, img->y, img->display); } else if (img->loaded) { if (img->display >= 0) { wps_draw_image(gwps, img, img->display); } } list = SKINOFFSETTOPTR(get_skin_buffer(data), list->next); } #ifdef HAVE_ALBUMART /* now draw the AA */ struct skin_albumart *aa = SKINOFFSETTOPTR(get_skin_buffer(data), data->albumart); if (aa && SKINOFFSETTOPTR(get_skin_buffer(data), aa->vp) == vp && aa->draw_handle >= 0) { draw_album_art(gwps, aa->draw_handle, false); aa->draw_handle = -1; } #endif display->set_drawmode(DRMODE_SOLID); }
static void do_tags_in_hidden_conditional(struct skin_element* branch, struct skin_draw_info *info) { #ifdef HAVE_LCD_BITMAP struct gui_wps *gwps = info->gwps; struct wps_data *data = gwps->data; #endif /* Tags here are ones which need to be "turned off" or cleared * if they are in a conditional branch which isnt being used */ if (branch->type == LINE_ALTERNATOR) { int i; for (i=0; i<branch->children_count; i++) { do_tags_in_hidden_conditional(branch->children[i], info); } } else if (branch->type == LINE && branch->children_count) { struct skin_element *child = branch->children[0]; struct wps_token *token; while (child) { if (child->type == CONDITIONAL) { int i; for (i=0; i<child->children_count; i++) { do_tags_in_hidden_conditional(child->children[i], info); } child = child->next; continue; } else if (child->type != TAG || !child->data) { child = child->next; continue; } token = (struct wps_token *)child->data; #ifdef HAVE_LCD_BITMAP /* clear all pictures in the conditional and nested ones */ if (token->type == SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY) { struct image_display *id = token->value.data; struct gui_img *img = skin_find_item(id->label, SKIN_FIND_IMAGE, data); clear_image_pos(gwps, img); } else if (token->type == SKIN_TOKEN_PEAKMETER) { data->peak_meter_enabled = false; } else if (token->type == SKIN_TOKEN_VIEWPORT_ENABLE) { char *label = token->value.data; struct skin_element *viewport; for (viewport = data->tree; viewport; viewport = viewport->next) { struct skin_viewport *skin_viewport = (struct skin_viewport*)viewport->data; if (skin_viewport->label && strcmp(skin_viewport->label, label)) continue; if (skin_viewport->hidden_flags&VP_NEVER_VISIBLE) { continue; } if (skin_viewport->hidden_flags&VP_DRAW_HIDEABLE) { if (skin_viewport->hidden_flags&VP_DRAW_HIDDEN) skin_viewport->hidden_flags |= VP_DRAW_WASHIDDEN; else { gwps->display->set_viewport(&skin_viewport->vp); gwps->display->clear_viewport(); gwps->display->scroll_stop(&skin_viewport->vp); gwps->display->set_viewport(&info->skin_vp->vp); skin_viewport->hidden_flags |= VP_DRAW_HIDDEN; } } } } #endif #ifdef HAVE_ALBUMART else if (data->albumart && token->type == SKIN_TOKEN_ALBUMART_DISPLAY) { draw_album_art(gwps, playback_current_aa_hid(data->playback_aa_slot), true); } #endif child = child->next; } } }