Switch to unified view

a/doc/upmpdcli.html b/doc/upmpdcli.html
...
...
2
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
<head>
4
<head>
5
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
5
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
6
<meta name="generator" content="AsciiDoc 8.6.7" />
6
<meta name="generator" content="AsciiDoc 8.6.7" />
7
<title>Upmpdcli: an UPnP Renderer Front-End to the Music Player Daemon</title>
7
<title>Upmpdcli: MPD UPnP Renderer Front-End</title>
8
<style type="text/css">
8
<style type="text/css">
9
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
9
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
10
10
11
/* Default font. */
11
/* Default font. */
12
body {
12
body {
...
...
735
/*]]>*/
735
/*]]>*/
736
</script>
736
</script>
737
</head>
737
</head>
738
<body class="article">
738
<body class="article">
739
<div id="header">
739
<div id="header">
740
<h1>Upmpdcli: an UPnP Renderer Front-End to the Music Player Daemon</h1>
740
<h1>Upmpdcli: MPD UPnP Renderer Front-End</h1>
741
</div>
741
</div>
742
<div id="content">
742
<div id="content">
743
<div class="sect1">
743
<div id="preamble">
744
<h2 id="upmpdcli.intro">Introduction</h2>
745
<div class="sectionbody">
744
<div class="sectionbody">
746
<div class="paragraph"><p><strong>upmpdcli</strong> is an UPnP Media Renderer front-end to <strong>MPD</strong>, the Music Player
745
<div class="paragraph"><p><strong>upmpdcli</strong> is an UPnP Media Renderer front-end to <strong>MPD</strong>, the Music Player
747
Daemon. It turns <strong>MPD</strong> into an UPnP Media Renderer, supporting gapless
748
track transitions.</p></div>
749
<div class="paragraph"><p><strong>upmpdcli</strong> is open-source, free and licensed under the GPL. It is written
750
in C++ and uses the <strong>libupnp</strong> (1.6) and <strong>libmpdclient</strong> libraries.</p></div>
751
<div class="paragraph"><p>The typical setup is a home network with:</p></div>
752
<div class="ulist"><ul>
753
<li>
754
<p>
755
An UPnP media server (e.g. <strong>Minidlna</strong>, <strong>Mediatomb</strong>, or some commercial
756
  device).
757
</p>
758
</li>
759
<li>
760
<p>
761
An UPnP control point (e.g. <strong>Audionet</strong> or <strong>Bubble UPnP</strong> running on a
762
  tablet or phone).
763
</p>
764
</li>
765
<li>
766
<p>
767
<strong>MPD</strong> running on some Linux device (e.g. Raspberry PI hooked up to your
768
  bedroom stereo).
769
</p>
770
</li>
771
<li>
772
<p>
773
<strong>upmpdcli</strong> running on any Linux computer on the network (the same as
774
  <strong>MPD</strong> or not). It will be discovered by the UPnP control point in a
775
  standard fashion.
776
</p>
777
</li>
778
</ul></div>
779
<div class="imageblock" style="float:right;">
780
<div class="content">
781
<img src="upmpdcli.png" alt="Basic flow" />
782
</div>
783
</div>
784
<div class="paragraph"><p>In this usage, <strong>MPD</strong> does not manage the audio files directly and its
785
configured music directory will typically be empty. It fetches them from
786
the Media Server through HTTP, using the <strong>curl</strong> input plugin, and does not
787
need a local tags database.</p></div>
788
<div class="paragraph"><p>When used with an appropriate control point, the <strong>upmpdcli</strong>/<strong>MPD</strong>
789
combination supports gapless playback.</p></div>
790
<div class="paragraph"><p><em>What&#8217;s the point ?</em> If you are running an UPnP network with multiple
791
devices, you may prefer to use a single control application (UPnP-based)
792
for everything. <strong>MPD</strong> is a very capable and robust music-playing application,
793
which runs well on small computers (e.g. Raspberry PI or other "plug" type
794
computers). However it needs a specific control application.</p></div>
795
<div class="paragraph"><p><strong>upmpdcli</strong> lets you control your <strong>MPD</strong>-based players with your UPnP control
796
point.</p></div>
746
Daemon.</p></div>
797
</div>
747
</div>
798
</div>
748
</div>
799
<div class="sect1">
749
<div class="sect1">
800
<h2 id="_configuration">Configuration</h2>
750
<h2 id="_configuration">Configuration</h2>
801
<div class="sectionbody">
751
<div class="sectionbody">
...
...
846
<td align="left" valign="top"><p class="table">-p mpdport</p></td>
796
<td align="left" valign="top"><p class="table">-p mpdport</p></td>
847
<td align="left" valign="top"><p class="table">$UPMPD_PORT</p></td>
797
<td align="left" valign="top"><p class="table">$UPMPD_PORT</p></td>
848
<td align="left" valign="top"><p class="table">mpdport</p></td>
798
<td align="left" valign="top"><p class="table">mpdport</p></td>
849
</tr>
799
</tr>
850
<tr>
800
<tr>
801
<td align="left" valign="top"><p class="table"><strong>MPD</strong> password</p></td>
802
<td align="left" valign="top"><p class="table"></p></td>
803
<td align="left" valign="top"><p class="table"></p></td>
804
<td align="left" valign="top"><p class="table">mpdpassword</p></td>
805
</tr>
806
<tr>
851
<td align="left" valign="top"><p class="table">Do we own the <strong>MPD</strong> queue and fearlessly clear it</p></td>
807
<td align="left" valign="top"><p class="table">Do we own the <strong>MPD</strong> queue and fearlessly clear it</p></td>
852
<td align="left" valign="top"><p class="table">-o 0/1</p></td>
808
<td align="left" valign="top"><p class="table">-o 0/1</p></td>
853
<td align="left" valign="top"><p class="table"></p></td>
809
<td align="left" valign="top"><p class="table"></p></td>
854
<td align="left" valign="top"><p class="table">ownqueue</p></td>
810
<td align="left" valign="top"><p class="table">ownqueue</p></td>
855
</tr>
811
</tr>
...
...
878
</div>
834
</div>
879
</div>
835
</div>
880
<div class="sect1">
836
<div class="sect1">
881
<h2 id="upmpdcli.boot">Boot time startup</h2>
837
<h2 id="upmpdcli.boot">Boot time startup</h2>
882
<div class="sectionbody">
838
<div class="sectionbody">
883
<div class="paragraph"><p><strong>upmpdcli</strong> will will try to change its <tt>uid</tt> to user <tt>upmpdcli</tt> if it is
839
<div class="paragraph"><p><strong>upmpdcli</strong> will try to change its <tt>uid</tt> to user <tt>upmpdcli</tt> if it is
884
started by root. It will refuse to run if the user does not exist.</p></div>
840
started by root. It will refuse to run if the user does not exist.</p></div>
885
<div class="paragraph"><p>If started by <tt>root</tt>, <strong>upmpdcli</strong> will also write its process id to
841
<div class="paragraph"><p>If started by <tt>root</tt>, <strong>upmpdcli</strong> will also write its process id to
886
<tt>/var/run/upmpdcli.pid</tt>.</p></div>
842
<tt>/var/run/upmpdcli.pid</tt>.</p></div>
887
<div class="paragraph"><p>There are boot-time startup scripts in the <tt>debian/</tt> directory inside the
843
<div class="paragraph"><p>There are boot-time startup scripts in the <tt>debian/</tt> directory inside the
888
source tree (for Debian/Ubuntu/Mint/Raspbian etc.). There is also a systemd
844
source tree (for Debian/Ubuntu/Mint/Raspbian etc.). There is also a systemd
...
...
912
</div>
868
</div>
913
</div>
869
</div>
914
<div id="footnotes"><hr /></div>
870
<div id="footnotes"><hr /></div>
915
<div id="footer">
871
<div id="footer">
916
<div id="footer-text">
872
<div id="footer-text">
917
Last updated 2014-03-28 14:47:32 CET
873
Last updated 2014-04-20 08:04:03 CEST
918
</div>
874
</div>
919
</div>
875
</div>
920
</body>
876
</body>
921
</html>
877
</html>