Merge branch 'develop' into feature/multi-backend
This commit is contained in:
commit
360cf4d036
@ -1,3 +1,5 @@
|
|||||||
|
.. _backend-concepts:
|
||||||
|
|
||||||
**********************************************
|
**********************************************
|
||||||
The backend, controller, and provider concepts
|
The backend, controller, and provider concepts
|
||||||
**********************************************
|
**********************************************
|
||||||
|
|||||||
@ -32,7 +32,7 @@ seek.
|
|||||||
Mixer controller
|
Mixer controller
|
||||||
================
|
================
|
||||||
|
|
||||||
Manages volume. See :class:`mopidy.mixers.BaseMixer`.
|
Manages volume. See :class:`mopidy.mixers.base.BaseMixer`.
|
||||||
|
|
||||||
|
|
||||||
Current playlist controller
|
Current playlist controller
|
||||||
|
|||||||
@ -24,10 +24,10 @@ enable one of the hardware device mixers, you must the set
|
|||||||
:attr:`mopidy.settings.MIXER` setting to point to one of the classes found
|
:attr:`mopidy.settings.MIXER` setting to point to one of the classes found
|
||||||
below, and possibly add some extra settings required by the mixer you choose.
|
below, and possibly add some extra settings required by the mixer you choose.
|
||||||
|
|
||||||
All mixers should subclass :class:`mopidy.mixers.BaseMixer` and override
|
All mixers should subclass :class:`mopidy.mixers.base.BaseMixer` and override
|
||||||
methods as described below.
|
methods as described below.
|
||||||
|
|
||||||
.. automodule:: mopidy.mixers
|
.. automodule:: mopidy.mixers.base
|
||||||
:synopsis: Mixer API
|
:synopsis: Mixer API
|
||||||
:members:
|
:members:
|
||||||
:undoc-members:
|
:undoc-members:
|
||||||
|
|||||||
@ -10,13 +10,20 @@ Contributors to Mopidy in the order of appearance:
|
|||||||
- Kristian Klette <klette@klette.us>
|
- Kristian Klette <klette@klette.us>
|
||||||
|
|
||||||
|
|
||||||
Donations
|
Showing your appreciation
|
||||||
=========
|
=========================
|
||||||
|
|
||||||
If you already enjoy Mopidy, or don't enjoy it and want to help us making
|
If you already enjoy Mopidy, or don't enjoy it and want to help us making
|
||||||
Mopidy better, you can `donate money <http://pledgie.com/campaigns/12647>`_ to
|
Mopidy better, the best way to do so is to contribute back to the community.
|
||||||
Mopidy's development.
|
You can contribute code, documentation, tests, bug reports, or help other
|
||||||
|
users, spreading the word, etc.
|
||||||
|
|
||||||
|
If you want to show your appreciation in a less time consuming way, you can
|
||||||
|
`flattr us <https://flattr.com/thing/82288/Mopidy>`_, or `donate money
|
||||||
|
<http://pledgie.com/campaigns/12647>`_ to Mopidy's development.
|
||||||
|
|
||||||
|
We promise that any money donated -- to Pledgie, not Flattr, due to the size of
|
||||||
|
the amounts -- will be used to cover costs related to Mopidy development, like
|
||||||
|
service subscriptions (Spotify, Last.fm, etc.) and hardware devices like an
|
||||||
|
used iPod Touch for testing Mopidy with MPod.
|
||||||
|
|
||||||
Any donated money will be used to cover service subscriptions (e.g. Spotify
|
|
||||||
and Last.fm) and hardware devices (e.g. an used iPod Touch for testing Mopidy
|
|
||||||
with MPod) needed for developing Mopidy.
|
|
||||||
|
|||||||
@ -10,12 +10,74 @@ This change log is used to track all major changes to Mopidy.
|
|||||||
|
|
||||||
No description yet.
|
No description yet.
|
||||||
|
|
||||||
|
**Important changes**
|
||||||
|
|
||||||
|
- If you use the Spotify backend, you need to upgrade to libspotify 0.0.6 and
|
||||||
|
the latest pyspotify from the Mopidy developers. Follow the instructions at
|
||||||
|
:ref:`/installation/libspotify/`.
|
||||||
|
|
||||||
**Changes**
|
**Changes**
|
||||||
|
|
||||||
- Install ``mopidy.desktop`` file that makes Mopidy available from e.g. Gnome
|
- Settings:
|
||||||
application menus.
|
|
||||||
- Add :command:`mopidy-scan` command to generate ``tag_cache`` files without
|
- Automatically expand ``~`` to the user's home directory and make the path
|
||||||
any help from the original MPD server.
|
absolute for settings with names ending in ``_PATH`` or ``_FILE``.
|
||||||
|
- Rename the following settings. The settings validator will warn you if you
|
||||||
|
need to change your local settings.
|
||||||
|
|
||||||
|
- ``LOCAL_MUSIC_FOLDER`` to :attr:`mopidy.settings.LOCAL_MUSIC_PATH`
|
||||||
|
- ``LOCAL_PLAYLIST_FOLDER`` to
|
||||||
|
:attr:`mopidy.settings.LOCAL_PLAYLIST_PATH`
|
||||||
|
- ``LOCAL_TAG_CACHE`` to :attr:`mopidy.settings.LOCAL_TAG_CACHE_FILE`
|
||||||
|
- ``SPOTIFY_LIB_CACHE`` to :attr:`mopidy.settings.SPOTIFY_CACHE_PATH`
|
||||||
|
|
||||||
|
- Packaging and distribution:
|
||||||
|
|
||||||
|
- Install ``mopidy.desktop`` file that makes Mopidy available from e.g. Gnome
|
||||||
|
application menus.
|
||||||
|
- Create infrastructure for creating Debian packages of Mopidy.
|
||||||
|
|
||||||
|
- Spotify backend:
|
||||||
|
|
||||||
|
- Support high bitrate (320k). See
|
||||||
|
:attr:`mopidy.settings.SPOTIFY_HIGH_BITRATE` for details.
|
||||||
|
|
||||||
|
- Local backend:
|
||||||
|
|
||||||
|
- Add :command:`mopidy-scan` command to generate ``tag_cache`` files without
|
||||||
|
any help from the original MPD server.
|
||||||
|
- Support UTF-8 encoded tag caches with non-ASCII characters.
|
||||||
|
|
||||||
|
- Models:
|
||||||
|
|
||||||
|
- Rename and generalize ``Playlist._with(**kwargs)`` to
|
||||||
|
:meth:`mopidy.models.ImmutableObject.copy`.
|
||||||
|
- Add ``musicbrainz_id`` field to :class:`mopidy.models.Artist`,
|
||||||
|
:class:`mopidy.models.Album`, and :class:`mopidy.models.Track`.
|
||||||
|
|
||||||
|
- Introduce the :ref:`provider concept <backend-concepts>`. Split the backend
|
||||||
|
API into a :ref:`backend controller API <backend-controller-api>` (for
|
||||||
|
frontend use) and a :ref:`backend provider API <backend-provider-api>` (for
|
||||||
|
backend implementation use), which includes the following changes:
|
||||||
|
|
||||||
|
- Rename ``BaseBackend`` to :class:`mopidy.backends.base.Backend`.
|
||||||
|
- Rename ``BaseCurrentPlaylistController`` to
|
||||||
|
:class:`mopidy.backends.base.CurrentPlaylistController`.
|
||||||
|
- Split ``BaseLibraryController`` to
|
||||||
|
:class:`mopidy.backends.base.LibraryController` and
|
||||||
|
:class:`mopidy.backends.base.BaseLibraryProvider`.
|
||||||
|
- Split ``BasePlaybackController`` to
|
||||||
|
:class:`mopidy.backends.base.PlaybackController` and
|
||||||
|
:class:`mopidy.backends.base.BasePlaybackProvider`.
|
||||||
|
- Split ``BaseStoredPlaylistsController`` to
|
||||||
|
:class:`mopidy.backends.base.StoredPlaylistsController` and
|
||||||
|
:class:`mopidy.backends.base.BaseStoredPlaylistsProvider`.
|
||||||
|
|
||||||
|
- Other API and package structure cleaning:
|
||||||
|
|
||||||
|
- Move ``BaseMixer`` to :class:`mopidy.mixers.base.BaseMixer`.
|
||||||
|
- Add docs for the current non-stable output API,
|
||||||
|
:class:`mopidy.outputs.base.BaseOutput`.
|
||||||
|
|
||||||
|
|
||||||
0.2.0 (2010-10-24)
|
0.2.0 (2010-10-24)
|
||||||
|
|||||||
@ -27,11 +27,11 @@ Possible targets for the next version
|
|||||||
|
|
||||||
- Write-support for Spotify, i.e. playlist management.
|
- Write-support for Spotify, i.e. playlist management.
|
||||||
- Virtual directories with e.g. starred tracks from Spotify.
|
- Virtual directories with e.g. starred tracks from Spotify.
|
||||||
- Support for 320 kbps audio.
|
- **[WIP: possibly v0.3]** Support for 320 kbps audio.
|
||||||
|
|
||||||
- Local backend:
|
- Local backend:
|
||||||
|
|
||||||
- Better library support.
|
- Better music library support.
|
||||||
- **[DONE: v0.3]** A script for creating a tag cache.
|
- **[DONE: v0.3]** A script for creating a tag cache.
|
||||||
- An alternative to tag cache for caching metadata, i.e. Sqlite.
|
- An alternative to tag cache for caching metadata, i.e. Sqlite.
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ Stuff we want to do, but not right now, and maybe never
|
|||||||
|
|
||||||
- Packaging and distribution:
|
- Packaging and distribution:
|
||||||
|
|
||||||
- **[PENDING]** Create `Homebrew <http://mxcl.github.com/homebrew/>`_
|
- **[BLOCKED]** Create `Homebrew <http://mxcl.github.com/homebrew/>`_
|
||||||
recipies for all our dependencies and Mopidy itself to make OS X
|
recipies for all our dependencies and Mopidy itself to make OS X
|
||||||
installation a breeze. See `Homebrew's issue #1612
|
installation a breeze. See `Homebrew's issue #1612
|
||||||
<http://github.com/mxcl/homebrew/issues/issue/1612>`_.
|
<http://github.com/mxcl/homebrew/issues/issue/1612>`_.
|
||||||
@ -68,8 +68,9 @@ Stuff we want to do, but not right now, and maybe never
|
|||||||
- Publish the server's presence to the network using `Zeroconf
|
- Publish the server's presence to the network using `Zeroconf
|
||||||
<http://en.wikipedia.org/wiki/Zeroconf>`_/Avahi.
|
<http://en.wikipedia.org/wiki/Zeroconf>`_/Avahi.
|
||||||
- **[WIP: feature/mpris-frontend]** D-Bus/`MPRIS <http://www.mpris.org/>`_
|
- **[WIP: feature/mpris-frontend]** D-Bus/`MPRIS <http://www.mpris.org/>`_
|
||||||
- REST/JSON web service with a jQuery client as example application. Maybe
|
- **[WIP: feature/http-frontend]** REST/JSON web service with a jQuery client
|
||||||
based upon `Tornado <http://github.com/facebook/tornado>`_ and `jQuery
|
as example application. Maybe based upon `Tornado
|
||||||
|
<http://github.com/facebook/tornado>`_ and `jQuery
|
||||||
Mobile <http://jquerymobile.com/>`_.
|
Mobile <http://jquerymobile.com/>`_.
|
||||||
- DNLA/UPnP so Mopidy can be controlled from i.e. TVs.
|
- DNLA/UPnP so Mopidy can be controlled from i.e. TVs.
|
||||||
- `XMMS2 <http://www.xmms2.org/>`_
|
- `XMMS2 <http://www.xmms2.org/>`_
|
||||||
|
|||||||
@ -5,7 +5,7 @@ libspotify installation
|
|||||||
Mopidy uses `libspotify
|
Mopidy uses `libspotify
|
||||||
<http://developer.spotify.com/en/libspotify/overview/>`_ for playing music from
|
<http://developer.spotify.com/en/libspotify/overview/>`_ for playing music from
|
||||||
the Spotify music service. To use :mod:`mopidy.backends.libspotify` you must
|
the Spotify music service. To use :mod:`mopidy.backends.libspotify` you must
|
||||||
install libspotify and `pyspotify <http://github.com/winjer/pyspotify>`_.
|
install libspotify and `pyspotify <http://github.com/mopidy/pyspotify>`_.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
@ -22,14 +22,14 @@ install libspotify and `pyspotify <http://github.com/winjer/pyspotify>`_.
|
|||||||
Installing libspotify on Linux
|
Installing libspotify on Linux
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Download and install libspotify 0.0.4 for your OS and CPU architecture from
|
Download and install libspotify 0.0.6 for your OS and CPU architecture from
|
||||||
https://developer.spotify.com/en/libspotify/.
|
https://developer.spotify.com/en/libspotify/.
|
||||||
|
|
||||||
For 64-bit Linux the process is as follows::
|
For 64-bit Linux the process is as follows::
|
||||||
|
|
||||||
wget http://developer.spotify.com/download/libspotify/libspotify-0.0.4-linux6-x86_64.tar.gz
|
wget http://developer.spotify.com/download/libspotify/libspotify-0.0.6-linux6-x86_64.tar.gz
|
||||||
tar zxfv libspotify-0.0.4-linux6-x86_64.tar.gz
|
tar zxfv libspotify-0.0.6-linux6-x86_64.tar.gz
|
||||||
cd libspotify-0.0.4-linux6-x86_64/
|
cd libspotify-0.0.6-linux6-x86_64/
|
||||||
sudo make install prefix=/usr/local
|
sudo make install prefix=/usr/local
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
|
|
||||||
@ -46,6 +46,11 @@ libspotify::
|
|||||||
|
|
||||||
brew install libspotify
|
brew install libspotify
|
||||||
|
|
||||||
|
To update your existing libspotify installation using Homebrew::
|
||||||
|
|
||||||
|
brew update
|
||||||
|
brew install `brew outdated`
|
||||||
|
|
||||||
When libspotify has been installed, continue with
|
When libspotify has been installed, continue with
|
||||||
:ref:`pyspotify_installation`.
|
:ref:`pyspotify_installation`.
|
||||||
|
|
||||||
@ -69,7 +74,8 @@ In OS X no additional dependencies are needed.
|
|||||||
|
|
||||||
Check out the pyspotify code, and install it::
|
Check out the pyspotify code, and install it::
|
||||||
|
|
||||||
git clone git://github.com/jodal/pyspotify.git
|
wget --no-check-certificate -O pyspotify.tar.gz https://github.com/mopidy/pyspotify/tarball/mopidy
|
||||||
|
tar zxfv pyspotify.tar.gz
|
||||||
cd pyspotify/pyspotify/
|
cd pyspotify/pyspotify/
|
||||||
sudo rm -rf build/ # If you are upgrading pyspotify
|
sudo rm -rf build/ # If you are upgrading pyspotify
|
||||||
sudo python setup.py install
|
sudo python setup.py install
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
******************************
|
***************************************************
|
||||||
:mod:`mopidy.frontends.lastfm`
|
:mod:`mopidy.frontends.lastfm` -- Last.fm Scrobbler
|
||||||
******************************
|
***************************************************
|
||||||
|
|
||||||
.. automodule:: mopidy.frontends.lastfm
|
.. automodule:: mopidy.frontends.lastfm
|
||||||
:synopsis: Last.fm scrobbler frontend
|
:synopsis: Last.fm scrobbler frontend
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
***************************
|
*****************************************
|
||||||
:mod:`mopidy.frontends.mpd`
|
:mod:`mopidy.frontends.mpd` -- MPD server
|
||||||
***************************
|
*****************************************
|
||||||
|
|
||||||
.. automodule:: mopidy.frontends.mpd
|
.. automodule:: mopidy.frontends.mpd
|
||||||
:synopsis: MPD frontend
|
:synopsis: MPD frontend
|
||||||
|
|||||||
@ -35,6 +35,12 @@ class LibspotifySessionManager(SpotifySessionManager, BaseThread):
|
|||||||
"""Callback used by pyspotify"""
|
"""Callback used by pyspotify"""
|
||||||
logger.info(u'Connected to Spotify')
|
logger.info(u'Connected to Spotify')
|
||||||
self.session = session
|
self.session = session
|
||||||
|
if settings.SPOTIFY_HIGH_BITRATE:
|
||||||
|
logger.debug(u'Prefer high bitrate')
|
||||||
|
self.session.set_preferred_bitrate(1)
|
||||||
|
else:
|
||||||
|
logger.debug(u'Prefer normal bitrate')
|
||||||
|
self.session.set_preferred_bitrate(0)
|
||||||
self.connected.set()
|
self.connected.set()
|
||||||
|
|
||||||
def logged_out(self, session):
|
def logged_out(self, session):
|
||||||
|
|||||||
@ -183,3 +183,12 @@ SPOTIFY_USERNAME = u''
|
|||||||
#:
|
#:
|
||||||
#: Used by :mod:`mopidy.backends.libspotify`.
|
#: Used by :mod:`mopidy.backends.libspotify`.
|
||||||
SPOTIFY_PASSWORD = u''
|
SPOTIFY_PASSWORD = u''
|
||||||
|
|
||||||
|
#: Do you prefer high bitrate (320k)?
|
||||||
|
#:
|
||||||
|
#: Used by :mod:`mopidy.backends.libspotify`.
|
||||||
|
#
|
||||||
|
#: Default::
|
||||||
|
#:
|
||||||
|
#: SPOTIFY_HIGH_BITRATE = False # 160k
|
||||||
|
SPOTIFY_HIGH_BITRATE = False
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user