Merge branch 'master' into release-2.2

This commit is contained in:
Stein Magnus Jodal 2018-12-07 23:12:50 +01:00
commit a1690bf565
5 changed files with 29 additions and 141 deletions

View File

@ -4,6 +4,14 @@ Changelog
This changelog is used to track all major changes to Mopidy.
v2.2.2 (UNRELEASED)
===================
Bug fix release.
- Files: Fix crash due to mix of text and bytes in paths that come from
``$XDG_CONFIG_HOME/user-dirs.dirs``. (Fixes: :issue:`1676`, :issue:`1725`)
v2.2.2 (UNRELEASED)
===================

View File

@ -4,62 +4,10 @@
MPRIS clients
*************
`MPRIS <http://specifications.freedesktop.org/mpris-spec/latest/>`_ is short for Media Player Remote Interfacing
Specification. It's a spec that describes a standard D-Bus interface for making
media players available to other applications on the same system.
`MPRIS <http://specifications.freedesktop.org/mpris-spec/latest/>`_ is short
for Media Player Remote Interfacing Specification. It is a spec that describes
a standard D-Bus interface for making media players available to other
applications on the same system.
The MPRIS frontend provided by the `Mopidy-MPRIS extension
<https://github.com/mopidy/mopidy-mpris>`_ currently implements all required
parts of the MPRIS spec, plus the optional playlist interface. It does not
implement the optional tracklist interface.
.. _ubuntu-sound-menu:
Ubuntu Sound Menu
=================
The `Ubuntu Sound Menu <https://wiki.ubuntu.com/Sound#menu>`_ is the default
sound menu in Ubuntu since 10.10 or 11.04. By default, it only includes the
Rhytmbox music player, but many other players can integrate with the sound
menu, including the official Spotify player and Mopidy.
.. image:: ubuntu-sound-menu.png
:height: 480
:width: 955
If you install Mopidy from apt.mopidy.com, the sound menu should work out of
the box. If you install Mopidy in any other way, you need to make sure that the
file located at ``extra/desktop/mopidy.desktop`` in the Mopidy git repo is
installed as ``/usr/share/applications/mopidy.desktop``, and that the
properties ``TryExec`` and ``Exec`` in the file points to an existing
executable file, preferably your Mopidy executable. If this isn't in place, the
sound menu will not detect that Mopidy is running.
Next, Mopidy's MPRIS frontend must be running for the sound menu to be able to
control Mopidy. The frontend is enabled by default, so as long as you have all
its dependencies available, you should be good to go. Keep an eye out for
warnings or errors from the MPRIS frontend when you start Mopidy, since it may
fail because of missing dependencies or because Mopidy is started outside of X;
the frontend won't work if ``$DISPLAY`` isn't set when Mopidy is started.
Under normal use, if Mopidy isn't running and you open the menu and click on
"Mopidy Music Server", a terminal window will open and automatically start
Mopidy. If Mopidy is already running, you'll see that Mopidy is marked with an
arrow to the left of its name, like in the screen shot above, and the player
controls will be visible. Mopidy doesn't support the MPRIS spec's optional
tracklist interface yet, so you'll not be able to select what track to play
from the sound menu. You can use the sound menu to check what you're currently
playing, pause, resume, and skip to the next and previous track.
In summary, Mopidy's sound menu integration is currently not a full featured
client, but it's a convenient addition to an MPD client since it's always
easily available on Unity's menu bar.
Rygel
=====
Rygel is an application that will translate between Mopidy's MPRIS interface
and UPnP, and thus make Mopidy controllable from devices compatible with UPnP
and/or DLNA. To read more about this, see :ref:`upnp-clients`.
See the `Mopidy-MPRIS documentation <https://github.com/mopidy/mopidy-mpris>`_
for a survey of some MPRIS clients.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

@ -37,8 +37,8 @@ There are two ways Mopidy can be made available as an UPnP MediaRenderer:
Using Mopidy-MPRIS and Rygel, or using Mopidy-MPD and upmpdcli.
upmpdcli
--------
Mopidy-MPD and upmpdcli
-----------------------
`upmpdcli <http://www.lesbonscomptes.com/upmpdcli/>`_ is recommended, since it
is easier to setup, and offers `OpenHome
@ -66,86 +66,15 @@ MediaRenderer to the network, while using the MPD protocol to control Mopidy.
4. A UPnP renderer should be available now.
Rygel
-----
Mopidy-MPRIS and Rygel
----------------------
With the help of `the Rygel project <https://live.gnome.org/Rygel>`_ Mopidy can
be made available as an UPnP MediaRenderer. Rygel will interface with the MPRIS
interface provided by the `Mopidy-MPRIS extension
<https://github.com/mopidy/mopidy-mpris>`_, and make Mopidy available as a
MediaRenderer on the local network. Since this depends on the MPRIS frontend,
which again depends on D-Bus being available, this will only work on Linux, and
not OS X. MPRIS/D-Bus is only available to other applications on the same
host, so Rygel must be running on the same machine as Mopidy.
1. Start Mopidy and make sure the MPRIS frontend is working. It is activated
by default when the Mopidy-MPRIS extension is installed, but you may miss
dependencies or be using OS X, in which case it will not work. Check the
console output when Mopidy is started for any errors related to the MPRIS
frontend. If you're unsure it is working, there are instructions for how to
test it in the `Mopidy-MPRIS readme
<https://github.com/mopidy/mopidy-mpris>`_.
2. Install Rygel. On Debian/Ubuntu::
sudo apt-get install rygel
3. Enable Rygel's MPRIS plugin. On Debian/Ubuntu, edit ``/etc/rygel.conf``,
find the ``[MPRIS]`` section, and change ``enabled=false`` to
``enabled=true``.
4. Start Rygel by running::
rygel
Example output::
$ rygel
Rygel-Message: New plugin 'MediaExport' available
Rygel-Message: New plugin 'org.mpris.MediaPlayer2.mopidy' available
In the above example, you can see that Rygel found Mopidy, and it is now
making Mopidy available through Rygel.
See the `Mopidy-MPRIS <https://github.com/mopidy/mopidy-mpris>`_ documentation
for how to setup Rygel to make Mopidy an UPnP MediaRenderer.
The UPnP-Inspector client
=========================
`UPnP-Inspector <http://coherence.beebits.net/wiki/UPnP-Inspector>`_ is a
graphical analyzer and debugging tool for UPnP services. It will detect any
UPnP devices on your network, and show these in a tree structure. This is not a
tool for your everyday music listening while relaxing on the couch, but it may
be of use for testing that your setup works correctly.
1. Install UPnP-Inspector. On Debian/Ubuntu::
sudo apt-get install upnp-inspector
2. Run it::
upnp-inspector
3. Assuming that Mopidy is running with a working MPRIS frontend, and that
Rygel is running on the same machine, Mopidy should now appear in
UPnP-Inspector's device list.
4. If you expand the tree item saying ``Mopidy
(MediaRenderer:2)`` or similiar, and then the sub element named
``AVTransport:2`` or similar, you'll find a list of commands you can invoke.
E.g. if you double-click the ``Pause`` command, you'll get a new window
where you can press an ``Invoke`` button, and then Mopidy should be paused.
Note that if you have a firewall on the host running Mopidy and Rygel, and you
want this to be exposed to the rest of your local network, you need to open up
your firewall for UPnP traffic. UPnP use UDP port 1900 as well as some
dynamically assigned ports. I've only verified that this procedure works across
the network by temporarily disabling the firewall on the the two hosts
involved, so I'll leave any firewall configuration as an exercise to the
reader.
Other clients
=============
Clients
=======
For a long list of UPnP clients for all possible platforms, see Wikipedia's
`List of UPnP AV media servers and clients

View File

@ -103,13 +103,16 @@ See :ref:`config` for general help on configuring Mopidy.
A list of domains allowed to perform Cross-Origin Resource Sharing (CORS)
requests. This applies to both JSON-RPC and WebSocket requests. Values
should be in the format ``hostname:port`` and separated by either a comma or
newline.
should be in the format ``hostname:port``, should not specify any scheme and
be separated by either a comma or newline. Additionally, the ``port`` should
not be specified if it is the default (80 for http, 443 for https).
Same-origin requests (i.e. requests from Mopidy's web server) are always
allowed and so you don't need an entry for those. However, if your requests
originate from a different web server, you will need to add an entry for
that server in this list.
that server in this list. For example, to allow requests from a web server
at 'http://www.my.web-client.com' you would specify the entry
'www.my.web-client.com'.
.. confval:: http/csrf_protection