\subsection{PictureFlow}
\screenshot{plugins/images/ss-pictureflow}{PictureFlow}{img:pictureflow}
PictureFlow provides a visualisation of your albums with their associated cover
art. \opt{swcodec}{It is possible to start playback of the selected
album from PictureFlow. Playback will start from the selected track. The 
PictureFlow plugin will continue to run while your tracks are played.}

\opt{hwcodec}{
\note{PictureFlow is a visualisation only. It cannot be used to select and
play music.  Also, using this plugin will cause playback to stop.}
}

\subsubsection{Requirements}
PictureFlow uses both the album art (see \reference{ref:album_art}) and 
database (see \reference{ref:database}) features of Rockbox.
It is therefore important that these are working correctly before attempting
to use PictureFlow. In addition, there are some other points of which to be
aware:

  \begin{itemize}
    \item First an album index must be built, If you have a lot of albums/artists
    this could take a while, any button cancels the process and quits pictureflow.
    \item You don't have to wait for the albumart search to finish, you can press
    any button and the albumart will be searched in the background.
    \item Pictureflow checks for updated albumart (in background) on every restart
    \item PictureFlow will accept album art larger than the dimensions of the
    screen, but the larger the dimensions, the longer they will take to scale.
  \end{itemize}

\subsubsection{Keys}
    \begin{btnmap}
        \opt{scrollwheel,IRIVER_H10_PAD,PBELL_VIBE500_PAD,MPIO_HD300_PAD}{%
            \ActionStdPrev{} / \ActionStdNext
                &
            \opt{HAVEREMOTEKEYMAP}{
                &}
            Scroll through albums / track list
                \\
        }
        
        % only scroll wheel and `strip' targets use the same action in album and track list
        \nopt{scrollwheel,IRIVER_H10_PAD,PBELL_VIBE500_PAD,MPIO_HD300_PAD}{%
            % currently the M3 does not use buttons of the main unit which has no display
            \nopt{IAUDIO_M3_PAD,MPIO_HD200_PAD,touchscreen}{\ButtonLeft{} / \ButtonRight}
            \opt{MPIO_HD200_PAD}{FIXME}
            \opt{touchscreen}{\TouchMidLeft{} / \TouchMidRight}
                &
            \opt{HAVEREMOTEKEYMAP}{
                \opt{IAUDIO_M3_PAD,GIGABEAT_RC_PAD}{\ActionRCStdPrev{} / \ActionRCStdNext}
                &}
            Scroll through albums
                \\

            \nopt{IAUDIO_M3_PAD}{\ActionStdPrev{} / \ActionStdNext}
                &
            \opt{HAVEREMOTEKEYMAP}{
                % even though the M3 uses an Iaudio remote, mapping differs when used with M/X5
                \opt{IAUDIO_M3_PAD}{\ButtonRCLeft{} / \ButtonRCRight}
                \opt{GIGABEAT_RC_PAD}{\ButtonRCVolUp{} / \ButtonRCVolDown}
                &}
            Scroll through track list
                \\
        }

        \nopt{IAUDIO_M3_PAD}{%
            \nopt{ONDIO_PAD,IRIVER_H10_PAD,RECORDER_PAD,touchscreen,PBELL_VIBE500_PAD%
                 ,SANSA_FUZE_PAD,MPIO_HD200_PAD,MPIO_HD300_PAD,SAMSUNG_YH92X_PAD%
                 ,SAMSUNG_YH820_PAD}
                 {\ButtonSelect}
            \opt{ONDIO_PAD}{\ButtonUp} 
            \opt{IRIVER_H10_PAD,PBELL_VIBE500_PAD}{\ButtonRight}
            \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonFF}
            \opt{RECORDER_PAD}{\ButtonOn} 
            \opt{touchscreen}{\TouchCenter}
            \opt{SANSA_FUZE_PAD}{\ButtonRight}
            \opt{MPIO_HD200_PAD}{\ButtonFunc}
            \opt{MPIO_HD300_PAD}{\ButtonEnter}
        }
            &
        \opt{HAVEREMOTEKEYMAP}{
            \opt{IAUDIO_M3_PAD}{\ButtonRCPlay}
            \opt{GIGABEAT_RC_PAD}{\ButtonRCFF}
            &}
        Enter track list
            \nopt{ONDIO_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{%
            / Play album from selected track}
            \\
        % Ondio & Samsung YH use a different button in album list and track list
        \opt{ONDIO_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{%
            \opt{ONDIO_PAD}{\ButtonMenu}
            \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonPlay}
                &
            Play album from selected track in track list
                \\
        }
        
        \nopt{IAUDIO_M3_PAD,MPIO_HD200_PAD,MPIO_HD300_PAD,touchscreen,SANSA_FUZEPLUS_PAD}{\ButtonLeft}
        \opt{MPIO_HD200_PAD}{\ButtonRec}
        \opt{MPIO_HD300_PAD}{\ButtonMenu}
        \opt{SANSA_FUZEPLUS_PAD}{\ButtonLeft{} or \ButtonBack}
        \opt{touchscreen}{
            \opt{COWON_D2_PAD}{\ButtonPower{} or}
            \TouchBottomRight}
            &
        \opt{HAVEREMOTEKEYMAP}{
            \opt{IAUDIO_M3_PAD,GIGABEAT_RC_PAD}{\ActionRCStdCancel}
            &}
        Exit track list
            \\

        \nopt{IAUDIO_M3_PAD,SANSA_FUZEPLUS_PAD}{\ActionStdMenu}
        \nopt{IAUDIO_M3_PAD,SANSA_FUZEPLUS_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ActionStdMenu}
            \opt{SANSA_FUZEPLUS_PAD}{long \ButtonSelect}
            \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{or \ButtonRew}
            &
        \opt{HAVEREMOTEKEYMAP}{
            \opt{IAUDIO_M3_PAD,GIGABEAT_RC_PAD}{\ActionRCStdMenu}
            &}
        Enter menu
            \\

        \nopt{IAUDIO_M3_PAD}{%
            \opt{IRIVER_H100_PAD,IRIVER_H300_PAD,RECORDER_PAD,ONDIO_PAD}{\ButtonOff}
            \opt{IAUDIO_X5_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,SANSA_E200_PAD,SANSA_CLIP_PAD%
                ,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
            \opt{SANSA_C200_PAD,IRIVER_H10_PAD}{Long \ButtonPower}
            \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu}
            \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 
            \opt{PBELL_VIBE500_PAD}{\ButtonRec}
            \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{long \ButtonRew}
            \opt{MPIO_HD200_PAD}{FIXME}
            \opt{MPIO_HD300_PAD}{Long \ButtonMenu}
            \opt{touchscreen}{
                \opt{COWON_D2_PAD}{Long \ButtonPower{} or}
                \TouchBottomRight{} (in album view)}
        }
            &
        \opt{HAVEREMOTEKEYMAP}{
            \opt{IAUDIO_M3_PAD}{\ButtonRCRec}
            \opt{GIGABEAT_RC_PAD}{\ButtonRCRew}
            &}
        Exit PictureFlow
            \\
            
    \end{btnmap}

\subsubsection{Main Menu}
\begin{description}
  \item[Go to WPS.] Leave PictureFlow and enter the while playing screen.
  \opt{swcodec}{\item[Playback Control.] Control music playback from within the plugin.}
  \item[Settings.] Enter the settings menu.
  \item[Return.] Exit menu.
  \item[Quit.] Exit PictureFlow plugin.
\end{description}

\subsubsection{Settings Menu}

\begin{description}
  \item[Show FPS.] Displays frames per second on screen.
  \item[Spacing.] The distance between the front edges of the side slides, i.e. changes
  the degree of overlap of the side slides. A larger number means less overlap. Scales with zoom.
  \item[Centre margin.] The distance, in screen pixels, with zoom at 100, between
  the centre and side slides. Scales with zoom.
  \item[Number of slides.] Sets the number of slides at each side, including the
  centre slide. Therefore if set to 4, there will be 3 slides on the left,
  the centre slide, and then 3 slides on the right.
  \item[Zoom.] Changes the distance at which slides are rendered from the ``camera''.
  \item[Show album title.] Allows setting the album title / artist to be
  shown above or below the cover art, or not at all.
  \item[Resize Covers.] Set whether to automatically resize the covers or to leave
  them at their original size.
  \item[Rebuild cache.] Rebuild the PictureFlow cache. This is needed in order
  for PictureFlow to pick up new albums, and may occasionally be needed if albums
  are removed.
  \item[Update cache.] Update the PictureFlow cache. New albumart will be added.
  \item[WPS integration.] Integrate pictureflow with the While Playing Screen.
  \item[Backlight.] Force backlight on while running pictureflow.
\end{description}
