Switch to unified view

a b/doc/upmpdcli.txt
1
= Upmpdcli: an UPnP Renderer Front-End to the Music Player Daemon
2
3
[[upmpdcli.intro]]
4
== Introduction
5
6
*upmpdcli* is an UPnP Media Renderer front-end to *mpd*, the Music Player
7
Daemon. It turns *mpd* into an UPnP Media Renderer. 
8
9
*upmpdcli* is open-source, free and licensed under the GPL. It is written
10
in C++ and uses the *libupnp* (1.6) and *libmpdclient* libraries.
11
12
The typical setup is a home network with:
13
14
- An UPnP media server (e.g. *Minidlna*, *Mediatomb*, or some commercial
15
  device).
16
- An UPnP control point (e.g. *Audionet* or *Bubble UPnP* running on a
17
  tablet or phone). 
18
- *mpd* running on some Linux device (e.g. Raspberry PI hooked up to your
19
  bedroom stereo). 
20
- *upmpdcli* running on any Linux computer on the network (the same as
21
  *mpd* or not). It will be discovered by the UPnP control point in a
22
  standard fashion.
23
24
In this usage, *mpd* does not manage the audio files directly and its
25
configured music directory will typically be empty. It fetches them from
26
the Media Server through HTTP, using the *curl* input plugin, and does not
27
need a local tags database.
28
29
_What's the point ?_ If you are running an UPnP network with multiple
30
devices, you may prefer to use a single control application (UPnP-based)
31
for everything. *mpd* is a very capable and robust music-playing application,
32
which runs well on small computers (e.g. Raspberry PI or other "plug" type
33
computers). However it needs a specific control application.
34
35
*upmpdcli* lets you control your *mpd*-based players with your UPnP control
36
point.
37
38
[[upmpdcli.config]]
39
== Configuration
40
41
See the man page for command line details. In most situations, *upmpdcli*
42
will be run as follows:
43
44
    upmpdcli -D -c /etc/upmpdcli.conf
45
46
The `-D` option tells *upmpdcli* to fork and run in background. The `-c`
47
option specifies a configuration file.
48
49
The configuration file has a simple `name = value` format.
50
51
The configuration parameters can be set from the command line, a
52
configuration file, or the environment in this order of priority. It would
53
be rather confusing to use a mix of methods, so you should probably chose
54
one. 
55
56
The following parameters can be set:
57
58
|========================
59
|What|Command line|Environment|Config variable
60
|Configuration file name|-c config|$UPMPD_CONFIG|
61
|Host name or IP address where *mpd* runs|-h mpdhost|$UPMPD_HOST|mpdhost
62
|TCP port for *mpd*|-p mpdport|$UPMPD_PORT|mpdport
63
|Do we own the *mpd* queue and fearlessly clear it|-o 0/1||ownqueue
64
|UPnP "friendly name" for the device. This gets displayed in network search
65
  results.|-f friendlyname|$UPMPD_FRIENDLYNAME|friendlyname 
66
|Log file name. Leave empty for stderr|-d logfilename||logfilename
67
|Verbosity level (0-4)|-l loglevel||loglevel
68
|===========================    
69
70
[[upmpdcli.boot]]
71
== Boot time startup
72
73
*upmpdcli* will will try to change its `uid` to user `upmpdcli` if it is
74
started by root. It will refuse to run if the user does not exist.
75
76
If started by `root`, *upmpdcli* will also write its process id to
77
`/var/run/upmpdcli.pid`.
78
79
This should make it reasonably easy to write an init script for the
80
daemon. Such a script exists in the `debian` directory inside the source
81
tree.
82
83
[[upmpdcli.downloads]]
84
== Source code, packages
85
86
The source repository is on link:http://www.github.com/medoc92/upmpdcli[GitHub].
87
88
See the link:http://www.lesbonscomptes.com/upmpdcli[home page] for pointers
89
to releases and built packages.
90
91
[[upmpdcli.building]]
92
== Building
93
94
For building from source, you will need a recent `C++` compiler (`C++11`),
95
and the development packages for *libupnp* version 1.6, and *libmpdclient*.
96
97
If you are using the source from Github, you will also need the
98
autoconf/automake/libtool trio. Use the `autogen.sh` script to set things
99
up.
100
101
Otherwise, the procedure is standard and there are currently no specific
102
configure options:
103
104
    configure --prefix=/usr
105
    make
106
    sudo make install
107