[Feature] Skin engine Themes grab text from a file %ft(file, line) WIP

allow the skin engine to read text files and return a particular line

you then can use ss on that string to allow display of strings from the file
(Playername comes to mind)

able to be used as conditional
%?ft(filename)<Found|Not Found>

if (selected) line of file is empty the tag is treated as #COMMENT

scroll timeouts now persist thru trackchange

bugfix:
%t(n)%?x<text|text>
would ignore the specified timeout defaulting to 2 seconds

playername.txt generated at boot if it doesn't exist contents: 'RockBox!'

Change-Id: I961910e01be052ef902f77e6d92fc3e367ffe9d0
This commit is contained in:
William Wilgus 2024-12-03 11:42:46 -05:00 committed by Solomon Peachy
parent c754bc5870
commit 62b5dfd81d
32 changed files with 144 additions and 50 deletions

View file

@ -1316,6 +1316,73 @@ static int parse_progressbar_tag(struct skin_element* element,
return 0; return 0;
} }
static int parse_filetext(struct skin_element *element,
struct wps_token *token,
struct wps_data *wps_data)
{
(void)wps_data;
const char* filename;
char buf[MAX_PATH];
int line = 0;
int fd;
/* format: %ft(filename[,line]) */
filename = get_param_text(element, 0);
if (element->params_count == 2)
line = get_param(element, 1)->data.number;
else if (element->params_count != 1)
{
DEBUGF("%s(file, line): %s Error: param count %d\n",
__func__, filename, element->params_count);
return WPS_ERROR_INVALID_PARAM;
}
path_append(buf, root_realpath(), filename, sizeof(buf));
DEBUGF("%s %s[%d]\n", __func__, buf, line);
if ((fd = open_utf8(buf, O_RDONLY)) < 0)
{
DEBUGF("%s: Error Opening %s\n", __func__, buf);
goto failure;
}
int rd = 0;
while (line >= 0)
{
if ((rd = read_line(fd, buf, sizeof(buf))) < 0)
{
buf[0] = '\0';
break;
}
line--;
}
if (rd <= 0) /* empty line? */
{
DEBUGF("%s: Error(%d) Reading %s\n", __func__, rd, filename);
goto failure;
}
buf[rd] = '\0';
char * skinbuf = skin_buffer_alloc(rd+1);
if (!skinbuf)
{
DEBUGF("%s: Error No Buffer %s\n", __func__, filename);
close(fd);
return WPS_ERROR_INVALID_PARAM;
}
strcpy(skinbuf, buf);
close(fd);
token->value.data = PTRTOSKINOFFSET(skin_buffer, skinbuf);
token->type = SKIN_TOKEN_STRING;
return 0;
failure:
element->type = COMMENT;
token->type = SKIN_TOKEN_NO_TOKEN;
return 0;
}
#ifdef HAVE_ALBUMART #ifdef HAVE_ALBUMART
static int parse_albumart_load(struct skin_element* element, static int parse_albumart_load(struct skin_element* element,
struct wps_token *token, struct wps_token *token,
@ -2378,6 +2445,9 @@ static int skin_element_callback(struct skin_element* element, void* data)
case SKIN_TOKEN_FILE_DIRECTORY: case SKIN_TOKEN_FILE_DIRECTORY:
token->value.i = get_param(element, 0)->data.number; token->value.i = get_param(element, 0)->data.number;
break; break;
case SKIN_TOKEN_FILE_TEXT:
function = parse_filetext;
break;
#ifdef HAVE_BACKDROP_IMAGE #ifdef HAVE_BACKDROP_IMAGE
case SKIN_TOKEN_VIEWPORT_FGCOLOUR: case SKIN_TOKEN_VIEWPORT_FGCOLOUR:
case SKIN_TOKEN_VIEWPORT_BGCOLOUR: case SKIN_TOKEN_VIEWPORT_BGCOLOUR:

View file

@ -633,20 +633,23 @@ static int get_subline_timeout(struct gui_wps *gwps, struct skin_element* line)
{ {
token = SKINOFFSETTOPTR(skin_buffer, element->data); token = SKINOFFSETTOPTR(skin_buffer, element->data);
if (token) if (token)
return token->value.i; retval = token->value.i;
} }
else if (element->type == CONDITIONAL) else if (element->type == CONDITIONAL)
{ {
struct conditional *conditional = SKINOFFSETTOPTR(skin_buffer, element->data); struct conditional *conditional = SKINOFFSETTOPTR(skin_buffer, element->data);
int val = evaluate_conditional(gwps, 0, conditional, int val = evaluate_conditional(gwps, 0, conditional, element->children_count);
element->children_count);
if (val >= 0) int tmoval = get_subline_timeout(gwps, get_child(element->children, val));
if (tmoval >= 0)
{ {
retval = get_subline_timeout(gwps, get_child(element->children, val)); return MAX(retval, tmoval); /* Bugfix %t()%?CONDITIONAL tmo ignored */
if (retval >= 0)
return retval;
} }
} }
else if (element->type == COMMENT)
{
retval = 0; /* don't display this item */
}
element = SKINOFFSETTOPTR(skin_buffer, element->next); element = SKINOFFSETTOPTR(skin_buffer, element->next);
} }
return retval; return retval;
@ -657,6 +660,7 @@ bool skin_render_alternator(struct skin_element* element, struct skin_draw_info
bool changed_lines = false; bool changed_lines = false;
struct line_alternator *alternator = SKINOFFSETTOPTR(skin_buffer, element->data); struct line_alternator *alternator = SKINOFFSETTOPTR(skin_buffer, element->data);
unsigned old_refresh = info->refresh_type; unsigned old_refresh = info->refresh_type;
if (info->refresh_type == SKIN_REFRESH_ALL) if (info->refresh_type == SKIN_REFRESH_ALL)
{ {
alternator->current_line = element->children_count-1; alternator->current_line = element->children_count-1;
@ -697,7 +701,10 @@ bool skin_render_alternator(struct skin_element* element, struct skin_draw_info
if (suitable) if (suitable)
{ {
alternator->current_line = try_line; alternator->current_line = try_line;
alternator->next_change_tick = current_tick + rettimeout; if (TIME_AFTER(current_tick, alternator->next_change_tick))
{
alternator->next_change_tick = current_tick + rettimeout;
}
} }
info->refresh_type = SKIN_REFRESH_ALL; info->refresh_type = SKIN_REFRESH_ALL;

View file

@ -199,6 +199,20 @@ int main(void)
} }
#endif #endif
#if !defined(BOOTLOADER)
char buf[MAX_PATH / 2];
path_append(buf, root_realpath(),ROCKBOX_DIR"/playername.txt", sizeof(buf));
if (!file_exists(buf))
{
int fd = open(buf, O_CREAT|O_WRONLY|O_TRUNC, 0666);
if(fd >= 0)
{
fdprintf(fd, "RockBox!");
close(fd);
}
}
#endif
#ifdef AUTOROCK #ifdef AUTOROCK
{ {
char filename[MAX_PATH]; char filename[MAX_PATH];

View file

@ -50,6 +50,7 @@ static const struct tag_info legal_tags[] =
TAG(SKIN_TOKEN_FILE_SIZE, "fs", "", SKIN_REFRESH_STATIC), TAG(SKIN_TOKEN_FILE_SIZE, "fs", "", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_VBR, "fv", "", SKIN_REFRESH_STATIC), TAG(SKIN_TOKEN_FILE_VBR, "fv", "", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_DIRECTORY, "d" , "I", SKIN_REFRESH_STATIC), TAG(SKIN_TOKEN_FILE_DIRECTORY, "d" , "I", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_TEXT, "ft" , "F|i", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_BITRATE, "Fb", "", SKIN_REFRESH_STATIC), TAG(SKIN_TOKEN_FILE_BITRATE, "Fb", "", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_CODEC, "Fc", "", SKIN_REFRESH_STATIC), TAG(SKIN_TOKEN_FILE_CODEC, "Fc", "", SKIN_REFRESH_STATIC),

View file

@ -155,6 +155,7 @@ enum skin_token_type {
SKIN_TOKEN_FILE_SIZE, SKIN_TOKEN_FILE_SIZE,
SKIN_TOKEN_FILE_VBR, SKIN_TOKEN_FILE_VBR,
SKIN_TOKEN_FILE_DIRECTORY, SKIN_TOKEN_FILE_DIRECTORY,
SKIN_TOKEN_FILE_TEXT,
/* Image */ /* Image */
SKIN_TOKEN_IMAGE_BACKDROP, SKIN_TOKEN_IMAGE_BACKDROP,

View file

@ -70,6 +70,7 @@ struct tag_info legal_tags[] =
{ "fn", "" }, { "fn", "" },
{ "fp", "" }, { "fp", "" },
{ "fs", "" }, { "fs", "" },
{ "ft", "" },
{ "fv", "" }, { "fv", "" },
{ "d" , "I" }, { "d" , "I" },

View file

@ -50,6 +50,6 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%t(5)%ac%s%?Fn<%Sx(Next:) %?It<%It|%Fn>|%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>>%;%t(5)%ac%s%?Fn<%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%Fn>|%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>>> %t(5)%ac%s%?Fn<%Sx(Next:) %?It<%It|%Fn>|%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>>%;%t(5)%ac%s%?Fn<%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%Fn>|%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>>>;%s%ac%t(1)%ft(.rockbox/playername.txt)
%V(0,48,-,8,-) %V(0,48,-,8,-)
%pc%ar%pr %pc%ar%pr

View file

@ -49,7 +49,7 @@
# #
# Next Track Info # Next Track Info
%V(3,73,122,12,-) %V(3,73,122,12,-)
%s%ac%Sx(Next:) %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# #
# Time Elapsed/Remaining # Time Elapsed/Remaining
%V(3,95,122,12,1) %V(3,95,122,12,1)

View file

@ -49,7 +49,7 @@
# #
# Next Track Info # Next Track Info
%V(3,70,122,12,-) %V(3,70,122,12,-)
%s%ac%Sx(Next:) %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# #
# Time Elapsed/Remaining # Time Elapsed/Remaining
%V(3,96,122,12,-) %V(3,96,122,12,-)

View file

@ -55,7 +55,7 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%acNext Track: %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
#Time and Playlist Info #Time and Playlist Info

View file

@ -59,4 +59,4 @@
# #
# Next Track Info # Next Track Info
%V(0,42,128,8,1) %V(0,42,128,8,1)
%ac%s%Sx(Next:) %?It<%It|%Fn> %ac%t(300)%s%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)

View file

@ -49,7 +49,7 @@
# #
# Next Track Info # Next Track Info
%V(3,56,122,12,-) %V(3,56,122,12,-)
%s%ac%Sx(Next:) %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# #
# Time Elapsed/Remaining # Time Elapsed/Remaining
%V(3,73,122,12,1) %V(3,73,122,12,1)

View file

@ -53,4 +53,4 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%Sx(Next:) %ac%It %s%t(300)%Sx(Next:) %ac%It;%s%ac%t(1)%ft(.rockbox/playername.txt)

View file

@ -57,11 +57,11 @@
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%Sx(Next:) %?It<%It|%Fn> %s%t(300)%al%Sx(Next:) %?It<%It|%Fn>;%s%al%t(1)%ft(.rockbox/playername.txt)
# #
# Track Info - No Album Art # Track Info - No Album Art
%Vl(b,0,10,-,48,1) %Vl(b,0,10,-,48,1)
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%Sx(Next:) %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)

View file

@ -61,7 +61,7 @@
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
# #
# Track Info - No Album Art # Track Info - No Album Art
@ -69,5 +69,5 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%Sx(Next Track:) %s%t(300)%ac%Sx(Next Track:);%s%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>

View file

@ -55,5 +55,5 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>

View file

@ -62,7 +62,7 @@
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%Sx(Next Track:) %t(300)%Sx(Next Track:);%t(1)%ft(.rockbox/playername.txt)
%s%?It<%It|%Fn> %s%?It<%It|%Fn>
# #
# Track Info - No Album Art # Track Info - No Album Art
@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>

View file

@ -62,7 +62,7 @@
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
# #
# Track Info - No Album Art # Track Info - No Album Art
@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>

View file

@ -62,7 +62,7 @@
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
# #
# Track Info - No Album Art # Track Info - No Album Art
@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>

View file

@ -69,6 +69,6 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%?iy<%iy|> %s%ac%?iy<%iy|>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA>> %s%ac%?Ia<%Ia|%?IA<%IA>>

View file

@ -62,7 +62,7 @@
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
# #
# Track Info - No Album Art # Track Info - No Album Art
@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>

View file

@ -28,9 +28,9 @@
%?C<|> %?C<|>
%?C<%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>|%ac%s%?It<%It|%Fn>> %?C<%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>|%ac%s%?It<%It|%Fn>>
%?C<%s%ac%?it<%it|%fn>|> %?C<%s%ac%?it<%it|%fn>|>
%?C<%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>|%ac%Sx(Next Track:)>> %t(300)%?C<%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>|%ac%Sx(Next Track:)>>;%s%ac%t(1)%ft(.rockbox/playername.txt)
%?C<|%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>> %?C<|%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>>
%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>> %t(300)%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>>;%s%ac%t(1)%ft(.rockbox/playername.txt)
%pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr %pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr

View file

@ -61,7 +61,7 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# #
# Track Info - No Album Art # Track Info - No Album Art
%Vl(b,0,45,-,198,1) %Vl(b,0,45,-,198,1)
@ -73,7 +73,7 @@
%ac%?ig<%ig|> %ac%?ig<%ig|>
%ac%?fv<%(vbr%) |>%fb kbit/s %fc %ac%?fv<%(vbr%) |>%fb kbit/s %fc
%ac%Sx(Next:) %ac%t(300)%Sx(Next:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>> %s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>
%ac%s%?It<%It|%Fn> %ac%s%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> %s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>

View file

@ -23,9 +23,9 @@
%?C<|> %?C<|>
%?C<%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>|%ac%s%?It<%It|%Fn>> %?C<%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>|%ac%s%?It<%It|%Fn>>
%?C<%s%ac%?it<%it|%fn>|> %?C<%s%ac%?it<%it|%fn>|>
%?C<%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>|%ac%Sx(Next Track:)> %t(300)%?C<%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>|%ac%Sx(Next Track:)>;%s%ac%t(1)%ft(.rockbox/playername.txt)
%?C<|%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>> %?C<|%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>>
%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>> %t(300)%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>>;%s%ac%t(1)%ft(.rockbox/playername.txt)
%pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr %pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr

View file

@ -35,7 +35,7 @@
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>> %s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
#%s%al%iy #%s%al%iy
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
%s%al%?Ia<%Ia|%IA> %s%al%?Ia<%Ia|%IA>
@ -45,7 +45,7 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%iy %s%ac%iy
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%IA> %s%ac%?Ia<%Ia|%IA>

View file

@ -63,7 +63,7 @@
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%?iy<%iy> %s%al%?iy<%iy>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
%s%al%?Ia<%Ia|%?IA<%IA>> %s%al%?Ia<%Ia|%?IA<%IA>>
# #
@ -74,6 +74,6 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%?iy<%iy> %s%ac%?iy<%iy>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA>> %s%ac%?Ia<%Ia|%?IA<%IA>>

View file

@ -35,7 +35,7 @@
%ac%?ig<%ig|> %ac%?ig<%ig|>
%ac%?fv<%(vbr%) |>%fb kbit/s %fc %ac%?fv<%(vbr%) |>%fb kbit/s %fc
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> %s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%ac%s%?It<%It|%Fn> %ac%s%?It<%It|%Fn>
# #
# album art viewport # album art viewport
@ -53,7 +53,7 @@
# next track info - AA # next track info - AA
%Vl(d,0,338,-,-120,-) %Vl(d,0,338,-,-120,-)
%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>> %t(300)%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# playtime # playtime
%V(15,398,290,30,-) %V(15,398,290,30,-)

View file

@ -62,7 +62,7 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# #
# Track Info - No Album Art # Track Info - No Album Art
%Vl(b,0,56,-,247,1) %Vl(b,0,56,-,247,1)
@ -75,7 +75,7 @@
%ac%?fv<%(vbr%) |>%fb kbit/s %fc %ac%?fv<%(vbr%) |>%fb kbit/s %fc
%ac%Sx(Next:) %ac%t(300)%Sx(Next:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>> %s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>
%ac%s%?It<%It|%Fn> %ac%s%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> %s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>

View file

@ -63,7 +63,7 @@
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%?iy<%iy> %s%al%?iy<%iy>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?It<%It|%Fn> %s%al%?It<%It|%Fn>
%s%al%?Ia<%Ia|%?IA<%IA>> %s%al%?Ia<%Ia|%?IA<%IA>>
# #
@ -74,6 +74,6 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%?iy<%iy> %s%ac%?iy<%iy>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?It<%It|%Fn> %s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA>> %s%ac%?Ia<%Ia|%?IA<%IA>>

View file

@ -36,7 +36,7 @@
%ac%?ig<%ig|> %ac%?ig<%ig|>
%ac%?fv<%(vbr%) |>%fb kbit/s %fc %ac%?fv<%(vbr%) |>%fb kbit/s %fc
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> %s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%ac%s%?It<%It|%Fn> %ac%s%?It<%It|%Fn>
# #
# album art viewport # album art viewport
@ -54,7 +54,7 @@
# next track info - AA # next track info - AA
%Vl(d,0,550,-,-200,-) %Vl(d,0,550,-,-200,-)
%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>> %t(300)%?C<%s%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>|%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# playtime # playtime
%V(20,660,440,36,-) %V(20,660,440,36,-)

View file

@ -21,7 +21,7 @@
%s%ac%?it<%it|%fn> %s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%ac%Sx(Next Track:) %ac%t(300)%Sx(Next Track:);%ac%t(1)%ft(.rockbox/playername.txt)
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn> %s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>
# #
@ -38,7 +38,7 @@
%s%al%?it<%it|%fn> %s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>> %s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%Sx(Next Track:) %s%t(300)%al%Sx(Next Track:);%s%al%t(1)%ft(.rockbox/playername.txt)
%s%al%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn> %s%al%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>
# playtime # playtime

View file

@ -49,7 +49,7 @@
# #
# Next Track Info # Next Track Info
%V(2,56,92,8,1) %V(2,56,92,8,1)
%s%ac%Sx(Next:) %?It<%It|%Fn> %s%t(300)%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1)%ft(.rockbox/playername.txt)
# #
# Time Elapsed/Remaining # Time Elapsed/Remaining
%V(2,73,92,8,1) %V(2,73,92,8,1)