features.txt: `usb_charging' ifdefed to `HAVE_USB_CHARGING_ENABLE'
[kugel-rb.git] / docs / CUSTOM_WPS_FORMAT
blobcf327c54a1dd1fe52782841db6ac68dcd12dbbf8
1 Custom WPS Display
2 File Format Specifications
4 Description / General Info
5 --------------------------
6 * 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.
8 * 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.
10 * All characters not preceded by % are displayed as typed.
11 * A line beginning with # is a comment
13 File Location
14 -------------
15 Custom WPS files may be located anywhere on the drive. The only restriction is
16 that they must end in .wps. When you PLAY a .wps file, it'll be used for the
17 future WPS screens. If the "played" wps file is located in the /.rockbox
18 folder, it'll be remembered and used for subsequent restarts. Filenames in the
19 /.rockbox folder must be no more than 24 characters long.
21 Tags
22 ----
23 ID3 Info Tags:
24   %ia : ID3 Artist
25   %ic : ID3 Composer
26   %id : ID3 Album Name
27   %ig : ID3 Genre Name
28   %in : ID3 Track Number
29   %it : ID3 Track Title
30   %iv : ID3 Version (1.0, 1.1, 2.2, 2.3, 2.4 or empty if no id3 tag)
31   %iy : ID3 Year
34 Battery Info:
35   %bl : Show numeric battery level in percent
36   %bt : Show estimated battery time left
38 File Info Tags:
39   %fb : File Bitrate (in kbps)
40   %ff : File Frequency (in Hz)
41   %fm : File Name
42   %fn : File Name (without extension)
43   %fp : File Path
44   %fs : File Size (In Kilobytes)
45   %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.
48   %d3 : Third directory from end of file path.
50 Example for the the %dN commands: If the path is "/Rock/Kent/Isola/11 -
51 747.mp3", %d1 is "Isola", %d2 is "Kent"... You get the picture.
53 Playlist/Song Info Tags:
54   %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.
58   %pf : Player: Full-line progress bar + time display
59   %pc : Current Time In Song
60   %pe : Total Number of Playlist Entries
61   %pm : Peak Meter (Recorder only)
62         The entire line is used as volume peak meter.
63   %pn : Playlist Name (Without path or extension)
64   %pp : Playlist Position
65   %pr : Remaining Time In Song
66   %ps : Shuffle. Shows 's' if shuffle mode is enabled.
67   %pt : Total Track Time
68   %pv : Current volume
70 Database tags:
71   %rp : Playcount
72   %rr : Rating
73   %ra : Auto score
75 Repeat mode tags:
76   %mf : repeat off, returns f
77   %ma : repeat all, returns a
78   %mo : repeat one, returns o
79   %ms : repeat shuffle, returns s
81 Playback mode tags:
82   %mp : play, returns p
83   %mu : pause, returns u
84   %mw : fastforward, returns w
85   %mb : fastbackward, returns b
87 Conditional Tags (If/Else block):
88   %?xx<|> : Conditional: if the tag specified by "xx" has a value, the 
89             text between the "<" and the "|" is displayed, else the text
90             between the "|" and the ">" is displayed. 
91             The else part is optional, so the "|" does not have to be
92             specified if no else part is desired. The conditionals nest, 
93             so the text in the if and else part can contain all % 
94             commands, including conditionals.
96 Alignment Tags:
97   %al : Text is left aligned
98   %ac : Text is center aligned
99   %ar : Text is right aligned
101 All alignment tags may be present in on line, but the need to be in the order
102 left - center - right. If the aligned texts overlap, they are merged.
104 Next Song Info
105 --------------
106 You can display information about the next song - the song that is about to
107 play after the one currently playing (unless you change the plan).
109 If you use the uppercase versions of the three tags: F, I and D, they will
110 instead refer to the next song instead of the current one. Example: %Ig is
111 the genre name used in the next song and %Ff is the mp3 frequency.
113 Take note that the next song information WILL NOT be available at all times,
114 but will most likely be available at the end of a song. We suggest you use the
115 conditional display tag a lot when displaying information about the next song!
117 Alternating Sublines
118 --------------------
119 It is possible to group items on each line into 2 or more groups or "sublines".
120 Each subline will be  displayed in succession on the line for a specified time,
121 alternating continuously through each defined subline.
123 Items on a line are broken into sublines with the semicolon ';' character. The
124 display time for each subline defaults to 2 seconds unless modified by using
125 the '%t' tag to specify an alternate time (in seconds and optional tenths of a
126 second) for the subline to be displayed.
128 Subline related special characters and tags:
129    ;  : Split items on a line into separate sublines
130   %t  : Set the subline display time. The '%t' is followed by either integer
131         seconds (%t5), or seconds and tenths of a second (%t3.5).
134 Each alternating subline can still be optionally scrolled while it is being
135 displayed, and scrollable formats can be displayed on the same line with
136 non-scrollable formats (such as track elapsed time) as long as they are
137 separated into different sublines.
139   Example subline definition:
141   %s%t4%ia;%s%it;%t3%pc %pr     : Display id3 artist for 4 seconds, 
142                                   Display id3 title for 2 seconds, 
143                                   Display current and remaining track time
144                                   for 3 seconds,
145                                   repeat...
147 Conditionals can be used with sublines to display a different set and/or number
148 of sublines on the line depending on the evaluation of the conditional.  
150   Example subline with conditionals:
152   %?it<%t8%s%it|%s%fn>;%?ia<%t3%s%ia|%t0>
154   The format above will do two different things depending if ID3 
155   tags are present. If the ID3 artist and title are present :
157      Display id3 title for 8 seconds,
158      Display id3 artist for 3 seconds,
159      repeat...
161   If the ID3 artist and title are not present :
162      Display the filename continuously.
164 Note that by using a subline display time of 0 in one branch of a conditional,
165 a subline can be skipped (not displayed) when that condition is met.
167 -----------
169 Other Tags:
170   %%  : Display a '%'
171   %<  : Display a '<'
172   %|  : Display a '|'
173   %>  : Display a '>'
174   %;  : Display a ';'
175   %s  : Indicate that the line should scroll. Can occur anywhere in 
176         a line (given that the text is displayed; see conditionals
177         above). You can specify up to 10 scrolling lines.
178         Scrolling lines can not contain dynamic content such as timers,
179         peak meters or progress bars.
181 Example File
182 ------------
183 %s%?in<%in - >%?it<%it|%fn> %?ia<[%ia%?id<, %id>]>
184 %pb%pc/%pt
186 That is, "tracknum - title [artist, album]", where most fields are only
187 displayed if available. Could also be rendered as "filename" or
188 "tracknum - title [artist]".
190 Default
191 -------
192 If you haven't selected a .wps file in the .rockbox directory, you get the
193 hardcoded wps layout. The default WPS screen is for player:
195 # Default WPS for Player
196 %s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>
197 %pc%?ps<*|/>%pt
199 and for recorder:
201 # Default WPS for Recorder
202 %s%?it<%?in<%in. |>%it|%fn>
203 %s%?ia<%ia|%?d2<%d2|(root)>>
204 %s%?id<%id|%?d1<%d1|(root)>> %?iy<(%iy)|>
206 %pc/%pt [%pp:%pe]
207 %fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>