blob: 87dd5c35f6af1ccb669c27e96bd13f95a44133c7 [file] [log] [blame]
Justin Heiner43e7cb82002-08-22 02:26:08 +00001Custom WPS Display
Justin Heiner52681472002-09-05 16:52:47 +00002File Format Specifications
Justin Heiner43e7cb82002-08-22 02:26:08 +00003
Justin Heinera7a46c72002-08-27 01:05:19 +00004Description / General Info
5--------------------------
Justin Heiner7189bf22002-08-29 05:58:23 +00006* The Custom WPS Display is used on both the Rockbox Player and Recorder,
7 as a means to customize the WPS to the user's likings.
Björn Stenberg3e92ef42002-09-06 23:25:24 +00008* After editing the .wps file, "play" it to make it take effect.
9* The file may be 2 lines long for the Player, and 10 lines for the Recorder.
Justin Heinera7a46c72002-08-27 01:05:19 +000010* All characters not preceded by % are displayed as typed.
Linus Nielsen Feltzingc6f234a2003-11-04 13:46:37 +000011* A line beginning with # is a comment
Justin Heinera7a46c72002-08-27 01:05:19 +000012
Justin Heiner43e7cb82002-08-22 02:26:08 +000013File Location
14-------------
Daniel Stenberg0cf21742002-10-10 14:44:39 +000015Custom WPS files may be located anywhere on the drive. The only restriction is
16that they must end in .wps. When you PLAY a .wps file, it'll be used for the
17future WPS screens. If the "played" wps file is located in the /.rockbox
Björn Stenberg80dbb872003-02-09 11:19:07 +000018folder, it'll be remembered and used for subsequent restarts. Filenames in the
19/.rockbox folder must be no more than 24 characters long.
Justin Heiner43e7cb82002-08-22 02:26:08 +000020
21Tags
22----
Justin Heinera7a46c72002-08-27 01:05:19 +000023ID3 Info Tags:
Justin Heinera7a46c72002-08-27 01:05:19 +000024 %ia : ID3 Artist
Björn Stenberg8498a482003-06-04 15:09:35 +000025 %ic : ID3 Composer
Björn Stenberg862813d2002-09-01 20:00:05 +000026 %id : ID3 Album Name
Björn Stenberga218ec02003-04-15 12:57:25 +000027 %ig : ID3 Genre Name
Daniel Stenberg938d3b42002-12-05 18:38:01 +000028 %in : ID3 Track Number
29 %it : ID3 Track Title
Björn Stenberg8498a482003-06-04 15:09:35 +000030 %iv : ID3 Version (1.0, 1.1, 2.2, 2.3, 2.4 or empty if no id3 tag)
Daniel Stenberg938d3b42002-12-05 18:38:01 +000031 %iy : ID3 Year
32
33
34Battery Info:
Björn Stenberga218ec02003-04-15 12:57:25 +000035 %bl : Show numeric battery level in percent
36 %bt : Show estimated battery time left
Björn Stenberg862813d2002-09-01 20:00:05 +000037
Justin Heinera7a46c72002-08-27 01:05:19 +000038File Info Tags:
Björn Stenberg862813d2002-09-01 20:00:05 +000039 %fb : File Bitrate (in kbps)
40 %ff : File Frequency (in Hz)
Mats Lidell09ae8cb2002-09-01 21:13:07 +000041 %fm : File Name
Daniel Stenberg938d3b42002-12-05 18:38:01 +000042 %fn : File Name (without extension)
43 %fp : File Path
Justin Heinera7a46c72002-08-27 01:05:19 +000044 %fs : File Size (In Kilobytes)
Björn Stenberg862813d2002-09-01 20:00:05 +000045 %fv : "(vbr)" if variable bit rate or "" if constant bit rate
46 %d1 : First directory from end of file path.
47 %d2 : Second directory from end of file path.
Björn Stenbergef413702002-09-06 23:57:09 +000048 %d3 : Third directory from end of file path.
Björn Stenberg862813d2002-09-01 20:00:05 +000049
50Example for the the %dN commands: If the path is "/Rock/Kent/Isola/11 -
51747.mp3", %d1 is "Isola", %d2 is "Kent"... You get the picture.
52
Justin Heinera7a46c72002-08-27 01:05:19 +000053Playlist/Song Info Tags:
Björn Stenberg3e92ef42002-09-06 23:25:24 +000054 %pb : Progress Bar
55 Player: This will display a 1 character "cup" that empties as the
56 progresses.
57 Recorder: This will replace the entire line with a progress bar.
Björn Stenberg42f261e2003-03-11 12:49:36 +000058 %pf : Player: Full-line progress bar + time display
Daniel Stenberg938d3b42002-12-05 18:38:01 +000059 %pc : Current Time In Song
60 %pe : Total Number of Playlist Entries
Linus Nielsen Feltzingbb572c42002-09-27 09:31:31 +000061 %pm : Peak Meter (Recorder only)
62 The entire line is used as volume peak meter.
Robert Hak52f1bca2002-10-15 11:52:50 +000063 %pn : Playlist Name (Without path or extension)
Justin Heinera7a46c72002-08-27 01:05:19 +000064 %pp : Playlist Position
Justin Heiner87f53242002-08-30 03:08:02 +000065 %pr : Remaining Time In Song
Daniel Stenberg938d3b42002-12-05 18:38:01 +000066 %ps : Shuffle. Shows 's' if shuffle mode is enabled.
Justin Heinera7a46c72002-08-27 01:05:19 +000067 %pt : Total Track Time
Björn Stenberg42f261e2003-03-11 12:49:36 +000068 %pv : Current volume
Björn Stenberg862813d2002-09-01 20:00:05 +000069
Miika Pekkarinend9874b22005-08-21 19:17:50 +000070Repeat mode tags:
71 %mf : repeat off, returns f
72 %ma : repeat all, returns a
73 %mo : repeat one, returns o
74 %ms : repeat shuffle, returns s
75
76Playback mode tags:
77 %mp : play, returns p
78 %mu : pause, returns u
79 %mw : fastforward, returns w
80 %mb : fastbackward, returns b
81
Björn Stenberg862813d2002-09-01 20:00:05 +000082Conditional Tags (If/Else block):
83 %?xx<|> : Conditional: if the tag specified by "xx" has a value, the
84 text between the "<" and the "|" is displayed, else the text
85 between the "|" and the ">" is displayed.
86 The else part is optional, so the "|" does not have to be
87 specified if no else part is desired. The conditionals nest,
88 so the text in the if and else part can contain all %
89 commands, including conditionals.
90
Daniel Stenbergcaec53c2004-05-19 08:30:48 +000091Next Song Info
92--------------
93You can display information about the next song - the song that is about to
94play after the one currently playing (unless you change the plan).
95
96If you use the uppercase versions of the three tags: F, I and D, they will
97instead refer to the next song instead of the current one. Example: %Ig is
98the genre name used in the next song and %Ff is the mp3 frequency.
99
100Take note that the next song information WILL NOT be available at all times,
101but will most likely be available at the end of a song. We suggest you use the
102conditional display tag a lot when displaying information about the next song!
103
Daniel Stenbergd2b625f2004-01-14 07:59:06 +0000104Alternating Sublines
105--------------------
106It is possible to group items on each line into 2 or more groups or "sublines".
107Each subline will be displayed in succession on the line for a specified time,
108alternating continuously through each defined subline.
109
110Items on a line are broken into sublines with the semicolon ';' character. The
111display time for each subline defaults to 2 seconds unless modified by using
112the '%t' tag to specify an alternate time (in seconds and optional tenths of a
113second) for the subline to be displayed.
114
115Subline related special characters and tags:
116 ; : Split items on a line into separate sublines
117 %t : Set the subline display time. The '%t' is followed by either integer
118 seconds (%t5), or seconds and tenths of a second (%t3.5).
119
120
121Each alternating subline can still be optionally scrolled while it is being
122displayed, and scrollable formats can be displayed on the same line with
123non-scrollable formats (such as track elapsed time) as long as they are
124separated into different sublines.
125
126 Example subline definition:
127
128 %s%t4%ia;%s%it;%t3%pc %pr : Display id3 artist for 4 seconds,
129 Display id3 title for 2 seconds,
130 Display current and remaining track time
131 for 3 seconds,
132 repeat...
133
134Conditionals can be used with sublines to display a different set and/or number
135of sublines on the line depending on the evaluation of the conditional.
136
137 Example subline with conditionals:
138
139 %?it<%t8%s%it|%s%fn>;%?ia<%t3%s%ia|%t0>
140
141 The format above will do two different things depending if ID3
142 tags are present. If the ID3 artist and title are present :
143
144 Display id3 title for 8 seconds,
145 Display id3 artist for 3 seconds,
146 repeat...
147
148 If the ID3 artist and title are not present :
149 Display the filename continuously.
150
151Note that by using a subline display time of 0 in one branch of a conditional,
152a subline can be skipped (not displayed) when that condition is met.
153
154-----------
155
Justin Heinera7a46c72002-08-27 01:05:19 +0000156Other Tags:
Björn Stenberg862813d2002-09-01 20:00:05 +0000157 %% : Display a '%'
158 %< : Display a '<'
159 %| : Display a '|'
160 %> : Display a '>'
Daniel Stenbergd2b625f2004-01-14 07:59:06 +0000161 %; : Display a ';'
Björn Stenberg862813d2002-09-01 20:00:05 +0000162 %s : Indicate that the line should scroll. Can occur anywhere in
Björn Stenberg954c0ce2002-12-20 12:18:16 +0000163 a line (given that the text is displayed; see conditionals
Björn Stenberga218ec02003-04-15 12:57:25 +0000164 above). You can specify up to 10 scrolling lines.
165 Scrolling lines can not contain dynamic content such as timers,
166 peak meters or progress bars.
Justin Heiner43e7cb82002-08-22 02:26:08 +0000167
Justin Heinereb94e0b2002-09-06 06:14:52 +0000168Example File
169------------
Björn Stenberg862813d2002-09-01 20:00:05 +0000170%s%?in<%in - >%?it<%it|%fn> %?ia<[%ia%?id<, %id>]>
171%pb%pc/%pt
Justin Heinera7a46c72002-08-27 01:05:19 +0000172
Björn Stenberg862813d2002-09-01 20:00:05 +0000173That is, "tracknum - title [artist, album]", where most fields are only
174displayed if available. Could also be rendered as "filename" or
175"tracknum - title [artist]".
Björn Stenberg2042c502002-09-23 05:19:11 +0000176
177Default
178-------
Daniel Stenberg0cf21742002-10-10 14:44:39 +0000179If you haven't selected a .wps file in the .rockbox directory, you get the
180hardcoded wps layout. The default WPS screen is for player:
Björn Stenberg2042c502002-09-23 05:19:11 +0000181
Linus Nielsen Feltzingc6f234a2003-11-04 13:46:37 +0000182# Default WPS for Player
Björn Stenberga218ec02003-04-15 12:57:25 +0000183%s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>
184%pc%?ps<*|/>%pt
Björn Stenberg2042c502002-09-23 05:19:11 +0000185
186and for recorder:
187
Linus Nielsen Feltzingc6f234a2003-11-04 13:46:37 +0000188# Default WPS for Recorder
Björn Stenberga218ec02003-04-15 12:57:25 +0000189%s%?it<%?in<%in. |>%it|%fn>
190%s%?ia<%ia|%?d2<%d2|(root)>>
191%s%?id<%id|%?d1<%d1|(root)>> %?iy<(%iy)|>
192
193%pc/%pt [%pp:%pe]
194%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>
Björn Stenberg2042c502002-09-23 05:19:11 +0000195%pb
Björn Stenberg3a44d4d2002-10-11 12:15:49 +0000196%pm