configure.ac: Fix a couple of syntax errors created by the moves.
[mpd-mk.git] / doc / protocol.xml
blobe327bf66d89aa36505a0eacc8c6c9d5e272d97ec
1 <?xml version='1.0' encoding="utf-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3                "docbook/dtd/xml/4.2/docbookx.dtd">
4 <book>
5   <title>The Music Player Daemon protocol</title>
7   <chapter>
8     <title>General protocol syntax</title>
10     <section>
11       <title>Requests</title>
13       <para>
14         If arguments contain spaces, they should be surrounded by double quotation
15         marks.
16       </para>
18       <cmdsynopsis>
19         <command>COMMAND</command>
20         <arg rep="repeat"><replaceable>ARG</replaceable></arg>
21       </cmdsynopsis>
23       <para>
24         All data between the client and the server is encoded in
25         UTF-8. (Note: In UTF-8 all standard ansi characters, 0-127 are
26         the same as a standard ansi encoding.  Also, no ansi character
27         appears in any multi-byte characters.  So, you can use
28         standard C functions like <function>strlen</function>, and
29         <function>strcpy</function> just fine with UTF-8 encoded
30         strings. For example: <returnvalue>OK</returnvalue> encoded in
31         UTF-8 is simply <returnvalue>OK</returnvalue>.  For more
32         information on UTF=8:
33         http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8)
34       </para>
35     </section>
37     <section>
38       <title>Responses</title>
40       <para>
41         A command returns <returnvalue>OK</returnvalue> on completion
42         or <returnvalue>ACK some error</returnvalue> on failure.
43         These denote the end of command execution.
44       </para>
45     </section>
47     <section>
48       <title>Command lists</title>
50       <para>
51         To facilitate faster adding of files etc. you can pass a list
52         of commands all at once using a command list.  The command
53         list begins with <command>command_list_begin</command> or
54         <command>command_list_ok_begin</command> and ends with
55         <command>command_list_end</command>.
56       </para>
58       <para>
59         It does not execute any commands until the list has ended.
60         The return value is whatever the return for a list of commands
61         is.  On success for all commands,
62         <returnvalue>OK</returnvalue> is returned.  If a command
63         fails, no more commands are executed and the appropriate
64         <returnvalue>ACK</returnvalue> error is returned. If
65         <command>command_list_ok_begin</command> is used,
66         <returnvalue>list_OK</returnvalue> is returned for each
67         successful command executed in the command list.
68       </para>
69     </section>
71     <section>
72       <title>Ranges</title>
74       <para>
75         Some commands (e.g. <link
76         linkend="command_delete"><command>delete</command></link>)
77         allow specifying a range in the form
78         <parameter>START:END</parameter> (the <varname>END</varname>
79         item is not included in the range, similar to ranges in the
80         Python programming language).  If <varname>END</varname> is
81         omitted, then the maximum possible value is assumed.
82       </para>
83     </section>
84   </chapter>
86   <chapter>
87     <title>Command reference</title>
89     <note>
90       <para>
91         For manipulating playlists and playing, there are two sets of
92         commands.  One set uses the song id of a song in the playlist,
93         while another set uses the playlist position of the song. The
94         commands using song ids should be used instead of the commands
95         that manipulate and control playback based on playlist
96         position. Using song ids is a safer method when multiple
97         clients are interacting with MPD.
98       </para>
99     </note>
101     <section>
102       <title>Querying MPD's status</title>
104       <variablelist>
105         <varlistentry id="command_clearerror">
106           <term>
107             <cmdsynopsis>
108               <command>clearerror</command>
109             </cmdsynopsis>
110           </term>
111           <listitem>
112             <para>
113               Clears the current error message in status (this is also
114               accomplished by any command that starts playback).
115             </para>
116           </listitem>
117         </varlistentry>
118         <varlistentry id="command_currentsong">
119           <term>
120             <cmdsynopsis>
121               <command>currentsong</command>
122             </cmdsynopsis>
123           </term>
124           <listitem>
125             <para>
126               Displays the song info of the current song (same song that
127               is identified in status).
128             </para>
129           </listitem>
130         </varlistentry>
131         <varlistentry id="command_idle">
132           <term>
133             <cmdsynopsis>
134               <command>idle</command>
135               <arg choice="opt" rep="repeat"><replaceable>SUBSYSTEMS</replaceable></arg>
136             </cmdsynopsis>
137           </term>
138           <listitem>
139             <para>
140               <footnote id="since_0_14"><simpara>Introduced with MPD 0.14</simpara></footnote>
141               Waits until there is a noteworthy change in one or more
142               of MPD's subsystems.  As soon as there is one, it lists
143               all changed systems in a line in the format
144               <returnvalue>changed: SUBSYSTEM</returnvalue>, where
145               SUBSYSTEM is one of the following:
146             </para>
147             <itemizedlist>
148               <listitem>
149                 <para>
150                   <returnvalue>database</returnvalue>: the song database
151                   has been modified after <command>update</command>.
152                 </para>
153               </listitem>
154               <listitem>
155                 <para>
156                   <returnvalue>update</returnvalue>: a database update
157                   has started or finished.  If the database was
158                   modified during the update, the
159                   <returnvalue>database</returnvalue> event is also
160                   emitted.
161                 </para>
162               </listitem>
163               <listitem>
164                 <para>
165                   <returnvalue>stored_playlist</returnvalue>: a stored
166                   playlist has been modified, renamed, created or
167                   deleted
168                 </para>
169               </listitem>
170               <listitem>
171                 <para>
172                   <returnvalue>playlist</returnvalue>: the current
173                   playlist has been modified
174                 </para>
175               </listitem>
176               <listitem>
177                 <para>
178                   <returnvalue>player</returnvalue>: the player has been
179                   started, stopped or seeked
180                 </para>
181               </listitem>
182               <listitem>
183                 <para>
184                   <returnvalue>mixer</returnvalue>: the volume has been
185                   changed
186                 </para>
187               </listitem>
188               <listitem>
189                 <para>
190                   <returnvalue>output</returnvalue>: an audio output has
191                   been enabled or disabled
192                 </para>
193               </listitem>
194               <listitem>
195                 <para>
196                   <returnvalue>options</returnvalue>: options like
197                   <option>repeat</option>, <option>random</option>,
198                   <option>crossfade</option>, replay gain
199                 </para>
200               </listitem>
201             </itemizedlist>
202             <para>
203               While a client is waiting for <command>idle</command>
204               results, the server disables timeouts, allowing a client
205               to wait for events as long as mpd runs.  The
206               <command>idle</command> command can be canceled by
207               sending the command <command>noidle</command> (no other
208               commands are allowed). MPD will then leave
209               <command>idle</command> mode and print results
210               immediately; might be empty at this time.
211             </para>
212             <para>
213               If the optional <varname>SUBSYSTEMS</varname> argument is used,
214               MPD will only send notifications when something changed in
215               one of the specified subsytems.
216             </para>
217           </listitem>
218         </varlistentry>
219         <varlistentry id="command_status">
220           <term>
221             <cmdsynopsis>
222               <command>status</command>
223             </cmdsynopsis>
224           </term>
225           <listitem>
226             <para>
227               Reports the current status of the player and the volume
228               level.
229             </para>
230             <itemizedlist>
231               <listitem>
232                 <para>
233                   <varname>volume</varname>:
234                   <returnvalue>0-100</returnvalue>
235                 </para>
236               </listitem>
237               <listitem>
238                 <para>
239                   <varname>repeat</varname>:
240                   <returnvalue>0 or 1</returnvalue>
241                 </para>
242               </listitem>
243               <listitem>
244                <para>
245                 <varname>single</varname>:
246                 <footnote id="since_0_15"><simpara>Introduced with MPD 0.15</simpara></footnote>
247                 <returnvalue>0 or 1</returnvalue>
248                </para>
249               </listitem>
250               <listitem>
251                <para>
252                 <varname>consume</varname>:
253                 <footnoteref linkend="since_0_15"/>
254                 <returnvalue>0 or 1</returnvalue>
255                </para>
256               </listitem>
257               <listitem>
258                 <para>
259                   <varname>playlist</varname>:
260                   <returnvalue>31-bit unsigned integer, the playlist
261                   version number</returnvalue>
262                 </para>
263               </listitem>
264               <listitem>
265                 <para>
266                   <varname>playlistlength</varname>:
267                   <returnvalue>integer, the length of the
268                   playlist</returnvalue>
269                 </para>
270               </listitem>
271               <listitem>
272                 <para>
273                   <varname>state</varname>:
274                   <returnvalue>play, stop, or pause</returnvalue>
275                 </para>
276               </listitem>
277               <listitem>
278                 <para>
279                   <varname>song</varname>:
280                   <returnvalue> playlist song number of the current
281                   song stopped on or playing
282                   </returnvalue>
283                 </para>
284               </listitem>
285               <listitem>
286                 <para>
287                   <varname>songid</varname>:
288                   <returnvalue>playlist songid of the current song
289                   stopped on or playing
290                   </returnvalue>
291                 </para>
292               </listitem>
293               <listitem>
294                 <para>
295                   <varname>nextsong</varname>:
296                   <footnoteref linkend="since_0_15"/>
297                   <returnvalue> playlist song number of the next
298                   song to be played
299                   </returnvalue>
300                 </para>
301               </listitem>
302               <listitem>
303                 <para>
304                   <varname>nextsongid</varname>:
305                   <footnoteref linkend="since_0_15"/>
306                   <returnvalue>playlist songid of the next song
307                   to be played
308                   </returnvalue>
309                 </para>
310               </listitem>
311               <listitem>
312                 <para>
313                   <varname>time</varname>:
314                   <returnvalue>total time elapsed (of current
315                   playing/paused song)</returnvalue>
316                 </para>
317               </listitem>
318               <listitem>
319                 <para>
320                   <varname>elapsed</varname>:
321                   <footnote id="since_0_16"><simpara>Introduced with MPD 0.16</simpara></footnote>
322                   <returnvalue>
323                     Total time elapsed within the current song, but
324                     with higher resolution.
325                   </returnvalue>
326                 </para>
327               </listitem>
328               <listitem>
329                 <para>
330                   <varname>bitrate</varname>:
331                   <returnvalue>instantaneous bitrate in
332                   kbps</returnvalue>
333                 </para>
334               </listitem>
335               <listitem>
336                 <para>
337                   <varname>xfade</varname>:
338                   <returnvalue>crossfade in seconds</returnvalue>
339                 </para>
340               </listitem>
341               <listitem>
342                 <para>
343                   <varname>mixrampdb</varname>:
344                   <returnvalue>mixramp threshold in dB</returnvalue>
345                 </para>
346               </listitem>
347               <listitem>
348                 <para>
349                   <varname>mixrampdelay</varname>:
350                   <returnvalue>mixrampdelay in seconds</returnvalue>
351                 </para>
352               </listitem>
353               <listitem>
354                 <para>
355                   <varname>audio</varname>:
356                   <returnvalue>sampleRate:bits:channels</returnvalue>
357                 </para>
358               </listitem>
359               <listitem>
360                 <para>
361                   <varname>updatings_db</varname>:
362                   <returnvalue>job id</returnvalue>
363                 </para>
364               </listitem>
365               <listitem>
366                 <para>
367                   <varname>error</varname>:
368                   <returnvalue>if there is an error, returns message
369                   here</returnvalue>
370                 </para>
371                 </listitem>
372             </itemizedlist>
373           </listitem>
374         </varlistentry>
375         <varlistentry id="command_stats">
376           <term>
377             <cmdsynopsis>
378               <command>stats</command>
379             </cmdsynopsis>
380           </term>
381           <listitem>
382             <para>
383               Displays statistics.
384             </para>
385             <itemizedlist>
386               <listitem>
387                 <para>
388                   <varname>artists</varname>: number of artists
389                 </para>
390               </listitem>
391               <listitem>
392                 <para>
393                   <varname>songs</varname>: number of albums
394                 </para>
395               </listitem>
396               <listitem>
397                 <para>
398                   <varname>uptime</varname>: daemon uptime in seconds
399                 </para>
400               </listitem>
401               <listitem>
402                 <para>
403                   <varname>db_playtime</varname>: sum of all song
404                   times in the db
405                 </para>
406               </listitem>
407               <listitem>
408                 <para>
409                   <varname>db_update</varname>: last db update in UNIX
410                   time
411                 </para>
412               </listitem>
413               <listitem>
414                 <para>
415                   <varname>playtime</varname>: time length of music played
416                 </para>
417               </listitem>
418             </itemizedlist>
419           </listitem>
420         </varlistentry>
421       </variablelist>
422     </section>
424     <section>
425       <title>Playback options</title>
427       <variablelist>
428         <varlistentry id="command_consume">
429           <term>
430             <cmdsynopsis>
431               <command>consume</command>
432               <arg choice="req"><replaceable>STATE</replaceable></arg>
433             </cmdsynopsis>
434           </term>
435           <listitem>
436             <para>
437               <footnoteref linkend="since_0_15"/>
438               Sets consume state to <varname>STATE</varname>,
439               <varname>STATE</varname> should be 0 or 1.
440               When consume is activated, each song played is removed from playlist.
441             </para>
442           </listitem>
443         </varlistentry>
444         <varlistentry id="command_crossfade">
445           <term>
446             <cmdsynopsis>
447               <command>crossfade</command>
448               <arg choice="req"><replaceable>SECONDS</replaceable></arg>
449             </cmdsynopsis>
450           </term>
451           <listitem>
452             <para>
453               Sets crossfading between songs.
454             </para>
455           </listitem>
456         </varlistentry>
457         <varlistentry id="command_mixrampdb">
458           <term>
459             <cmdsynopsis>
460               <command>mixrampdb</command>
461               <arg choice="req"><replaceable>deciBels</replaceable></arg>
462             </cmdsynopsis>
463           </term>
464           <listitem>
465             <para>
466               Sets the threshold at which songs will be overlapped. Like crossfading but doesn't fade the track volume, just overlaps. The songs need to have MixRamp tags added by an external tool. 0dB is the normalized maximum volume so use negative values, I prefer -17dB. In the absence of mixramp tags crossfading will be used. See http://sourceforge.net/projects/mixramp
467             </para>
468           </listitem>
469         </varlistentry>
470         <varlistentry id="command_mixrampdelay">
471           <term>
472             <cmdsynopsis>
473               <command>mixrampdelay</command>
474               <arg choice="req"><replaceable>SECONDS</replaceable></arg>
475             </cmdsynopsis>
476           </term>
477           <listitem>
478             <para>
479               Additional time subtracted from the overlap calculated by mixrampdb. A value of "nan" disables MixRamp overlapping and falls back to crossfading.
480             </para>
481           </listitem>
482         </varlistentry>
483         <varlistentry id="command_random">
484           <term>
485             <cmdsynopsis>
486               <command>random</command>
487               <arg choice="req"><replaceable>STATE</replaceable></arg>
488             </cmdsynopsis>
489           </term>
490           <listitem>
491             <para>
492               Sets random state to <varname>STATE</varname>,
493               <varname>STATE</varname> should be 0 or 1.
494             </para>
495           </listitem>
496         </varlistentry>
497         <varlistentry id="command_repeat">
498           <term>
499             <cmdsynopsis>
500               <command>repeat</command>
501               <arg choice="req"><replaceable>STATE</replaceable></arg>
502             </cmdsynopsis>
503           </term>
504           <listitem>
505             <para>
506               Sets repeat state to <varname>STATE</varname>,
507               <varname>STATE</varname> should be 0 or 1.
508             </para>
509           </listitem>
510         </varlistentry>
511         <varlistentry id="command_setvol">
512           <term>
513             <cmdsynopsis>
514               <command>setvol</command>
515               <arg choice="req"><replaceable>VOL</replaceable></arg>
516             </cmdsynopsis>
517           </term>
518           <listitem>
519             <para>
520               Sets volume to <varname>VOL</varname>, the range of
521               volume is 0-100.
522             </para>
523           </listitem>
524         </varlistentry>
525         <varlistentry id="command_single">
526           <term>
527             <cmdsynopsis>
528               <command>single</command>
529               <arg choice="req"><replaceable>STATE</replaceable></arg>
530             </cmdsynopsis>
531           </term>
532           <listitem>
533             <para>
534               <footnoteref linkend="since_0_15"/>
535               Sets single state to <varname>STATE</varname>,
536               <varname>STATE</varname> should be 0 or 1.
537               When single is activated, playback is stopped after current song, or
538               song is repeated if the 'repeat' mode is enabled.
539             </para>
540           </listitem>
541         </varlistentry>
542         <varlistentry id="command_replay_gain_mode">
543           <term>
544             <cmdsynopsis>
545               <command>replay_gain_mode</command>
546               <arg choice="req"><replaceable>MODE</replaceable></arg>
547             </cmdsynopsis>
548           </term>
549           <listitem>
550             <para>
551               Sets the replay gain mode.  One of
552               <parameter>off</parameter>,
553               <parameter>track</parameter>,
554               <parameter>album</parameter>.
555             </para>
556             <para>
557               Changing the mode during playback may take several
558               seconds, because the new settings does not affect the
559               buffered data.
560             </para>
561             <para>
562               This command triggers the
563               <returnvalue>options</returnvalue> idle event.
564             </para>
565           </listitem>
566         </varlistentry>
567         <varlistentry id="command_replay_gain_status">
568           <term>
569             <cmdsynopsis>
570               <command>replay_gain_status</command>
571             </cmdsynopsis>
572           </term>
573           <listitem>
574             <para>
575               Prints replay gain options.  Currently, only the
576               variable <varname>replay_gain_mode</varname> is
577               returned.
578             </para>
579           </listitem>
580         </varlistentry>
581       </variablelist>
582     </section>
584     <section>
585       <title>Controlling playback</title>
587       <variablelist>
588         <varlistentry id="command_next">
589           <term>
590             <cmdsynopsis>
591               <command>next</command>
592             </cmdsynopsis>
593           </term>
594           <listitem>
595             <para>
596               Plays next song in the playlist.
597             </para>
598           </listitem>
599         </varlistentry>
600         <varlistentry id="command_pause">
601           <term>
602             <cmdsynopsis>
603               <command>pause</command>
604               <arg choice="req"><replaceable>PAUSE</replaceable></arg>
605             </cmdsynopsis>
606           </term>
607           <listitem>
608             <para>
609               Toggles pause/resumes playing, <varname>PAUSE</varname> is 0 or 1.
610             </para>
611             <note>
612               <para>
613                 The use of pause command w/o the PAUSE argument is
614                 deprecated.
615               </para>
616             </note>
617           </listitem>
618         </varlistentry>
619         <varlistentry id="command_play">
620           <term>
621             <cmdsynopsis>
622               <command>play</command>
623               <arg><replaceable>SONGPOS</replaceable></arg>
624             </cmdsynopsis>
625           </term>
626           <listitem>
627             <para>
628               Begins playing the playlist at song number
629               <varname>SONGPOS</varname>.
630             </para>
631           </listitem>
632         </varlistentry>
633         <varlistentry id="command_playid">
634           <term>
635             <cmdsynopsis>
636               <command>playid</command>
637               <arg><replaceable>SONGID</replaceable></arg>
638             </cmdsynopsis>
639           </term>
640           <listitem>
641             <para>
642               Begins playing the playlist at song
643               <varname>SONGID</varname>.
644             </para>
645           </listitem>
646         </varlistentry>
647         <varlistentry id="command_previous">
648           <term>
649             <cmdsynopsis>
650               <command>previous</command>
651             </cmdsynopsis>
652           </term>
653           <listitem>
654             <para>
655               Plays previous song in the playlist.
656             </para>
657           </listitem>
658         </varlistentry>
660         <varlistentry id="command_seek">
661           <term>
662             <cmdsynopsis>
663               <command>seek</command>
664               <arg choice="req"><replaceable>SONGPOS</replaceable></arg>
665               <arg choice="req"><replaceable>TIME</replaceable></arg>
666             </cmdsynopsis>
667           </term>
668           <listitem>
669             <para>
670               Seeks to the position <varname>TIME</varname> (in
671               seconds) of entry <varname>SONGPOS</varname> in the
672               playlist.
673             </para>
674           </listitem>
675         </varlistentry>
676         <varlistentry id="command_seekid">
677           <term>
678             <cmdsynopsis>
679               <command>seekid</command>
680               <arg choice="req"><replaceable>SONGID</replaceable></arg>
681               <arg choice="req"><replaceable>TIME</replaceable></arg>
682             </cmdsynopsis>
683           </term>
684           <listitem>
685             <para>
686               Seeks to the position <varname>TIME</varname> (in
687               seconds) of song <varname>SONGID</varname>.
688             </para>
689           </listitem>
690         </varlistentry>
691         <varlistentry id="command_stop">
692           <term>
693             <cmdsynopsis>
694               <command>stop</command>
695             </cmdsynopsis>
696           </term>
697           <listitem>
698             <para>
699               Stops playing.
700             </para>
701           </listitem>
702         </varlistentry>
703       </variablelist>
704     </section>
706     <section>
707       <title>The current playlist</title>
709       <variablelist>
710         <varlistentry id="command_add">
711           <term>
712             <cmdsynopsis>
713               <command>add</command>
714               <arg choice="req"><replaceable>URI</replaceable></arg>
715             </cmdsynopsis>
716           </term>
717           <listitem>
718             <para>
719               Adds the file <varname>URI</varname> to the playlist
720               (directories add recursively). <varname>URI</varname>
721               can also be a single file.
722             </para>
723           </listitem>
724         </varlistentry>
725         <varlistentry id="command_addid">
726           <term>
727             <cmdsynopsis>
728               <command>addid</command>
729               <arg choice="req"><replaceable>URI</replaceable></arg>
730               <arg><replaceable>POSITION</replaceable></arg>
731             </cmdsynopsis>
732           </term>
733           <listitem>
734             <para>
735               Adds a song to the playlist (non-recursive) and returns the song id.
736             </para>
737             <para>
738               <varname>URI</varname> is always a single file or
739               URL.  For example:
740             </para>
741             <screen>
742 addid "foo.mp3"
743 Id: 999
745             </screen>
746           </listitem>
747         </varlistentry>
748         <varlistentry id="command_clear">
749           <term>
750             <cmdsynopsis>
751               <command>clear</command>
752             </cmdsynopsis>
753           </term>
754           <listitem>
755             <para>
756               Clears the current playlist.
757             </para>
758           </listitem>
759         </varlistentry>
760         <varlistentry id="command_delete">
761           <term>
762             <cmdsynopsis>
763               <command>delete</command>
764               <group>
765                 <arg choice="req"><replaceable>POS</replaceable></arg>
766                 <arg choice="req"><replaceable>START:END</replaceable></arg>
767               </group>
768             </cmdsynopsis>
769           </term>
770           <listitem>
771             <para>
772               Deletes a song from the playlist.
773             </para>
774           </listitem>
775         </varlistentry>
776         <varlistentry id="command_deleteid">
777           <term>
778             <cmdsynopsis>
779               <command>deleteid</command>
780               <arg choice="req"><replaceable>SONGID</replaceable></arg>
781             </cmdsynopsis>
782           </term>
783           <listitem>
784             <para>
785               Deletes the song <varname>SONGID</varname> from the
786               playlist
787             </para>
788           </listitem>
789         </varlistentry>
790         <varlistentry id="command_move">
791           <term>
792             <cmdsynopsis>
793               <command>move</command>
794               <group>
795                   <arg choice="req"><replaceable>FROM</replaceable></arg>
796                   <arg choice="req"><replaceable>START:END</replaceable></arg>
797               </group>
798               <arg choice="req"><replaceable>TO</replaceable></arg>
799             </cmdsynopsis>
800           </term>
801           <listitem>
802             <para>
803               Moves the song at <varname>FROM</varname> or range of songs
804               at <varname>START:END</varname> to <varname>TO</varname>
805               in the playlist.
806               <footnote id="range_since_0_15">
807                 <simpara>Ranges are supported since MPD 0.15</simpara>
808               </footnote>
809             </para>
810           </listitem>
811         </varlistentry>
812         <varlistentry id="command_moveid">
813           <term>
814             <cmdsynopsis>
815               <command>moveid</command>
816               <arg choice="req"><replaceable>FROM</replaceable></arg>
817               <arg choice="req"><replaceable>TO</replaceable></arg>
818             </cmdsynopsis>
819           </term>
820           <listitem>
821             <para>
822               Moves the song with <varname>FROM</varname> (songid) to
823               <varname>TO</varname> (playlist index) in the
824               playlist.  If <varname>TO</varname> is negative, it
825               is relative to the current song in the playlist (if
826               there is one).
827             </para>
828           </listitem>
829         </varlistentry>
830         <varlistentry id="command_playlist">
831           <term>
832             <cmdsynopsis>
833               <command>playlist</command>
834             </cmdsynopsis>
835           </term>
836           <listitem>
837             <para>
838               Displays the current playlist.
839             </para>
840             <note>
841               <para>
842                 Do not use this, instead use <command>playlistinfo</command>.
843               </para>
844             </note>
845           </listitem>
846         </varlistentry>
847         <varlistentry id="command_playlistfind">
848           <term>
849             <cmdsynopsis>
850               <command>playlistfind</command>
851               <arg choice="req"><replaceable>TAG</replaceable></arg>
852               <arg choice="req"><replaceable>NEEDLE</replaceable></arg>
853             </cmdsynopsis>
854           </term>
855           <listitem>
856             <para>
857               Finds songs in the current playlist with strict
858               matching.
859             </para>
860           </listitem>
861         </varlistentry>
862         <varlistentry id="command_playlistid">
863           <term>
864             <cmdsynopsis>
865               <command>playlistid</command>
866               <arg choice="req"><replaceable>SONGID</replaceable></arg>
867             </cmdsynopsis>
868           </term>
869           <listitem>
870             <para>
871               Displays a list of songs in the playlist.
872               <varname>SONGID</varname> is optional and specifies a
873               single song to display info for.
874             </para>
875           </listitem>
876         </varlistentry>
877         <varlistentry id="command_playlistinfo">
878           <term>
879             <cmdsynopsis>
880               <command>playlistinfo</command>
881               <group>
882                   <arg><replaceable>SONGPOS</replaceable></arg>
883                   <arg><replaceable>START:END</replaceable></arg>
884               </group>
885             </cmdsynopsis>
886           </term>
887           <listitem>
888             <para>
889               Displays a list of all songs in the playlist, or if the optional
890               argument is given, displays information only for the song
891               <varname>SONGPOS</varname> or the range of songs
892               <varname>START:END</varname>
893               <footnoteref linkend="range_since_0_15"/>
894             </para>
895           </listitem>
896         </varlistentry>
897         <varlistentry id="command_playlistsearch">
898           <term>
899             <cmdsynopsis>
900               <command>playlistsearch</command>
901               <arg choice="req"><replaceable>TAG</replaceable></arg>
902               <arg choice="req"><replaceable>NEEDLE</replaceable></arg>
903             </cmdsynopsis>
904           </term>
905           <listitem>
906             <para>
907               Searches case-sensitively for partial matches in the
908               current playlist.
909             </para>
910           </listitem>
911         </varlistentry>
912         <varlistentry id="command_plchanges">
913           <term>
914             <cmdsynopsis>
915               <command>plchanges</command>
916               <arg choice="req"><replaceable>VERSION</replaceable></arg>
917             </cmdsynopsis>
918           </term>
919           <listitem>
920             <para>
921               Displays changed songs currently in the playlist since
922               <varname>VERSION</varname>.
923             </para>
924             <para>
925               To detect songs that were deleted at the end of the
926               playlist, use playlistlength returned by status command.
927             </para>
928           </listitem>
929         </varlistentry>
930         <varlistentry id="command_plchangesposid">
931           <term>
932             <cmdsynopsis>
933               <command>plchangesposid</command>
934               <arg choice="req"><replaceable>VERSION</replaceable></arg>
935             </cmdsynopsis>
936           </term>
937           <listitem>
938             <para>
939               Displays changed songs currently in the playlist since
940               <varname>VERSION</varname>.  This function only
941               returns the position and the id of the changed song, not
942               the complete metadata. This is more bandwidth efficient.
943             </para>
944             <para>
945               To detect songs that were deleted at the end of the
946               playlist, use playlistlength returned by status command.
947             </para>
948           </listitem>
949         </varlistentry>
950         <varlistentry id="command_shuffle">
951           <term>
952             <cmdsynopsis>
953               <command>shuffle</command>
954               <arg><replaceable>START:END</replaceable></arg>
955             </cmdsynopsis>
956           </term>
957           <listitem>
958             <para>
959               Shuffles the current playlist.
960               <varname>START:END</varname> is optional and specifies
961               a range of songs.
962             </para>
963           </listitem>
964         </varlistentry>
965         <varlistentry id="command_swap">
966           <term>
967             <cmdsynopsis>
968               <command>swap</command>
969               <arg choice="req"><replaceable>SONG1</replaceable></arg>
970               <arg choice="req"><replaceable>SONG2</replaceable></arg>
971             </cmdsynopsis>
972           </term>
973           <listitem>
974             <para>
975               Swaps the positions of <varname>SONG1</varname> and
976               <varname>SONG2</varname>.
977             </para>
978           </listitem>
979         </varlistentry>
980         <varlistentry id="command_swapid">
981           <term>
982             <cmdsynopsis>
983               <command>swapid</command>
984               <arg choice="req"><replaceable>SONG1</replaceable></arg>
985               <arg choice="req"><replaceable>SONG2</replaceable></arg>
986             </cmdsynopsis>
987           </term>
988           <listitem>
989             <para>
990               Swaps the positions of <varname>SONG1</varname> and
991               <varname>SONG2</varname> (both song ids).
992             </para>
993           </listitem>
994         </varlistentry>
995       </variablelist>
996     </section>
998     <section>
999       <title>Stored playlists</title>
1001       <para>
1002         Playlists are stored inside the configured playlist directory.
1003         They are addressed with their file name (without the directory
1004         and without the <filename>.m3u</filename> suffix).
1005       </para>
1007       <para>
1008         Some of the commands described in this section can be used to
1009         run playlist plugins instead of the hard-coded simple
1010         <filename>m3u</filename> parser.  They can access playlists in
1011         the music directory (relative path including the suffix) or
1012         remote playlists (absolute URI with a supported scheme).
1013       </para>
1015       <variablelist>
1016         <varlistentry id="command_listplaylist">
1017           <term>
1018             <cmdsynopsis>
1019               <command>listplaylist</command>
1020               <arg choice="req"><replaceable>NAME</replaceable></arg>
1021             </cmdsynopsis>
1022           </term>
1023           <listitem>
1024             <para>
1025               Lists the songs in the playlist.  Playlist plugins are
1026               supported.
1027             </para>
1028           </listitem>
1029         </varlistentry>
1030         <varlistentry id="command_listplaylistinfo">
1031           <term>
1032             <cmdsynopsis>
1033               <command>listplaylistinfo</command>
1034               <arg choice="req"><replaceable>NAME</replaceable></arg>
1035             </cmdsynopsis>
1036           </term>
1037           <listitem>
1038             <para>
1039               Lists the songs with metadata in the playlist.  Playlist
1040               plugins are supported.
1041             </para>
1042           </listitem>
1043         </varlistentry>
1044         <varlistentry id="command_listplaylists">
1045           <term>
1046             <cmdsynopsis>
1047               <command>listplaylists</command>
1048             </cmdsynopsis>
1049           </term>
1050           <listitem>
1051             <para>
1052               Prints a list of the playlist directory.
1053             </para>
1054             <para>
1055               After each playlist name the server sends its last
1056               modification time as attribute "Last-Modified" in ISO
1057               8601 format.  To avoid problems due to clock differences
1058               between clients and the server, clients should not
1059               compare this value with their local clock.
1060             </para>
1061           </listitem>
1062         </varlistentry>
1063         <varlistentry id="command_load">
1064           <term>
1065             <cmdsynopsis>
1066               <command>load</command>
1067               <arg choice="req"><replaceable>NAME</replaceable></arg>
1068             </cmdsynopsis>
1069           </term>
1070           <listitem>
1071             <para>
1072               Loads the playlist into the current queue.  Playlist
1073               plugins are supported.
1074             </para>
1075           </listitem>
1076         </varlistentry>
1077         <varlistentry id="command_playlistadd">
1078           <term>
1079             <cmdsynopsis>
1080               <command>playlistadd</command>
1081               <arg choice="req"><replaceable>NAME</replaceable></arg>
1082               <arg choice="req"><replaceable>URI</replaceable></arg>
1083             </cmdsynopsis>
1084           </term>
1085           <listitem>
1086             <para>
1087               Adds <varname>URI</varname> to the playlist
1088               <filename>NAME.m3u</filename>.
1089             </para>
1090             <para>
1091              <filename>NAME.m3u</filename> will be created if it does
1092              not exist.
1093             </para>
1094           </listitem>
1095         </varlistentry>
1096         <varlistentry id="command_playlistclear">
1097           <term>
1098             <cmdsynopsis>
1099               <command>playlistclear</command>
1100               <arg choice="req"><replaceable>NAME</replaceable></arg>
1101             </cmdsynopsis>
1102           </term>
1103           <listitem>
1104             <para>
1105               Clears the playlist <filename>NAME.m3u</filename>.
1106             </para>
1107           </listitem>
1108         </varlistentry>
1109         <varlistentry id="command_playlistdelete">
1110           <term>
1111             <cmdsynopsis>
1112               <command>playlistdelete</command>
1113               <arg choice="req"><replaceable>NAME</replaceable></arg>
1114               <arg choice="req"><replaceable>SONGPOS</replaceable></arg>
1115             </cmdsynopsis>
1116           </term>
1117           <listitem>
1118             <para>
1119               Deletes <varname>SONGPOS</varname> from the
1120               playlist <filename>NAME.m3u</filename>.
1121             </para>
1122           </listitem>
1123         </varlistentry>
1124         <varlistentry id="command_playlistmove">
1125           <term>
1126             <cmdsynopsis>
1127               <command>playlistmove</command>
1128               <arg choice="req"><replaceable>NAME</replaceable></arg>
1129               <arg choice="req"><replaceable>SONGID</replaceable></arg>
1130               <arg choice="req"><replaceable>SONGPOS</replaceable></arg>
1131             </cmdsynopsis>
1132           </term>
1133           <listitem>
1134             <para>
1135               Moves <varname>SONGID</varname> in the playlist
1136               <filename>NAME.m3u</filename> to the position
1137               <varname>SONGPOS</varname>.
1138             </para>
1139           </listitem>
1140         </varlistentry>
1141         <varlistentry id="command_rename">
1142           <term>
1143             <cmdsynopsis>
1144               <command>rename</command>
1145               <arg choice="req"><replaceable>NAME</replaceable></arg>
1146               <arg choice="req"><replaceable>NEW_NAME</replaceable></arg>
1147             </cmdsynopsis>
1148           </term>
1149           <listitem>
1150             <para>
1151               Renames the playlist <filename>NAME.m3u</filename> to <filename>NEW_NAME.m3u</filename>.
1152             </para>
1153           </listitem>
1154         </varlistentry>
1155         <varlistentry id="command_rm">
1156           <term>
1157             <cmdsynopsis>
1158               <command>rm</command>
1159               <arg choice="req"><replaceable>NAME</replaceable></arg>
1160             </cmdsynopsis>
1161           </term>
1162           <listitem>
1163             <para>
1164               Removes the playlist <filename>NAME.m3u</filename> from
1165               the playlist directory.
1166             </para>
1167           </listitem>
1168         </varlistentry>
1169         <varlistentry id="command_save">
1170           <term>
1171             <cmdsynopsis>
1172               <command>save</command>
1173               <arg choice="req"><replaceable>NAME</replaceable></arg>
1174             </cmdsynopsis>
1175           </term>
1176           <listitem>
1177             <para>
1178               Saves the current playlist to
1179               <filename>NAME.m3u</filename> in the playlist directory.
1180             </para>
1181           </listitem>
1182         </varlistentry>
1183       </variablelist>
1184     </section>
1186     <section>
1187       <title>The music database</title>
1189       <variablelist>
1190         <varlistentry id="command_count">
1191           <term>
1192             <cmdsynopsis>
1193               <command>count</command>
1194               <arg choice="req"><replaceable>TAG</replaceable></arg>
1195               <arg choice="req"><replaceable>NEEDLE</replaceable></arg>
1196             </cmdsynopsis>
1197           </term>
1198           <listitem>
1199             <para>
1200               Counts the number of songs and their total playtime in
1201               the db matching <varname>TAG</varname> exactly.
1202             </para>
1203           </listitem>
1204         </varlistentry>
1205         <varlistentry id="command_find">
1206           <term>
1207             <cmdsynopsis>
1208               <command>find</command>
1209               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1210               <arg choice="req"><replaceable>WHAT</replaceable></arg>
1211             </cmdsynopsis>
1212           </term>
1213           <listitem>
1214             <para>
1215               Finds songs in the db that are exactly
1216               <varname>WHAT</varname>.  <varname>TYPE</varname> should
1217               be <parameter>album</parameter>,
1218               <parameter>artist</parameter>, or
1219               <parameter>title</parameter>.  <varname>WHAT</varname>
1220               is what to find.
1221             </para>
1222           </listitem>
1223         </varlistentry>
1224         <varlistentry id="command_findadd">
1225           <term>
1226             <cmdsynopsis>
1227               <command>findadd</command>
1228               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1229               <arg choice="req"><replaceable>WHAT</replaceable></arg>
1230             </cmdsynopsis>
1231           </term>
1232           <listitem>
1233             <para>
1234               Finds songs in the db that are exactly
1235               <varname>WHAT</varname> and adds them to current playlist.
1236               <varname>TYPE</varname> can be any tag supported by MPD.
1237               <varname>WHAT</varname> is what to find.
1238             </para>
1239           </listitem>
1240         </varlistentry>
1241         <varlistentry id="command_list">
1242           <term>
1243             <cmdsynopsis>
1244               <command>list</command>
1245               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1246               <arg><replaceable>ARTIST</replaceable></arg>
1247             </cmdsynopsis>
1248           </term>
1249           <listitem>
1250             <para>
1251               Lists all tags of the specified type.
1252               <varname>TYPE</varname> should be album or artist.
1253             </para>
1254             <para>
1255               <varname>ARTIST</varname> is an optional parameter when
1256               type is album, this specifies to list albums by an
1257               artist.
1258             </para>
1259           </listitem>
1260         </varlistentry>
1261         <varlistentry id="command_listall">
1262           <term>
1263             <cmdsynopsis>
1264               <command>listall</command>
1265               <arg><replaceable>URI</replaceable></arg>
1266             </cmdsynopsis>
1267           </term>
1268           <listitem>
1269             <para>
1270               Lists all songs and directories in
1271               <varname>URI</varname>.
1272             </para>
1273           </listitem>
1274         </varlistentry>
1275         <varlistentry id="command_listallinfo">
1276           <term>
1277             <cmdsynopsis>
1278               <command>listallinfo</command>
1279               <arg><replaceable>URI</replaceable></arg>
1280             </cmdsynopsis>
1281           </term>
1282           <listitem>
1283             <para>
1284               Same as <command>listall</command>, except it also
1285               returns metadata info in the same format as
1286               <command>lsinfo</command>.
1287             </para>
1288           </listitem>
1289         </varlistentry>
1290         <varlistentry id="command_lsinfo">
1291           <term>
1292             <cmdsynopsis>
1293               <command>lsinfo</command>
1294               <arg><replaceable>URI</replaceable></arg>
1295             </cmdsynopsis>
1296           </term>
1297           <listitem>
1298             <para>
1299               Lists the contents of the directory
1300               <varname>URI</varname>.
1301             </para>
1302             <para>
1303               When listing the root directory, this currently returns
1304               the list of stored playlists.  This behavior is
1305               deprecated; use "listplaylists" instead.
1306             </para>
1307           </listitem>
1308         </varlistentry>
1309         <varlistentry id="command_search">
1310           <term>
1311             <cmdsynopsis>
1312               <command>search</command>
1313               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1314               <arg choice="req"><replaceable>WHAT</replaceable></arg>
1315             </cmdsynopsis>
1316           </term>
1317           <listitem>
1318             <para>
1319               Searches for any song that contains
1320               <varname>WHAT</varname>.  <varname>TYPE</varname> can be
1321               <parameter>title</parameter>,
1322               <parameter>artist</parameter>,
1323               <parameter>album</parameter> or
1324               <parameter>filename</parameter>.  Search is not case
1325               sensitive.
1326             </para>
1327           </listitem>
1328         </varlistentry>
1329         <varlistentry id="command_update">
1330           <term>
1331             <cmdsynopsis>
1332               <command>update</command>
1333               <arg choice="opt"><replaceable>URI</replaceable></arg>
1334             </cmdsynopsis>
1335           </term>
1336           <listitem>
1337             <para>
1338               Updates the music database: find new files, remove
1339               deleted files, update modified files.
1340             </para>
1341             <para>
1342               <varname>URI</varname> is a particular directory or
1343               song/file to update.  If you do not specify it,
1344               everything is updated.
1345             </para>
1346             <para>
1347               Prints "updating_db: JOBID" where
1348               <varname>JOBID</varname> is a positive number
1349               identifying the update job.  You can read the current
1350               job id in the <command>status</command> response.
1351             </para>
1352           </listitem>
1353         </varlistentry>
1354         <varlistentry id="command_rescan">
1355           <term>
1356             <cmdsynopsis>
1357               <command>rescan</command>
1358               <arg choice="opt"><replaceable>URI</replaceable></arg>
1359             </cmdsynopsis>
1360           </term>
1361           <listitem>
1362             <para>
1363               Same as <command>update</command>, but also rescans
1364               unmodified files.
1365             </para>
1366           </listitem>
1367         </varlistentry>
1368       </variablelist>
1369     </section>
1371     <section>
1372       <title>Stickers</title>
1374       <para>
1375         "Stickers"<footnoteref linkend="since_0_15"/> are pieces of
1376         information attached to existing MPD objects (e.g. song files,
1377         directories, albums).  Clients can create arbitrary name/value
1378         pairs.  MPD itself does not assume any special meaning in
1379         them.
1380       </para>
1382       <para>
1383         The goal is to allow clients to share additional (possibly
1384         dynamic) information about songs, which is neither stored on
1385         the client (not available to other clients), nor stored in the
1386         song files (MPD has no write access).
1387       </para>
1389       <para>
1390         Client developers should create a standard for common sticker
1391         names, to ensure interoperability.
1392       </para>
1394       <para>
1395         Objects which may have stickers are addressed by their object
1396         type ("song" for song objects) and their URI (the path within
1397         the database for songs).
1398       </para>
1400       <variablelist>
1401         <varlistentry id="command_sticker_get">
1402           <term>
1403             <cmdsynopsis>
1404               <command>sticker</command>
1405               <arg choice="plain">get</arg>
1406               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1407               <arg choice="req"><replaceable>URI</replaceable></arg>
1408               <arg choice="req"><replaceable>NAME</replaceable></arg>
1409             </cmdsynopsis>
1410           </term>
1411           <listitem>
1412             <para>
1413               Reads a sticker value for the specified object.
1414             </para>
1415           </listitem>
1416         </varlistentry>
1417         <varlistentry id="command_sticker_set">
1418           <term>
1419             <cmdsynopsis>
1420               <command>sticker</command>
1421               <arg choice="plain">set</arg>
1422               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1423               <arg choice="req"><replaceable>URI</replaceable></arg>
1424               <arg choice="req"><replaceable>NAME</replaceable></arg>
1425               <arg choice="req"><replaceable>VALUE</replaceable></arg>
1426             </cmdsynopsis>
1427           </term>
1428           <listitem>
1429             <para>
1430               Adds a sticker value to the specified object.  If a
1431               sticker item with that name already exists, it is
1432               replaced.
1433             </para>
1434           </listitem>
1435         </varlistentry>
1436         <varlistentry id="command_sticker_delete">
1437           <term>
1438             <cmdsynopsis>
1439               <command>sticker</command>
1440               <arg choice="plain">delete</arg>
1441               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1442               <arg choice="req"><replaceable>URI</replaceable></arg>
1443               <arg choice="opt"><replaceable>NAME</replaceable></arg>
1444             </cmdsynopsis>
1445           </term>
1446           <listitem>
1447             <para>
1448               Deletes a sticker value from the specified object.  If
1449               you do not specify a sticker name, all sticker values
1450               are deleted.
1451             </para>
1452           </listitem>
1453         </varlistentry>
1454         <varlistentry id="command_sticker_list">
1455           <term>
1456             <cmdsynopsis>
1457               <command>sticker</command>
1458               <arg choice="plain">list</arg>
1459               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1460               <arg choice="req"><replaceable>URI</replaceable></arg>
1461             </cmdsynopsis>
1462           </term>
1463           <listitem>
1464             <para>
1465               Lists the stickers for the specified object.
1466             </para>
1467           </listitem>
1468         </varlistentry>
1469         <varlistentry id="command_sticker_find">
1470           <term>
1471             <cmdsynopsis>
1472               <command>sticker</command>
1473               <arg choice="plain">find</arg>
1474               <arg choice="req"><replaceable>TYPE</replaceable></arg>
1475               <arg choice="req"><replaceable>URI</replaceable></arg>
1476               <arg choice="req"><replaceable>NAME</replaceable></arg>
1477             </cmdsynopsis>
1478           </term>
1479           <listitem>
1480             <para>
1481               Searches the sticker database for stickers with the
1482               specified name, below the specified directory (URI).
1483               For each matching song, it prints the URI and that one
1484               sticker's value.
1485             </para>
1486           </listitem>
1487         </varlistentry>
1488       </variablelist>
1489     </section>
1491     <section>
1492       <title>Connection settings</title>
1494       <variablelist>
1495         <varlistentry id="command_close">
1496           <term>
1497             <cmdsynopsis>
1498               <command>close</command>
1499             </cmdsynopsis>
1500           </term>
1501           <listitem>
1502             <para>
1503               Closes the connection to MPD.
1504             </para>
1505           </listitem>
1506         </varlistentry>
1507         <varlistentry id="command_kill">
1508           <term>
1509             <cmdsynopsis>
1510               <command>kill</command>
1511             </cmdsynopsis>
1512           </term>
1513           <listitem>
1514             <para>
1515               Kills MPD.
1516             </para>
1517           </listitem>
1518         </varlistentry>
1519         <varlistentry id="command_password">
1520           <term>
1521             <cmdsynopsis>
1522               <command>password</command>
1523               <arg choice="req"><replaceable>PASSWORD</replaceable></arg>
1524             </cmdsynopsis>
1525           </term>
1526           <listitem>
1527             <para>
1528               This is used for authentication with the server.
1529               <varname>PASSWORD</varname> is simply the plaintext
1530               password.
1531             </para>
1532           </listitem>
1533         </varlistentry>
1534         <varlistentry id="command_ping">
1535           <term>
1536             <cmdsynopsis>
1537               <command>ping</command>
1538             </cmdsynopsis>
1539           </term>
1540           <listitem>
1541             <para>
1542               Does nothing but return "OK".
1543             </para>
1544           </listitem>
1545         </varlistentry>
1546       </variablelist>
1547     </section>
1549     <section>
1550       <title>Audio output devices</title>
1552       <variablelist>
1553         <varlistentry id="command_disableoutput">
1554           <term>
1555             <cmdsynopsis>
1556               <command>disableoutput</command>
1557             </cmdsynopsis>
1558           </term>
1559           <listitem>
1560             <para>
1561               Turns an output off.
1562             </para>
1563           </listitem>
1564         </varlistentry>
1565         <varlistentry id="command_enableoutput">
1566           <term>
1567             <cmdsynopsis>
1568               <command>enableoutput</command>
1569             </cmdsynopsis>
1570           </term>
1571           <listitem>
1572             <para>
1573               Turns an output on.
1574             </para>
1575           </listitem>
1576         </varlistentry>
1577         <varlistentry id="command_outputs">
1578           <term>
1579             <cmdsynopsis>
1580               <command>outputs</command>
1581             </cmdsynopsis>
1582           </term>
1583           <listitem>
1584             <para>
1585               Shows information about all outputs.
1586             </para>
1587           </listitem>
1588         </varlistentry>
1589       </variablelist>
1590     </section>
1592     <section>
1593       <title>Reflection</title>
1595       <variablelist>
1596         <varlistentry id="command_commands">
1597           <term>
1598             <cmdsynopsis>
1599               <command>commands</command>
1600             </cmdsynopsis>
1601           </term>
1602           <listitem>
1603             <para>
1604               Shows which commands the current user has access to.
1605             </para>
1606           </listitem>
1607         </varlistentry>
1608         <varlistentry id="command_notcommands">
1609           <term>
1610             <cmdsynopsis>
1611               <command>notcommands</command>
1612             </cmdsynopsis>
1613           </term>
1614           <listitem>
1615             <para>
1616               Shows which commands the current user does not have
1617               access to.
1618             </para>
1619           </listitem>
1620         </varlistentry>
1621         <varlistentry id="command_tagtypes">
1622           <term>
1623             <cmdsynopsis>
1624               <command>tagtypes</command>
1625             </cmdsynopsis>
1626           </term>
1627           <listitem>
1628             <para>
1629               Shows a list of available song metadata.
1630             </para>
1631           </listitem>
1632         </varlistentry>
1633         <varlistentry id="command_urlhandlers">
1634           <term>
1635             <cmdsynopsis>
1636               <command>urlhandlers</command>
1637             </cmdsynopsis>
1638           </term>
1639           <listitem>
1640             <para>
1641               Gets a list of available URL handlers.
1642             </para>
1643           </listitem>
1644         </varlistentry>
1645         <varlistentry id="command_decoders">
1646           <term>
1647             <cmdsynopsis>
1648               <command>decoders</command>
1649             </cmdsynopsis>
1650           </term>
1651           <listitem>
1652             <para>
1653               Print a list of decoder plugins, followed by their
1654               supported suffixes and MIME types.  Example response:
1655             </para>
1656             <programlisting>plugin: mad
1657 suffix: mp3
1658 suffix: mp2
1659 mime_type: audio/mpeg
1660 plugin: mpcdec
1661 suffix: mpc</programlisting>
1662           </listitem>
1663         </varlistentry>
1664       </variablelist>
1665     </section>
1666   </chapter>
1667 </book>