RTL language enhancements by Tomers Shalev and I.

3 new tokens:
%ax - the next token should follow the language direction (what that means is defined by the individual tokens)
%aL - align left on LTR language (same as %al), right on RTL languages
%aR - align right on LTR language (same as %ar), left on RTL languages

This commit adds %ax support to the %V and %Cl tokens. 


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24193 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2010-01-07 07:34:15 +00:00
parent 57667c51cf
commit 91e6b06be9
13 changed files with 89 additions and 36 deletions

View file

@ -548,6 +548,7 @@ int ft_enter(struct tree_context* c)
MAX_FILENAME); MAX_FILENAME);
talk_init(); /* use voice of same language */ talk_init(); /* use voice of same language */
viewportmanager_theme_changed(THEME_LANGUAGE); viewportmanager_theme_changed(THEME_LANGUAGE);
settings_apply_skins();
splash(HZ, ID2P(LANG_LANGUAGE_LOADED)); splash(HZ, ID2P(LANG_LANGUAGE_LOADED));
break; break;

View file

@ -31,6 +31,7 @@
#endif #endif
#include "abrepeat.h" #include "abrepeat.h"
#include "lang.h" #include "lang.h"
#include "language.h"
#include "statusbar.h" #include "statusbar.h"
#include "scrollbar.h" #include "scrollbar.h"
#include "screen_access.h" #include "screen_access.h"
@ -528,8 +529,10 @@ static bool get_line(struct gui_wps *gwps,
#endif #endif
case WPS_TOKEN_ALIGN_LEFT: case WPS_TOKEN_ALIGN_LEFT:
case WPS_TOKEN_ALIGN_LEFT_RTL:
case WPS_TOKEN_ALIGN_CENTER: case WPS_TOKEN_ALIGN_CENTER:
case WPS_TOKEN_ALIGN_RIGHT: case WPS_TOKEN_ALIGN_RIGHT:
case WPS_TOKEN_ALIGN_RIGHT_RTL:
/* remember where the current aligned text started */ /* remember where the current aligned text started */
switch (cur_align) switch (cur_align)
{ {
@ -551,12 +554,20 @@ static bool get_line(struct gui_wps *gwps,
case WPS_TOKEN_ALIGN_LEFT: case WPS_TOKEN_ALIGN_LEFT:
cur_align = WPS_ALIGN_LEFT; cur_align = WPS_ALIGN_LEFT;
break; break;
case WPS_TOKEN_ALIGN_LEFT_RTL:
cur_align = lang_is_rtl() ? WPS_ALIGN_RIGHT :
WPS_ALIGN_LEFT;
break;
case WPS_TOKEN_ALIGN_CENTER: case WPS_TOKEN_ALIGN_CENTER:
cur_align = WPS_ALIGN_CENTER; cur_align = WPS_ALIGN_CENTER;
break; break;
case WPS_TOKEN_ALIGN_RIGHT: case WPS_TOKEN_ALIGN_RIGHT:
cur_align = WPS_ALIGN_RIGHT; cur_align = WPS_ALIGN_RIGHT;
break; break;
case WPS_TOKEN_ALIGN_RIGHT_RTL:
cur_align = lang_is_rtl() ? WPS_ALIGN_LEFT :
WPS_ALIGN_RIGHT;
break;
default: default:
break; break;
} }

View file

@ -89,6 +89,8 @@ static struct skin_viewport *curr_vp;
/* the current line, linked to the above viewport */ /* the current line, linked to the above viewport */
static struct skin_line *curr_line; static struct skin_line *curr_line;
static int follow_lang_direction = 0;
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
@ -141,6 +143,19 @@ static int parse_dir_level(const char *wps_bufptr,
static int parse_setting_and_lang(const char *wps_bufptr, static int parse_setting_and_lang(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data); struct wps_token *token, struct wps_data *wps_data);
int parse_languagedirection(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data)
{
(void)wps_bufptr;
(void)token;
(void)wps_data;
follow_lang_direction = 2; /* 2 because it is decremented immediatly after
this token is parsed, after the next token it
will be 0 again. */
return 0;
}
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
static int parse_viewport_display(const char *wps_bufptr, static int parse_viewport_display(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data); struct wps_token *token, struct wps_data *wps_data);
@ -189,7 +204,10 @@ static const struct wps_tag all_tags[] = {
{ WPS_TOKEN_ALIGN_CENTER, "ac", 0, NULL }, { WPS_TOKEN_ALIGN_CENTER, "ac", 0, NULL },
{ WPS_TOKEN_ALIGN_LEFT, "al", 0, NULL }, { WPS_TOKEN_ALIGN_LEFT, "al", 0, NULL },
{ WPS_TOKEN_ALIGN_LEFT_RTL, "aL", 0, NULL },
{ WPS_TOKEN_ALIGN_RIGHT, "ar", 0, NULL }, { WPS_TOKEN_ALIGN_RIGHT, "ar", 0, NULL },
{ WPS_TOKEN_ALIGN_RIGHT_RTL, "aR", 0, NULL },
{ WPS_NO_TOKEN, "ax", 0, parse_languagedirection },
{ WPS_TOKEN_BATTERY_PERCENT, "bl", WPS_REFRESH_DYNAMIC, NULL }, { WPS_TOKEN_BATTERY_PERCENT, "bl", WPS_REFRESH_DYNAMIC, NULL },
{ WPS_TOKEN_BATTERY_VOLTS, "bv", WPS_REFRESH_DYNAMIC, NULL }, { WPS_TOKEN_BATTERY_VOLTS, "bv", WPS_REFRESH_DYNAMIC, NULL },
@ -748,15 +766,22 @@ static int parse_viewport(const char *wps_bufptr,
ptr++; ptr++;
struct viewport *vp = &skin_vp->vp; struct viewport *vp = &skin_vp->vp;
/* format: %V|x|y|width|height|font|fg_pattern|bg_pattern| */ /* format: %V|x|y|width|height|font|fg_pattern|bg_pattern| */
if (!(ptr = viewport_parse_viewport(vp, curr_screen, ptr, '|'))) if (!(ptr = viewport_parse_viewport(vp, curr_screen, ptr, '|')))
return WPS_ERROR_INVALID_PARAM; return WPS_ERROR_INVALID_PARAM;
vp->flags &= ~VP_FLAG_ALIGN_RIGHT; /* ignore right-to-left languages */
/* Check for trailing | */ /* Check for trailing | */
if (*ptr != '|') if (*ptr != '|')
return WPS_ERROR_INVALID_PARAM; return WPS_ERROR_INVALID_PARAM;
if (follow_lang_direction && lang_is_rtl())
{
vp->flags |= VP_FLAG_ALIGN_RIGHT;
vp->x = screens[curr_screen].lcdwidth - vp->width - vp->x;
}
else
vp->flags &= ~VP_FLAG_ALIGN_RIGHT; /* ignore right-to-left languages */
struct skin_token_list *list = new_skin_token_list_item(NULL, skin_vp); struct skin_token_list *list = new_skin_token_list_item(NULL, skin_vp);
if (!list) if (!list)
@ -954,6 +979,7 @@ static int parse_progressbar(const char *wps_bufptr,
} }
pb->have_bitmap_pb = false; pb->have_bitmap_pb = false;
pb->bm.data = NULL; /* no bitmap specified */ pb->bm.data = NULL; /* no bitmap specified */
pb->follow_lang_direction = follow_lang_direction > 0;
if (*wps_bufptr != '|') /* regular old style */ if (*wps_bufptr != '|') /* regular old style */
{ {
@ -1041,6 +1067,7 @@ static int parse_albumart_load(const char *wps_bufptr,
bool parsing; bool parsing;
struct dim dimensions; struct dim dimensions;
int albumart_slot; int albumart_slot;
bool swap_for_rtl = lang_is_rtl() && follow_lang_direction;
struct skin_albumart *aa = skin_buffer_alloc(sizeof(struct skin_albumart)); struct skin_albumart *aa = skin_buffer_alloc(sizeof(struct skin_albumart));
(void)token; /* silence warning */ (void)token; /* silence warning */
if (!aa) if (!aa)
@ -1085,6 +1112,9 @@ static int parse_albumart_load(const char *wps_bufptr,
case 'l': case 'l':
case 'L': case 'L':
case '+': case '+':
if (swap_for_rtl)
aa->xalign = WPS_ALBUMART_ALIGN_RIGHT;
else
aa->xalign = WPS_ALBUMART_ALIGN_LEFT; aa->xalign = WPS_ALBUMART_ALIGN_LEFT;
break; break;
case 'c': case 'c':
@ -1094,6 +1124,9 @@ static int parse_albumart_load(const char *wps_bufptr,
case 'r': case 'r':
case 'R': case 'R':
case '-': case '-':
if (swap_for_rtl)
aa->xalign = WPS_ALBUMART_ALIGN_LEFT;
else
aa->xalign = WPS_ALBUMART_ALIGN_RIGHT; aa->xalign = WPS_ALBUMART_ALIGN_RIGHT;
break; break;
case 'd': case 'd':
@ -1169,6 +1202,9 @@ static int parse_albumart_load(const char *wps_bufptr,
else if (aa->height > LCD_HEIGHT) else if (aa->height > LCD_HEIGHT)
aa->height = LCD_HEIGHT; aa->height = LCD_HEIGHT;
if (swap_for_rtl)
aa->x = LCD_WIDTH - (aa->x + aa->width);
aa->state = WPS_ALBUMART_LOAD; aa->state = WPS_ALBUMART_LOAD;
aa->draw = false; aa->draw = false;
wps_data->albumart = aa; wps_data->albumart = aa;
@ -1500,6 +1536,8 @@ static bool wps_parse(struct wps_data *data, const char *wps_bufptr, bool debug)
while (*wps_bufptr && !fail) while (*wps_bufptr && !fail)
{ {
if (follow_lang_direction)
follow_lang_direction--;
/* first make sure there is enough room for tokens */ /* first make sure there is enough room for tokens */
if (max_tokens <= data->num_tokens + 5) if (max_tokens <= data->num_tokens + 5)
{ {

View file

@ -38,8 +38,10 @@ enum wps_token_type {
/* Alignment */ /* Alignment */
WPS_TOKEN_ALIGN_LEFT, WPS_TOKEN_ALIGN_LEFT,
WPS_TOKEN_ALIGN_LEFT_RTL,
WPS_TOKEN_ALIGN_CENTER, WPS_TOKEN_ALIGN_CENTER,
WPS_TOKEN_ALIGN_RIGHT, WPS_TOKEN_ALIGN_RIGHT,
WPS_TOKEN_ALIGN_RIGHT_RTL,
/* Sublines */ /* Sublines */
WPS_TOKEN_SUBLINE_TIMEOUT, WPS_TOKEN_SUBLINE_TIMEOUT,

View file

@ -99,6 +99,7 @@ struct progressbar {
short y; short y;
short width; short width;
short height; short height;
bool follow_lang_direction;
/*progressbar image*/ /*progressbar image*/
struct bitmap bm; struct bitmap bm;
bool have_bitmap_pb; bool have_bitmap_pb;

View file

@ -9,8 +9,8 @@
%xl|D|shuffle-128x128x16.bmp|74|110| %xl|D|shuffle-128x128x16.bmp|74|110|
%xl|E|repeat-128x128x16.bmp|97|110|4| %xl|E|repeat-128x128x16.bmp|97|110|4|
%xl|F|playmode-128x128x16.bmp|111|110|5| %xl|F|playmode-128x128x16.bmp|111|110|5|
%Cl|4|12|s60|s60| %ax%Cl|4|12|s60|s60|
%pb|pb-128x128x16.bmp|3|87|122|6| %ax%pb|pb-128x128x16.bmp|3|87|122|6|
# images all in the default viewport # images all in the default viewport
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
@ -23,7 +23,7 @@
#NowPlaying - with AA #NowPlaying - with AA
%Vl|a|70|12|-|50|1|-|-| %ax%Vl|a|70|12|-|50|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>
@ -40,4 +40,4 @@
%V|3|70|122|18|1|-|-| %V|3|70|122|18|1|-|-|
%s%ac%Sx|Next:|%?It<%It|%Fn> %s%ac%Sx|Next:|%?It<%It|%Fn>
%al%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr %aL%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%aR%pr

View file

@ -8,8 +8,8 @@
%xl|D|shuffle-132x80x16.bmp|86|69| %xl|D|shuffle-132x80x16.bmp|86|69|
%xl|E|repeat-132x80x16.bmp|105|67|4| %xl|E|repeat-132x80x16.bmp|105|67|4|
%xl|F|playmode-132x80x16.bmp|118|67|5| %xl|F|playmode-132x80x16.bmp|118|67|5|
%Cl|3|14|c40|c40| %ax%Cl|3|14|c40|c40|
%pb|pb-132x80x16.bmp|2|58|127|6| %ax%pb|pb-132x80x16.bmp|2|58|127|6|
%?C<%C%Vda|%Vdb> %?C<%C%Vda|%Vdb>
#Images #Images
@ -21,7 +21,7 @@
%?mp<%xdFa|%xdFb|%xdFc|%xdFd|%xdFe> %?mp<%xdFa|%xdFb|%xdFc|%xdFd|%xdFe>
#NowPlaying - aa #NowPlaying - aa
%Vl|a|48|10|-|48|1|-|-| %ax%Vl|a|48|10|-|48|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>

View file

@ -10,8 +10,8 @@
%xl|D|shuffle-160x128x2.bmp|78|97| %xl|D|shuffle-160x128x2.bmp|78|97|
%xl|E|repeat-160x128x2.bmp|102|97|4| %xl|E|repeat-160x128x2.bmp|102|97|4|
%xl|F|playmode-160x128x2.bmp|123|98|5| %xl|F|playmode-160x128x2.bmp|123|98|5|
%Cl|5|15|s55|s55| %ax%Cl|5|15|s55|s55|
%pb|pb-138x110x2.bmp|2|75|134|6| %ax%pb|pb-138x110x2.bmp|2|75|134|6|
#images #images
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
@ -21,7 +21,7 @@
%?mp<%xdFa|%xdFb|%xdFc|%xdFd|%xdFe> %?mp<%xdFa|%xdFb|%xdFc|%xdFd|%xdFe>
%?C<%C%Vda|%Vdb> %?C<%C%Vda|%Vdb>
%Vl|a|65|10|-|60|1|-|-| %ax%Vl|a|65|10|-|60|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>
@ -36,4 +36,4 @@
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
%V|2|82|134|13|1|-|-| %V|2|82|134|13|1|-|-|
%al%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr %aL%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%aR%pr

View file

@ -9,8 +9,8 @@
%xl|D|shuffle-160x128x16.bmp|104|116| %xl|D|shuffle-160x128x16.bmp|104|116|
%xl|E|repeat-160x128x16.bmp|125|112|4| %xl|E|repeat-160x128x16.bmp|125|112|4|
%xl|F|playmode-160x128x16.bmp|142|114|5| %xl|F|playmode-160x128x16.bmp|142|114|5|
%Cl|7|16|c65|c65| %ax%Cl|7|16|c65|c65|
%pb|pb-160x128x16.bmp|6|86|149|8| %ax%pb|pb-160x128x16.bmp|6|86|149|8|
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
%?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj> %?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj>
@ -20,7 +20,7 @@
%?C<%C%Vda|%Vdb> %?C<%C%Vda|%Vdb>
# NowPlaying - AA # NowPlaying - AA
%Vl|a|77|10|-|75|1|-|-| %ax%Vl|a|77|10|-|75|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>
@ -38,5 +38,5 @@
%s%?It<%It|%Fn> %s%?It<%It|%Fn>
%V|6|96|149|10|1|-|-| %V|6|96|149|10|1|-|-|
%al%pc%ac%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr%ar%pr %aL%pc%ac%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr%aR%pr

View file

@ -11,8 +11,8 @@
%xl|D|shuffle-160x128x2.bmp|107|115| %xl|D|shuffle-160x128x2.bmp|107|115|
%xl|E|repeat-160x128x2.bmp|127|113|4| %xl|E|repeat-160x128x2.bmp|127|113|4|
%xl|F|playmode-160x128x2.bmp|145|114|5| %xl|F|playmode-160x128x2.bmp|145|114|5|
%Cl|2|16|s64|s64| %ax%Cl|2|16|s64|s64|
%pb|pb-160x128x2.bmp|1|86|158|8| %ax%pb|pb-160x128x2.bmp|1|86|158|8|
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
%?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj> %?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj>
@ -21,7 +21,7 @@
%?mp<%xdFa|%xdFb|%xdFc|%xdFd|%xdFe> %?mp<%xdFa|%xdFb|%xdFc|%xdFd|%xdFe>
%?C<%C%Vda|%Vdb> %?C<%C%Vda|%Vdb>
%Vl|a|70|10|-|75|1|-|-| %ax%Vl|a|70|10|-|75|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>
@ -38,5 +38,5 @@
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
%V|1|96|158|10|1|-|-| %V|1|96|158|10|1|-|-|
%al%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr %aL%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%aR%pr

View file

@ -10,8 +10,8 @@
%xl|D|shuffle-176x132x16.bmp|120|117| %xl|D|shuffle-176x132x16.bmp|120|117|
%xl|E|repeat-176x132x16.bmp|139|113|4| %xl|E|repeat-176x132x16.bmp|139|113|4|
%xl|F|playmode-176x132x16.bmp|156|115|5| %xl|F|playmode-176x132x16.bmp|156|115|5|
%Cl|9|16|s65|s65| %ax%Cl|9|16|s65|s65|
%pb|pb-176x132x16.bmp|8|86|160|8| %ax%pb|pb-176x132x16.bmp|8|86|160|8|
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
%?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj> %?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj>
@ -21,7 +21,7 @@
%?C<%C%Vda|%Vdb> %?C<%C%Vda|%Vdb>
#NowPlaying #NowPlaying
%Vl|a|81|12|-|74|1|-|-| %ax%Vl|a|81|12|-|74|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>

View file

@ -9,8 +9,8 @@
%xl|D|shuffle-220x176x16.bmp|155|153| %xl|D|shuffle-220x176x16.bmp|155|153|
%xl|E|repeat-220x176x16.bmp|182|151|4| %xl|E|repeat-220x176x16.bmp|182|151|4|
%xl|F|playmode-220x176x16.bmp|200|152|5| %xl|F|playmode-220x176x16.bmp|200|152|5|
%Cl|15|32|s75|s75| %ax%Cl|15|32|s75|s75|
%pb|pb-220x176x16.bmp|11|121|199|8| %ax%pb|pb-220x176x16.bmp|11|121|199|8|
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
%?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj> %?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj>
@ -21,7 +21,7 @@
#NowPlaying #NowPlaying
%?C<%Vda%C|%Vdb> %?C<%Vda%C|%Vdb>
%Vl|a|105|30|-|90|1|-|-| %ax%Vl|a|105|30|-|90|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>
@ -39,4 +39,4 @@
%V|11|130|199|20|1|-|-| %V|11|130|199|20|1|-|-|
%al%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr %aL%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%aR%pr

View file

@ -9,8 +9,8 @@
%xl|D|shuffle-320x240x16.bmp|218|211| %xl|D|shuffle-320x240x16.bmp|218|211|
%xl|E|repeat-320x240x16.bmp|261|207|4| %xl|E|repeat-320x240x16.bmp|261|207|4|
%xl|F|playmode-320x240x16.bmp|286|207|5| %xl|F|playmode-320x240x16.bmp|286|207|5|
%Cl|16|32|s120|s120| %ax%Cl|16|32|s120|s120|
%pb|pb-320x240x16.bmp|10|162|300|15| %ax%pb|pb-320x240x16.bmp|10|162|300|15|
%?mh<%xdAa|%xdAb> %?mh<%xdAa|%xdAb>
%?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>> %?bp<%?bc<%xdBa|%xdBb>|%?bl<|%xdBc|%xdBd|%xdBe|%xdBf|%xdBg|%xdBh|%xdBi|%xdBj>>
%?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj> %?pv<%xdCa|%xdCb|%xdCc|%xdCd|%xdCe|%xdCf|%xdCg|%xdCh|%xdCi|%xdCj>
@ -21,7 +21,7 @@
%?C<%Vda%C|%Vdb> %?C<%Vda%C|%Vdb>
#NowPlaying #NowPlaying
%Vl|a|153|30|-|130|1|-|-| %ax%Vl|a|153|30|-|130|1|-|-|
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?d2<%d2|(root)>> %s%al%?ia<%ia|%?d2<%d2|(root)>>
%s%al%?id<%id|%?d1<%d1|(root)>> %s%al%?id<%id|%?d1<%d1|(root)>>
@ -31,7 +31,7 @@
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
%s%al%Ia %s%al%Ia
%Vl|b|0|30|-|130|1|-|-| %ax%Vl|b|0|30|-|130|1|-|-|
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?d2<%d2|(root)>> %s%ac%?ia<%ia|%?d2<%d2|(root)>>
%s%ac%?id<%id|%?d1<%d1|(root)>> %s%ac%?id<%id|%?d1<%d1|(root)>>
@ -42,5 +42,5 @@
%s%ac%Ia %s%ac%Ia
%V|10|180|300|20|1|-|-| %V|10|180|300|20|1|-|-|
%al%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%ar%pr %aL%pc%ac%?Sr<%pe %Sx|of| %pp|%pp %Sx|of| %pe>%aR%pr