Commit Graph

860 Commits

Author SHA1 Message Date
Stein Magnus Jodal
4f8907bbeb mpd: Handle paths as bytes with unknown encoding, not UTF-8 or Unicode 2013-03-31 16:46:03 +02:00
Stein Magnus Jodal
c54db3298f backends: Make search/find_exact accept 'uris' kwarg 2013-03-30 22:19:13 +01:00
Stein Magnus Jodal
1704828504 backends: Make search/find_exact take a query dict instead of kwargs 2013-03-30 22:14:33 +01:00
Stein Magnus Jodal
7e0b16680c Merge remote-tracking branch 'herrernst/fix-non-ascii-paths' into develop 2013-03-30 14:59:13 +01:00
Nick Steel
1c0601e9d4 Append the Spotify playlist's owner to the playlist name for followed (subscribed) playlists
(cherry picked from commit 176d3cca652ebbc98b68470ffa400e785ce20661)
2013-03-30 01:44:16 +01:00
herrernst
5214927d14 fix lookup of filenames containing non-ascii characters 2013-03-24 15:01:09 +01:00
Stein Magnus Jodal
02b845bd4b Revert "Merge pull request #231 from adamcik/feature/end-of-track"
This reverts commit 1cf9826f87, reversing
changes made to 711dbe8738.
2013-03-19 23:23:14 +01:00
Stein Magnus Jodal
358de3b088 Fix more unicode kwargs dict keys (#302) 2013-01-06 20:48:38 +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
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
364f0c68e8 audio: Unwrap line that was less than 80 chars. 2013-01-03 15:47:03 +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
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
af6ee16b3a Fix flake8 warnings 2013-01-02 22:25:55 +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
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
Thomas Adamcik
8a0c48e61e Add timestamp and duration to all spotify buffers.
This fixes the issue where pausing playback would show the time of the last
timestamped buffer instead of the current time. We also make sure to reset the
time when we start a new track. This was done by overriding the play method on
the session manager as it is also used for pausing, resuming and stopping.

Ideally this should probably be reworked to avoid the gst import in
mopidy.backends.spotify.playback, but for now this should do.
2012-12-27 00:30:03 +01:00
Thomas Adamcik
3a4a9e60e0 Fix use of threading.Event for Python 2.6 and clear connected state.
threading.Event's wait method returns None on python pre 2.7, which means all
searches would fail. This also corrects that fact that we weren't clearing the
connected threading event on disconnects. I did not add any tests for this at
this time as I just want to get the fix out.
2012-12-24 13:55:46 +01:00
Stein Magnus Jodal
5e94aa19ec spotify: Reduce callback logging 2012-12-24 12:51:13 +01:00
Stein Magnus Jodal
7c790d61b2 spotify: Hook need-data and enough-data callbacks onto appsrc 2012-12-24 12:21:05 +01:00
Stein Magnus Jodal
610a04bf6c Merge branch 'develop' into feature/limit-spotify-data-pushing 2012-12-24 12:13:29 +01:00
Stein Magnus Jodal
5f1a750504 Merge pull request #289 from jodal/feature/spotify-to-use-gst-time
Make Spotify backend use GStreamer for time position and seek
2012-12-24 03:08:55 -08:00
Stein Magnus Jodal
5842eabf87 Merge remote-tracking branch 'trygveaa/lookup-not-unavailable' into develop 2012-12-24 02:17:35 +01:00
Trygve Aaberge
31ddbbc017 spotify: Use TRACK_AVAILABLE constant 2012-12-24 02:07:34 +01:00
Stein Magnus Jodal
cde29d9946 Merge pull request #292 from trygveaa/lookup-not-unavailable
spotify: Only return available tracks from lookups
2012-12-23 16:45:24 -08:00
Stein Magnus Jodal
8505ea7f4e Merge branch 'feature/spotify-to-use-gst-time' into feature/limit-spotify-data-pushing
Conflicts:
	mopidy/audio/actor.py
	mopidy/backends/spotify/playback.py
2012-12-24 01:42:40 +01:00
Trygve Aaberge
75279721fb spotify: Return [] instead of None in _lookup_track 2012-12-24 01:41:08 +01:00
Trygve Aaberge
2a487ecd30 spotify: Fix flake8 warnings 2012-12-24 01:40:41 +01:00
Stein Magnus Jodal
c218375100 audio: Move Spotify appsrc caps out of audio 2012-12-24 01:40:35 +01:00
Stein Magnus Jodal
fdd4ac19ae spotify: Fix wrong search return type 2012-12-24 01:21:08 +01:00
Trygve Aaberge
8da2495e83 spotify: Only return available tracks from lookups 2012-12-24 00:29:37 +01:00
Stein Magnus Jodal
58cbbe8cb3 Merge pull request #287 from jodal/feature/search-result-model
Add SearchResult model
2012-12-23 09:47:11 -08:00
Stein Magnus Jodal
eec6c271c2 spotify: Refactor URI lookup 2012-12-23 18:41:07 +01:00
Stein Magnus Jodal
524bfc9317 local: Use 'file:search' as uri for search results for now 2012-12-23 18:32:52 +01:00
Stein Magnus Jodal
50e8ff04b3 spotify: Only push audio data when GStreamer wants more 2012-12-23 12:38:37 +01:00
Stein Magnus Jodal
c7656cdc15 spotify: Replace wall clock timer with GStreamer timer 2012-12-23 12:34:24 +01:00
Stein Magnus Jodal
8fcc7966b2 spotify: Create SpotifyTrack with uri if lookup track isn't loaded 2012-12-23 12:25:20 +01:00
Stein Magnus Jodal
357a26d7f9 spotify: Fix improper search() return value 2012-12-22 01:40:19 +01:00
Stein Magnus Jodal
a8c0f6baa8 spotify: Make query a bytestring before urlencoding it 2012-12-21 22:25:21 +01:00
Stein Magnus Jodal
e804333897 spotify: Add uri to SearchResult 2012-12-21 22:05:20 +01:00
Stein Magnus Jodal
71f27d5625 local: Add uri to SearchResults 2012-12-21 22:05:20 +01:00
Stein Magnus Jodal
b0ba2040df Return SearchResult objects from find_exact() and search()
This applies to both backends and core.
2012-12-21 22:05:20 +01:00
Stein Magnus Jodal
4b94a5a8ef spotify: Increase max search results from 100 to 200 2012-12-20 22:15:46 +01:00
Stein Magnus Jodal
02c8ea53d7 local: Add search-by-date support 2012-12-20 21:30:09 +01:00
Stein Magnus Jodal
53f3ef488c local: Reorder search filters and tests 2012-12-20 21:30:08 +01:00
Stein Magnus Jodal
147bb5e983 local: Read track date from tag cache 2012-12-20 21:30:08 +01:00
Stein Magnus Jodal
30ac1896b3 Merge branch 'develop' into feature/improved-lookup 2012-12-20 19:15:39 +01:00