Commit Graph

3607 Commits

Author SHA1 Message Date
Stein Magnus Jodal
af10e642f2 models: Support serialization of lists of strings 2013-01-06 22:37:37 +01:00
Thomas Adamcik
1ea83803a5 Merge pull request #314 from jodal/feature/album-images
models: Add Album.images field (#263)
2013-01-06 13:04:02 -08:00
Stein Magnus Jodal
6599094b1e models: Add Album.images field (#263) 2013-01-06 21:43:52 +01:00
Thomas Adamcik
86403acc33 Merge pull request #313 from jodal/feature/get-playlists-without-tracks
core: Add 'include_tracks' argument to 'get_playlists()'
2013-01-06 12:37:48 -08:00
Stein Magnus Jodal
65bab05ce0 Don't exit autotest if a test fails 2013-01-06 21:33:01 +01:00
Stein Magnus Jodal
2eb9ad710a core: Add 'include_tracks' argument to 'get_playlists()' 2013-01-06 21:04:27 +01:00
Stein Magnus Jodal
358de3b088 Fix more unicode kwargs dict keys (#302) 2013-01-06 20:48:38 +01:00
Thomas Adamcik
42e84c8e2e docs: Add changelog entry for EOT/EOS fixing. 2013-01-06 11:32:37 +01:00
Stein Magnus Jodal
1cf9826f87 Merge pull request #231 from adamcik/feature/end-of-track
Proper EOT / EOS handling
2013-01-06 02:10:14 -08:00
Thomas Adamcik
3857eaa840 core: Unbreak end of track related tests.
We should only be hooking up end of track when an audio instance is passed in.
Additionally the tracklist tests where wrongly sending in the audio module
instead of the mock audio.Audio instance.
2013-01-05 23:32:35 +01:00
Thomas Adamcik
fb8fba243a audio/core: Rework how we hook up end of track handling. 2013-01-05 23:16:42 +01:00
Thomas Adamcik
6b922066bb core: Trigger playback ended before switching tracks 2013-01-05 22:47:07 +01:00
Thomas Adamcik
0d7b7e29a3 audio: Remove test for error handling that no longer happens. 2013-01-05 21:35:41 +01:00
Thomas Adamcik
6d1f84ad3c Merge branch 'develop' into feature/end-of-track
Conflicts:
	mopidy/audio/actor.py
	mopidy/backends/spotify/playback.py
2013-01-05 18:47:16 +01:00
Thomas Adamcik
711dbe8738 audio: Create GStreaner connect/disconnect helper.
The audio class had to many attributes for simply tracking connected signals in
my opinion. This change adds a helper for adding and removing signals and storing
the tracking data in a common dictionary instead of a ton of instance attributes.
2013-01-05 18:35:43 +01:00
Thomas Adamcik
729bc26c10 Merge pull request #290 from jodal/feature/limit-spotify-data-pushing
Limit Spotify audio data pushing
2013-01-05 09:11:26 -08:00
Thomas Adamcik
81b6620799 audio: Handle about to finish for non appsrc playback
The appsrc cleanup code was still short circuiting the about to finish handler,
this meant that EOT handling never happened for local files and playback stopped.

With this change proper EOT handling works for all track types.
2013-01-05 17:37:16 +01:00
Thomas Adamcik
39580e1948 Use blocking calls when changing tracks on EOT.
This ensures that we block about-to-finish and the pipeline until the next URI
is set, alowing for at least EOS free playback. If the uri is set quickly enough
this will also be gapless.
2013-01-05 16:46:16 +01:00
Stein Magnus Jodal
61dcb7d37d mpd: Make request handler **kwargs keys bytestrings (#302) 2013-01-04 10:26:30 +01:00
Stein Magnus Jodal
928034222a Merge branch 'master' into develop
Conflicts:
	docs/changes.rst
2013-01-03 23:55:00 +01:00
Stein Magnus Jodal
cbb68f9cbe docs: Bind console functions in JS examples
For e.g. ``console.log`` to be used as a callback, it must be bound to the
``console`` object first: ``console.log.bind(console)``. If not, this will
cause "Illegal invocation" errors in WebKit browsers.

This change updates all our Mopidy.js examples to bind ``console`` functions
before they are used as callbacks.

Fixes #298.
2013-01-03 23:18:56 +01:00
Thomas Adamcik
91297c1ba8 Update changelog with mixer track selection change. 2013-01-03 22:54:13 +01:00
Stein Magnus Jodal
c03d99e55b mpd: Use bytestring for **kwargs key (#302) 2013-01-03 22:46:29 +01:00
Thomas Adamcik
ea5bb18d53 audio: Update mixer track selection logic (fixes #307)
We now ensure that the track we choose has one or more volume channels we can
control. This change also fixes that fact the MIXER_TRACK setting would not
work if we happened to find a track that was flaged as MASTER OUPUT before
finding the right label, so far no one has reported this as an issue.
2013-01-03 22:24:58 +01:00
Stein Magnus Jodal
edde1bc584 audio: Fix docstring 2013-01-03 21:40:20 +01:00
Stein Magnus Jodal
e07a6e151a js: Add a package.json to simplify JS dev env setup 2013-01-03 21:37:31 +01:00
Stein Magnus Jodal
c76ac2d212 audio: Use time conversion utils 2013-01-03 19:40:53 +01:00
Stein Magnus Jodal
64ae7865bb audio: Add clocktime_to_millisecond util function 2013-01-03 19:38:31 +01:00
Stein Magnus Jodal
45d4445eea Merge branch 'develop' into feature/limit-spotify-data-pushing
Conflicts:
	mopidy/backends/spotify/session_manager.py
2013-01-03 16:18:08 +01:00
Thomas Adamcik
b78d5eddac Merge branch 'develop' into feature/end-of-track
Conflicts:
	mopidy/audio/actor.py
	mopidy/backends/spotify/playback.py
2013-01-03 16:12:09 +01:00
Thomas Adamcik
855987447b audio: Docstring typo typo fixing. 2013-01-03 15:51:09 +01:00
Thomas Adamcik
364f0c68e8 audio: Unwrap line that was less than 80 chars. 2013-01-03 15:47:03 +01:00
Thomas Adamcik
d5b19ab213 audio: Docstring typo fixing. 2013-01-03 15:45:48 +01:00
Thomas Adamcik
88398ea355 Add new mopidy.audio.utils functions (fixes #301).
Adds functions to create buffers, calcalute buffer durations based on number of
samples and the sample rate and converting milliseconds to gst internal clock
time.

This also alows for the removal of all gst imports outside of mopidy.audio.
2013-01-03 15:35:52 +01:00
Thomas Adamcik
8d2656f75c Temporary workaround for #300
Likely cause of this issue is libspotify getting the intial seek to early. We
have not yet had time to dig beyond this point and develop has been broken for
to long due to this. As such this work aroundly simply ignores the first seek
to position zero outright, this avoiding what is likely a race condition in
libspotify.

Next step will be to create a minimal libspotify/pyspotify test case for this
to verify that assumption and hopefully figure out a correct fix. We also need
to look into if the intial seek can be avoided in gstreamer.
2013-01-03 14:27:13 +01:00
Stein Magnus Jodal
ef3d5e92ce scanner: Fix optparse on early 2.6 (#302) 2013-01-03 13:14:21 +01:00
Stein Magnus Jodal
5ff8ea451f More **kwargs key fixing (#302) 2013-01-03 12:58:08 +01:00
Stein Magnus Jodal
d34ba24cfe Use bytestrings for the keys of **kwargs dicts
Python < 2.6.5rc1 does not work with unicode keys. Fixes #302.
2013-01-03 10:04:05 +01:00
Stein Magnus Jodal
62cbcee5d7 Fix Python 2.6.0/2.6.1 support (fixes #302) 2013-01-02 23:40:59 +01:00
Stein Magnus Jodal
fa929fd01d docs: Add more periods for consistency 2013-01-02 22:36:29 +01:00
Stein Magnus Jodal
bd8ab175ed docs: Add period for consistency 2013-01-02 22:35:43 +01:00
Stein Magnus Jodal
052efc23ed docs: Add stream backend to changelog 2013-01-02 22:32:58 +01:00
Stein Magnus Jodal
b009606df5 docs: Document new backend 2013-01-02 22:29:07 +01:00
Stein Magnus Jodal
af6ee16b3a Fix flake8 warnings 2013-01-02 22:25:55 +01:00
Stein Magnus Jodal
f4251e63fa Merge pull request #295 from adamcik/feature/streaming-backend
Add basic streaming backend support.
2013-01-02 13:25:03 -08:00
Stein Magnus Jodal
dfa0d648f9 scanner: Support symlinks 2013-01-02 21:39:14 +01:00
Thomas Adamcik
ca82565b08 audio: Move supported URI checking to mopidy.audio.utils
In order to avoid gstreamer imports leaking into more of our code I'm moving
this to a new utils class in audio.
2013-01-01 17:31:17 +01:00
Thomas Adamcik
f1bd092e63 core: Update tests with cases for filtering out None results. 2013-01-01 17:31:06 +01:00
Thomas Adamcik
5dd7f4b07a core: Update BaseLibraryProvider to not require refresh, search or find_exact.
These methods may now return None, and the core code has been updated to filter
out missing SearchResults.
2013-01-01 17:30:51 +01:00
Thomas Adamcik
341dea7262 stream backend: Add StreamBackend, fixes #151
Adds a basic streaming backend simply handles streaming audio and nothing else.
I.e. no metadata beyond the URI we where given. #270 still needs to be solved
for actual metadata to make sense in this backend.
2013-01-01 17:30:38 +01:00