68e40170f2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10084 a1c6a512-1295-4272-9138-f99709370657
325 lines
14 KiB
TeX
325 lines
14 KiB
TeX
\chapter{Advanced Topics}
|
|
|
|
\section{\label{ref:CustomisingUI}Customising the userinterface}
|
|
\subsection{\label{ref:GettingExtras}Getting Extras (Fonts, Languages)}
|
|
Rockbox 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 have been created, then they will be found in the font
|
|
package at \url{http://www.rockbox.org/daily.shtml}. The latest \fname{.lng}
|
|
files are always included in the daily Rockbox builds.
|
|
|
|
\opt{HAVE_LCD_BITMAP}{
|
|
\subsection{\label{ref:Loadingfonts}Loading Fonts}
|
|
Rockbox can load fonts dynamically. Simply copy the \fname{.fnt} file to the
|
|
\dap\ and ``play'' them in the directory browser or select
|
|
\setting{General Settings $\rightarrow$ Fonts} from the Main Menu.
|
|
If you want a font to be loaded automatically every time you start up,
|
|
it must be located in the \fname{/.rockbox } folder and the filename
|
|
must be at most 24 characters long.
|
|
\warn{Advanced Users Only: Any BDF font file up to 16 pixels high should
|
|
be usable with Rockbox. To convert from \fname{.bdf} to \fname{.fnt}, use
|
|
the \fname{convbdf} tool. This tool can be found in the \fname{tools}
|
|
directory of the Rockbox source code.}
|
|
}
|
|
|
|
\subsection{\label{ref:Loadinglanguages}Loading Languages}
|
|
Rockbox can load language files at runtime. Simply copy the \fname{.lng} file
|
|
\emph{(do not use the .lang file)} to the \dap\ and ``play'' it in the
|
|
Rockbox directory browser or select \setting{General Settings $\rightarrow$
|
|
Languages }from the Main Menu.
|
|
|
|
\note{If you want a language to be loaded automatically every time you start
|
|
up, it must be located in the \fname{/.rockbox }folder and the filename must
|
|
be a maximum of 24 characters long.}
|
|
|
|
If your language is not yet supported and you want to write your own language
|
|
file find the instructions on the Rockbox website:
|
|
\wikilink{HowtoUpdateLangfile}
|
|
|
|
\section{\label{ref:ConfiguringtheWPS}Configuring the WPS}
|
|
|
|
\subsection{WPS -- General Info}
|
|
|
|
\begin{description}
|
|
\item[Description: ] The WPS or While Playing Screen is the name used to describe
|
|
the information displayed on the \daps\ screen whilst an audio track is
|
|
being played. The default WPS is a relatively simple screen displaying
|
|
Track name, Artist, Album etc. in the default font as a purely text based
|
|
layout. There are a number of WPS files included in Rockbox, and you can
|
|
load one of these at anytime by selecting it\dots\\
|
|
\setting{General Settings $\rightarrow$ Display $\rightarrow$ Browse .wps files}\\
|
|
\opt{h1xx,h300}{There is a related option to browse \fname{.rwps} files for
|
|
\daps\ with LCD remote controls installed. This will load a similar WPS
|
|
screen for the remote but with usually a simpler and more concise layout.}
|
|
|
|
\note{``Playing'' a \fname{.wps} from the file browser has the same effect.}
|
|
|
|
\item [File Location: ]Custom WPS files may be located anywhere on the drive.
|
|
The only restriction is that they must end in \fname{.wps}. When you ``play''
|
|
a \fname{.wps} file, it will be used for future WPS screens, and if the
|
|
``played'' \fname{.wps} file is located in the \fname{/.rockbox} folder, it
|
|
will be remembered and used after reboot. The \fname{.wps} filename must be no
|
|
more than 24 characters long for it to be remembered.
|
|
\end{description}
|
|
|
|
\subsection{\label{ref:CreateYourOwnWPS}WPS -- Build Your Own}
|
|
Quite 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 \fname{.txt}
|
|
file, save it as a \fname{.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. See appendix \ref{ref:wps_tags} for all
|
|
the tags that are available.
|
|
|
|
\begin{description}
|
|
\item All characters not preceded by \% are displayed as typed.
|
|
\item Lines beginning with \# are comments and will be ignored.
|
|
\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.
|
|
\end{description}
|
|
|
|
\subsubsection{Conditional Tags}
|
|
|
|
\begin{description}
|
|
\item[If/else: ]
|
|
Syntax: \config{\%?xx{\textless}true{\textbar}false{\textgreater}}\\
|
|
|
|
If the tag specified by ``\config{xx}'' has a value, the text between the
|
|
``\config{{\textless}}'' and the ``\config{{\textbar}}'' is displayed (the true
|
|
part), else the text between the ``\config{{\textbar}}'' and the
|
|
``\config{{\textgreater}}'' is displayed (the false part).
|
|
The else part is optional, so the ``\config{{\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 \config{\%} commands, including conditionals.
|
|
|
|
\item[Enumerations: ]
|
|
Syntax: \config{\%?xx{\textless}alt1{\textbar}alt2{\textbar}alt3{\textbar}...{\textbar}else{\textgreater}}\\
|
|
|
|
For tags with multiple values, like Play status, the conditional can hold a
|
|
list of alternatives, one for each value the tag can have.
|
|
|
|
Example enumeration:
|
|
\begin{example}
|
|
\%?mp{\textless}Stop{\textbar}Play{\textbar}Pause{\textbar}Ffwd{\textbar}Rew{\textgreater}
|
|
\end{example}
|
|
|
|
The 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.
|
|
\end{description}
|
|
|
|
\subsubsection{Next Song info}
|
|
You can display information about the next song -- the song that is
|
|
about to play after the one currently playing (unless you change the
|
|
plan).
|
|
|
|
If you use the upper--case versions of the
|
|
three tags: \config{F}, \config{I} and \config{D}, they will instead refer to
|
|
the next song instead of the current one. Example: \config{\%Ig} is the genre
|
|
name used in the next song and \config{\%Ff} is the mp3 frequency.
|
|
|
|
\note{The next song information WILL NOT be available at all
|
|
times, but will most likely be available at the end of a song. We
|
|
suggest you use the conditional display tag a lot when displaying
|
|
information about the next song!}
|
|
|
|
\subsubsection{Alternating sublines}
|
|
|
|
It is possible to group items on each line into 2 or more groups or
|
|
``sublines''. Each subline will be displayed in succession on the line for a
|
|
specified time, alternating continuously through each defined subline.
|
|
|
|
Items on a line are broken into sublines with the semicolon
|
|
'\config{;}' character. The display time for
|
|
each subline defaults to 2 seconds unless modified by using the
|
|
'\config{\%t}' tag to specify an alternate
|
|
time (in seconds and optional tenths of a second) for the subline to be
|
|
displayed.
|
|
|
|
Subline related special characters and tags:
|
|
|
|
\config{;} : Split items on a line into separate sublines
|
|
|
|
\config{\%t} : Set the subline display time. The
|
|
'\config{\%t}' is followed by either integer
|
|
seconds (\config{\%t5}), or seconds and tenths of a second (\config{\%t3.5}).
|
|
|
|
Each alternating subline can still be optionally scrolled while it is
|
|
being displayed, and scrollable formats can be displayed on the same
|
|
line with non{}-scrollable formats (such as track elapsed time) as long
|
|
as they are separated into different sublines.
|
|
|
|
Example subline definition:
|
|
|
|
\begin{example}
|
|
%s%t4%ia;%s%it;%t3%pc %pr : Display id3 artist for 4 seconds,
|
|
Display id3 title for 2 seconds,
|
|
Display current and remaining track time
|
|
for 3 seconds,
|
|
repeat...
|
|
\end{example}
|
|
|
|
Conditionals 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.
|
|
|
|
Example subline with conditionals:
|
|
|
|
\begin{example}
|
|
%?it{\textless}%t8%s%it{\textbar}%s%fn{\textgreater};%?ia{\textless}%t3%s%ia{\textbar}%t0{\textgreater}\\
|
|
\end{example}
|
|
|
|
The format above will do two different things depending if ID3 tags are
|
|
present. If the ID3 artist and title are present:
|
|
|
|
Display id3 title for 8 seconds,\\
|
|
|
|
Display id3 artist for 3 seconds,\\
|
|
|
|
repeat...\\
|
|
|
|
If the ID3 artist and title are not present:\\
|
|
|
|
Display the filename continuously.\\
|
|
|
|
Note 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.
|
|
|
|
|
|
\subsubsection{Using Images}
|
|
You can have as many as 52 images in your WPS. There are various ways of
|
|
displaying images:
|
|
\begin{enumerate}
|
|
\item Load and always show the image, using the \config{\%x} tag
|
|
\item Preload the image with \config{\%xl} and show it with \config{\%xd}.
|
|
This way you can have your images displayed conditionally.
|
|
\opt{HAVE_LCD_COLOR}{
|
|
\item Load an image and show as backdrop using the \config{\%X} tag. The
|
|
image must be of the same exact dimensions as your display.
|
|
}
|
|
\end{enumerate}
|
|
|
|
\optv{HAVE_LCD_COLOR}{
|
|
Example on background image use:
|
|
\begin{example}
|
|
%X|background.bmp|\\
|
|
\end{example}
|
|
The image with filename \fname{background.bmp} is loaded and used in the WPS.
|
|
}
|
|
|
|
Example on bitmap preloading and use:
|
|
\begin{example}
|
|
\%x|a|static\_icon.bmp|50|50|\\
|
|
\%xl|b|rep\_off.bmp|16|64|\\
|
|
\%xl|c|rep\_all.bmp|16|64|\\
|
|
\%xl|d|rep\_one.bmp|16|64|\\
|
|
\%xl|e|rep\_shuffle.bmp|16|64|\\
|
|
\%?mm<%xdb|%xdc|%xdd|%xde>\\
|
|
\end{example}
|
|
Four images at the same x and y position are preloaded in the example. Which
|
|
image to display is determined by the \config{\%mm} tag (the repeat mode).
|
|
|
|
\subsubsection{Example File}
|
|
\begin{example}
|
|
\%s\%?in<\%in - >\%?it<\%it|\%fn> \%?ia<[\%ia\%?id<, \%id>]>
|
|
\%pb\%pc/\%pt
|
|
\end{example}
|
|
That is, ``tracknum -- title [artist, album]'', where most fields are only
|
|
displayed if available. Could also be rendered as ``filename'' or ``tracknum --
|
|
title [artist]''.
|
|
|
|
%\opt{HAVE_LCD_BITMAP}{
|
|
% \begin{verbatim}
|
|
% %s%?it<%?in<%in. |>%it|%fn>
|
|
% %s%?ia<%ia|%?d2<%d2|(root)>>
|
|
% %s%?id<%id|%?d1<%d1|(root)>> %?iy<(%iy)|>
|
|
%
|
|
% %al%pc/%pt%ar[%pp:%pe]
|
|
% %fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>
|
|
% %pb
|
|
% %pm
|
|
% % \end{verbatim}
|
|
%}
|
|
|
|
\section{\label{ref:SettingsFile}Making your own settings file}
|
|
A \fname{.cfg} file is used to load settings from a plain text file. A
|
|
\fname{.cfg} file may reside anywhere on the hard disk. The only restriction is
|
|
that the filename must end in \fname{.cfg}
|
|
|
|
Hint: Use the \setting{Write .cfg file} feature (\setting{Main Menu$\rightarrow$
|
|
General Settings}) to save the current settings, then use a text editor to
|
|
customize the settings file. See appendix \ref{ref:config_file_options}
|
|
for the full reference of available options.
|
|
|
|
\subsection{Format Rules}
|
|
|
|
\begin{itemize}
|
|
\item Format: \config{setting: value}
|
|
\item Each setting must be on a separate line.
|
|
\item Lines starting with \config{\#} are ignored.
|
|
\end{itemize}
|
|
|
|
Example of a configuration file:
|
|
\begin{example}
|
|
# Example configuration file
|
|
volume: 70
|
|
bass: 11
|
|
treble: 12
|
|
balance: 0
|
|
time format: 12hour
|
|
volume display: numeric
|
|
show files: supported
|
|
wps: /.rockbox/car.wps
|
|
lang: /.rockbox/afrikaans.lng
|
|
\end{example}
|
|
|
|
\section{\label{ref:PartISection1}Differences between binaries}
|
|
There are 3 different types of firmware binaries from Rockbox website:
|
|
Current Version, Daily Builds and Bleeding Edge.
|
|
|
|
\begin{description}
|
|
\item[Current Version.] 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/}.
|
|
\item[Daily Builds.] 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}.
|
|
\item[Bleeding Edge.] 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.
|
|
\end{description}
|
|
\note{If you don't want to get undefined behaviour from your \dap\ you should
|
|
really stick to the Current Version. Development versions may have lots of
|
|
changes so they may behave completely different than described in this manual,
|
|
introduce new (and maybe annoying) bugs and similar. If you want to help the
|
|
project development you can try development builds and help by reporting bugs,
|
|
feature requests and so so. But be aware that using a development build may
|
|
eat also some more time.}
|
|
|
|
|
|
\section{\label{ref:FirmwareLoading}Firmware Loading}
|
|
\opt{player,recorder,recorderv2fm,ondio}{
|
|
When your \dap\ powers on, it loads the Archos firmware in ROM, which
|
|
automatically checks your Jukebox hard disk's root folder for a file named
|
|
\firmwarefilename. Note that Archos firmware can only read the first
|
|
ten characters of each filename in this process, so don't rename your old
|
|
firmware files with names like \firmwarefilename.\fname{old} and so on,
|
|
because it's possible that the \dap\ will load a file other than the one you
|
|
intended.
|
|
}
|
|
|
|
\section{\label{ref:using_rolo}Using ROLO (Rockbox loader)}
|
|
Rockbox is able to load and start another firmware file without rebooting.
|
|
You just press PLAY on an%
|
|
\opt{recorder,recorderv2fm,ondio}{\fname{.ajz}}
|
|
\opt{player}{.mod}\opt{h1xx,h300}{\fname{.iriver}}
|
|
\opt{ipodnano,ipodvideo,ipodmini,ipod4g,ipodcolor}{\fname{.ipod}}%
|
|
-file. This can be used to test new firmware versions without deleting your
|
|
current version.
|
|
|
|
\opt{recorder,recorderv2fm,ondio}{\input{advanced_topics/archos-flashing.tex}}
|