% $Id$ %
\section{\label{ref:database}Database}

\subsection{Introduction}
This chapter describes the Rockbox music database system. Using the information
contained in the tags (ID3v1, ID3v2%
  \opt{SWCODEC}{, Vorbis Comments, Apev2, etc.}%
) in your audio files, Rockbox builds and maintains a database of the music
files on your player and allows you to browse them by Artist, Album and Genre.

\subsection{Initialising the database}
Before you use the database for the first time, you must initialise it by using
the \setting{Initialize Now} function in the \setting{Database Menu}
(\setting{General Settings $\rightarrow$ File View $\rightarrow$ Database})
, which is described in the following section.

\subsection{\label{ref:databasemenu}The Database Menu}

\begin{description}
  \opt{SWCODEC}{
  \item[Load To Ram.]
    The database can either be kept on disk (to save memory), or
    loaded into RAM (for fast browsing). Setting this to \setting{Yes} loads
    the database to RAM, allowing faster browsing and searching. Setting this
    option to \setting{No} keeps the database on the disk, meaning slower 
    browsing but it does not use extra RAM and saves some battery on boot up. 
    
    \note{If you browse your music frequently using the database, you should
      load to RAM, as this will reduce the overall battery consumption because
      the disk will not need to spin on each search.}
  }
  
\item[Auto Update.]
  If \setting{Auto update} is set to \setting{on}, each time the \dap{}
  boots, the database will automatically be updated.
  \opt{SWCODEC}{
    \note{The \setting{Auto Update} will only check for deleted files if the
      \setting{Directory Cache} (\setting{General Settings $\rightarrow$
      System Options $\rightarrow$ Disk $\rightarrow$ Directory Cache}) is
      enabled. \setting{Update now} includes that check whether dircache has
      been enabled or not.}
  }%
  \opt{MASCODEC}{\setting{Auto Update} does not detect deleted files. To remove
    deleted files from the database you need to run \setting{Update Now}.}%

\item[Initialize Now.]
  Before you use the database for the first time, you must Initialize it by
  using the \setting{Initialize Now} function in the \setting{Database
    Menu}.
  \warn{\setting{Initialize Now} removes all database files (removing
    runtimedb data also) and rebuilds the database from scratch.}
  This can take quite a while depending on the number of music files on your
  \dap{}, and may require a restart to allow the files to be committed to the
  database.

  The database initialisation happens in the background, so you can continue
  to listen to music while the database is being initialised. If you shut
  down your player during initialisation, the database building process will
  continue next time you turn it on.
  
\item[Update Now.]
  \setting{Update now} causes the database to detect new and deleted files
  \opt{SWCODEC}{
    \note{Unlike the \setting{Auto Update} function, \setting{Update Now}
      will update the database regardless of whether the \setting{Directory Cache}
      is enabled. Thus, an update using \setting{Update now} may take a long
      time.
    }
  }
  Unlike \setting{Initialize Now}, the \setting{Update Now} function
  does not remove runtime database information.
  
\item[Gather Runtime Data (Experimental).]
  When enabled, this option allows the most played, unplayed and most recently
  played tracks to be logged and scored.
  
\item[Export modifications.]
  This allows for the runtime data to be exported into \\
  \fname{/.rockbox/database\_changelog.txt}, which backs up the runtime data in
  ASCII format. This is needed when database structures change, because new
  code cannot read old database code. But, all modifications
  exported to ASCII format should be readable by all database versions.
  
\item[Import modifications.]
  Allows the \fname{/.rockbox/database\_changelog.txt} backup to be 
  conveniently loaded into the database. This is performed automatically when
  the database is initialised.
  
\end{description}

\subsection{Using the database}
Once the database has been initialised, you can browse your music by Artist, 
Album, Genre and Song Name. To use the database, change the 
\setting{Show Files} show mode by changing the \setting{General Settings 
$\rightarrow$ File View $\rightarrow$ Show files} option to 
\setting{Database}. This disables the \setting{File Browser} and instead
allows you to view files using the information in the database.\\

\note{You may need to increase the value of the \setting{Max files in dir 
browser} setting (\setting{General Settings $\rightarrow$ System $\rightarrow$ 
Limits}) in order to view long lists of tracks in the ID3 database browser.\\

There is no option to turn off database completely. If you do not want
to use it just don't do the initial build of the database and do not load it
to RAM.}
%
\begin{table}
\begin{center}
  \begin{tabularx}{.75\textwidth}{XX}%
  \toprule%
  \textbf{Supported Tags}   & \textbf{Unsupported Tags} \\
  \midrule
  Artist           & Comment \\
  Album            & Performer\\
  Bitrate          & \\
  Composer         & \\
  Genre            & \\
  Length           & \\
  Title            & \\
  Track Number     & \\
  \bottomrule
  \end{tabularx}
\end{center}
\end{table}
