blob: 43bca0a1b93bfa36fa746c6b4d262eaefebf1437 [file] [log] [blame]
Martin Arver8e8207f2006-02-11 00:57:17 +00001\chapter{Advanced Topics}
Martin Arver35dcf902006-03-08 17:58:11 +00002
Martin Arver8e8207f2006-02-11 00:57:17 +00003\section{\label{ref:CustomisingUI}Customising the userinterface}
4\subsection{\label{ref:GettingExtras}Getting Extras (Fonts,Languages)}
Martin Arverd3d3e342006-03-15 10:56:14 +00005Rockbox supports custom fonts (for the Recorder and Ondio only) and a number of different languages. Rockbox comes with several fonts and languages already included. If new fonts and language files have been created, then they will be found at \url{http://www.rockbox.org/fonts/} and \url{http://www.rockbox.org/lang/}.
Martin Arver8e8207f2006-02-11 00:57:17 +00006
Martin Arver7ec830d2006-03-15 18:16:10 +00007\subsection{\label{ref:Loadingfonts}Loading Fonts (Recorder, Ondio)}
Martin Arverd3d3e342006-03-15 10:56:14 +00008Rockbox can load fonts dynamically. Simply copy the .fnt file to the \dap\ and ``play'' them in the directory browser or select \textbf{General Settings {\textgreater} Fonts} from the Main Menu .
Martin Arver8e8207f2006-02-11 00:57:17 +00009
10If you want a font to be loaded automatically every time you start up,
Martin Arverd3d3e342006-03-15 10:56:14 +000011it must be located in the \fname{/.rockbox }folder and the file name
Martin Arver8e8207f2006-02-11 00:57:17 +000012must be at most 24 characters long.
13
14Any BDF font file up to 16 pixels high should be usable with Rockbox. To
Martin Arverd3d3e342006-03-15 10:56:14 +000015convert from .bdf to .fnt, use the \fname{convbdf} tool. This tool can be found in the tools directory of the Rockbox source code.
Martin Arver8e8207f2006-02-11 00:57:17 +000016
17\subsection{\label{ref:Loadinglanguages}Loading Languages}
Martin Arverd3d3e342006-03-15 10:56:14 +000018Rockbox can load language files at runtime. Simply copy the .lng file (do not use the .lang file) to the \dap\ and ``play'' it in the Rockbox directory browser or select \textbf{General Settings {}-{\textgreater} Languages }from the Main Menu.
Martin Arver8e8207f2006-02-11 00:57:17 +000019
Martin Arverd3d3e342006-03-15 10:56:14 +000020If you want a language to be loaded automatically every time you start up, it must be located in the \fname{/.rockbox }folder and the file name must be a maximum of 24 characters long.
Martin Arver8e8207f2006-02-11 00:57:17 +000021
Martin Arverd3d3e342006-03-15 10:56:14 +000022Rockbox supports many different languages. You can get .lng files at \url{http://www.rockbox.org/lang/}.
Martin Arver8e8207f2006-02-11 00:57:17 +000023Currently all of these languages are included in the Rockbox
24distribution.
25
Martin Arverd3d3e342006-03-15 10:56:14 +000026If your language is not yet supported and you want to write your own language file, follow these instructions:
Martin Arver8e8207f2006-02-11 00:57:17 +000027
28\begin{itemize}
Martin Arverd3d3e342006-03-15 10:56:14 +000029\item Copy the\url{./ http://www.rockbox.org/lang/english.lang} file and start filling in the ``new:'' lines.
30\item Name your file \fname{{\textless}language{\textgreater}.lang}, where
31\fname{{\textless}language{\textgreater}} is the local name for your language. i.e. \fname{svenska.lang}, \fname{francais.lang} etc.
32\item When you are done, submit your .lang file to Rockbox patch tracker.\\
33 (\url{http://www.rockbox.org/bugs/index.php?type=4})
Martin Arver8e8207f2006-02-11 00:57:17 +000034\end{itemize}
35
36\section{\label{ref:ConfiguringtheWPS}Configuring the WPS}
37
38\subsection{Description / General Info}
39
40\begin{itemize}
Martin Arvera245e882006-03-08 15:04:36 +000041\item The Custom While Playing Screen (WPS) display is used as a means to customise the WPS to the user's likings.
Martin Arver8e8207f2006-02-11 00:57:17 +000042\item After editing the .wps file, ``play'' it to make it take effect.
Martin Arver8e8207f2006-02-11 00:57:17 +000043\item All characters not preceded by \% are displayed as typed.
44\item Lines beginning with \# are comments and will be ignored.
Martin Arvera245e882006-03-08 15:04:36 +000045\item Maximum file size used is \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{1600}\opt{player}{400} bytes. If you have a bigger WPS file, only the first part of it will be loaded and used.
Martin Arver8e8207f2006-02-11 00:57:17 +000046\end{itemize}
47
48\subsection{File Location}
Martin Arverd3d3e342006-03-15 10:56:14 +000049Custom WPS files may be located anywhere on the drive. The only restriction is that they must end in .wps. When you ``play'' a .wps file, it will be used for future WPS screens. If the ``played'' .wps file is located in the \fname{/.rockbox} folder, it will be remembered and used after reboot. The .wps filename must be no more than 24 characters long for it to be remembered.
Martin Arvera245e882006-03-08 15:04:36 +000050
51\subsection{How To Create A .wps File}
Martin Arverd3d3e342006-03-15 10:56:14 +000052Quite simply, enter the WPS code in your favourite text editor, Notepad on Windows works fine. When you save it, instead of saving it as a .txt file, save it as a .wps file. Example: Instead of \fname{Rockbox.txt}, save the file as \fname{Rockbox.wps}. To make sure non english characters display correctly in your WPS you must save the .wps file with UTF-8 character encoding. This can be done in most editors, for example Notepad in Windows 2000 or XP (but not in 9x/ME) can do this.
Martin Arver8e8207f2006-02-11 00:57:17 +000053
54\subsection{Tags}
55
Martin Arvera245e882006-03-08 15:04:36 +000056\subsubsection{Status Bar}
57\begin{center}
58 \begin{tabular}{@{}ll@{}}\toprule
59 \textbf{Tag} & \textbf{Description}\\\midrule
60 \%we & Status Bar Enabled\\
61 \%wd & Status Bar Disabled\\\bottomrule
62 \end{tabular}
63\end{center}
64These tags override the player setting for the display of the status bar, they must be on their own line.
65
66\subsubsection{ID3 Info}
Martin Arverd3d3e342006-03-15 10:56:14 +000067
Martin Arvera245e882006-03-08 15:04:36 +000068\begin{center}
69 \begin{tabular}{@{}ll@{}}\toprule
70 \textbf{Tag} & \textbf{Description}\\\midrule
71 \%ia & ID3 Artist\\
72 \%ic & ID3 Composer\\
73 \%id & ID3 Album Name\\
74 \%ig & ID3 Genre Name\\
75 \%in & ID3 Track Number\\
76 \%it & ID3 Track Title\\
77 \%iv & ID3 Version (1.0, 1.1, 2.2, 2.3, 2.4 or empty if no id3 tag)\\
78 \%iy & ID3 Year\\\bottomrule
79 \end{tabular}
80\end{center}
81Remember that this information is not always available, so use the conditionals to show alternate information in preference to assuming.
82
83\subsubsection{Battery Info}
Martin Arverd3d3e342006-03-15 10:56:14 +000084
Martin Arvera245e882006-03-08 15:04:36 +000085\begin{center}
86 \begin{tabular}{@{}ll@{}}\toprule
87 \textbf{Tag} & \textbf{Description}\\\midrule
88 \%bl & Show numeric battery level in percent.\\
89 & Can also be used in a conditional: \%?bl{\textless}0{\textbar}1{\textbar}2{\textbar}3{\textbar}4{\textgreater}\\
90 \%bv & Show the battery level in volts\\
91 \%bt & Show estimated battery time left\\
92 \%bp & "p" if the charger is connected \\
93 & (only on targets that can charge batteries)\\
94 \%bc & "c" if the unit is currently charging the battery\\
95 & (only on targets that have software charge control or monitoring)\\\bottomrule
96 \end{tabular}
97\end{center}
98
99\subsubsection{File Info}
Martin Arverd3d3e342006-03-15 10:56:14 +0000100
Martin Arvera245e882006-03-08 15:04:36 +0000101\begin{center}
102 \begin{tabular}{@{}ll@{}}\toprule
103 \textbf{Tag} & \textbf{Description}\\\midrule
104 \%fb & File Bitrate (in kbps)\\
105 \%fc & File Codec (e.g. "MP3" or "FLAC")\\
106 & This tag can also be used in a conditional tag,\\
107 & \%?fc{\textless}mp1{\textbar}mp2{\textbar}mp3{\textbar}wav{\textbar}vorbis{\textbar}flac{\textbar}mpc{\textbar}a52{\textbar}wavpack{\textbar}unknown{\textgreater}\\
108 & The codec order is as follows: MP1, MP2, MP3, WAV, Ogg Vorbis (OGG),\\
109 & FLAC, MPC, AC3, WavPack (WV), ALAC, AAC, Shorten (SHN), AIFF\\
110 \%ff & File Frequency (in Hz)\\
111 \%fm & File Name\\
112 \%fn & File Name (without extension)\\
113 \%fp & File Path\\
114 \%fs & File Size (In Kilobytes)\\
115 \%fv & "(avg)" if variable bit rate or "" if constant bit rate\\
116 \%d1 & First directory from end of file path.\\
117 \%d2 & Second directory from end of file path.\\
118 \%d3 & Third directory from end of file path.\\\bottomrule
119 \end{tabular}
120\end{center}
121Example for the the \%dN commands: If the path is "/Rock/Kent/Isola/11 - 747.mp3", \%d1 is "Isola", \%d2 is "Kent"... You get the picture.
122
123\subsubsection{Playlist/Song Info}
Martin Arverd3d3e342006-03-15 10:56:14 +0000124
Martin Arvera245e882006-03-08 15:04:36 +0000125\begin{center}
126 \begin{tabular}{@{}ll@{}}\toprule
127 \textbf{Tag} & \textbf{Description}\\\midrule
Martin Arver35dcf902006-03-08 17:58:11 +0000128 \%pb & Progress Bar\\
Martin Arvera245e882006-03-08 15:04:36 +0000129 \opt{player}{
Martin Arver35dcf902006-03-08 17:58:11 +0000130 & This will display a 1 character "cup"\\
131 & that empties as the time progresses.}
Martin Arvera245e882006-03-08 15:04:36 +0000132 \opt{recorder,recorderv2fm,h1xx,h300,ipodcolor,ipodnano}{
133 & This will replace the entire line with a progress bar. \\
134 & You can set the height, position and width of the progressbar\\
135 & (in pixels): \%pb{\textbar}height{\textbar}leftpos{\textbar}rightpos{\textbar}} \\
136 \%pf & Player: Full-line progress bar + time display\\
137 \%pc & Current Time In Song\\
138 \%pe & Total Number of Playlist Entries\\
139 \%pm & Peak Meter (Recorder only) The entire line is used as volume peak meter.\\
140 \%pn & Playlist Name (Without path or extension)\\
141 \%pp & Playlist Position\\
142 \%pr & Remaining Time In Song\\
143 \%ps & Shuffle. Shows 's' if shuffle mode is enabled.\\
144 \%pt & Total Track Time\\
145 \%pv & Current volume. Can also be used in a conditional: \\
146 & \%?pv{\textless}0{\textbar}1{\textbar}2{\textbar}3{\textbar}4{\textbar}5{\textbar}6{\textbar}7{\textbar}8{\textbar}9{\textbar}10{\textgreater}\\\bottomrule
147 \end{tabular}
148\end{center}
149
150\subsubsection{Runtime Database}
Martin Arverd3d3e342006-03-15 10:56:14 +0000151
Martin Arvera245e882006-03-08 15:04:36 +0000152\begin{center}
153 \begin{tabular}{@{}ll@{}}\toprule
154 \textbf{Tag} & \textbf{Description}\\\midrule
155 \%rp & Song playcount\\
156 \%rr & Song rating (0-10). This tag can also be used in a conditional tag,\\
157 & \%?rr{\textless}0{\textbar}1{\textbar}2{\textbar}3{\textbar}4{\textbar}5{\textbar}6{\textbar}7{\textbar}8{\textbar}9{\textbar}10{\textgreater}\\\bottomrule
158 \end{tabular}
159\end{center}
160
161\opt{h1xx,h300}{
162\subsubsection{Hold Switches}
Martin Arverd3d3e342006-03-15 10:56:14 +0000163
Martin Arvera245e882006-03-08 15:04:36 +0000164\begin{center}
165 \begin{tabular}{@{}ll@{}}\toprule
166 \textbf{Tag} & \textbf{Description}\\\midrule
167 \%mh & "h" if the main unit hold switch is on\\
168 \%mr & "r" if the remote hold switch is on\\\bottomrule
169 \end{tabular}
170\end{center}
171}
172
173\subsubsection{Virtual LED}
Martin Arverd3d3e342006-03-15 10:56:14 +0000174
Martin Arvera245e882006-03-08 15:04:36 +0000175\begin{center}
176 \begin{tabular}{@{}ll@{}}\toprule
177 \textbf{Tag} & \textbf{Description}\\\midrule
178 \%lh & "h" if there is hard disk activity\\\bottomrule
179 \end{tabular}
180\end{center}
181
182\subsubsection{Repeat Mode}
Martin Arverd3d3e342006-03-15 10:56:14 +0000183
Martin Arvera245e882006-03-08 15:04:36 +0000184\begin{center}
185 \begin{tabular}{@{}ll@{}}\toprule
186 \textbf{Tag} & \textbf{Description}\\\midrule
187 \%mm & Repeat mode, 0-4, in the order: Off, All, One, Shuffle, \opt{player,recorder,recorderv2fm}{A-B}\\\bottomrule
188 \end{tabular}
189\end{center}
190Example: \%?mm{\textless}Off{\textbar}All{\textbar}One{\textbar}Shuffle{\textbar}A-B{\textgreater}
191
192\subsubsection{Playback Mode Tags}
Martin Arverd3d3e342006-03-15 10:56:14 +0000193
Martin Arvera245e882006-03-08 15:04:36 +0000194\begin{center}
195 \begin{tabular}{@{}ll@{}}\toprule
196 \textbf{Tag} & \textbf{Description}\\\midrule
197 \%mp & Play status, 0-4, in the order: Stop, Play, Pause, Fast forward, Rewind\\\bottomrule
198 \end{tabular}
199\end{center}
200Example: \%?mp{\textless}Stop{\textbar}Play{\textbar}Pause{\textbar}Ffwd{\textbar}Rew{\textgreater}
201
202\subsubsection{Images}
Martin Arverd3d3e342006-03-15 10:56:14 +0000203
Martin Arvera245e882006-03-08 15:04:36 +0000204\begin{center}
205 \begin{tabular}{@{}ll@{}}\toprule
206 \textbf{Tag} & \textbf{Description}\\\midrule
207 \%X{\textbar}filename.bmp{\textbar} & Load and set a backdrop image for the WPS.\\
208 & This image must be exactly the same size as your LCD.\\
209 \%P{\textbar}filename.bmp{\textbar} & Load a Progress bar image for the WPS.\\
210 & Use \%pb tag to show the progress bar\\
211 \%x{\textbar}n{\textbar}filename{\textbar}x{\textbar}y{\textbar} & Load and display an image\\
212 & n = image ID (a-z and A-Z)\\
213 & filename = filename (relative to /.rockbox/ and including .bmp)\\
214 & x = x coordinate\\
215 & y = y coordinate.\\
216 \%xl{\textbar}n{\textbar}filename{\textbar}x{\textbar}y{\textbar} & Preload an image for later display\\
217 & n = image ID (a-z and A-Z)\\
218 & filename = filename (relative to /.rockbox/ and including .bmp)\\
219 & x = x coordinate\\
220 & y = y coordinate.\\
221 \%xdn & Display a preloaded image\\
222
223 & n = image ID (a-z and A-Z)\\\bottomrule
224 \end{tabular}
225\end{center}
Martin Arverd3d3e342006-03-15 10:56:14 +0000226Example: image /.rockbox/bg.bmp with ID "a" at 37, 109 would be:\\
227\%x{\textbar}a{\textbar}bg.bmp{\textbar}37{\textbar}109{\textbar}
Martin Arvera245e882006-03-08 15:04:36 +0000228
Martin Arver8e8207f2006-02-11 00:57:17 +0000229\begin{itemize}
Martin Arvera245e882006-03-08 15:04:36 +0000230\item \textbf{Note:} The images must be in a rockbox compatible format (1 bit per pixel BMP)
231\item \textbf{Note:} The image tag must be on its own line
232\item \textbf{Note:} The ID is case sensitive, giving 52 different ID's
233\item \textbf{Note:} The size of the LCD screen for each player varies. See table below for appropriate sizes of each device. The x and y coordinates must repect each of the players' limits.
Martin Arver8e8207f2006-02-11 00:57:17 +0000234\end{itemize}
235
Martin Arvera245e882006-03-08 15:04:36 +0000236\subsubsection{LCD Screen Sizes}
Martin Arverd3d3e342006-03-15 10:56:14 +0000237
Martin Arvera245e882006-03-08 15:04:36 +0000238\begin{center}
239 \begin{tabular}{@{}lll@{}}\toprule
240 \textbf{Player} & \textbf{Main LCD Size} & \textbf{Remote LCD Size}\\\midrule
Martin Arverd3d3e342006-03-15 10:56:14 +0000241 iriver H1x0 & 160x128 & 128x64\\
242 iriver H3x0 & 220x176 & 128x64\\
Martin Arvera245e882006-03-08 15:04:36 +0000243 Archos Recorders & 112x64 & \\
244 Archos Ondio & 112x64 & \\
245 iPod Nano & 176x132 & \\
246 iPod 4G Color & 220x176 & \\
247 iPod 5G Video & 320x240 & \\
248 iAudio X5 & 160x128 & \\\bottomrule
249 \end{tabular}
250\end{center}
Martin Arver8e8207f2006-02-11 00:57:17 +0000251
Martin Arvera245e882006-03-08 15:04:36 +0000252\subsubsection{Alignment}
Martin Arverd3d3e342006-03-15 10:56:14 +0000253
Martin Arvera245e882006-03-08 15:04:36 +0000254\begin{center}
255 \begin{tabular}{@{}lll@{}}\toprule
256 \textbf{Tag} & \textbf{Description}\\\midrule
257 \%al & Text is left aligned\\
258 \%ac & Text is center aligned\\
259 \%ar & Text is right aligned\\\bottomrule
260 \end{tabular}
261\end{center}
262All alignment tags may be present in one line, but they need to be in the order left - center - right. If the aligned texts overlap, they are merged.
Martin Arver8e8207f2006-02-11 00:57:17 +0000263
Martin Arvera245e882006-03-08 15:04:36 +0000264\subsubsection{Conditional Tags}
Martin Arverd3d3e342006-03-15 10:56:14 +0000265
Martin Arvera245e882006-03-08 15:04:36 +0000266\textbf{If/else}\\
Martin Arverd3d3e342006-03-15 10:56:14 +0000267
Martin Arvera245e882006-03-08 15:04:36 +0000268Syntax: \%?xx{\textless}true{\textbar}false{\textgreater}\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000269
Martin Arvera245e882006-03-08 15:04:36 +0000270If the tag specified by ``xx'' has a value, the text between the ``{\textless}'' and the ``{\textbar}'' is displayed (the true part), else the text between the ``{\textbar}'' and the ``{\textgreater}'' is displayed (the false part).
271The else part is optional, so the ``{\textbar}'' does not have to be specified if no else part is desired. The conditionals nest, so the text in the if and else part can contain all \% commands, including conditionals.
Martin Arverd3d3e342006-03-15 10:56:14 +0000272
Martin Arvera245e882006-03-08 15:04:36 +0000273\textbf{Enumerations}\\
Martin Arverd3d3e342006-03-15 10:56:14 +0000274
275Syntax: \%?xx{\textless}alt1{\textbar}alt2{\textbar}alt3{\textbar}...{\textbar}else{\textgreater}\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000276
Martin Arvera245e882006-03-08 15:04:36 +0000277For tags with multiple values, like Play status, the conditional can hold a list of alternatives, one for each value the tag can have.
Martin Arver8e8207f2006-02-11 00:57:17 +0000278
Martin Arverd3d3e342006-03-15 10:56:14 +0000279Example: \%?mp{\textless}Stop{\textbar}Play{\textbar}Pause{\textbar}Ffwd{\textbar}Rew{\textgreater}\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000280
Martin Arvera245e882006-03-08 15:04:36 +0000281The last else part is optional, and will be displayed if the tag has no value. The WPS parser will always display the last part if the tag has no value, or if the list of alternatives is too short.
Martin Arver8e8207f2006-02-11 00:57:17 +0000282
Martin Arvera245e882006-03-08 15:04:36 +0000283\subsubsection{Next Song info}
Martin Arver8e8207f2006-02-11 00:57:17 +0000284You can display information about the next song {}- the song that is
285about to play after the one currently playing (unless you change the
Martin Arvera245e882006-03-08 15:04:36 +0000286plan).
Martin Arver8e8207f2006-02-11 00:57:17 +0000287
288If you use the upper{}-case versions of the
289three tags: F, I and D, they will instead refer to the next song
290instead of the current one. Example: \%Ig is the genre name used in the
291next song and \%Ff is the mp3 frequency.
292
293Take note that the next song information WILL NOT be available at all
294times, but will most likely be available at the end of a song. We
295suggest you use the conditional display tag a lot when displaying
296information about the next song!
Martin Arvera245e882006-03-08 15:04:36 +0000297
298\subsubsection{Alternating sublines}
Martin Arver8e8207f2006-02-11 00:57:17 +0000299
300It is possible to group items on each line into 2 or more groups or
301``sublines''. Each subline will be displayed
302in succession on the line for a specified time, alternating
303continuously through each defined subline.
304
305Items on a line are broken into sublines with the semicolon
306';' character. The display time for
307each subline defaults to 2 seconds unless modified by using the
308'\%t' tag to specify an alternate
309time (in seconds and optional tenths of a second) for the subline to be
310displayed.
311
312Subline related special characters and tags:
313
314; : Split items on a line into separate sublines
315
316\%t : Set the subline display time. The
317'\%t' is followed by either integer
318seconds (\%t5), or seconds and tenths of a second (\%t3.5).
319
320Each alternating subline can still be optionally scrolled while it is
321being displayed, and scrollable formats can be displayed on the same
322line with non{}-scrollable formats (such as track elapsed time) as long
Martin Arvera245e882006-03-08 15:04:36 +0000323as they are separated into different sublines.
Martin Arver8e8207f2006-02-11 00:57:17 +0000324
Martin Arvera245e882006-03-08 15:04:36 +0000325Example subline definition:
Martin Arver8e8207f2006-02-11 00:57:17 +0000326
Martin Arvera245e882006-03-08 15:04:36 +0000327\begin{verbatim}
Martin Arverd3d3e342006-03-15 10:56:14 +0000328 %s%t4%ia;%s%it;%t3%pc %pr : Display id3 artist for 4 seconds,
329 Display id3 title for 2 seconds,
330 Display current and remaining track time
331 for 3 seconds,
332 repeat...
Martin Arvera245e882006-03-08 15:04:36 +0000333\end{verbatim}
Martin Arver8e8207f2006-02-11 00:57:17 +0000334
Martin Arvera245e882006-03-08 15:04:36 +0000335Conditionals can be used with sublines to display a different set and/or number of sublines on the line depending on the evaluation of the conditional.
Martin Arver8e8207f2006-02-11 00:57:17 +0000336
Martin Arvera245e882006-03-08 15:04:36 +0000337Example subline with conditionals:
Martin Arver8e8207f2006-02-11 00:57:17 +0000338
Martin Arvera245e882006-03-08 15:04:36 +0000339\%?it{\textless}\%t8\%s\%it{\textbar}\%s\%fn{\textgreater};\%?ia{\textless}\%t3\%s\%ia{\textbar}\%t0{\textgreater}\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000340
Martin Arvera245e882006-03-08 15:04:36 +0000341The format above will do two different things depending if ID3 tags are present. If the ID3 artist and title are present :
Martin Arver8e8207f2006-02-11 00:57:17 +0000342
Martin Arvera245e882006-03-08 15:04:36 +0000343Display id3 title for 8 seconds,\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000344
Martin Arvera245e882006-03-08 15:04:36 +0000345Display id3 artist for 3 seconds,\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000346
Martin Arvera245e882006-03-08 15:04:36 +0000347repeat...\\
Martin Arver8e8207f2006-02-11 00:57:17 +0000348
Martin Arvera245e882006-03-08 15:04:36 +0000349If the ID3 artist and title are not present :\\
350
351Display the filename continuously.\\
352
353Note that by using a subline display time of 0 in one branch of a conditional, a subline can be skipped (not displayed) when that condition is met.
354
355\subsubsection{Other Tags}
356\begin{verbatim}
357 %% : Display a '%'
358 %< : Display a '<'
359 %| : Display a '|'
360 %> : Display a '>'
361 %; : Display a ';'
Martin Arverd3d3e342006-03-15 10:56:14 +0000362 %s : Indicate that the line should scroll. Can occur
363 anywhere in a line (given that the text is displayed;
364 see conditionals above). You can specify up to 10 scrolling
365 lines. Scrolling lines can not contain dynamic content such
366 as timers, peak meters or progress bars.
Martin Arvera245e882006-03-08 15:04:36 +0000367\end{verbatim}
368
369\subsubsection{Using Images}
370You can have as many as 52 images in your WPS. There are two ways of displaying images:
371\begin{enumerate}
372 \item Load and always show the image, using the \%x tag
373 \item Preload the image with \%xl and show it with \%xd. This way you can have your images displayed conditionally.
374 \item Load an image and show as backdrop using the \%X tag. The image must be of the same exact dimensions as your display. (Currently only supported on color targets).
375\end{enumerate}
376Example:
377\begin{verbatim}
378%X|background.bmp|
379%x|a|static_icon.bmp|50|50|
380%xl|b|rep_off.bmp|16|64|
381%xl|c|rep_all.bmp|16|64|
382%xl|d|rep_one.bmp|16|64|
383%xl|e|rep_shuffle.bmp|16|64|
384%?mm<%xdb|%xdc|%xdd|%xde>
385\end{verbatim}
386This example loads and displays a background image, and preloads four other images at the same x and y position. Which image to display is determined by the \%mm tag (the repeat mode).
387
388\subsubsection{Example File}
389\begin{verbatim}
390%s%?in<%in - >%?it<%it|%fn> %?ia<[%ia%?id<, %id>]>
391%pb%pc/%pt
392\end{verbatim}
393That is, "tracknum - title [artist, album]", where most fields are only displayed if available. Could also be rendered as "filename" or "tracknum - title [artist]".
394
395\subsubsection{Default}
Martin Arverd3d3e342006-03-15 10:56:14 +0000396If you haven't selected a .wps file in the \fname{/.rockbox} directory, you get the hard coded layout. The default WPS screen is:
Martin Arvera245e882006-03-08 15:04:36 +0000397\opt{player}{
398%\begin{verbatim}
399 %s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>
400 %pc%?ps<*|/>%pt
401%\end{verbatim}
402}
Martin Arver8e8207f2006-02-11 00:57:17 +0000403
Martin Arvera245e882006-03-08 15:04:36 +0000404\opt{recorder,recorderv2fm,h1xx,h300,ipodcolor,ipodnano}{
405% \begin{verbatim}
406 %s%?it<%?in<%in. |>%it|%fn>
407 %s%?ia<%ia|%?d2<%d2|(root)>>
408 %s%?id<%id|%?d1<%d1|(root)>> %?iy<(%iy)|>
409
410 %al%pc/%pt%ar[%pp:%pe]
411 %fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>
412 %pb
413 %pm
414 % \end{verbatim}
415}
Martin Arver8e8207f2006-02-11 00:57:17 +0000416
417\section{\label{ref:SettingsFile}Making your own settings file}
418A .cfg file is used to load settings from a plain text file. A .cfg file
419may reside anywhere on the hard disk. The only restriction is that the
420filename must end in .cfg
421
Martin Arverd3d3e342006-03-15 10:56:14 +0000422Hint: Use the ``Write .cfg file'' feature \textbf({Main Menu{}-{\textgreater} General Settings}) to save the current settings, then use a text editor to customize the settings file.
Martin Arver8e8207f2006-02-11 00:57:17 +0000423
Martin Arverabe4e7e2006-03-08 15:57:30 +0000424\subsection{Format Rules}
Martin Arver8e8207f2006-02-11 00:57:17 +0000425
426\begin{itemize}
Martin Arverabe4e7e2006-03-08 15:57:30 +0000427\item Format: \verb+setting: value+
Martin Arver8e8207f2006-02-11 00:57:17 +0000428\item Each setting must be on a separate line.
429\item Lines starting with \# are ignored.
430\end{itemize}
Martin Arver8e8207f2006-02-11 00:57:17 +0000431
Martin Arverabe4e7e2006-03-08 15:57:30 +0000432\subsection{General Settings}
433\begin{center}
Martin Arverd3d3e342006-03-15 10:56:14 +0000434 \begin{longtable}{@{}lll@{}}\toprule
Martin Arverabe4e7e2006-03-08 15:57:30 +0000435 \textbf{Setting} & \textbf{Allowed Values} & \textbf{Unit}\\\midrule
436 volume & 0 to 100 & \%\\
437 bass & -15 to +15 & dB\\
438 treble & -15 to +15 &dB\\
439 balance & -100 to +100 & \%\\
440 channels & stereo, stereo narrow, stereo wide, & N/A\\
441 & mono, mono left, mono right, karaoke & \\
442 shuffle & on, off & N/A\\
443 repeat & off, all, one & N/A\\
444 play selected & on, off & N/A\\
445 resume & off, ask, ask once, on & N/A\\
446 scan min step & 1, 2, 3, 4, 5, 6, 8, 10, 15, 20, 25, 30, 45, 60 & seconds\\
447 scan accel & 0 to 15 & seconds\\
448 antiskip & 0 to 7 & seconds\\
449 volume fade & on, off & N/A\\
450 id3 tag priority & v2-v1, v1-v2 & N/A\\
451 sort case & on, off & N/A\\
452 show files & all, supported, music, playlists & N/A\\
453 follow playlist & on, off & N/A\\
454 playlist viewer icons & off,on & N/A\\
455 playlist viewer indices & off,on & N/A\\
456 playlist viewer track display & track name,full path & N/A\\
457 recursive directory insert & off,on & N/A\\
458 scroll speed & 1 to 25 & Hz\\
459 scroll delay & 0 to 250 & 1/10s\\
460 scroll step & 1 to 112 & pixels\\
461 bidir limit & 0 to 200 & \% of screen width\\
462 contrast & 0 to 63 & N/A\\
463 backlight timeout & off, on, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, & seconds\\
464 & 15, 20, 25, 30, 45, 60, 90 & \\
465 backlight when plugged & on, off & N/A\\
466 disk spindown & 3 to 254 & seconds\\
467 battery capacity & 1500 - 3200 & mAh\\
468 idle poweroff & off, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, & minutes\\
469 & 15, 30, 45, 60 & \\
470 lang & /path/filename.lng & N/A\\
471 wps & /path/filename.wps & N/A\\
472 autocreate bookmarks & off,on & N/A\\
473 autoload bookmarks & off,on & N/A\\
474 use most-recent-bookmarks & off,on & N/A\\
475 talk dir & off,number,spell,enter.hover & N/A\\
476 talk file & off,number,spell & N/A\\
477 talk menu & off,on & N/A\\\bottomrule
Martin Arverd3d3e342006-03-15 10:56:14 +0000478 \end{longtable}
Martin Arverabe4e7e2006-03-08 15:57:30 +0000479\end{center}
Martin Arver8e8207f2006-02-11 00:57:17 +0000480
Martin Arverabe4e7e2006-03-08 15:57:30 +0000481\subsection{Recorder{}-specific settings}
482\begin{center}
Martin Arverd3d3e342006-03-15 10:56:14 +0000483 \begin{longtable}{@{}lll@{}}\toprule
Martin Arverabe4e7e2006-03-08 15:57:30 +0000484 \textbf{Setting} & \textbf{Allowed Values} & \textbf{Unit}\\\midrule
485 loudness & 0 to 17 & N/A\\
486 super bass & on,off & N/A\\
487 auto volume & off, 20ms, 2s, 4s, 8s & seconds\\
488 MDB enable & on,off & N/A\\
489 MDB strength & 0 to 127 & dB\\
490 MDB harmonics & 0 to 100 & \%\\
491 MDB center frequency & 20 to 300 & Hz\\
492 MDB shape & 50 to 300 & Hz\\
493 peak meter release & 1 to 126 & ?\\
494 peak meter hold & off, 200ms, 300ms, 500ms, & N/A \\
495 & 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 1min & \\
496 peak meter clip hold & on, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,& N/A \\
497 & 15, 20, 25, 30, 45, 60, 90, 2min, 3min, 5min, &\\
498 & 10min, 20min, 45min, 90min & \\
499 peak meter busy & on, off & N/A\\
500 peak meter dbfs & on, off & on = dbfs,\\
501 & & off = linear\\
502 peak meter min & 0 to 89 (dB) or 0 to 100 (\%) & dB or \%\\
503 peak meter max & 0 to 89 /dB) or 0 to 100 (\%) & dB or \%\\
504 statusbar & on, off & N/A\\
505 scrollbar & on, off & N/A\\
506 volume display & graphic, numeric & N/A\\
507 battery display & graphic, numeric & N/A\\
508 time format & 12hour, 24hour & N/A\\
509 font & /path/filename.fnt & N/A\\
510 invert & on, off & N/A\\
511 deep discharge & on, off & N/A\\
512 trickle charge & on, off & N/A\\
513 disk poweroff & on, off & N/A\\
514 rec quality & 0 to 7 & 0=smallest size, 7=highest quality\\
515 rec frequency & 48, 44, 32, 24, 22, 16 & kHz\\
516 rec source & mic, line, spdif & N/A\\
517 rec channels & mono, stereo & N/A\\
518 rec mic gain & 0 to 15 & N/A\\
519 rec left gain & 0 to 15 & N/A\\
520 rec right gain & 0 to 15 & N/A\\
521 editable recordings & off,on & N/A\\
522 rec timesplit & off, 0:05, 0:10, 0:15, 0:30, 1:00, & h:mm\\
523 & 2:00, 4:00, 6:00, 8:00, 16:00, 24:00 & \\
524 pre-recording time & off, 1 to 30 & s\\
525 rec directory & /recordings,current & N/A\\\bottomrule
Martin Arverd3d3e342006-03-15 10:56:14 +0000526 \end{longtable}
Martin Arverabe4e7e2006-03-08 15:57:30 +0000527\end{center}
Martin Arver8e8207f2006-02-11 00:57:17 +0000528
Martin Arverabe4e7e2006-03-08 15:57:30 +0000529\subsection{FM recorder specific settings}
530\begin{center}
531 \begin{tabular}{@{}lll@{}}\toprule
532 \textbf{Setting} & \textbf{Allowed Values} & \textbf{Unit}\\\midrule
533 Force FM mono & off,on & N/A\\\bottomrule
534 \end{tabular}
535\end{center}
Martin Arver8e8207f2006-02-11 00:57:17 +0000536
Martin Arverabe4e7e2006-03-08 15:57:30 +0000537\subsection{Example File}
538\begin{verbatim}
539 volume: 70
Martin Arverabe4e7e2006-03-08 15:57:30 +0000540 bass: 11
Martin Arverabe4e7e2006-03-08 15:57:30 +0000541 treble: 12
Martin Arverabe4e7e2006-03-08 15:57:30 +0000542 balance: 0
Martin Arverabe4e7e2006-03-08 15:57:30 +0000543 time format: 12hour
Martin Arverabe4e7e2006-03-08 15:57:30 +0000544 volume display: numeric
Martin Arverabe4e7e2006-03-08 15:57:30 +0000545 show files: supported
Martin Arverabe4e7e2006-03-08 15:57:30 +0000546 wps: /.rockbox/car.wps
Martin Arverabe4e7e2006-03-08 15:57:30 +0000547 lang: /.rockbox/afrikaans.lng
548\end{verbatim}
Martin Arver8e8207f2006-02-11 00:57:17 +0000549
550\section{\label{ref:PartISection1}Differences between binaries}
551There are 3 different types of firmware binaries from Rockbox website. Current Version, Daily Builds and Bleeding Edge.
552
553\begin{itemize}
Martin Arverd3d3e342006-03-15 10:56:14 +0000554\item The current version is the latest stable version developed by the Rockbox Team. It's free of known critical bugs. It is available from \url{http://www.rockbox.org/download/}.
555\item The Daily Build is a development version of Rockbox. It supports all new features and patches developed since last stable version. It may also contain bugs! This version is generated automatically every day and can be found at \url{http://www.rockbox.org/daily.shtml}.
556\item Bleeding edge builds are the same as the Daily build, but built from the latest development on each commit to the CVS repository. These builds are for people who want to test the code that developers just checked in.
Martin Arver8e8207f2006-02-11 00:57:17 +0000557\end{itemize}
Martin Arverd3d3e342006-03-15 10:56:14 +0000558
559\opt{recorder,recorderv2fm,ondo,player}{
Martin Arver8e8207f2006-02-11 00:57:17 +0000560There are binaries for different Jukebox models:
561
562\begin{itemize}
563\item \begin{itemize}
564\item The Player version is suitable for Archos Jukebox 5000, 6000 and
565all Studio models.
566\end{itemize}
567\end{itemize}
568\begin{itemize}
569\item \begin{itemize}
570\item If you have a recorder with cylindrically rounded bumpers, you
571need the ``regular'' recorder version.
572\item FM Recorders are models with a FM radio.
573\item The V2 recorder is a recorder in an FM Recorder form factor, but
574without radio.
575\item The 8mb version requires a hardware hack, where the RAM chips are
576replaced.
577\item The Ondio builds come with and without radio support, for the
578Ondio FM and SP respectively.
579\end{itemize}
580\end{itemize}
581If in doubt as to which version to use, the table on page
582\pageref{ref:Jukeboxtypetable} may be of assistance.
583
584Note: All references in this manual to
585``Recorder'' apply equally to the FM Recorder
586unless otherwise specified.
Martin Arverd3d3e342006-03-15 10:56:14 +0000587}
588
Martin Arver8e8207f2006-02-11 00:57:17 +0000589
590\section{\label{ref:FirmwareLoading}Firmware Loading}
Martin Arverd3d3e342006-03-15 10:56:14 +0000591\opt{player,recorder,recorderv2fm,ondio,player}{
Martin Arver8e8207f2006-02-11 00:57:17 +0000592When your Jukebox powers on, it loads the Archos firmware in ROM, which
593automatically checks your Jukebox hard disk's root folder for a file
594named \textbf{archos.mod} (on the player version) or
595\textbf{ajbrec.ajz} (on the recorder version). Note that Archos
596firmware can only read the first ten characters of each file name in
597this process, so don't rename your old firmware files with names like
598archos.mod.old and so on, because it's possible that the Jukebox will
599load a file other than the one you intended.
Martin Arverd3d3e342006-03-15 10:56:14 +0000600}
Martin Arver8e8207f2006-02-11 00:57:17 +0000601
602\section{\label{ref:PartISection4}Using ROLO (Rockbox loader)}
Martin Arverd3d3e342006-03-15 10:56:14 +0000603Rockbox is able to load and start another firmware file without rebooting. You just press PLAY on an \opt{recorder,recorderv2fm,ondio}{.ajz}\opt{player}{.mod}\opt{h1xx,h300}{.iriver}\opt{ipodnano,ipodvideo,ipodnano}{.ipod} file. This can be used to test new firmware versions without deleting your current version.
Martin Arver8e8207f2006-02-11 00:57:17 +0000604
Martin Arverd3d3e342006-03-15 10:56:14 +0000605\opt{recorder,recorderv2fm,ondio}{\input{advanced_topics/archos-flashing.tex}}