Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 1 | % $Id$ % |
Alex Parker | 40782d5 | 2010-05-13 08:13:31 +0000 | [diff] [blame] | 2 | \chapter{\label{ref:wps_tags}Theme Tags} |
| 3 | Themeing is discussed in detail in section \reference{ref:ConfiguringtheWPS}, |
| 4 | what follows is a list of the available tags. |
| 5 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 6 | \section{Status Bar} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 7 | \begin{tagmap} |
Alex Parker | 0c1f3e6 | 2010-03-21 10:20:19 +0000 | [diff] [blame] | 8 | \config{\%we} & Display Status Bar\\ |
| 9 | \config{\%wd} & Hide Status Bar\\ |
| 10 | \config{\%wi} & Display the inbuilt Status Bar in the current viewport\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 11 | \end{tagmap} |
| 12 | These tags override the player setting for the display of the status bar. |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 13 | They must be noted on their own line (which will not be shown in the WPS). |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 14 | |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 15 | \section{Information from the track tags} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 16 | \begin{tagmap} |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 17 | \config{\%ia} & Artist\\ |
| 18 | \config{\%ic} & Composer\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 19 | \config{\%iA} & Album Artist\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 20 | \config{\%id} & Album Name\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 21 | \config{\%iG} & Grouping\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 22 | \config{\%ig} & Genre Name\\ |
| 23 | \config{\%in} & Track Number\\ |
| 24 | \config{\%it} & Track Title\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 25 | \config{\%iC} & Comment\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 26 | \config{\%iv} & ID3 version (1.0, 1.1, 2.2, 2.3, 2.4, or empty if not an ID3 tag)\\ |
| 27 | \config{\%iy} & Year\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 28 | \config{\%ik} & Disc Number\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 29 | \end{tagmap} |
| 30 | Remember that this information is not always available, so use the |
| 31 | conditionals to show alternate information in preference to assuming. |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 32 | |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 33 | These tags, when written with a capital ``I'' (e.g. \config{\%Ia} or \config{\%Ic}), |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 34 | show the information for the next song to be played. |
| 35 | |
| 36 | \nopt{lcd_charcell}{ |
| 37 | \section{Viewports} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 38 | \begin{tagmap} |
| 39 | \nopt{lcd_non-mono}{% |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 40 | \config{\%V(x,y,[width],\tabnlindent[height],[font])} |
Alexander Levin | 6d4637c | 2010-03-27 15:52:27 +0000 | [diff] [blame] | 41 | & See section \ref{ref:Viewports}\\} |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 42 | |
| 43 | \nopt{lcd_color}{\opt{lcd_non-mono}{% |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 44 | \config{\%V(x,y,[width],\tabnlindent[height],[font])}\newline |
| 45 | \config{\%Vf([fgshade])}\newline |
| 46 | \config{\%Vb([bgshade])} |
Alexander Levin | 6d4637c | 2010-03-27 15:52:27 +0000 | [diff] [blame] | 47 | & See section \ref{ref:Viewports}\\}} |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 48 | |
| 49 | \opt{lcd_color}{% |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 50 | \config{\%V(x,y,[width],\tabnlindent[height],[font])}\newline |
| 51 | \config{\%Vf([fgcolour])}\newline |
| 52 | \config{\%Vb([bgcolour])} |
Alexander Levin | 6d4637c | 2010-03-27 15:52:27 +0000 | [diff] [blame] | 53 | & See section \ref{ref:Viewports}\\} |
Alex Parker | ecb2111 | 2010-08-02 21:21:33 +0000 | [diff] [blame] | 54 | |
| 55 | \config{\%Vl('identifier',\newline\dots)} & Preloads a viewport for later |
| 56 | display. `identifier' is a single lowercase letter (a-z) and the `\dots' |
| 57 | parameters use the same logic as the \%V tag explained above.\\ |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 58 | |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 59 | \config{\%Vd('identifier')} & Display the `identifier' viewport. E.g. |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 60 | \config{\%?C<\%Vd(a)|\%Vd(b)>} |
Alexander Levin | ac00d26 | 2010-03-26 22:12:39 +0000 | [diff] [blame] | 61 | will show viewport `a' if album art is found, and `b' if it isn't.\\ |
Alex Parker | 6d549df | 2010-05-13 08:13:37 +0000 | [diff] [blame] | 62 | |
Alex Parker | 49f2fce | 2010-06-20 16:27:41 +0000 | [diff] [blame] | 63 | \config{\%Vi('label',\dots)} & |
Alexander Levin | 9f95a0b | 2010-05-13 08:41:01 +0000 | [diff] [blame] | 64 | Declare a Custom UI Viewport. The `\dots' parameters use the same logic as |
Alex Parker | 6d549df | 2010-05-13 08:13:37 +0000 | [diff] [blame] | 65 | the \config{\%V} tag explained above. See section \ref{ref:Viewports}.\\ |
| 66 | |
Alex Parker | 49f2fce | 2010-06-20 16:27:41 +0000 | [diff] [blame] | 67 | \config{\%VI('label')} & Set the Info Viewport to use the viewport called |
Alex Parker | 6d549df | 2010-05-13 08:13:37 +0000 | [diff] [blame] | 68 | label, as declared with the previous tag.\\ |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 69 | \end{tagmap} |
Alex Parker | 1b0c77f | 2010-06-20 12:58:09 +0000 | [diff] [blame] | 70 | |
| 71 | \section{Additional Fonts} |
| 72 | \begin{tagmap} |
Alex Parker | 49f2fce | 2010-06-20 16:27:41 +0000 | [diff] [blame] | 73 | \config{\%Fl('id',filename)} & See section \ref{ref:multifont}.\\ |
Alex Parker | 1b0c77f | 2010-06-20 12:58:09 +0000 | [diff] [blame] | 74 | \end{tagmap} |
| 75 | |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 76 | } |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 77 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 78 | \section{Power Related Information} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 79 | \begin{tagmap} |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 80 | \config{\%bl} & Numeric battery level in percents. |
| 81 | Can also be used in a conditional: |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 82 | \config{\%?bl<-1|0|1|2|\ldots|N>}, |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 83 | where the value $-1$ is used when the battery level isn't |
Magnus Holmgren | 0b92158 | 2010-08-12 09:50:29 +0000 | [diff] [blame] | 84 | known (it usually is). The value $N$ is only used when the |
| 85 | battery level is exactly 100 percent. |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 86 | An image can also be used, the proportion of the image |
Magnus Holmgren | 0b92158 | 2010-08-12 09:50:29 +0000 | [diff] [blame] | 87 | shown corresponds to the battery level: |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 88 | \config{\%bl(x,y,[width],[height],image.bmp)}\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 89 | \config{\%bv} & The battery level in volts\\ |
| 90 | \config{\%bt} & Estimated battery time left\\ |
| 91 | \config{\%bp} & ``p'' if the charger is connected (only on targets |
| 92 | that can charge batteries)\\ |
| 93 | \config{\%bc} & ``c'' if the unit is currently charging the battery (only on |
| 94 | targets that have software charge control or monitoring)\\ |
| 95 | \config{\%bs} & Remaining time of the sleep timer (if it is set)\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 96 | \end{tagmap} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 97 | |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 98 | \section{Information about the file} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 99 | \begin{tagmap} |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 100 | \config{\%fb} & File Bitrate (in kbps)\\ |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 101 | \config{\%fc} & File Codec (e.g. ``MP3'' or ``FLAC''). |
| 102 | This tag can also be used in a conditional tag: |
| 103 | \config{\%?fc<mp1|mp2|mp3|aiff|wav|ogg|\newline |
| 104 | flac|mpc|a52|wavpack|alac|aac|shn|sid|adx|nsf|\newline |
| 105 | speex|spc|ape|wma|mod|sap|unknown>}. |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 106 | The codec order is as follows: MP1, MP2, MP3, AIFF, WAV, |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 107 | Ogg Vorbis (OGG), FLAC, MPC, AC3, WavPack (WV), ALAC, AAC, |
| 108 | Shorten (SHN), SID, ADX, NSF, Speex, SPC, APE, WMA, MOD, SAP.\\ |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 109 | \config{\%ff} & File Frequency (in Hz)\\ |
Andree Buschmann | 53cf63f | 2010-04-14 19:44:07 +0000 | [diff] [blame] | 110 | \config{\%fk} & File Frequency (in kHz)\\ |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 111 | \config{\%fm} & File Name\\ |
| 112 | \config{\%fn} & File Name (without extension)\\ |
| 113 | \config{\%fp} & File Path\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 114 | \config{\%fs} & File Size (in Kilobytes)\\ |
| 115 | \config{\%fv} & ``(avg)'' if variable bit rate or empty string if constant bit rate\\ |
Alexander Levin | a43fbbb | 2010-07-01 18:55:43 +0000 | [diff] [blame] | 116 | \config{\%d(N)} & N-th segment from the end of the file's directory |
| 117 | (N can be 1, 2, 3, \dots)\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 118 | \end{tagmap} |
Alexander Levin | a43fbbb | 2010-07-01 18:55:43 +0000 | [diff] [blame] | 119 | Example for the \config{\%d(N)} commands: If the file is |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 120 | ``/Rock/Kent/Isola/11 - 747.mp3'', \config{\%d(1)} is ``Isola'', |
| 121 | \config{\%d(2)} is ``Kent'' and \config{\%d(3)} is ``Rock''. |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 122 | |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 123 | These tags, when written with the first letter capitalized (e.g. \config{\%Fn} |
| 124 | or \config{\%D(2)}), produce the information for the next file to be played. |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 125 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 126 | \section{Playlist/Song Info} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 127 | \begin{tagmap} |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 128 | \config{\%pb} & Progress Bar. |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 129 | \opt{player}{ |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 130 | This will display a one character ``cup'' |
Martin Arver | ec60a05 | 2006-03-29 18:40:42 +0000 | [diff] [blame] | 131 | that empties as the time progresses.} |
Nils Wallménius | 12eb058 | 2008-03-23 22:07:09 +0000 | [diff] [blame] | 132 | \opt{lcd_bitmap}{ |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 133 | This will replace the entire line with a progress bar. |
| 134 | You can set the position, width and height of the progressbar |
| 135 | (in pixels) and load a custom image for it: |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 136 | \config{\%pb(x,y,[width],[height],image.bmp)}} \\ |
Dominik Riebeling | eef9694 | 2007-04-07 22:48:11 +0000 | [diff] [blame] | 137 | \opt{player}{% |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 138 | \config{\%pf} & Full-line progress bar \& time display\\ |
Dominik Riebeling | eef9694 | 2007-04-07 22:48:11 +0000 | [diff] [blame] | 139 | }% |
Alexander Levin | d8f5f51 | 2010-07-02 18:57:57 +0000 | [diff] [blame] | 140 | \config{\%px} & Percentage played in song\\ |
| 141 | \config{\%pc} & Current time in song\\ |
| 142 | \config{\%pe} & Total number of playlist entries\\ |
Dominik Riebeling | eef9694 | 2007-04-07 22:48:11 +0000 | [diff] [blame] | 143 | \nopt{player}{% |
| 144 | \config{\%pm} & Peak Meter. The entire line is used as % |
| 145 | volume peak meter.\\% |
| 146 | }% |
Alexander Levin | d8f5f51 | 2010-07-02 18:57:57 +0000 | [diff] [blame] | 147 | \config{\%pn} & Playlist name (without path or extension)\\ |
| 148 | \config{\%pp} & Playlist position\\ |
| 149 | \config{\%pr} & Remaining time in song\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 150 | \config{\%ps} & ``s'' if shuffle mode is enabled\\ |
Alexander Levin | d8f5f51 | 2010-07-02 18:57:57 +0000 | [diff] [blame] | 151 | \config{\%pt} & Total track time\\ |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 152 | \config{\%pv} & Current volume (in dB). Can also be used in a conditional: |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 153 | \config{\%?pv<0|1|2|\ldots|N>}\newline |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 154 | 0 is used for mute, the last option is used for values greater than zero. |
| 155 | \opt{lcd_bitmap}{This can also be used like \%pb to provide a continuous scale: |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 156 | \config{\%pv(x,y,[width],[height],image.bmp)}} \\ |
Alex Parker | bbb2dd5 | 2010-03-21 10:20:09 +0000 | [diff] [blame] | 157 | \config{\%pS} & Track is starting. An optional number gives how many seconds |
| 158 | the tag remains true for after the start of the track. The default is |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 159 | 10 seconds if no number is specified. |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 160 | \config{\%pS(7)<in the first 7 seconds of track|in |
| 161 | the rest of the track>}\\ |
Alex Parker | bbb2dd5 | 2010-03-21 10:20:09 +0000 | [diff] [blame] | 162 | \config{\%pE} & Track is ending. An optional number gives how many seconds |
Alex Parker | 7e84cca | 2010-03-22 20:41:14 +0000 | [diff] [blame] | 163 | before the end of the track the tag becomes true. The default is |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 164 | 10 seconds if no number is specified. |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 165 | \config{\%pE(7)<in the last 7 seconds of track|in |
| 166 | the rest of the track>}\\ |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 167 | \config{\%Sp} & Current playback pitch\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 168 | \end{tagmap} |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 169 | |
| 170 | \section{Playlist Viewer} |
| 171 | \begin{tagmap} |
| 172 | \config{\%Vp(start,if tag present,other)} & Display the playlist viewer in |
| 173 | the current viewport.\\ |
| 174 | \end{tagmap} |
| 175 | |
| 176 | \begin{itemize} |
| 177 | \item `start' is the offset relative to the currently playing track for the |
| 178 | playlist to display from (0 the current track, 1 is the next track, etc.). |
| 179 | \item `if tag present' is the skin code to display if the track has been buffered. |
| 180 | \item `other' is the skin code to display if the track hasnt been buffered, |
| 181 | essentially only the filename is know at this point. |
| 182 | \end{itemize} |
| 183 | |
| 184 | The entire viewport will be used, so don't expect other tags in the same |
| 185 | viewport to work well. Supported tags are \%pp, all tags starting with \%i, |
| 186 | most tags starting with \%f, \%pt and \%s.\\ |
| 187 | |
| 188 | Example: \config{\%Vp(1,\%pp - \%it,\%pp - \%fn)} -- Display the playlist |
| 189 | position, then either the track title (from the tags) or |
| 190 | the filename. The viewer will display as many tracks as will fit in the |
| 191 | viewport. |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 192 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 193 | \section{Runtime Database} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 194 | \begin{tagmap} |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 195 | \config{\%rp} & Song playcount\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 196 | \config{\%rr} & Song rating (0-10). This tag can also be used in a conditional tag: % |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 197 | \config{\%?rr<0|1|2|3|4|5|6|7|8|9|10>}\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 198 | \config{\%ra} & Autoscore for the song\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 199 | \end{tagmap} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 200 | |
Nils Wallménius | 12eb058 | 2008-03-23 22:07:09 +0000 | [diff] [blame] | 201 | \opt{swcodec}{ |
Dominik Riebeling | 9eaa568 | 2006-04-10 17:35:49 +0000 | [diff] [blame] | 202 | \section{Sound (DSP) settings} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 203 | \begin{tagmap} |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 204 | \config{\%Sp} & Current playback pitch \\ |
Nils Wallménius | 12eb058 | 2008-03-23 22:07:09 +0000 | [diff] [blame] | 205 | \opt{swcodec}{ |
Jeffrey Goode | 0212de4 | 2009-11-11 17:38:00 +0000 | [diff] [blame] | 206 | \config{\%xf} & Crossfade setting, in the order: Off, Auto Skip, Man Skip, |
| 207 | Shuffle, Shuffle and Man Skip, Always\\ |
Andree Buschmann | 1248e9c | 2010-04-14 20:38:21 +0000 | [diff] [blame] | 208 | \config{\%rg} & ReplayGain value in use (x.y~dB). If used as a conditional, |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 209 | Replaygain type in use: \config{\%?rg<Off|Track% |
| 210 | |Album|TrackShuffle|AlbumShuffle% |
| 211 | |No tag>}\\ |
Dominik Riebeling | da1e28c | 2006-08-03 18:32:41 +0000 | [diff] [blame] | 212 | } |
Dominik Riebeling | 9eaa568 | 2006-04-10 17:35:49 +0000 | [diff] [blame] | 213 | \end{tagmap} |
| 214 | } |
Nils Wallménius | af68987 | 2009-08-24 15:19:14 +0000 | [diff] [blame] | 215 | |
Marianne Arnold | b013fb7 | 2010-07-01 21:02:12 +0000 | [diff] [blame] | 216 | \section{Hold} |
| 217 | \begin{tagmap} |
| 218 | \config{\%mh} & ``h'' if the main unit keys are locked\\ |
| 219 | \opt{remote_button_hold}{% |
| 220 | \config{\%mr} & ``r'' if the remote keys are locked\\ |
| 221 | } |
| 222 | \end{tagmap} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 223 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 224 | \section{Virtual LED} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 225 | \begin{tagmap} |
Marianne Arnold | a352c62 | 2007-05-19 19:03:39 +0000 | [diff] [blame] | 226 | \config{\%lh} & ``h'' if the \disk\ is accessed\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 227 | \end{tagmap} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 228 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 229 | \section{Repeat Mode} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 230 | \begin{tagmap} |
Marianne Arnold | c9532a2 | 2010-04-04 13:58:52 +0000 | [diff] [blame] | 231 | \config{\%mm} & Repeat mode, 0-4, in the order: Off, All, One, Shuffle, A-B\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 232 | \end{tagmap} |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 233 | Example: \config{\%?mm<Off|All|One|Shuffle|A-B>} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 234 | |
Alexander Levin | 0bfef1c | 2010-02-26 19:57:51 +0000 | [diff] [blame] | 235 | \section{Playback Mode} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 236 | \begin{tagmap} |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 237 | \config{\%mp} & Play status, 0-4, in the order: Stop, Play, Pause, |
Frank Gevaerts | 629bf3e | 2010-04-11 11:44:18 +0000 | [diff] [blame] | 238 | Fast Forward, Rewind, Recording, Recording paused, FM Radio playing, |
| 239 | FM Radio muted\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 240 | \end{tagmap} |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 241 | Example: \config{\%?mp<Stop|Play|Pause|Ffwd|Rew|Rec|Rec pause|FM|FM pause>} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 242 | |
Alexander Levin | 5ff8a5a | 2010-02-26 19:53:06 +0000 | [diff] [blame] | 243 | \section{Current Screen} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 244 | \begin{tagmap} |
Thomas Martitz | ea4eadc | 2010-02-27 21:24:50 +0000 | [diff] [blame] | 245 | \config{\%cs} & The current screen, 1-5, in the order: |
| 246 | Menus, WPS, Recording screen, FM Radio screen, Current Playlist screen\\ |
Alexander Levin | 5ff8a5a | 2010-02-26 19:53:06 +0000 | [diff] [blame] | 247 | \end{tagmap} |
Alexander Levin | 5ff8a5a | 2010-02-26 19:53:06 +0000 | [diff] [blame] | 248 | The tag can also be used as the switch in a conditional tag. For players without |
| 249 | some capabilities (e.g. having no FM radio) some values will be never yielded. |
| 250 | |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 251 | Example: \config{You are in the \%?cs<Main menu|WPS|Recording screen|FM Radio screen>} |
Alexander Levin | 5ff8a5a | 2010-02-26 19:53:06 +0000 | [diff] [blame] | 252 | |
Alex Parker | 165709b | 2010-03-21 10:20:24 +0000 | [diff] [blame] | 253 | \section{List Title (\fname{.sbs} only)} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 254 | \begin{tagmap} |
Alex Parker | 165709b | 2010-03-21 10:20:24 +0000 | [diff] [blame] | 255 | \config{\%Lt} & Title text. Should be used in a conditional so that non-list |
| 256 | screens don't show a title when they shouldn't\\ |
| 257 | \config{\%Li} & Title icon. This uses the same order as custom icons (see |
| 258 | \wikilink{CustomIcons} in the wiki) except that here \config{0} is ``no |
| 259 | icon''\\ |
| 260 | \end{tagmap} |
| 261 | |
| 262 | This tag can be used to give custom formatting to list titles. |
| 263 | Define a viewport with the font and formatting desired, and then use |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 264 | \config{\%?Lt<\%Lt>} to display the title within the |
Alex Parker | 165709b | 2010-03-21 10:20:24 +0000 | [diff] [blame] | 265 | viewport. If \config{\%Lt} is present anywhere in the \fname{.sbs}, then the |
| 266 | \config{\%Vi} viewport will not show the title. |
| 267 | |
Dominik Riebeling | 71c1e2a | 2008-10-12 10:48:06 +0000 | [diff] [blame] | 268 | \section{Changing Volume} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 269 | \begin{tagmap} |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 270 | \config{\%mv(t)} & ``v'' if the volume is being changed\\ |
Dominik Riebeling | 71c1e2a | 2008-10-12 10:48:06 +0000 | [diff] [blame] | 271 | \end{tagmap} |
Dominik Riebeling | 71c1e2a | 2008-10-12 10:48:06 +0000 | [diff] [blame] | 272 | |
| 273 | The tag produces the letter ``v'' while the volume is being changed and some |
| 274 | amount of time after that, i.e. after the volume button has been released. The |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 275 | optional parameter \config{t} specifies that amount of time, in seconds. If it |
| 276 | is not specified, 1 second is assumed. |
Dominik Riebeling | 71c1e2a | 2008-10-12 10:48:06 +0000 | [diff] [blame] | 277 | |
| 278 | The tag can be used as the switch in a conditional tag to display different things |
| 279 | depending on whether the volume is being changed. It can produce neat effects |
| 280 | when used with conditional viewports. |
| 281 | |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 282 | Example: \config{\%?mv(2.5)<Volume changing|\%pv>} |
Dominik Riebeling | 71c1e2a | 2008-10-12 10:48:06 +0000 | [diff] [blame] | 283 | |
| 284 | The example above will display the text ``Volume changing'' if the volume is |
Andree Buschmann | 1248e9c | 2010-04-14 20:38:21 +0000 | [diff] [blame] | 285 | being changed and 2.5 seconds after the volume button has been released. After |
Dominik Riebeling | 71c1e2a | 2008-10-12 10:48:06 +0000 | [diff] [blame] | 286 | that, it will display the volume value. |
| 287 | |
Antoine Cellerier | 8289b96 | 2008-12-07 16:20:35 +0000 | [diff] [blame] | 288 | \section{Settings} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 289 | \begin{tagmap} |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 290 | \config{\%St(<setting\tabnlindent{}name>)} & The value of the Rockbox |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 291 | setting with the specified name. See \reference{ref:config_file_options} |
| 292 | for the list of the available settings.\\ |
Antoine Cellerier | 8289b96 | 2008-12-07 16:20:35 +0000 | [diff] [blame] | 293 | \end{tagmap} |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 294 | |
| 295 | Examples: |
| 296 | \begin{enumerate} |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 297 | \item As a simple tag: \config{\%St(skip length)} |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 298 | \item As a conditional: \config{\%?St(eq enabled)<Eq is enabled|Eq is disabled>} |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 299 | \end{enumerate} |
| 300 | |
Antoine Cellerier | 8289b96 | 2008-12-07 16:20:35 +0000 | [diff] [blame] | 301 | |
Jonas Häggqvist | 410cbd1 | 2009-02-20 18:37:57 +0000 | [diff] [blame] | 302 | \opt{lcd_bitmap}{ |
Alex Parker | ab563da | 2009-09-20 16:48:45 +0000 | [diff] [blame] | 303 | \section{\label{ref:wps_images}Images} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 304 | \begin{tagmap} |
Nils Wallménius | da55588 | 2006-11-13 15:14:28 +0000 | [diff] [blame] | 305 | \nopt{archos}{% |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 306 | \config{\%X(filename.bmp)} |
Dominik Riebeling | 2ce440d | 2008-03-26 19:35:39 +0000 | [diff] [blame] | 307 | & Load and set a backdrop image for the WPS. |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 308 | This image must be exactly the same size as your LCD.\\ |
Nils Wallménius | da55588 | 2006-11-13 15:14:28 +0000 | [diff] [blame] | 309 | }% |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 310 | \config{\%x(n,filename,x,y)} |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 311 | & Load and display an image\newline |
| 312 | \config{n}: image ID (a-z and A-Z) for later referencing in \config{\%xd}\newline |
| 313 | \config{filename}: file name relative to \fname{/.rockbox/} and including ``.bmp''\newline |
| 314 | \config{x}: x coordinate\newline |
| 315 | \config{y}: y coordinate.\\ |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 316 | \config{\%xl(n,filename,x,y,\tabnlindent[nimages])} |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 317 | & Preload an image for later display (useful for when your images are displayed conditionally).\newline |
| 318 | \config{n}: image ID (a-z and A-Z) for later referencing in \config{\%xd}\newline |
| 319 | \config{filename}: file name relative to \fname{/.rockbox/} and including ``.bmp''\newline |
Jonathan Gordon | 70ebe46 | 2010-08-12 13:27:10 +0000 | [diff] [blame] | 320 | If the filename is __list_icons__ the list icon bitmap will be used instead\newline |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 321 | \config{x}: x coordinate\newline |
| 322 | \config{y}: y coordinate\newline |
| 323 | \config{nimages}: (optional) number of sub-images (tiled vertically, of the same height) |
Dominik Riebeling | 2ce440d | 2008-03-26 19:35:39 +0000 | [diff] [blame] | 324 | contained in the bitmap. Default is 1.\\ |
Jonathan Gordon | 3f8e7fc | 2010-08-05 11:28:48 +0000 | [diff] [blame] | 325 | \config{\%xd(n[i] [,tag] [,offset])} & Display a preloaded image. |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 326 | \config{n}: image ID (a-z and A-Z) as it was specified in \config{\%x} or \config{\%xl}\newline |
Jonathan Gordon | 3f8e7fc | 2010-08-05 11:28:48 +0000 | [diff] [blame] | 327 | \config{i}: (optional) number of the sub-image to display (a-z for 1-26 and A-Z for 27-52). |
| 328 | (ignored when \config{tag} is used) |
| 329 | By default the first (i.e. top most) sub-image will be used.\newline |
| 330 | \config{tag}: (optional) Another tag to calculate the subimage from e.g \config{\%xd(A, \%mh)} would |
| 331 | use the first subimage when \config{\%mh} is on and the second when it is off\newline |
Marianne Arnold | e6cb22e | 2010-08-07 08:27:24 +0000 | [diff] [blame] | 332 | \config{offset}: (optional) Add this number to the value from the \config{tag} when |
Jonathan Gordon | 3f8e7fc | 2010-08-05 11:28:48 +0000 | [diff] [blame] | 333 | chosing the subimage (may be negative)\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 334 | \end{tagmap} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 335 | |
Dominik Riebeling | 8f44dd2 | 2008-03-28 21:49:41 +0000 | [diff] [blame] | 336 | Examples: |
| 337 | \begin{enumerate} |
| 338 | \item Load and display the image \fname{/.rockbox/bg.bmp} with ID ``a'' at 37, 109:\\ |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 339 | \config{\%x(a,bg.bmp,37,109)} |
Dominik Riebeling | 8f44dd2 | 2008-03-28 21:49:41 +0000 | [diff] [blame] | 340 | \item Load a bitmap strip containing 5 volume icon images (all the same size) |
| 341 | with image ID ``M'', and then reference the individual sub-images in a conditional:\\ |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 342 | \config{\%xl(M,volume.bmp,134,153,5)}\\ |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 343 | \config{\%?pv<\%xd(Ma)|\%xd(Mb)|\%xd(Mc)|% |
| 344 | \%xd(Md)|\%xd(Me)>} |
Dominik Riebeling | 8f44dd2 | 2008-03-28 21:49:41 +0000 | [diff] [blame] | 345 | \end{enumerate} |
Dominik Riebeling | 2ce440d | 2008-03-26 19:35:39 +0000 | [diff] [blame] | 346 | |
| 347 | |
Dominik Riebeling | 18f319c | 2006-04-01 17:00:04 +0000 | [diff] [blame] | 348 | \note{ |
| 349 | \begin{itemize} |
Alexander Levin | 3adb821 | 2009-03-24 21:39:48 +0000 | [diff] [blame] | 350 | \item The images must be in BMP format |
Dominik Riebeling | 18f319c | 2006-04-01 17:00:04 +0000 | [diff] [blame] | 351 | \item The image tag must be on its own line |
| 352 | \item The ID is case sensitive, giving 52 different ID's |
| 353 | \item The size of the LCD screen for each player varies. See table below |
| 354 | for appropriate sizes of each device. The x and y coordinates must |
| 355 | repect each of the players' limits. |
| 356 | \end{itemize} |
| 357 | } |
Jonas Häggqvist | 410cbd1 | 2009-02-20 18:37:57 +0000 | [diff] [blame] | 358 | } |
| 359 | |
| 360 | \opt{albumart}{ |
Alex Parker | 018133e | 2010-05-29 19:02:25 +0000 | [diff] [blame] | 361 | \section{\label{ref:album_art}Album Art} |
| 362 | Rockbox allows you to put the album art, or another image related to the music |
| 363 | on your \dap{} to display it in the PictureFlow plugin\opt{albumart}{ or in the |
| 364 | theme}. For this feature to work, there are a few requirements. |
| 365 | |
| 366 | \subsection{Limitations} |
| 367 | |
| 368 | Rockbox does not support album art embedded in your files' tags, and will |
| 369 | instead look for a picture located on disk. In addition to this, the |
| 370 | pictures must be in either BMP or JPEG format. Rockbox does not support |
| 371 | RLE-compressed BMP files, nor does it support progressive and multi-scan |
| 372 | JPEG files. JPEG files must consist of a single scan with interleaved components, |
| 373 | as progessive and multi-scan images require much more memory to decode. |
| 374 | |
| 375 | \subsection{Where to put album art} |
| 376 | |
| 377 | The pictures can be named a number of different ways, and placed to a number of |
| 378 | different locations. You can have pictures specific to the file or the album |
| 379 | or use a generic picture. You can place the picture in the same directory |
| 380 | as the file, in the parent directory or in a fixed directory named |
| 381 | \fname{/.rockbox/albumart/}. The order Rockbox uses when looking for a picture |
| 382 | is as follows (a list in braces means that those file extensions are tried in |
| 383 | that order): |
| 384 | |
| 385 | \begin{enumerate} |
| 386 | \item \fname{./filename.\{jpeg,jpg,bmp\}} |
| 387 | \item \fname{./albumtitle.\{jpeg,jpg,bmp\}} |
| 388 | \item \fname{./cover.\{jpeg,jpg,bmp\}} |
| 389 | \item \fname{./folder.jpg} |
Jonas Häggqvist | 22b2875 | 2010-07-01 12:30:18 +0000 | [diff] [blame] | 390 | \item \fname{/.rockbox/albumart/albumartist-albumtitle.\{jpeg,jpg,bmp\}} |
Alex Parker | 018133e | 2010-05-29 19:02:25 +0000 | [diff] [blame] | 391 | \item \fname{../albumtitle.\{jpeg,jpg,bmp\}} |
| 392 | \item \fname{../cover.\{jpeg,jpg,bmp\}} |
| 393 | \end{enumerate} |
| 394 | |
| 395 | The following characters will be replaced with an underscore (\_) when looking |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 396 | for albumtitle.bmp or albumartist-albumtitle.bmp: \textbackslash{} / : < |
| 397 | > ? * |. Doublequotes will be replaced by single quotes. |
Jonas Häggqvist | 22b2875 | 2010-07-01 12:30:18 +0000 | [diff] [blame] | 398 | If no album artist is set, artist will be used instead. See \wikilink{AlbumArt} |
| 399 | in the wiki for programs that will help you automate the process of putting |
| 400 | album art on your \dap{}. |
Alex Parker | 018133e | 2010-05-29 19:02:25 +0000 | [diff] [blame] | 401 | |
| 402 | \subsection{How to display the album art} |
| 403 | |
| 404 | Once the album art files are present on your \dap, they can be displayed as |
| 405 | follows. |
| 406 | |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 407 | \begin{tagmap} |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 408 | \config{\%Cl(x,y,[maxwidth],\tabnlindent[maxheight],\tabnlindent{}hor\_align,\tabnlindent{}vert\_align)} |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 409 | & Define the settings for album art\newline |
| 410 | \config{x}: x coordinate\newline |
| 411 | \config{y}: y coordinate\newline |
| 412 | \config{maxwidth}: Maximum height\newline |
| 413 | \config{maxheight}: Maximum width\newline |
| 414 | \config{hor\_align}: Horizontal alignment, enter as `l', `c' or `r' for |
| 415 | left, centre or right. Centre is default\newline |
| 416 | \config{vert\_align}: Vertical alignment, enter as `t', `c' or `b' for |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 417 | top, centre or bottom. Centre is default\\ |
Jonathan Gordon | 50356d8 | 2010-06-08 15:09:32 +0000 | [diff] [blame] | 418 | \config{\%Cd} & Display the album art as configured. \\ |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 419 | \config{\%C} & Use in a conditional to determine if an image is available. \\ |
Jonas Häggqvist | 410cbd1 | 2009-02-20 18:37:57 +0000 | [diff] [blame] | 420 | \end{tagmap} |
Jonas Häggqvist | 410cbd1 | 2009-02-20 18:37:57 +0000 | [diff] [blame] | 421 | |
| 422 | The picture will be rescaled, preserving aspect ratio to fit the given |
| 423 | \config{maxwidth} and \config{maxheight}. If the aspect ratio doesn't match the |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 424 | configured values, the picture will be placed according to the alignment flags. |
Jonas Häggqvist | 0021534 | 2009-02-20 19:08:18 +0000 | [diff] [blame] | 425 | |
| 426 | Examples: |
| 427 | \begin{enumerate} |
| 428 | \item Load albumart at position 20,40 and display it without resizing:\\ |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 429 | \config{\%Cl(20,40,,)} |
Alexander Levin | 87b2ad14 | 2010-05-20 16:20:58 +0000 | [diff] [blame] | 430 | \item Load albumart at position 0,20 and resize it to be at most 100$\times$100 |
Jonas Häggqvist | 0021534 | 2009-02-20 19:08:18 +0000 | [diff] [blame] | 431 | pixels. If the image isn't square, align it to the bottom-right |
| 432 | corner:\\ |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 433 | \config{\%Cl(0,20,100,100,r,b)} |
Jonas Häggqvist | 0021534 | 2009-02-20 19:08:18 +0000 | [diff] [blame] | 434 | \end{enumerate} |
Jonas Häggqvist | 410cbd1 | 2009-02-20 18:37:57 +0000 | [diff] [blame] | 435 | } |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 436 | |
Alex Parker | caa68b5 | 2010-05-29 19:02:19 +0000 | [diff] [blame] | 437 | \opt{radio}{ |
Alex Parker | 0926e3e | 2010-05-13 08:13:42 +0000 | [diff] [blame] | 438 | \section{FM Radio} |
| 439 | \begin{tagmap} |
Alexander Levin | 1940a0b | 2010-05-13 08:45:22 +0000 | [diff] [blame] | 440 | \config{\%tp} & Does this target have a radio? If it doesn't, the ``true'' |
Alex Parker | 0926e3e | 2010-05-13 08:13:42 +0000 | [diff] [blame] | 441 | branch of this conditional is completly ignored so you don't need to |
| 442 | worry about tags which are not recognized on non radio targets.\\ |
| 443 | \config{\%tt} & Is the tuner tuned?\\ |
Alexander Levin | 1940a0b | 2010-05-13 08:45:22 +0000 | [diff] [blame] | 444 | \config{\%tm} & Scan or preset mode? Scan is ``true'', preset is ``false''.\\ |
Alex Parker | 0926e3e | 2010-05-13 08:13:42 +0000 | [diff] [blame] | 445 | \config{\%ts} & Is the station in stereo?\\ |
Alexander Levin | edb6bed | 2010-05-15 21:47:30 +0000 | [diff] [blame] | 446 | \config{\%ta} & Minimum frequency (region specific) in MHz.\\ |
| 447 | \config{\%tb} & Maximum frequency (region specific) in MHz.\\ |
| 448 | \config{\%tf} & Current frequency in MHz.\\ |
Alex Parker | 0926e3e | 2010-05-13 08:13:42 +0000 | [diff] [blame] | 449 | \config{\%Ti} & Current preset id, i.e. 1-based number of the preset |
| 450 | within the presets list (usable in playlist viewer).\\ |
| 451 | \config{\%Tn} & Current preset name (usable in playlist viewer).\\ |
| 452 | \config{\%Tf} & Current preset frequency (usable in playlist viewer).\\ |
| 453 | \config{\%Tc} & Preset count, i.e. the number of stations in the current |
| 454 | preset list.\\ |
| 455 | \config{\%tx} & Is RDS available?\\ |
| 456 | \config{\%ty} & RDS name.\\ |
| 457 | \config{\%tz} & RDS text.\\ |
| 458 | \end{tagmap} |
| 459 | |
Alex Parker | 4b36063 | 2010-05-29 19:02:10 +0000 | [diff] [blame] | 460 | It is also possible to show ``Radio Art'' which can be used to display images |
| 461 | associated with presets. The tags are exactly the same as for album art, |
| 462 | described above. Images need to be placed in \fname{/.rockbox/fmpresets/}, |
| 463 | and must have the same name as the preset. They need to be in either |
| 464 | \fname{.bmp} or \fname{.jpg} format, and the radio must be in preset mode |
| 465 | and tuned to a preset (and not recording) in order for them to be shown. |
Alex Parker | caa68b5 | 2010-05-29 19:02:19 +0000 | [diff] [blame] | 466 | } |
Alex Parker | 4b36063 | 2010-05-29 19:02:10 +0000 | [diff] [blame] | 467 | |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 468 | \section{Alignment and language direction} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 469 | \begin{tagmap} |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 470 | \config{\%al} & Align the text left\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 471 | \config{\%aL} & Align the text left, or to the right if RTL language is in use\\ |
Alex Parker | c4b6c05 | 2009-11-22 11:24:49 +0000 | [diff] [blame] | 472 | \config{\%ac} & Centre the text\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 473 | \config{\%ar} & Align the text right\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 474 | \config{\%aR} & Align the text right, or to the left if RTL language is in use\\ |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 475 | \config{\%ax} & The next tag should follow the set language direction. When |
| 476 | prepended to a viewport declaration, the viewport will |
| 477 | be horizontally mirrored if the user language is set to |
| 478 | a RTL language. Currently the \%Cl, \%V and \%Vl tags |
| 479 | support this.\\ |
| 480 | \config{\%Sr} & Use as a conditional to define options for left to right, or |
| 481 | right to left languages. \%?Sr<RTL|LTR>\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 482 | \end{tagmap} |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 483 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 484 | All alignment tags may be present in one line, but they need to be in the |
Alex Parker | c4b6c05 | 2009-11-22 11:24:49 +0000 | [diff] [blame] | 485 | order left -- centre -- right. If the aligned texts overlap, they are merged. |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 486 | |
Alex Parker | d7cb3b1 | 2010-07-31 12:47:12 +0000 | [diff] [blame] | 487 | Example: \config{\%ax\%V(\dots)} |
| 488 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 489 | \section{Conditional Tags} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 490 | |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 491 | \begin{tagmap} |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 492 | \config{\%?xx<true|false>} |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 493 | & If / Else: Evaluate for true or false case \\ |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 494 | \config{\%?xx<alt1|alt2|\tabnlindent{}alt3|\dots|else>} |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 495 | & Enumerations: Evaluate for first / second / third / \dots / last condition \\ |
| 496 | \end{tagmap} |
Martin Arver | 94c1289 | 2006-03-23 14:11:52 +0000 | [diff] [blame] | 497 | |
Alex Parker | e56030a | 2009-05-15 21:17:21 +0000 | [diff] [blame] | 498 | \section{Subline Tags} |
| 499 | |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 500 | \begin{tagmap} |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 501 | \config{\%t(time)} |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 502 | & Set the subline display cycle time (\%t(5) or \%t(3.4) formats) \\ |
Alex Parker | e56030a | 2009-05-15 21:17:21 +0000 | [diff] [blame] | 503 | \config{;} |
| 504 | & Split items on a line into separate sublines \\ |
| 505 | \end{tagmap} |
Alex Parker | e56030a | 2009-05-15 21:17:21 +0000 | [diff] [blame] | 506 | |
| 507 | Allows grouping of several items (sublines) onto one line, with the |
| 508 | display cycling round the defined sublines. See |
| 509 | \reference{ref:AlternatingSublines} for details. |
| 510 | |
Marianne Arnold | e435e4d | 2009-05-16 11:22:41 +0000 | [diff] [blame] | 511 | |
| 512 | \section{Time and Date} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 513 | \begin{tagmap} |
Marianne Arnold | e435e4d | 2009-05-16 11:22:41 +0000 | [diff] [blame] | 514 | \opt{rtc}{ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 515 | \config{\%cd} & Day of month from 01 to 31\\ |
| 516 | \config{\%ce} & Zero padded day of month from 1 to 31\\ |
Alexander Levin | 1242710 | 2010-07-02 19:32:48 +0000 | [diff] [blame] | 517 | \config{\%cf} & A conditional for 12/24 hour format.\newline |
| 518 | \config{\%?cf<24 hour stuff|12 hour stuff>}\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 519 | \config{\%cH} & Zero padded hour from 00 to 23 (24 hour format)\\ |
| 520 | \config{\%ck} & Hour from 0 to 23 (24 hour format)\\ |
Tomer Shalev | 13ef677 | 2010-01-08 14:03:43 +0000 | [diff] [blame] | 521 | \config{\%cI} & Zero padded hour from 01 to 12 (am/pm format)\\ |
| 522 | \config{\%cl} & Hour from 1 to 12 (am/pm format)\\ |
| 523 | \config{\%cm} & Month from 01 to 12\\ |
Dominik Riebeling | f177af4 | 2007-04-10 17:38:40 +0000 | [diff] [blame] | 524 | \config{\%cM} & Minutes\\ |
| 525 | \config{\%cS} & Seconds\\ |
Marianne Arnold | e435e4d | 2009-05-16 11:22:41 +0000 | [diff] [blame] | 526 | \config{\%cy} & 2-digit year\\ |
Dominik Riebeling | f177af4 | 2007-04-10 17:38:40 +0000 | [diff] [blame] | 527 | \config{\%cY} & 4-digit year\\ |
| 528 | \config{\%cP} & Capital AM/PM\\ |
| 529 | \config{\%cp} & Lowercase am/pm\\ |
| 530 | \config{\%ca} & Weekday name\\ |
| 531 | \config{\%cb} & Month name\\ |
| 532 | \config{\%cu} & Day of week from 1 to 7, 1 is Monday\\ |
| 533 | \config{\%cw} & Day of week from 0 to 6, 0 is Sunday\\ |
Marianne Arnold | e435e4d | 2009-05-16 11:22:41 +0000 | [diff] [blame] | 534 | } |
| 535 | \config{\%cc} & Check for presence of the clock hardware\\ |
Dominik Riebeling | f177af4 | 2007-04-10 17:38:40 +0000 | [diff] [blame] | 536 | \end{tagmap} |
Marianne Arnold | e435e4d | 2009-05-16 11:22:41 +0000 | [diff] [blame] | 537 | The \%cc tag returns ``c'' if the necessary hardware is present and can also be |
| 538 | used as a conditional. This can be very useful for designing a WPS that works on |
| 539 | multiple targets, some with and some without a clock. By using this tag as a |
| 540 | conditional it is possible to display current date and time on those targets that |
| 541 | support this |
| 542 | \opt{rtc}{ (like the \playertype)}, |
| 543 | or alternate information on those that do not |
| 544 | \nopt{rtc}{ (like the \playertype)}% |
| 545 | . |
| 546 | |
| 547 | Example: |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 548 | \config{\%?cc<\%cH:\%cM|No clock detected>} |
Marianne Arnold | e435e4d | 2009-05-16 11:22:41 +0000 | [diff] [blame] | 549 | |
Alex Parker | 55c8b2b | 2010-03-21 10:20:14 +0000 | [diff] [blame] | 550 | \section{Text Translation} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 551 | \begin{tagmap} |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 552 | \config{\%Sx(English)} |
Alex Parker | 55c8b2b | 2010-03-21 10:20:14 +0000 | [diff] [blame] | 553 | & Display the translation of ``English'' in the current language\\ |
| 554 | \end{tagmap} |
| 555 | |
| 556 | \begin{itemize} |
| 557 | \item ``English'' must be a phrase used in the language file. |
| 558 | \item It should match the \config{Source:} line in the language file. |
| 559 | \end{itemize} |
| 560 | |
| 561 | \note{checkwps cannot verify that the string is correct, so please check on |
| 562 | either the simulator or on target.} |
| 563 | |
| 564 | |
Alex Parker | f7a397b | 2010-02-28 11:50:11 +0000 | [diff] [blame] | 565 | \opt{touchscreen}{ |
| 566 | \section{Touchscreen Areas (WPS only)} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 567 | \begin{tagmap} |
Alexander Levin | 67f25a4 | 2010-07-02 18:54:09 +0000 | [diff] [blame] | 568 | \config{\%T(x,y,[width],\tabnlindent[height],action)} |
Alexander Levin | 4c105b6 | 2010-03-07 22:12:16 +0000 | [diff] [blame] | 569 | & Invoke the action specified when the user presses in the defined |
| 570 | touchscreen area.\\ |
| 571 | \end{tagmap} |
Alex Parker | f7a397b | 2010-02-28 11:50:11 +0000 | [diff] [blame] | 572 | If the action starts with \& then the area must be held. Possible actions are: |
| 573 | |
| 574 | \begin{description} |
| 575 | \item[play] -- Play/pause playback. |
| 576 | \item[stop] -- Stop playback and exit the WPS. |
| 577 | \item[prev] -- Previous track. |
| 578 | \item[next] -- Next track. |
| 579 | \item[ffwd] -- Seek forwards in the track. |
| 580 | \item[rwd] -- Seek backwards in the track. |
| 581 | \item[menu] -- Go to the main menu. |
| 582 | \item[browse] -- Go back to the file browser or database. |
| 583 | \item[shuffle] -- Toggle shuffle mode. |
| 584 | \item[repmode] -- Cycle through the repeat modes. |
| 585 | \item[quickscreen] -- Go to the quickscreen. |
| 586 | \item[contextmenu] -- Open the context menu. |
| 587 | \item[playlist] -- Go to the playlist viewer. |
| 588 | \item[progressbar] -- Seek to the appropriate position in the track based on the touch. |
| 589 | \item[volume] -- Set the volume to the appropriate level based on the touch. |
| 590 | \item[pitch] -- Open the pitchscreen. |
| 591 | \item[voldown] -- Decrease the volume by one step. |
| 592 | \item[volup] -- Increase the volume by one step. |
| 593 | \end{description} |
| 594 | |
| 595 | \section{Last Touchscreen Press (WPS only)} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 596 | \begin{tagmap} |
Alexander Levin | 4c105b6 | 2010-03-07 22:12:16 +0000 | [diff] [blame] | 597 | \config{\%Tl} & Indicates that the touchscreen is pressed.\\ |
| 598 | \end{tagmap} |
Alex Parker | f7a397b | 2010-02-28 11:50:11 +0000 | [diff] [blame] | 599 | This tag can be used to display text or images or a viewport when the |
| 600 | touchscreen is pressed (like an On Screen Display). If you put a number |
| 601 | straight after \%Tl it will be used as a timeout in seconds |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 602 | (e.g \%Tl(2.5) will give a 2.5 second timeout) between the touchscreen press |
Alex Parker | f7a397b | 2010-02-28 11:50:11 +0000 | [diff] [blame] | 603 | being released and the tag going false. If no number is specified it will |
| 604 | use a 1 second timeout. It can also be used as a conditional, and can be |
| 605 | used with conditional viewports. |
| 606 | } |
Dominik Riebeling | f177af4 | 2007-04-10 17:38:40 +0000 | [diff] [blame] | 607 | |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 608 | \section{Other Tags} |
Michael Chicoine | 65dc4f2 | 2010-03-23 12:02:20 +0000 | [diff] [blame] | 609 | \begin{tagmap} |
Alex Parker | 64d4ddf | 2010-06-20 12:58:41 +0000 | [diff] [blame] | 610 | \config{\%(} & The character `('\\ |
| 611 | \config{\%)} & The character `)'\\ |
| 612 | \config{\%,} & The character `,'\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 613 | \config{\%\%} & The character `\%'\\ |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 614 | \config{\%<} & The character `<'\\ |
| 615 | \config{\%|} & The character `|'\\ |
| 616 | \config{\%>} & The character `>'\\ |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 617 | \config{\%;} & The character `;'\\ |
Alexander Levin | 15d0ac0 | 2010-07-02 19:55:47 +0000 | [diff] [blame] | 618 | \config{\#} & The character `\#'\\ |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 619 | \config{\%s} & Indicate that the line should scroll. Can occur |
| 620 | anywhere in a line (given that the text is |
| 621 | displayed; see conditionals above). You can specify |
Alexander Levin | 0a24140 | 2009-03-23 21:46:49 +0000 | [diff] [blame] | 622 | up to ten scrolling lines. Scrolling lines can not |
Martin Arver | f21f914 | 2006-05-08 21:32:44 +0000 | [diff] [blame] | 623 | contain dynamic content such as timers, peak meters |
| 624 | or progress bars.\\ |
Dominik Riebeling | 36a3133 | 2006-04-09 21:22:42 +0000 | [diff] [blame] | 625 | \end{tagmap} |
Alexander Levin | 4c105b6 | 2010-03-07 22:12:16 +0000 | [diff] [blame] | 626 | |