summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2024-12-07 14:58:35 -0500
committerWilliam Wilgus <me.theuser@yahoo.com>2024-12-07 23:02:22 -0500
commit44bfffd7c5c443068eb739410df00fe8d76fd8dd (patch)
treea70d10374bff720c00ddab60e6984e58f18d39ba
parenteb3e5eb2bf8130e96ba06c9265060921598c0bec (diff)
downloadrockbox-44bfffd7c5.tar.gz
rockbox-44bfffd7c5.zip
[Feature] skinengine subline timeout hide line for n seconds
builds on top of the file text patch to add hide timeouts to subline text tags this allows you to specify both a show time and hide time for these elements %t(show, hide) also removes the 327 second limit for timeouts whne this form is used Change-Id: If4598dcc24d0c7be4380e7595b7d91c7eba3a728
-rw-r--r--apps/gui/skin_engine/skin_parser.c21
-rw-r--r--apps/gui/skin_engine/skin_render.c28
-rw-r--r--apps/gui/skin_engine/wps_internals.h4
-rw-r--r--lib/skin_parser/tag_table.c3
-rw-r--r--lib/skin_parser/tag_table.h2
-rwxr-xr-xmanual/advanced_topics/main.tex14
-rw-r--r--manual/appendix/wps_tags.tex10
-rw-r--r--wps/cabbiev2.112x64x1.wps2
-rw-r--r--wps/cabbiev2.128x128x16.wps2
-rw-r--r--wps/cabbiev2.128x128x2.wps2
-rw-r--r--wps/cabbiev2.128x160x16.wps2
-rw-r--r--wps/cabbiev2.128x64x1.wps2
-rw-r--r--wps/cabbiev2.128x96x16.wps2
-rw-r--r--wps/cabbiev2.128x96x2.wps2
-rw-r--r--wps/cabbiev2.132x80x16.wps4
-rw-r--r--wps/cabbiev2.138x110x2.wps4
-rw-r--r--wps/cabbiev2.160x128x1.wps2
-rw-r--r--wps/cabbiev2.160x128x16.wps4
-rw-r--r--wps/cabbiev2.160x128x2.wps4
-rw-r--r--wps/cabbiev2.176x132x16.wps4
-rw-r--r--wps/cabbiev2.176x220x16.wps2
-rw-r--r--wps/cabbiev2.220x176x16.wps4
-rw-r--r--wps/cabbiev2.240x320x16.mini2440.wps2
-rw-r--r--wps/cabbiev2.240x320x16.wps4
-rw-r--r--wps/cabbiev2.240x400x16.wps2
-rw-r--r--wps/cabbiev2.320x240x16.mrobe500.wps4
-rw-r--r--wps/cabbiev2.320x240x16.wps4
-rw-r--r--wps/cabbiev2.320x480x16.wps4
-rw-r--r--wps/cabbiev2.360x400x16.wps4
-rw-r--r--wps/cabbiev2.400x240x16.wps4
-rw-r--r--wps/cabbiev2.480x800x16.wps4
-rw-r--r--wps/cabbiev2.800x480x16.wps4
-rw-r--r--wps/cabbiev2.96x96x16.wps2
33 files changed, 103 insertions, 59 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 751bb86864..337d8ed118 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -927,7 +927,8 @@ static int parse_timeout_tag(struct skin_element *element,
{
(void)wps_data;
int val = 0;
- if (element->params_count == 0)
+ int params_count = element->params_count;
+ if (params_count == 0)
{
switch (token->type)
{
@@ -943,8 +944,23 @@ static int parse_timeout_tag(struct skin_element *element,
}
}
else
+ {
val = get_param(element, 0)->data.number;
- token->value.i = val * TIMEOUT_UNIT;
+ if (token->type == SKIN_TOKEN_SUBLINE_TIMEOUT && params_count == 2)
+ {
+ struct wps_subline_timeout *st = skin_buffer_alloc(sizeof(*st));
+ if (st)
+ {
+ st->show = val;
+ st->hide = get_param(element, 1)->data.number;
+ st->next_tick = current_tick; /* show immediately the first time */
+ token->type = SKIN_TOKEN_SUBLINE_TIMEOUT_HIDE;
+ token->value.data = PTRTOSKINOFFSET(skin_buffer, st);
+ return 0;
+ }
+ }
+ token->value.i = val * TIMEOUT_UNIT;
+ }
return 0;
}
@@ -1378,6 +1394,7 @@ failure:
element->type = COMMENT;
element->data = INVALID_OFFSET;
token->type = SKIN_TOKEN_NO_TOKEN;
+ token->value.data = INVALID_OFFSET;
return 0;
}
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index b05d17c634..8431a68894 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -628,25 +628,39 @@ static int get_subline_timeout(struct gui_wps *gwps, struct skin_element* line)
}
while (element)
{
- if (element->type == TAG &&
- element->tag->type == SKIN_TOKEN_SUBLINE_TIMEOUT )
+ int type = element->type;
+ if (type == TAG && element->tag->type == SKIN_TOKEN_SUBLINE_TIMEOUT)
{
token = SKINOFFSETTOPTR(skin_buffer, element->data);
if (token)
- retval = token->value.i;
+ {
+ if (token->type == SKIN_TOKEN_SUBLINE_TIMEOUT_HIDE)
+ {
+ struct wps_subline_timeout *st;
+ st = SKINOFFSETTOPTR(skin_buffer, token->value.data);
+ retval = st->show * TIMEOUT_UNIT;
+ if (st->hide != 0)
+ {
+ if(TIME_BEFORE(current_tick, st->next_tick))
+ retval = 0; /* don't display yet.. */
+ else
+ st->next_tick = current_tick + st->hide * TIMEOUT_UNIT;
+ }
+ }
+ else
+ retval = token->value.i;
+ }
}
- else if (element->type == CONDITIONAL)
+ else if (type == CONDITIONAL)
{
struct conditional *conditional = SKINOFFSETTOPTR(skin_buffer, element->data);
int val = evaluate_conditional(gwps, 0, conditional, element->children_count);
int tmoval = get_subline_timeout(gwps, get_child(element->children, val));
if (tmoval >= 0)
- {
return MAX(retval, tmoval); /* Bugfix %t()%?CONDITIONAL tmo ignored */
- }
}
- else if (element->type == COMMENT)
+ else if (type == COMMENT)
{
retval = 0; /* don't display this item */
}
diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h
index 366f79ac06..76b9d48b1c 100644
--- a/apps/gui/skin_engine/wps_internals.h
+++ b/apps/gui/skin_engine/wps_internals.h
@@ -82,16 +82,14 @@ struct wps_token {
bool next;
};
-
struct wps_subline_timeout {
- long next_tick;
+ unsigned long next_tick;
unsigned short hide;
unsigned short show;
};
char* get_dir(char* buf, int buf_size, const char* path, int level);
-
struct skin_token_list {
OFFSETTYPE(struct wps_token *) token;
OFFSETTYPE(struct skin_token_list *) next;
diff --git a/lib/skin_parser/tag_table.c b/lib/skin_parser/tag_table.c
index dabd1b5d5f..268c963e5b 100644
--- a/lib/skin_parser/tag_table.c
+++ b/lib/skin_parser/tag_table.c
@@ -50,6 +50,7 @@ static const struct tag_info legal_tags[] =
TAG(SKIN_TOKEN_FILE_SIZE, "fs", "", 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_TEXT, "ft" , "F|i", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_BITRATE, "Fb", "", SKIN_REFRESH_STATIC),
TAG(SKIN_TOKEN_FILE_CODEC, "Fc", "", SKIN_REFRESH_STATIC),
@@ -191,7 +192,7 @@ static const struct tag_info legal_tags[] =
TAG(SKIN_TOKEN_RDS_TEXT, "tz", "", SKIN_REFRESH_DYNAMIC),
TAG(SKIN_TOKEN_SUBLINE_SCROLL, "s", "", SKIN_REFRESH_SCROLL),
- TAG(SKIN_TOKEN_SUBLINE_TIMEOUT, "t" , "D", 0),
+ TAG(SKIN_TOKEN_SUBLINE_TIMEOUT, "t" , "D|d", 0),
TAG(SKIN_TOKEN_ENABLE_THEME, "we", "", 0|NOBREAK),
TAG(SKIN_TOKEN_DISABLE_THEME, "wd", "", 0|NOBREAK),
diff --git a/lib/skin_parser/tag_table.h b/lib/skin_parser/tag_table.h
index 3f01db3f15..ddabe68333 100644
--- a/lib/skin_parser/tag_table.h
+++ b/lib/skin_parser/tag_table.h
@@ -70,6 +70,7 @@ enum skin_token_type {
/* Sublines */
SKIN_TOKEN_SUBLINE_TIMEOUT,
+ SKIN_TOKEN_SUBLINE_TIMEOUT_HIDE, /* INTERNAL USE ONLY */
SKIN_TOKEN_SUBLINE_SCROLL,
/* Conditional */
@@ -155,6 +156,7 @@ enum skin_token_type {
SKIN_TOKEN_FILE_SIZE,
SKIN_TOKEN_FILE_VBR,
SKIN_TOKEN_FILE_DIRECTORY,
+ SKIN_TOKEN_FILE_TEXT,
/* Image */
SKIN_TOKEN_IMAGE_BACKDROP,
diff --git a/manual/advanced_topics/main.tex b/manual/advanced_topics/main.tex
index 8b6f7d1435..6e6b537f3d 100755
--- a/manual/advanced_topics/main.tex
+++ b/manual/advanced_topics/main.tex
@@ -449,8 +449,12 @@ Subline related special characters and tags:
\begin{description}
\item[;] Split items on a line into separate sublines
\item[\%t] Set the subline display time. The
-`\config{\%t}' is followed by either integer seconds (\config{\%t5}), or seconds
-and tenths of a second within () e.g. (\config{\%t(3.5)}).
+`\config{\%t}' is followed by either integer seconds (\config{\%t5[,timehide]}), or seconds
+and tenths of a second within () e.g. (\config{\%t(3.5)[,timehide]}).
+specify timehide to set number of seconds before tag will be displayed again.
+when using timehide the message is displayed for timeshow and not displayed again for timehide seconds.
+``Note:'' the max timeout allowed in themes is about 655 seconds (~10 minutes) going over will result in a timeout less than 10 minutes.
+ \%t(ts,th) supports longer timeouts (~100 minutes)
\end{description}
Each alternating subline can still be optionally scrolled while it is
@@ -464,6 +468,12 @@ Example subline definition:
Display current and remaining track time
for 3 seconds,
repeat...
+
+ %s%t(4, 30)%Ia;%s%It;%t(3)%sId; : Display next id3 artist for 4 seconds,
+ Display next id3 title for 2 seconds,
+ Display next id3 album for 3 seconds
+ For the next 30 seconds - display title for 2 seconds and album for 3 seconds
+ repeat...
\end{example}
Conditionals can be used with sublines to display a different set and/or number
diff --git a/manual/appendix/wps_tags.tex b/manual/appendix/wps_tags.tex
index fc981c44e1..86859837f0 100644
--- a/manual/appendix/wps_tags.tex
+++ b/manual/appendix/wps_tags.tex
@@ -559,11 +559,13 @@ Examples of the \%if tag:\\
\section{Subline Tags}
\begin{tagmap}
-\config{\%t(time)}
- & Set the subline display cycle time (\%t(5) or \%t(3.4) formats) \\
-\config{;}
- & Split items on a line into separate sublines \\
+ \config{\%t(timeshow [,timehide])} & Set the subline display cycle time.\\
\end{tagmap}
+ Use this tag to set the time a subline is displayed and optionally the amount of time to hide the line before line will be displayed again
+\begin{description}
+ \item[timeshow] -- how many seconds to display the line (\%t(5) or \%t(3.4) formats).
+ \item[timehide] -- OPTIONAL, how many seconds to wait before displaying the line again.
+\end{description}
Allows grouping of several items (sublines) onto one line, with the
display cycling round the defined sublines. See
diff --git a/wps/cabbiev2.112x64x1.wps b/wps/cabbiev2.112x64x1.wps
index 72a05d27b6..119f327e90 100644
--- a/wps/cabbiev2.112x64x1.wps
+++ b/wps/cabbiev2.112x64x1.wps
@@ -50,6 +50,6 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn>
%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, 300)%ft(playername.txt)
%V(0,48,-,8,-)
%pc%ar%pr
diff --git a/wps/cabbiev2.128x128x16.wps b/wps/cabbiev2.128x128x16.wps
index 176b07db58..d9f8a5bfcb 100644
--- a/wps/cabbiev2.128x128x16.wps
+++ b/wps/cabbiev2.128x128x16.wps
@@ -49,7 +49,7 @@
#
# Next Track Info
%V(3,73,122,12,-)
-%s%ac%Sx(Next:) %?It<%It|%Fn>
+%s%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
#
# Time Elapsed/Remaining
%V(3,95,122,12,1)
diff --git a/wps/cabbiev2.128x128x2.wps b/wps/cabbiev2.128x128x2.wps
index c96844f197..d0d241267c 100644
--- a/wps/cabbiev2.128x128x2.wps
+++ b/wps/cabbiev2.128x128x2.wps
@@ -49,7 +49,7 @@
#
# Next Track Info
%V(3,70,122,12,-)
-%s%ac%Sx(Next:) %?It<%It|%Fn>
+%s%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
#
# Time Elapsed/Remaining
%V(3,96,122,12,-)
diff --git a/wps/cabbiev2.128x160x16.wps b/wps/cabbiev2.128x160x16.wps
index e93b9ea6cb..62a7913cc2 100644
--- a/wps/cabbiev2.128x160x16.wps
+++ b/wps/cabbiev2.128x160x16.wps
@@ -55,7 +55,7 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%ac%Sx(Next Track:)
+%s%ac%Sx(Next Track:);%s%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
#Time and Playlist Info
diff --git a/wps/cabbiev2.128x64x1.wps b/wps/cabbiev2.128x64x1.wps
index ddd94eb1fb..739b9b70db 100644
--- a/wps/cabbiev2.128x64x1.wps
+++ b/wps/cabbiev2.128x64x1.wps
@@ -59,4 +59,4 @@
#
# Next Track Info
%V(0,42,128,8,1)
-%ac%s%Sx(Next:) %?It<%It|%Fn>
+%ac%s%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
diff --git a/wps/cabbiev2.128x96x16.wps b/wps/cabbiev2.128x96x16.wps
index 4136fa6d8d..4a5af206e6 100644
--- a/wps/cabbiev2.128x96x16.wps
+++ b/wps/cabbiev2.128x96x16.wps
@@ -49,7 +49,7 @@
#
# Next Track Info
%V(3,56,122,12,-)
-%s%ac%Sx(Next:) %?It<%It|%Fn>
+%s%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
#
# Time Elapsed/Remaining
%V(3,73,122,12,1)
diff --git a/wps/cabbiev2.128x96x2.wps b/wps/cabbiev2.128x96x2.wps
index 43d7adc197..9a4e0cc998 100644
--- a/wps/cabbiev2.128x96x2.wps
+++ b/wps/cabbiev2.128x96x2.wps
@@ -53,4 +53,4 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%Sx(Next:) %ac%It
+%s%Sx(Next:) %ac%It;%s%ac%t(1, 300)%ft(playername.txt)
diff --git a/wps/cabbiev2.132x80x16.wps b/wps/cabbiev2.132x80x16.wps
index 39e35c2e2c..6ab472be4a 100644
--- a/wps/cabbiev2.132x80x16.wps
+++ b/wps/cabbiev2.132x80x16.wps
@@ -57,11 +57,11 @@
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%al%Sx(Next:) %?It<%It|%Fn>
+%s%al%Sx(Next:) %?It<%It|%Fn>;%s%al%t(1, 300)%ft(playername.txt)
#
# Track Info - No Album Art
%Vl(b,0,10,-,48,1)
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%ac%Sx(Next:) %?It<%It|%Fn>
+%s%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
diff --git a/wps/cabbiev2.138x110x2.wps b/wps/cabbiev2.138x110x2.wps
index b27b622004..07a692a263 100644
--- a/wps/cabbiev2.138x110x2.wps
+++ b/wps/cabbiev2.138x110x2.wps
@@ -61,7 +61,7 @@
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
#
# Track Info - No Album Art
@@ -69,5 +69,5 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%ac%Sx(Next Track:)
+%s%ac%Sx(Next Track:);%s%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
diff --git a/wps/cabbiev2.160x128x1.wps b/wps/cabbiev2.160x128x1.wps
index 3d7eb51735..7ba52caef6 100644
--- a/wps/cabbiev2.160x128x1.wps
+++ b/wps/cabbiev2.160x128x1.wps
@@ -55,5 +55,5 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%s%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
diff --git a/wps/cabbiev2.160x128x16.wps b/wps/cabbiev2.160x128x16.wps
index 10f16077c0..4913478d67 100644
--- a/wps/cabbiev2.160x128x16.wps
+++ b/wps/cabbiev2.160x128x16.wps
@@ -62,7 +62,7 @@
%s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%Sx(Next Track:)
+%Sx(Next Track:);%t(1, 300)%ft(playername.txt)
%s%?It<%It|%Fn>
#
# Track Info - No Album Art
@@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
diff --git a/wps/cabbiev2.160x128x2.wps b/wps/cabbiev2.160x128x2.wps
index 5c0a172a1e..b6a4086771 100644
--- a/wps/cabbiev2.160x128x2.wps
+++ b/wps/cabbiev2.160x128x2.wps
@@ -62,7 +62,7 @@
%s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
#
# Track Info - No Album Art
@@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%s%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
diff --git a/wps/cabbiev2.176x132x16.wps b/wps/cabbiev2.176x132x16.wps
index a8b599ea3e..693fdebb00 100644
--- a/wps/cabbiev2.176x132x16.wps
+++ b/wps/cabbiev2.176x132x16.wps
@@ -62,7 +62,7 @@
%s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
#
# Track Info - No Album Art
@@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
diff --git a/wps/cabbiev2.176x220x16.wps b/wps/cabbiev2.176x220x16.wps
index 6281f6cc27..6457aa9b96 100644
--- a/wps/cabbiev2.176x220x16.wps
+++ b/wps/cabbiev2.176x220x16.wps
@@ -69,6 +69,6 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%?iy<%iy|>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA>>
diff --git a/wps/cabbiev2.220x176x16.wps b/wps/cabbiev2.220x176x16.wps
index 3963aa364a..406d574759 100644
--- a/wps/cabbiev2.220x176x16.wps
+++ b/wps/cabbiev2.220x176x16.wps
@@ -62,7 +62,7 @@
%s%al%?it<%it|%fn>
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
#
# Track Info - No Album Art
@@ -71,5 +71,5 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
diff --git a/wps/cabbiev2.240x320x16.mini2440.wps b/wps/cabbiev2.240x320x16.mini2440.wps
index 14d65325d2..af8fed3788 100644
--- a/wps/cabbiev2.240x320x16.mini2440.wps
+++ b/wps/cabbiev2.240x320x16.mini2440.wps
@@ -30,7 +30,7 @@
%?C<%s%ac%?it<%it|%fn>|>
%?C<%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>|%ac%Sx(Next Track:)>>
%?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%)>>>
+%?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, 300)%ft(playername.txt)
%pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr
diff --git a/wps/cabbiev2.240x320x16.wps b/wps/cabbiev2.240x320x16.wps
index 95a056b123..7aee398c9a 100644
--- a/wps/cabbiev2.240x320x16.wps
+++ b/wps/cabbiev2.240x320x16.wps
@@ -61,7 +61,7 @@
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
%s%ac%?it<%it|%fn>
%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%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
#
# Track Info - No Album Art
%Vl(b,0,45,-,198,1)
@@ -73,7 +73,7 @@
%ac%?ig<%ig|>
%ac%?fv<%(vbr%) |>%fb kbit/s %fc
-%ac%Sx(Next:)
+%ac%Sx(Next:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>
%ac%s%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>
diff --git a/wps/cabbiev2.240x400x16.wps b/wps/cabbiev2.240x400x16.wps
index 7bed444259..b8c5cf7cfb 100644
--- a/wps/cabbiev2.240x400x16.wps
+++ b/wps/cabbiev2.240x400x16.wps
@@ -25,7 +25,7 @@
%?C<%s%ac%?it<%it|%fn>|>
%?C<%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>|%ac%Sx(Next Track:)>
%?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%)>>>
+%?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, 300)%ft(playername.txt)
%pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr
diff --git a/wps/cabbiev2.320x240x16.mrobe500.wps b/wps/cabbiev2.320x240x16.mrobe500.wps
index d7bd9f2190..5bb9fddb3a 100644
--- a/wps/cabbiev2.320x240x16.mrobe500.wps
+++ b/wps/cabbiev2.320x240x16.mrobe500.wps
@@ -35,7 +35,7 @@
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
#%s%al%iy
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
%s%al%?Ia<%Ia|%IA>
@@ -45,7 +45,7 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%iy
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%IA>
diff --git a/wps/cabbiev2.320x240x16.wps b/wps/cabbiev2.320x240x16.wps
index 0aff77db77..23157c202a 100644
--- a/wps/cabbiev2.320x240x16.wps
+++ b/wps/cabbiev2.320x240x16.wps
@@ -63,7 +63,7 @@
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%?iy<%iy>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
%s%al%?Ia<%Ia|%?IA<%IA>>
#
@@ -74,6 +74,6 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%?iy<%iy>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA>>
diff --git a/wps/cabbiev2.320x480x16.wps b/wps/cabbiev2.320x480x16.wps
index 77effcef4a..c1a0b2d616 100644
--- a/wps/cabbiev2.320x480x16.wps
+++ b/wps/cabbiev2.320x480x16.wps
@@ -35,7 +35,7 @@
%ac%?ig<%ig|>
%ac%?fv<%(vbr%) |>%fb kbit/s %fc
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%ac%s%?It<%It|%Fn>
#
# album art viewport
@@ -53,7 +53,7 @@
# next track info - AA
%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%)>>>
+%?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, 300)%ft(playername.txt)
# playtime
%V(15,398,290,30,-)
diff --git a/wps/cabbiev2.360x400x16.wps b/wps/cabbiev2.360x400x16.wps
index e98232e5df..957d21b0ed 100644
--- a/wps/cabbiev2.360x400x16.wps
+++ b/wps/cabbiev2.360x400x16.wps
@@ -62,7 +62,7 @@
%s%ac%?it<%it|%fn>
%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%ac%Sx(Next:) %?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
#
# Track Info - No Album Art
%Vl(b,0,56,-,247,1)
@@ -75,7 +75,7 @@
%ac%?fv<%(vbr%) |>%fb kbit/s %fc
-%ac%Sx(Next:)
+%ac%Sx(Next:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?Id<%Id|%?D(1)<%D(1)|%(root%)>>
%ac%s%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>
diff --git a/wps/cabbiev2.400x240x16.wps b/wps/cabbiev2.400x240x16.wps
index 469ee3d2f1..34a823f72d 100644
--- a/wps/cabbiev2.400x240x16.wps
+++ b/wps/cabbiev2.400x240x16.wps
@@ -63,7 +63,7 @@
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%al%?iy<%iy>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?It<%It|%Fn>
%s%al%?Ia<%Ia|%?IA<%IA>>
#
@@ -74,6 +74,6 @@
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
%s%ac%?iy<%iy>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%s%ac%?It<%It|%Fn>
%s%ac%?Ia<%Ia|%?IA<%IA>>
diff --git a/wps/cabbiev2.480x800x16.wps b/wps/cabbiev2.480x800x16.wps
index 1b4994eba4..c3a15cc434 100644
--- a/wps/cabbiev2.480x800x16.wps
+++ b/wps/cabbiev2.480x800x16.wps
@@ -36,7 +36,7 @@
%ac%?ig<%ig|>
%ac%?fv<%(vbr%) |>%fb kbit/s %fc
%s%ac%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%ac%s%?It<%It|%Fn>
#
# album art viewport
@@ -54,7 +54,7 @@
# next track info - AA
%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%)>>>
+%?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, 300)%ft(playername.txt)
# playtime
%V(20,660,440,36,-)
diff --git a/wps/cabbiev2.800x480x16.wps b/wps/cabbiev2.800x480x16.wps
index 525f45e6a9..8ed71cfe05 100644
--- a/wps/cabbiev2.800x480x16.wps
+++ b/wps/cabbiev2.800x480x16.wps
@@ -21,7 +21,7 @@
%s%ac%?it<%it|%fn>
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%ac%Sx(Next Track:)
+%ac%Sx(Next Track:);%ac%t(1, 300)%ft(playername.txt)
%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%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
-%s%al%Sx(Next Track:)
+%s%al%Sx(Next Track:);%s%al%t(1, 300)%ft(playername.txt)
%s%al%?Ia<%Ia|%?IA<%IA|%?D(2)<%D(2)|%(root%)>>> - %?It<%It|%Fn>
# playtime
diff --git a/wps/cabbiev2.96x96x16.wps b/wps/cabbiev2.96x96x16.wps
index 1ac35c12e4..c5a3b5a06c 100644
--- a/wps/cabbiev2.96x96x16.wps
+++ b/wps/cabbiev2.96x96x16.wps
@@ -49,7 +49,7 @@
#
# Next Track Info
%V(2,56,92,8,1)
-%s%ac%Sx(Next:) %?It<%It|%Fn>
+%s%ac%Sx(Next:) %?It<%It|%Fn>;%s%ac%t(1, 300)%ft(playername.txt)
#
# Time Elapsed/Remaining
%V(2,73,92,8,1)