|
a/doc/upmpdcli.html |
|
b/doc/upmpdcli.html |
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
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.9" />
|
6 |
<meta name="generator" content="AsciiDoc 8.6.7" />
|
7 |
<title>Upmpdcli: MPD UPnP Renderer Front-End</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. */
|
|
... |
|
... |
85 |
margin-top: 0;
|
85 |
margin-top: 0;
|
86 |
}
|
86 |
}
|
87 |
ul > li { color: #aaa; }
|
87 |
ul > li { color: #aaa; }
|
88 |
ul > li > * { color: black; }
|
88 |
ul > li > * { color: black; }
|
89 |
|
89 |
|
90 |
.monospaced, code, pre {
|
90 |
pre {
|
91 |
font-family: "Courier New", Courier, monospace;
|
|
|
92 |
font-size: inherit;
|
|
|
93 |
color: navy;
|
|
|
94 |
padding: 0;
|
91 |
padding: 0;
|
95 |
margin: 0;
|
92 |
margin: 0;
|
96 |
}
|
|
|
97 |
pre {
|
|
|
98 |
white-space: pre-wrap;
|
|
|
99 |
}
|
93 |
}
|
100 |
|
94 |
|
101 |
#author {
|
95 |
#author {
|
102 |
color: #527bbd;
|
96 |
color: #527bbd;
|
103 |
font-weight: bold;
|
97 |
font-weight: bold;
|
|
... |
|
... |
223 |
border-left: 3px solid #dddddd;
|
217 |
border-left: 3px solid #dddddd;
|
224 |
padding-left: 0.5em;
|
218 |
padding-left: 0.5em;
|
225 |
}
|
219 |
}
|
226 |
|
220 |
|
227 |
div.imageblock div.content { padding-left: 0; }
|
221 |
div.imageblock div.content { padding-left: 0; }
|
228 |
span.image img { border-style: none; vertical-align: text-bottom; }
|
222 |
span.image img { border-style: none; }
|
229 |
a.image:visited { color: white; }
|
223 |
a.image:visited { color: white; }
|
230 |
|
224 |
|
231 |
dl {
|
225 |
dl {
|
232 |
margin-top: 0.8em;
|
226 |
margin-top: 0.8em;
|
233 |
margin-bottom: 0.8em;
|
227 |
margin-bottom: 0.8em;
|
|
... |
|
... |
419 |
/*
|
413 |
/*
|
420 |
* xhtml11 specific
|
414 |
* xhtml11 specific
|
421 |
*
|
415 |
*
|
422 |
* */
|
416 |
* */
|
423 |
|
417 |
|
|
|
418 |
tt {
|
|
|
419 |
font-family: "Courier New", Courier, monospace;
|
|
|
420 |
font-size: inherit;
|
|
|
421 |
color: navy;
|
|
|
422 |
}
|
|
|
423 |
|
424 |
div.tableblock {
|
424 |
div.tableblock {
|
425 |
margin-top: 1.0em;
|
425 |
margin-top: 1.0em;
|
426 |
margin-bottom: 1.5em;
|
426 |
margin-bottom: 1.5em;
|
427 |
}
|
427 |
}
|
428 |
div.tableblock > table {
|
428 |
div.tableblock > table {
|
|
... |
|
... |
451 |
|
451 |
|
452 |
/*
|
452 |
/*
|
453 |
* html5 specific
|
453 |
* html5 specific
|
454 |
*
|
454 |
*
|
455 |
* */
|
455 |
* */
|
|
|
456 |
|
|
|
457 |
.monospaced {
|
|
|
458 |
font-family: "Courier New", Courier, monospace;
|
|
|
459 |
font-size: inherit;
|
|
|
460 |
color: navy;
|
|
|
461 |
}
|
456 |
|
462 |
|
457 |
table.tableblock {
|
463 |
table.tableblock {
|
458 |
margin-top: 1.0em;
|
464 |
margin-top: 1.0em;
|
459 |
margin-bottom: 1.5em;
|
465 |
margin-bottom: 1.5em;
|
460 |
}
|
466 |
}
|
|
... |
|
... |
531 |
}
|
537 |
}
|
532 |
|
538 |
|
533 |
@media print {
|
539 |
@media print {
|
534 |
body.manpage div#toc { display: none; }
|
540 |
body.manpage div#toc { display: none; }
|
535 |
}
|
541 |
}
|
536 |
|
|
|
537 |
|
|
|
538 |
</style>
|
542 |
</style>
|
539 |
<script type="text/javascript">
|
543 |
<script type="text/javascript">
|
540 |
/*<![CDATA[*/
|
544 |
/*<![CDATA[*/
|
541 |
var asciidoc = { // Namespace.
|
545 |
var asciidoc = { // Namespace.
|
542 |
|
546 |
|
|
... |
|
... |
755 |
<div class="sectionbody">
|
759 |
<div class="sectionbody">
|
756 |
<div class="paragraph"><p>See the man page for command line details. In most situations, <strong>upmpdcli</strong>
|
760 |
<div class="paragraph"><p>See the man page for command line details. In most situations, <strong>upmpdcli</strong>
|
757 |
will be run as follows:</p></div>
|
761 |
will be run as follows:</p></div>
|
758 |
<div class="literalblock">
|
762 |
<div class="literalblock">
|
759 |
<div class="content">
|
763 |
<div class="content">
|
760 |
<pre><code>upmpdcli -D -c /etc/upmpdcli.conf</code></pre>
|
764 |
<pre><tt>upmpdcli -D -c /etc/upmpdcli.conf</tt></pre>
|
761 |
</div></div>
|
765 |
</div></div>
|
762 |
<div class="paragraph"><p>The <code>-D</code> option tells <strong>upmpdcli</strong> to fork and run in background. The <code>-c</code>
|
766 |
<div class="paragraph"><p>The <tt>-D</tt> option tells <strong>upmpdcli</strong> to fork and run in background. The <tt>-c</tt>
|
763 |
option specifies a configuration file.</p></div>
|
767 |
option specifies a configuration file.</p></div>
|
764 |
<div class="paragraph"><p>The configuration file has a simple <code>name = value</code> format.</p></div>
|
768 |
<div class="paragraph"><p>The configuration file has a simple <tt>name = value</tt> format.</p></div>
|
765 |
<div class="paragraph"><p>The configuration parameters can be set from the command line, a
|
769 |
<div class="paragraph"><p>The configuration parameters can be set from the command line, a
|
766 |
configuration file, or the environment in this order of priority. It would
|
770 |
configuration file, or the environment in this order of priority. It would
|
767 |
be rather confusing to use a mix of methods, so you should probably chose
|
771 |
be rather confusing to use a mix of methods, so you should probably chose
|
768 |
one. Some less common parameters can only be set in the configuration file.</p></div>
|
772 |
one. Some less common parameters can only be set in the configuration file.</p></div>
|
769 |
<div class="paragraph"><p>All parameters have defaults, and a typical installation needs no
|
773 |
<div class="paragraph"><p>All parameters have defaults, and a typical installation needs no
|
|
... |
|
... |
865 |
<td align="left" valign="top"><p class="table">OpenHome playlist disk persistence (default 1)</p></td>
|
869 |
<td align="left" valign="top"><p class="table">OpenHome playlist disk persistence (default 1)</p></td>
|
866 |
<td align="left" valign="top"><p class="table"></p></td>
|
870 |
<td align="left" valign="top"><p class="table"></p></td>
|
867 |
<td align="left" valign="top"><p class="table"></p></td>
|
871 |
<td align="left" valign="top"><p class="table"></p></td>
|
868 |
<td align="left" valign="top"><p class="table">ohmetapersist</p></td>
|
872 |
<td align="left" valign="top"><p class="table">ohmetapersist</p></td>
|
869 |
</tr>
|
873 |
</tr>
|
|
|
874 |
<tr>
|
|
|
875 |
<td align="left" valign="top"><p class="table">Path to icon to be displayed by control point. <a href="#upmpdcli.iconpathnote">See note</a></p></td>
|
|
|
876 |
<td align="left" valign="top"><p class="table"></p></td>
|
|
|
877 |
<td align="left" valign="top"><p class="table"></p></td>
|
|
|
878 |
<td align="left" valign="top"><p class="table">iconpath</p></td>
|
|
|
879 |
</tr>
|
870 |
</tbody>
|
880 |
</tbody>
|
871 |
</table>
|
881 |
</table>
|
872 |
</div>
|
882 |
</div>
|
|
|
883 |
<div class="paragraph" id="upmpdcli.iconpathnote"><p><strong>iconpath</strong> note: the UPnP protocol has provisions for a renderer to send
|
|
|
884 |
the URL to a descriptive icon as part of the device description. The icon
|
|
|
885 |
to use can be set using the <strong>iconpath</strong> configuration file parameter. Due to
|
|
|
886 |
current (and probably permanent) <strong>upmpdcli</strong> limitations, the image file
|
|
|
887 |
<strong>must</strong> be a 64x64 32 bits-per-pixel png file.</p></div>
|
873 |
</div>
|
888 |
</div>
|
874 |
</div>
|
889 |
</div>
|
875 |
<div class="sect1">
|
890 |
<div class="sect1">
|
876 |
<h2 id="upmpdcli.openhome">OpenHome ohMedia services</h2>
|
891 |
<h2 id="upmpdcli.openhome">OpenHome ohMedia services</h2>
|
877 |
<div class="sectionbody">
|
892 |
<div class="sectionbody">
|
|
... |
|
... |
886 |
</div>
|
901 |
</div>
|
887 |
</div>
|
902 |
</div>
|
888 |
<div class="sect1">
|
903 |
<div class="sect1">
|
889 |
<h2 id="upmpdcli.boot">Boot time startup</h2>
|
904 |
<h2 id="upmpdcli.boot">Boot time startup</h2>
|
890 |
<div class="sectionbody">
|
905 |
<div class="sectionbody">
|
891 |
<div class="paragraph"><p><strong>upmpdcli</strong> will try to change its <code>uid</code> to user <code>upmpdcli</code> if it is
|
906 |
<div class="paragraph"><p><strong>upmpdcli</strong> will try to change its <tt>uid</tt> to user <tt>upmpdcli</tt> if it is
|
892 |
started by root. It will refuse to run if the user does not exist.</p></div>
|
907 |
started by root. It will refuse to run if the user does not exist.</p></div>
|
893 |
<div class="paragraph"><p>If started by <code>root</code>, <strong>upmpdcli</strong> will also write its process id to
|
908 |
<div class="paragraph"><p>If started by <tt>root</tt>, <strong>upmpdcli</strong> will also write its process id to
|
894 |
<code>/var/run/upmpdcli.pid</code>.</p></div>
|
909 |
<tt>/var/run/upmpdcli.pid</tt>.</p></div>
|
895 |
<div class="paragraph"><p>There are boot-time startup scripts in the <code>debian/</code> directory inside the
|
910 |
<div class="paragraph"><p>There are boot-time startup scripts in the <tt>debian/</tt> directory inside the
|
896 |
source tree (for Debian/Ubuntu/Mint/Raspbian etc.). There is also a systemd
|
911 |
source tree (for Debian/Ubuntu/Mint/Raspbian etc.). There is also a systemd
|
897 |
service file under <code>systemd/</code> (for Fedora et al.).</p></div>
|
912 |
service file under <tt>systemd/</tt> (for Fedora et al.).</p></div>
|
898 |
<div class="paragraph"><p>The boot scripts are installed by the pre-built packages, so will just have
|
913 |
<div class="paragraph"><p>The boot scripts are installed by the pre-built packages, so will just have
|
899 |
to edit the configuration file after installing them, all the rest should
|
914 |
to edit the configuration file after installing them, all the rest should
|
900 |
just work.</p></div>
|
915 |
just work.</p></div>
|
901 |
</div>
|
916 |
</div>
|
902 |
</div>
|
917 |
</div>
|
903 |
<div class="sect1">
|
918 |
<div class="sect1">
|
904 |
<h2 id="upmpdcli.building">Building</h2>
|
919 |
<h2 id="upmpdcli.building">Building</h2>
|
905 |
<div class="sectionbody">
|
920 |
<div class="sectionbody">
|
906 |
<div class="paragraph"><p>For building from source, you will need a recent <code>C++</code> compiler (<code>C++11</code>),
|
921 |
<div class="paragraph"><p>For building from source, you will need a recent <tt>C++</tt> compiler (<tt>C++11</tt>),
|
907 |
and the development packages for <strong>libupnp</strong> version 1.6, <strong>libmpdclient</strong>, and
|
922 |
and the development packages for <strong>libupnp</strong> version 1.6, <strong>libmpdclient</strong>, and
|
908 |
<strong>libexpat</strong>.</p></div>
|
923 |
<strong>libexpat</strong>.</p></div>
|
909 |
<div class="paragraph"><p>If you are using the source from Github, you will also need the
|
924 |
<div class="paragraph"><p>If you are using the source from Github, you will also need the
|
910 |
autoconf/automake/libtool trio. Use the <code>autogen.sh</code> script to set things
|
925 |
autoconf/automake/libtool trio. Use the <tt>autogen.sh</tt> script to set things
|
911 |
up.</p></div>
|
926 |
up.</p></div>
|
912 |
<div class="paragraph"><p>Otherwise, the procedure is standard and there are currently no specific
|
927 |
<div class="paragraph"><p>Otherwise, the procedure is standard and there are currently no specific
|
913 |
configure options:</p></div>
|
928 |
configure options:</p></div>
|
914 |
<div class="literalblock">
|
929 |
<div class="literalblock">
|
915 |
<div class="content">
|
930 |
<div class="content">
|
916 |
<pre><code>configure --prefix=/usr
|
931 |
<pre><tt>configure --prefix=/usr
|
917 |
make
|
932 |
make
|
918 |
sudo make install</code></pre>
|
933 |
sudo make install</tt></pre>
|
919 |
</div></div>
|
934 |
</div></div>
|
920 |
</div>
|
935 |
</div>
|
921 |
</div>
|
936 |
</div>
|
922 |
</div>
|
937 |
</div>
|
923 |
<div id="footnotes"><hr /></div>
|
938 |
<div id="footnotes"><hr /></div>
|
924 |
<div id="footer">
|
939 |
<div id="footer">
|
925 |
<div id="footer-text">
|
940 |
<div id="footer-text">
|
926 |
Last updated 2014-08-06 10:11:55 CEST
|
941 |
Last updated 2014-10-03 14:01:55 CEST
|
927 |
</div>
|
942 |
</div>
|
928 |
</div>
|
943 |
</div>
|
929 |
</body>
|
944 |
</body>
|
930 |
</html>
|
945 |
</html>
|