doc/client.rst: new chapter about client development
This commit is contained in:
parent
f5460b35a3
commit
98a9f81d61
|
@ -0,0 +1,65 @@
|
|||
Client Developer's Manual
|
||||
#########################
|
||||
|
||||
Introduction
|
||||
************
|
||||
|
||||
MPD is a music player without a user interface. The user interface
|
||||
will be provided by independent clients, which connect to MPD over
|
||||
socket connections (TCP or local sockets).
|
||||
|
||||
This chapter describes how to develop a client.
|
||||
|
||||
Before you develop a new client, consider joining an existing client
|
||||
project. There are many clients, but few are mature; we need fewer,
|
||||
but better clients.
|
||||
|
||||
Client Libraries
|
||||
****************
|
||||
|
||||
There are many libraries which help with connecting to MPD. If you
|
||||
develop a MPD client, use a library instead of reinventing the wheel.
|
||||
The MPD website has a list of libraries: https://www.musicpd.org/libs/
|
||||
|
||||
|
||||
Connecting to MPD
|
||||
*****************
|
||||
|
||||
Do not hard-code your client to connect to ``localhost:6600``.
|
||||
Instead, use the defaults of the client library. For example, with
|
||||
:program:`libmpdclient`, don't do::
|
||||
|
||||
c = mpd_connection_new("localhost", 6600, 30000);
|
||||
|
||||
Instead, do::
|
||||
|
||||
c = mpd_connection_new(NULL, 0, 0);
|
||||
|
||||
This way, the library can choose the best defaults, maybe derived from
|
||||
environment variables, so all MPD clients use the same settings.
|
||||
|
||||
If you need to reimmeplemt those defaults (or if you are developing a
|
||||
client library), this is a good set of addresses to attempt to connect
|
||||
to:
|
||||
|
||||
- if the environment variable :envvar:`MPD_HOST` is set:
|
||||
``$MPD_HOST:$MPD_PORT`` (:envvar:`MPD_PORT` defaulting to 6600)
|
||||
- if the environment variable :envvar:`XDG_RUNTIME_DIR` is set:
|
||||
``$XDG_RUNTIME_DIR/mpd/socket``
|
||||
- :file:`/run/mpd/socket`
|
||||
- ``localhost:$MPD_PORT`` (:envvar:`MPD_PORT` defaulting to 6600)
|
||||
|
||||
Environment Variables
|
||||
*********************
|
||||
|
||||
The following environment variables should be obeyed by all clients
|
||||
(preferably by the client library):
|
||||
|
||||
- :envvar:`MPD_HOST`: the host (or local socket path) to connect to;
|
||||
on Linux, this may start with a ``@`` to connect to an abstract
|
||||
socket.
|
||||
- :envvar:`MPD_PORT`: the port number; defaults to 6600.
|
||||
- :envvar:`MPD_TIMEOUT`: timeout for connecting to MPD and for waiting
|
||||
for MPD's response in milliseconds. A good default is 30 seconds
|
||||
(i.e. 30.000 ms).
|
||||
|
|
@ -8,6 +8,7 @@ Music Player Daemon
|
|||
user
|
||||
plugins
|
||||
developer
|
||||
client
|
||||
protocol
|
||||
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ if get_option('html_manual')
|
|||
input: [
|
||||
'index.rst', 'user.rst', 'developer.rst',
|
||||
'plugins.rst',
|
||||
'client.rst',
|
||||
'protocol.rst',
|
||||
'conf.py',
|
||||
],
|
||||
|
|
Loading…
Reference in New Issue