Merge branch 'develop' into feature/multi-backend

This commit is contained in:
Stein Magnus Jodal 2010-10-31 15:23:27 +01:00
commit 094444eae8
40 changed files with 312 additions and 137 deletions

View File

@ -1,6 +1,7 @@
include LICENSE pylintrc *.rst *.txt data/mopidy.desktop
include LICENSE pylintrc *.rst data/mopidy.desktop
include mopidy/backends/libspotify/spotify_appkey.key
recursive-include docs *
prune docs/_build
recursive-include requirements *
recursive-include tests *.py
recursive-include tests/data *

14
debian/TODO vendored Normal file
View File

@ -0,0 +1,14 @@
To do for Mopidy's Debian packaging
===================================
- Install data/mopidy.desktop into /usr/share/applications/
- Add manpages for all commands. Build the manpages with Sphinx
- Make init script run Mopidy as a daemon
- Make init script run Mopidy with its own user
- Add support for reading settings from /etc/mopidy/settings.py
- Log to /var/log
- Cache files in /var/cache
- Package pyspotify and add it to Recommends
- Package pylast and add it to Recommends
- Create GPG key for signing the package
- Host the packages at PPA or apt.mopidy.com

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
mopidy (0.2.0-1) unstable; urgency=low
* Initial release
-- Stein Magnus Jodal <stein.magnus@jodal.no> Sun, 31 Oct 2010 13:07:04 +0100

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
7

22
debian/control vendored Normal file
View File

@ -0,0 +1,22 @@
Source: mopidy
Section: sound
Priority: optional
Maintainer: Stein Magnus Jodal <stein.magnus@jodal.no>
Build-Depends: debhelper (>= 7.0.50~), python-support, python (>= 2.6),
python-sphinx (>= 1.0), python-pygraphviz
Standards-Version: 3.9.1
Homepage: http://www.mopidy.com/
Vcs-Git: git://github.com/jodal/mopidy.git
Vcs-Browser: http://github.com/jodal/mopidy
Package: mopidy
Architecture: all
Depends: ${misc:Depends}, ${python:Depends}, python-gst0.10
Recommends: gstreamer0.10-plugins-good, gstreamer0.10-plugins-ugly
Suggests: python-alsaaudio (>= 0.2), python-serial
Description: music server with MPD client support
Mopidy is a music server which can play music from Spotify or from your
local hard drive. To search for music in Spotifys vast archive, manage
playlists, and play music, you can use most MPD clients. MPD clients are
available for most platforms, including Windows, Mac OS X, Linux, and
iPhone and Android phones.

38
debian/copyright vendored Normal file
View File

@ -0,0 +1,38 @@
This work was packaged for Debian by:
Stein Magnus Jodal <stein.magnus@jodal.no> on Sun, 31 Oct 2010 09:50:28 +0100
It was downloaded from:
http://pypi.python.org/packages/source/M/Mopidy/Mopidy-0.2.0.tar.gz
Upstream Author(s):
Stein Magnus Jodal <stein.magnus@jodal.no>
Copyright:
Copyright 2009-2010 Stein Magnus Jodal and contributors
License:
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
On Debian systems, the complete text of the Apache version 2.0 license
can be found in "/usr/share/common-licenses/Apache-2.0".
The Debian packaging is:
Copyright 2010 Stein Magnus Jodal <stein.magnus@jodal.no>
and is licensed under the Apache License, Version 2.0, see above.

2
debian/docs vendored Normal file
View File

@ -0,0 +1,2 @@
README.rst
docs/_build/html/

2
debian/menu vendored Normal file
View File

@ -0,0 +1,2 @@
?package(mopidy):needs="text" section="Applications/Sound"\
title="Mopidy" command="/usr/bin/mopidy"

1
debian/pyversions vendored Normal file
View File

@ -0,0 +1 @@
2.6-

27
debian/rules vendored Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@
override_dh_clean:
make -C docs/ clean
dh_clean
override_dh_installchangelogs:
dh_installchangelogs docs/changes.rst
override_dh_installdocs:
make -C docs/ clean html
dh_installdocs
.PHONY: override_dh_clean override_dh_installchangelogs \
override_dh_installdocs override_dh_installinit

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

2
debian/watch vendored Normal file
View File

@ -0,0 +1,2 @@
version=3
http://pypi.python.org/packages/source/M/Mopidy/Mopidy-(.*)\.tar\.gz

View File

@ -4,101 +4,127 @@
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
PAPER =
BUILDDIR = _build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
-rm -rf _build/*
-rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in _build/html."
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in _build/dirhtml."
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in _build/htmlhelp."
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in _build/qthelp, like this:"
@echo "# qcollectiongenerator _build/qthelp/Mopidy.qhcp"
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Mopidy.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile _build/qthelp/Mopidy.qhc"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Mopidy.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/Mopidy"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Mopidy"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in _build/latex."
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
"run these through (pdf)latex."
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
make -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in _build/changes."
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in _build/linkcheck/output.txt."
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in _build/doctest/output.txt."
public: clean dirhtml
rm -rf /tmp/mopidy-html && cp -r _build/dirhtml /tmp/mopidy-html
git stash save
cd .. && \
git checkout gh-pages && \
git pull && \
rm -r * && \
cp -r /tmp/mopidy-html/* . && \
mv _sources sources && \
(find . -type f | xargs sed -i -e 's/_sources/sources/g') && \
mv _static static && \
(find . -type f | xargs sed -i -e 's/_static/static/g') && \
if [ -d _images ]; then mv _images images; fi && \
(find . -type f | xargs sed -i -e 's/_images/images/g') && \
git add *
"results in $(BUILDDIR)/doctest/output.txt."

View File

@ -82,8 +82,8 @@ Manages the music library, e.g. searching for tracks to be added to a playlist.
:undoc-members:
Backends
========
Backend implementations
=======================
* :mod:`mopidy.backends.dummy`
* :mod:`mopidy.backends.libspotify`

View File

@ -27,8 +27,8 @@ Frontend API
:members:
Frontends
=========
Frontend implementations
========================
* :mod:`mopidy.frontends.lastfm`
* :mod:`mopidy.frontends.mpd`

View File

@ -1,6 +1,6 @@
*****************
API documentation
*****************
*************
API reference
*************
.. toctree::
:glob:

View File

@ -37,61 +37,12 @@ methods as described below.
:undoc-members:
:mod:`mopidy.mixers.alsa` -- ALSA mixer for Linux
=================================================
Mixer implementations
=====================
.. inheritance-diagram:: mopidy.mixers.alsa
.. automodule:: mopidy.mixers.alsa
:synopsis: ALSA mixer for Linux
:members:
:mod:`mopidy.mixers.denon` -- Hardware mixer for Denon amplifiers
=================================================================
.. inheritance-diagram:: mopidy.mixers.denon
.. automodule:: mopidy.mixers.denon
:synopsis: Hardware mixer for Denon amplifiers
:members:
:mod:`mopidy.mixers.dummy` -- Dummy mixer for testing
=====================================================
.. inheritance-diagram:: mopidy.mixers.dummy
.. automodule:: mopidy.mixers.dummy
:synopsis: Dummy mixer for testing
:members:
:mod:`mopidy.mixers.gstreamer_software` -- Software mixer for all platforms
===========================================================================
.. inheritance-diagram:: mopidy.mixers.gstreamer_software
.. automodule:: mopidy.mixers.gstreamer_software
:synopsis: Software mixer for all platforms
:members:
:mod:`mopidy.mixers.osa` -- Osa mixer for OS X
==============================================
.. inheritance-diagram:: mopidy.mixers.osa
.. automodule:: mopidy.mixers.osa
:synopsis: Osa mixer for OS X
:members:
:mod:`mopidy.mixers.nad` -- Hardware mixer for NAD amplifiers
=============================================================
.. inheritance-diagram:: mopidy.mixers.nad
.. automodule:: mopidy.mixers.nad
:synopsis: Hardware mixer for NAD amplifiers
:members:
* :mod:`mopidy.mixers.alsa`
* :mod:`mopidy.mixers.denon`
* :mod:`mopidy.mixers.dummy`
* :mod:`mopidy.mixers.gstreamer_software`
* :mod:`mopidy.mixers.osa`
* :mod:`mopidy.mixers.nad`

View File

@ -12,11 +12,7 @@ A stable output API is not available yet, as we've only implemented a single
output module.
:mod:`mopidy.outputs.gstreamer` -- GStreamer output for all platforms
=====================================================================
Output implementations
======================
.. inheritance-diagram:: mopidy.outputs.gstreamer
.. automodule:: mopidy.outputs.gstreamer
:synopsis: GStreamer output for all platforms
:members:
* :mod:`mopidy.outputs.gstreamer`

View File

@ -14,11 +14,13 @@ release.
Possible targets for the next version
=====================================
- Reintroduce support for OS X. See :issue:`14` for details.
- Support for using multiple Mopidy backends simultaneously. Should make it
possible to have both Spotify tracks and local tracks in the same playlist.
- Reintroduce support for OS X. See :issue:`25` for details.
- **[WIP: feature/multi-backend]** Support for using multiple Mopidy backends
simultaneously. Should make it possible to have both Spotify tracks and local
tracks in the same playlist.
- MPD frontend:
- **[WIP: feature/mpd-password]** Password authentication.
- ``idle`` support.
- Spotify backend:
@ -30,10 +32,10 @@ Possible targets for the next version
- Local backend:
- Better library support.
- 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.
- **[DONE]** Last.fm scrobbling.
- **[DONE: v0.2]** Last.fm scrobbling.
Stuff we want to do, but not right now, and maybe never
@ -45,14 +47,15 @@ Stuff we want to do, but not right now, and maybe never
recipies for all our dependencies and Mopidy itself to make OS X
installation a breeze. See `Homebrew's issue #1612
<http://github.com/mxcl/homebrew/issues/issue/1612>`_.
- Create `Debian packages <http://www.debian.org/doc/maint-guide/>`_ of all
our dependencies and Mopidy itself (hosted in our own Debian repo until we
get stuff into the various distros) to make Debian/Ubuntu installation a
breeze.
- **[WIP]** Create `Debian packages
<http://www.debian.org/doc/maint-guide/>`_ of all our dependencies and
Mopidy itself (hosted in our own Debian repo until we get stuff into the
various distros) to make Debian/Ubuntu installation a breeze.
- Compatability:
- Run frontend tests against a real MPD server to ensure we are in sync.
- **[WIP: feature/blackbox-testing]** Run frontend tests against a real MPD
server to ensure we are in sync.
- Backends:
@ -64,7 +67,7 @@ Stuff we want to do, but not right now, and maybe never
- Publish the server's presence to the network using `Zeroconf
<http://en.wikipedia.org/wiki/Zeroconf>`_/Avahi.
- 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
based upon `Tornado <http://github.com/facebook/tornado>`_ and `jQuery
Mobile <http://jquerymobile.com/>`_.

View File

@ -21,6 +21,7 @@ Reference documentation
:maxdepth: 3
api/index
modules/index
Development documentation
=========================

8
docs/modules/index.rst Normal file
View File

@ -0,0 +1,8 @@
****************
Module reference
****************
.. toctree::
:glob:
**

View File

@ -0,0 +1,9 @@
*************************************************
:mod:`mopidy.mixers.alsa` -- ALSA mixer for Linux
*************************************************
.. inheritance-diagram:: mopidy.mixers.alsa
.. automodule:: mopidy.mixers.alsa
:synopsis: ALSA mixer for Linux
:members:

View File

@ -0,0 +1,9 @@
*****************************************************************
:mod:`mopidy.mixers.denon` -- Hardware mixer for Denon amplifiers
*****************************************************************
.. inheritance-diagram:: mopidy.mixers.denon
.. automodule:: mopidy.mixers.denon
:synopsis: Hardware mixer for Denon amplifiers
:members:

View File

@ -0,0 +1,9 @@
*****************************************************
:mod:`mopidy.mixers.dummy` -- Dummy mixer for testing
*****************************************************
.. inheritance-diagram:: mopidy.mixers.dummy
.. automodule:: mopidy.mixers.dummy
:synopsis: Dummy mixer for testing
:members:

View File

@ -0,0 +1,9 @@
***************************************************************************
:mod:`mopidy.mixers.gstreamer_software` -- Software mixer for all platforms
***************************************************************************
.. inheritance-diagram:: mopidy.mixers.gstreamer_software
.. automodule:: mopidy.mixers.gstreamer_software
:synopsis: Software mixer for all platforms
:members:

View File

@ -0,0 +1,9 @@
*************************************************************
:mod:`mopidy.mixers.nad` -- Hardware mixer for NAD amplifiers
*************************************************************
.. inheritance-diagram:: mopidy.mixers.nad
.. automodule:: mopidy.mixers.nad
:synopsis: Hardware mixer for NAD amplifiers
:members:

View File

@ -0,0 +1,9 @@
**********************************************
:mod:`mopidy.mixers.osa` -- Osa mixer for OS X
**********************************************
.. inheritance-diagram:: mopidy.mixers.osa
.. automodule:: mopidy.mixers.osa
:synopsis: Osa mixer for OS X
:members:

View File

@ -0,0 +1,9 @@
*********************************************************************
:mod:`mopidy.outputs.gstreamer` -- GStreamer output for all platforms
*********************************************************************
.. inheritance-diagram:: mopidy.outputs.gstreamer
.. automodule:: mopidy.outputs.gstreamer
:synopsis: GStreamer output for all platforms
:members:

11
requirements/README.rst Normal file
View File

@ -0,0 +1,11 @@
*********************
pip requirement files
*********************
The files found here are `requirement files
<http://pip.openplans.org/requirement-format.html>`_ that may be used with `pip
<http://pip.openplans.org/>`_.
To install the dependencies found in one of these files, simply run e.g.::
pip install -r requirements/tests.txt

View File

@ -1 +1 @@
../../sample.mp3
../../../sample.mp3

View File

@ -1 +1 @@
../../sample.mp3
../../../sample.mp3