forked from len0rd/rockbox
new plugin: FS#10559 - lrcplayer: a plugin to view .lrc file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26574 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
57dcfe0eee
commit
c5b8394ea3
6 changed files with 3132 additions and 0 deletions
|
@ -44,6 +44,7 @@ jpeg,viewers
|
|||
keybox,apps
|
||||
lamp,apps
|
||||
logo,demos
|
||||
lrcplayer,apps
|
||||
lua,viewers
|
||||
fractals,demos
|
||||
matrix,demos
|
||||
|
|
|
@ -6,6 +6,7 @@ dict.c
|
|||
jackpot.c
|
||||
keybox.c
|
||||
logo.c
|
||||
lrcplayer.c
|
||||
mosaique.c
|
||||
properties.c
|
||||
random_folder_advance_config.c
|
||||
|
|
2953
apps/plugins/lrcplayer.c
Normal file
2953
apps/plugins/lrcplayer.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -12,6 +12,9 @@ rvf,viewers/video,4
|
|||
mp3,viewers/vbrfix,5
|
||||
m3u,viewers/search,-
|
||||
txt,viewers/sort,-
|
||||
lrc,apps/lrcplayer,1
|
||||
lrc8,apps/lrcplayer,1
|
||||
snc,apps/lrcplayer,1
|
||||
gb,viewers/rockboy,6
|
||||
gbc,viewers/rockboy,6
|
||||
sgb,viewers/rockboy,6
|
||||
|
|
172
manual/plugins/lrcplayer.tex
Normal file
172
manual/plugins/lrcplayer.tex
Normal file
|
@ -0,0 +1,172 @@
|
|||
% $Id$ %
|
||||
\subsection{Lrcplayer}
|
||||
% \screenshot{plugins/images/ss-lrcplayer}{Lrcplayer}{}
|
||||
This plugin displays lyrics in .lrc file (and some other formats) synchronized
|
||||
with the song being played.
|
||||
|
||||
\subsubsection{Supproted file types}
|
||||
\begin{enumerate}
|
||||
\item .lrc
|
||||
\item .lrc8
|
||||
\item .snc
|
||||
\item .txt
|
||||
\item id3v2 SYLT or USLT tag in mp3 file
|
||||
\end{enumerate}
|
||||
|
||||
.lrc8 file is equivalent to .lrc files except it is read that
|
||||
encoded by UTF-8 nevertheless the encoding setting.
|
||||
|
||||
Lyrics3 tag is not supported.
|
||||
|
||||
\subsubsection{Supported tags and formats for .lrc files}
|
||||
following tags are supported:
|
||||
\begin{verbatim}
|
||||
[ti:title]
|
||||
[ar:artist]
|
||||
[offset:offset (msec)]
|
||||
\end{verbatim}
|
||||
|
||||
each line should look like one of these:
|
||||
\begin{verbatim}
|
||||
[time tag]line
|
||||
[time tag]...[time tag]line
|
||||
[time tag]<word time tag>word<word time tag>...<word time tag>
|
||||
\end{verbatim}
|
||||
|
||||
time tag must be in one of the formats: [mm:ss], [mm:ss.xx], or [mm:ss.xxx]
|
||||
|
||||
where mm is minuts, ss is seconds, xx is tenth of millisecounds, xxx is millisecounds.
|
||||
|
||||
e.g. [01:23], [01:23.45].
|
||||
|
||||
any other tags and lines without time tags are ignored.
|
||||
|
||||
\subsubsection{Searching lyrics file}
|
||||
the plugin checks following directories for lyrics file.
|
||||
\opt{swcodec}{if no lyrics file is found and the audio file is a mp3,
|
||||
it also checks SYLT or USLT tag in id3v2.}
|
||||
|
||||
\begin{enumerate}
|
||||
\item the directory of the audio file and it's parent directories.
|
||||
\item subdirecory named ``Lylics'' of each directory in 1.
|
||||
\item almost same as 1, but ``/Lylics'' is prepended to the path.
|
||||
\end{enumerate}
|
||||
``Lylics'' can be customized.
|
||||
|
||||
e.g.
|
||||
|
||||
if the audio file currently playing is /Musics/Artist/Album/Title.mp3,
|
||||
then following files will be tried in this order.
|
||||
|
||||
ext is one in supproted file types list, tried in same order of the list.
|
||||
|
||||
\begin{verbatim}
|
||||
/Musics/Artist/Album/Title.ext
|
||||
/Musics/Artist/Title.ext
|
||||
/Musics/Title.ext
|
||||
/Title.ext
|
||||
/Musics/Artist/Album/Lyrics/Title.ext
|
||||
/Musics/Artist/Lyrics/Title.ext
|
||||
/Musics/Lyrics/Title.ext
|
||||
/Lyrics/Title.ext
|
||||
/Lyrics/Musics/Artist/Album/Title.ext
|
||||
/Lyrics/Musics/Artist/Title.ext
|
||||
/Lyrics/Musics/Title.ext
|
||||
/Lyrics/Title.ext
|
||||
\end{verbatim}
|
||||
|
||||
\subsubsection{Controls}
|
||||
\begin{table}
|
||||
\begin{btnmap}{}{}
|
||||
\ActionWpsVolUp{} / \ActionWpsVolDown
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsVolUp{} / \ActionRCWpsVolDown}
|
||||
& Volume up/down.\\
|
||||
%
|
||||
\ActionWpsSkipPrev
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsSkipPrev}
|
||||
& Go to beginning of track, or if pressed while in the
|
||||
first seconds of a track, go to the previous track.\\
|
||||
%
|
||||
\ActionWpsSeekBack
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsSeekBack}
|
||||
& Rewind in track.\\
|
||||
%
|
||||
\ActionWpsSkipNext
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsSkipNext}
|
||||
& Go to the next track.\\
|
||||
%
|
||||
\ActionWpsSeekFwd
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsSeekFwd}
|
||||
& Fast forward in track.\\
|
||||
%
|
||||
\ActionWpsPlay
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsPlay}
|
||||
& Toggle play/pause.\\
|
||||
%
|
||||
\ActionWpsStop \nopt{ONDIO_PAD}{or \ActionWpsBrowse}
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsStop or \ActionRCWpsBrowse}
|
||||
& Exit the plugin.\\
|
||||
%
|
||||
\ActionWpsContext
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsContext}
|
||||
& Enter timetag editor.\\
|
||||
%
|
||||
\opt{ONDIO_PAD}{\ActionWpsBrowse}%
|
||||
\nopt{ONDIO_PAD}{\ActionWpsMenu}%
|
||||
\opt{HAVEREMOTEKEYMAP}{& \ActionRCWpsMenu}
|
||||
& Enter \setting{Lrcplayer Menu}.\\
|
||||
%
|
||||
\end{btnmap}
|
||||
\end{table}
|
||||
|
||||
\subsubsection{Lrcplayer Menu}
|
||||
|
||||
\begin{description}
|
||||
\item[Theme settings.] change theme related settings.
|
||||
\begin{description}
|
||||
\opt{lcd_bitmap}{%
|
||||
\item[Show Statusbar.] show / hide statusbar.
|
||||
\item[Display Title.] show / hide title of track.
|
||||
}%
|
||||
\item[Display Time.] show / hide current time.
|
||||
\opt{lcd_color}{%
|
||||
\item[Inactive Color.] set color of inactive part of lyrics.
|
||||
}%
|
||||
\item[Backlight Force On.] don't turn off backlight while in displaying
|
||||
lyrics screen.
|
||||
\end{description}
|
||||
\opt{lcd_bitmap}{%
|
||||
\item[Display Settings.] change displaying of lyrics.
|
||||
\begin{description}
|
||||
\item[Wrap.] breaks lines at white space.
|
||||
\item[Wipe.] wipe text.
|
||||
\item[Align.] align text to left, center, or right.
|
||||
\item[Activate Only Current Line.]
|
||||
activate only current line or current line and previous lines.
|
||||
\end{description}
|
||||
}%
|
||||
\item[Lyrics Settings.] change loading of lyrics.
|
||||
\begin{description}
|
||||
\item[Encoding.] sets the codepage in the plugin.
|
||||
\opt{swcodec}{%
|
||||
\item[Read ID3 tag.] read lyrics from id3 tag in mp3 file.
|
||||
}%
|
||||
\item[Lrc Directry.] set name of a directory where lyrics files are sotred,
|
||||
63 bytes at maximum.
|
||||
\end{description}
|
||||
\item[Playback Control.] Show playback control menu.
|
||||
\item[Time Offset.] set offset for time tags of the lyrics currently loaded.
|
||||
\item[Timetag Editor.] Enter timetag editor.
|
||||
\item[Quit.] Exit the plugin.
|
||||
\end{description}
|
||||
|
||||
\subsubsection{Editing time tag}
|
||||
|
||||
The time when to dispaly the line can be edited with timetag editor.
|
||||
Selecting line changes its time to current position of the song.
|
||||
To set a specific time or to adjust the time, press \ActionStdContext to
|
||||
bring up a screen for adjusting the time.
|
||||
Changes will be saved automatically when the song is changed.
|
||||
|
||||
Edting words in lyrics is not supported.
|
||||
|
|
@ -234,6 +234,8 @@ option from the \setting{Context Menu} (see \reference{ref:Contextmenu}).}
|
|||
|
||||
\opt{HAVE_BACKLIGHT}{\input{plugins/lamp.tex}}
|
||||
|
||||
\opt{lcd_bitmap}{\input{plugins/lrcplayer.tex}}
|
||||
|
||||
{\input{plugins/md5sum.tex}}
|
||||
|
||||
{\input{plugins/metronome.tex}}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue