mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
fix FS#10599 and do r22721 a slightly better way. the %C tag is internally converted to a different token for display and conditional check.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22726 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
7337fd332f
commit
aafeaad65f
3 changed files with 24 additions and 15 deletions
|
@ -474,6 +474,13 @@ static bool evaluate_conditional(struct gui_wps *gwps, int *token_index)
|
||||||
/* clear all pictures in the conditional and nested ones */
|
/* clear all pictures in the conditional and nested ones */
|
||||||
if (data->tokens[i].type == WPS_TOKEN_IMAGE_PRELOAD_DISPLAY)
|
if (data->tokens[i].type == WPS_TOKEN_IMAGE_PRELOAD_DISPLAY)
|
||||||
clear_image_pos(gwps, find_image(data->tokens[i].value.i&0xFF, gwps->data));
|
clear_image_pos(gwps, find_image(data->tokens[i].value.i&0xFF, gwps->data));
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ALBUMART
|
||||||
|
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
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -622,14 +629,6 @@ static bool get_line(struct gui_wps *gwps,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_ALBUMART
|
|
||||||
case WPS_TOKEN_ALBUMART_DISPLAY:
|
|
||||||
if (data->albumart)
|
|
||||||
{
|
|
||||||
data->albumart->draw = true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
/* get the value of the tag and copy it to the buffer */
|
/* get the value of the tag and copy it to the buffer */
|
||||||
|
|
|
@ -1120,8 +1120,15 @@ static int parse_albumart_display(const char *wps_bufptr,
|
||||||
struct wps_data *wps_data)
|
struct wps_data *wps_data)
|
||||||
{
|
{
|
||||||
(void)wps_bufptr;
|
(void)wps_bufptr;
|
||||||
(void)token;
|
if (wps_data->num_tokens > 1)
|
||||||
if (wps_data->albumart)
|
{
|
||||||
|
struct wps_token *prev = token-1;
|
||||||
|
if (prev->type == WPS_TOKEN_CONDITIONAL)
|
||||||
|
{
|
||||||
|
token->type = WPS_TOKEN_ALBUMART_FOUND;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (wps_data->albumart)
|
||||||
{
|
{
|
||||||
wps_data->albumart->vp = &curr_vp->vp;
|
wps_data->albumart->vp = &curr_vp->vp;
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,13 +318,16 @@ const char *get_token_value(struct gui_wps *gwps,
|
||||||
return id3->comment;
|
return id3->comment;
|
||||||
|
|
||||||
#ifdef HAVE_ALBUMART
|
#ifdef HAVE_ALBUMART
|
||||||
|
case WPS_TOKEN_ALBUMART_FOUND:
|
||||||
|
if (data->albumart && audio_current_aa_hid() >= 0) {
|
||||||
|
return "C";
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
|
||||||
case WPS_TOKEN_ALBUMART_DISPLAY:
|
case WPS_TOKEN_ALBUMART_DISPLAY:
|
||||||
if (!data->albumart)
|
if (!data->albumart)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (audio_current_aa_hid() >= 0) {
|
data->albumart->draw = true;
|
||||||
return "C";
|
|
||||||
}
|
|
||||||
data->albumart->draw = false;
|
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue