Commit Graph

1402 Commits

Author SHA1 Message Date
Thomas Adamcik
e1ef4171b5 Merge branch 'develop' of http://github.com/mopidy/mopidy into develop 2011-04-25 20:37:50 +02:00
Thomas Adamcik
169fbae695 Fix outputs setting 2011-04-25 17:41:33 +02:00
Thomas Adamcik
eceba71273 Unify naming of output settings 2011-04-25 17:30:55 +02:00
Thomas Adamcik
5c19bf8434 Create set_properties helper for BaseOutput 2011-04-25 17:15:43 +02:00
Thomas Adamcik
1c233a3f8a Replace CustomOutput with override for LocalOutput 2011-04-25 17:14:31 +02:00
Stein Magnus Jodal
043338d3af Revert "Merge branch 'feature/multi-backend' into develop"
This reverts commit c8639f48da, reversing
changes made to 3e0a04ab91.
2011-04-25 15:14:00 +02:00
Stein Magnus Jodal
5f7988d974 Merge branch 'develop' into feature/multi-backend
Conflicts:
	mopidy/backends/local/__init__.py
	mopidy/outputs/gstreamer.py
	tests/frontends/mpd/audio_output_test.py
	tests/frontends/mpd/command_list_test.py
	tests/frontends/mpd/connection_test.py
	tests/frontends/mpd/current_playlist_test.py
	tests/frontends/mpd/dispatcher_test.py
	tests/frontends/mpd/music_db_test.py
	tests/frontends/mpd/playback_test.py
	tests/frontends/mpd/reflection_test.py
	tests/frontends/mpd/regression_test.py
	tests/frontends/mpd/status_test.py
	tests/frontends/mpd/stickers_test.py
	tests/frontends/mpd/stored_playlists_test.py
2011-04-25 15:05:33 +02:00
Thomas Adamcik
ebe9bba9a9 Use modify_bin and set_property to construct shoutcast output 2011-04-25 01:31:29 +02:00
Thomas Adamcik
4e232c981c Switch to modularised output for playback 2011-04-25 01:31:28 +02:00
Thomas Adamcik
f218bc060b Don't bother with album in taginject 2011-04-25 01:31:28 +02:00
Thomas Adamcik
c7ccd0c2d4 More fixes with respect to refactoring 2011-04-25 01:31:28 +02:00
Thomas Adamcik
4a1df118fb Move GStreamerOutput up one level to mopidy.gstreamer and rename to GStreamer 2011-04-25 01:31:28 +02:00
Thomas Adamcik
7016a20811 Kill of BaseOutput 2011-04-25 01:31:28 +02:00
Thomas Adamcik
f4db449f0e Add set_metadata to allow taginjection for shoutcast stream 2011-04-25 01:30:48 +02:00
Thomas Adamcik
85970dbc3b Switch to lame encoding for shoutcast 2011-04-25 01:30:48 +02:00
Thomas Adamcik
44316c7cfc Reduce number of get_by_name lookups 2011-04-25 01:30:48 +02:00
Thomas Adamcik
9f862fe1b1 Update settings docs for shoutcast 2011-04-25 01:30:48 +02:00
Thomas Adamcik
971132d539 Support just local or shoutcast audio output 2011-04-25 01:30:48 +02:00
Thomas Adamcik
b58436aaf3 Use audioconvert to ensure that volume element is handeled 2011-04-25 01:30:47 +02:00
Thomas Adamcik
700792f4a0 Add basic streaming support 2011-04-25 01:30:47 +02:00
Thomas Adamcik
a81113e1a7 Add _build_shoutcast_description to construct shoutcast bin 2011-04-25 01:30:47 +02:00
Thomas Adamcik
ecdf689301 Factor out method to add output bin 2011-04-25 01:30:47 +02:00
Thomas Adamcik
9f77f801ba Swith to tee based pipeline to allow for multiple outputs 2011-04-25 01:30:47 +02:00
Thomas Adamcik
aa0c309d23 Ignore tracks without uri as they are probably local files 2011-04-25 01:28:22 +02:00
Thomas Adamcik
b5b2319ac1 Use uridecodebin for all playblack 2011-04-24 18:32:45 +02:00
Stein Magnus Jodal
3e0a04ab91 Exit main thread if no actors are running 2011-04-24 01:25:10 +02:00
Thomas Adamcik
0b91b26910 Check if creation of IPv6 sockets works before using it (fixes #75) 2011-04-23 18:15:28 +02:00
Thomas Adamcik
f20b3b26f6 Add platform and python information to startup logging (fixes #73) 2011-04-23 15:08:03 +02:00
Stein Magnus Jodal
6708ab79de Reduce log level from warning to info (fix #71) 2011-04-11 21:19:28 +02:00
Stein Magnus Jodal
342c13f811 Fix 'song: None' in 'status' response 2011-04-06 22:40:50 +02:00
Stein Magnus Jodal
005260eb9c Add __repr__ to ImmutableObject to get better output from failed model comparisions in tests 2011-04-06 18:18:00 +02:00
Stein Magnus Jodal
037da6f460 Remove Playlist._tracks workaround 2011-04-06 18:01:33 +02:00
Stein Magnus Jodal
fce5964395 Remove Track._artists workaround 2011-04-06 17:54:12 +02:00
Stein Magnus Jodal
9499250a7f Remove Album._artists workaround 2011-04-06 17:51:36 +02:00
Stein Magnus Jodal
dec1643e7f Merge remote-tracking branch 'grunskis/develop' into develop 2011-04-05 21:37:21 +02:00
Stein Magnus Jodal
b0f92af157 Merge remote branch 'mopidy/develop' into feature/pykka-actors 2011-03-31 09:05:59 +02:00
Stein Magnus Jodal
4703783eed Upgrade to work with final release of Pykka 0.12 2011-03-30 23:28:54 +02:00
Stein Magnus Jodal
62f07cdd7f Sleep forever when main() is done to be able to catch KeyboardInterrupt 2011-03-30 23:08:36 +02:00
Antoine Pierlot-Garcin
e0b212a275 Spotify backend: better error handling. 2011-03-30 00:49:51 -04:00
Stein Magnus Jodal
4452957c10 Require Pykka 0.12 (not released yet) 2011-03-30 00:39:19 +02:00
Stein Magnus Jodal
5d6fc7b092 Avoid blocking forever waiting on search query responses from Spotify 2011-03-24 13:52:41 +01:00
Stein Magnus Jodal
be42217d3b Fix 'stored_playlists does not have "playlists" attribute' error 2011-03-24 06:58:22 +01:00
Stein Magnus Jodal
168d6ea434 Replace last multiprocessing.Connection with Queue.Queue 2011-03-23 23:05:20 +01:00
Stein Magnus Jodal
b07f37117f Fix Pylint error 2011-03-23 22:43:32 +01:00
Stein Magnus Jodal
a0805ba80f Remove unused imports 2011-03-23 22:37:36 +01:00
Stein Magnus Jodal
d7149d8ea0 Raise EnvironmentError instead of Exception to make pylint happy 2011-03-23 22:37:20 +01:00
Stein Magnus Jodal
4f546246f8 Fix sound with Spotify backend (YAY :-) ) 2011-03-23 22:24:04 +01:00
Stein Magnus Jodal
e79346b5c3 Remove unused import 2011-03-23 22:19:36 +01:00
Stein Magnus Jodal
af118a3f25 Fix future usage in LocalBackend 2011-03-21 00:18:12 +01:00
Stein Magnus Jodal
b5da3c3404 GStreamerOutput need a reference to the backend for notifying it on end of track 2011-03-20 01:37:06 +01:00
Stein Magnus Jodal
b67b579556 Spotify backend needs a reference to the output 2011-03-20 01:20:42 +01:00
Stein Magnus Jodal
4087675334 Remove unused imports 2011-03-20 01:14:51 +01:00
Stein Magnus Jodal
bcff80c714 Switch from multiprocessing.dummy to threading to fix startup issue 2011-03-20 01:14:33 +01:00
Stein Magnus Jodal
f0ebc24234 Update MPD/stored playlists 2011-03-20 01:04:18 +01:00
Stein Magnus Jodal
0de8d1b4b8 Update MPD/status 2011-03-20 00:56:43 +01:00
Stein Magnus Jodal
21153dd52b Update MPD/regression tests 2011-03-20 00:29:43 +01:00
Stein Magnus Jodal
2e1ea8080e Update MPD/reflection 2011-03-20 00:21:43 +01:00
Stein Magnus Jodal
cbe727d2bd Update MPD/playback 2011-03-20 00:19:30 +01:00
Stein Magnus Jodal
dad2422a96 MpdDispatcher requires a mixer to be running 2011-03-20 00:10:14 +01:00
Stein Magnus Jodal
7206d68648 Remove mixer from the Backend API as it is independent 2011-03-20 00:02:32 +01:00
Stein Magnus Jodal
517a2a9356 Update MPD/music_db 2011-03-19 18:05:09 +01:00
Stein Magnus Jodal
0d57a74cb3 Update MPD/current_playlist 2011-03-19 17:55:05 +01:00
Stein Magnus Jodal
462f9d3afb Make dummy library available through actor proxies 2011-03-19 17:55:04 +01:00
Stein Magnus Jodal
c67eb4b973 Make backend providers traversable so they can be set up for tests 2011-03-19 17:55:04 +01:00
Stein Magnus Jodal
a4a015af1d Update MPD/audio_output 2011-03-19 17:54:57 +01:00
Stein Magnus Jodal
49d62aecab Do not give MpdDispatcher an MpdSession object yet, as it is not needed to get current tests passing 2011-03-19 15:55:25 +01:00
Stein Magnus Jodal
46c6ee68df Fix ~200 backend tests 2011-03-10 23:19:44 +01:00
Stein Magnus Jodal
985213ffa2 Remove unused import 2011-03-09 21:46:18 +01:00
Stein Magnus Jodal
9b77d34e24 Move AlsaMixer initialization to post_start() 2011-03-09 21:41:32 +01:00
Stein Magnus Jodal
8c163104d1 Reimplement sending of started/stopped_playing events from the backend to interested frontends 2011-03-09 21:37:47 +01:00
Stein Magnus Jodal
650f777306 Reimplement pause on lost play token and setting of stored playlists 2011-03-09 21:37:00 +01:00
Stein Magnus Jodal
d8ea7ea884 Lookup other actors by their known superclasses 2011-03-09 19:30:12 +01:00
Stein Magnus Jodal
ab1f9d0cc6 Add Spotify URI to loading tracks so they can be played 2011-03-09 09:45:52 +01:00
Stein Magnus Jodal
0575d5d3be Use Actor.post_start() to do actor setup in the actor's own thread 2011-03-08 23:28:24 +01:00
Stein Magnus Jodal
7f725e8c78 Upgrade to Pykka 0.10 2011-03-08 23:20:42 +01:00
Stein Magnus Jodal
a88cf1e2ca Hook an MpdDispatcher directly onto each MpdSession 2011-03-08 21:08:45 +01:00
Stein Magnus Jodal
65c64b4a8a Actorify backends 2011-03-08 20:39:50 +01:00
Stein Magnus Jodal
3a3777e93e Update Spotify backend enough to make it start without errors 2011-03-07 22:59:25 +01:00
Stein Magnus Jodal
f0fd2c9df2 Change XXXs to TODO-PYKKA to easier find them again 2011-03-07 22:52:04 +01:00
Stein Magnus Jodal
d75ca5b4e8 Make MpdFrontend start 2011-03-07 22:42:55 +01:00
Stein Magnus Jodal
43cb8d077c Actorify LastfmFrontend 2011-03-07 22:41:07 +01:00
Stein Magnus Jodal
18e252a9d3 Strip FrontendBase to a minimum 2011-03-07 22:36:23 +01:00
Stein Magnus Jodal
38e5cec0f0 Partly actorify MpdFrontend 2011-03-07 22:35:22 +01:00
Stein Magnus Jodal
ab01828c05 Strip Backend to a minimum 2011-03-07 22:19:23 +01:00
Stein Magnus Jodal
6a78f11383 Remove mpd_format() from CurrentPlaylistController 2011-03-07 22:15:45 +01:00
Stein Magnus Jodal
b88d8d5d8a Actorify mixers 2011-03-07 22:03:11 +01:00
Stein Magnus Jodal
3a1de6578d Remove unused BaseProcess and strip queue stuff from BaseThread 2011-03-07 21:37:55 +01:00
Stein Magnus Jodal
3d56188619 Convert GstreamerOutput to an actor 2011-03-07 21:36:26 +01:00
Stein Magnus Jodal
9dafc6ebe9 Remove lifetime methods from output API 2011-03-07 21:35:14 +01:00
Stein Magnus Jodal
4749e77f1d Replace CoreProcess with simple setup functions 2011-03-07 21:34:38 +01:00
Stein Magnus Jodal
0acaa8f285 Log startup message directly from setup_logging 2011-03-07 21:33:53 +01:00
Stein Magnus Jodal
9fc7e013ff Move main() into mopidy.core 2011-03-07 20:11:34 +01:00
Stein Magnus Jodal
163ead53da Add 'play -1' support when playing 2011-02-12 02:03:18 +01:00
Stein Magnus Jodal
15c992e06a Add 'play -1' support, which fixes resume in MPoD 2011-02-12 01:45:36 +01:00
Martins Grunskis
e2c0096f5f there is no num_tracks in some of my mp3s 2011-02-09 18:57:39 +02:00
Martins Grunskis
159831c6e7 mopidy-scan fails if track has no artist name
stack trace:

    Traceback (most recent call last):
      File ./scan, line 27, in <module>
        for a in tracks_to_tag_cache_format(tracks):
      File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 138, in tracks_to_tag_cache_format
        _add_to_tag_cache(result, *tracks_to_directory_tree(tracks))
      File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 151, in _add_to_tag_cache
        _add_to_tag_cache(result, *entry)
      File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 156, in _add_to_tag_cache
        track_result = dict(track_to_mpd_format(track))
      File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 28, in track_to_mpd_format
        ('Artist', artists_to_mpd_format(track.artists)),
      File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 88, in artists_to_mpd_format
        return u', '.join([a.name for a in artists if a])
    TypeError: sequence item 0: expected string or Unicode, NoneType found
2011-02-09 18:48:15 +02:00
Stein Magnus Jodal
e150a24dfe Review patch for GH-63
- Moved mask_value_if_secret til after the method using it. Most
  important/interesting method first, lower level/more detailed later.
- Made the logic in mask_value_if_secret simpler to understand, I think,
  by making the two different cases more obvious.
- Split the test in two, as it actually tested two different cases.
- Changed the test names to explain what should happen, and not just
  what is tested.
- Add a new test that tests the case which caused the crash: a setting
  being None.
2011-02-09 17:08:40 +01:00
Martins Grunskis
f33c65ddfe mopidy --list-settings fails on fresh install 2011-02-09 17:05:29 +02:00
Stein Magnus Jodal
5e87dcbfff Add 'date' query support to 'find' and 'search' to improve ncmpcpp media library browsing 2011-01-28 11:52:18 +01:00
Stein Magnus Jodal
7f86026588 Fix typo, redirect stderr 2011-01-26 00:07:17 +01:00
Stein Magnus Jodal
242f27f943 Use subprocess instead of os.popen 2011-01-26 00:04:23 +01:00
Stein Magnus Jodal
11edbc160b Special case get_version() to include git revision id if we're running from a git repo 2011-01-25 22:03:28 +01:00
Stein Magnus Jodal
e1668efff6 Show version number in log output 2011-01-25 20:12:09 +01:00
Stein Magnus Jodal
2bef4f2e49 Ready for v0.4.0 development 2011-01-22 14:03:13 +01:00
Stein Magnus Jodal
2a1a3a8f0d Fix crash on failed lookup of URI from Spotify 2011-01-22 00:43:45 +01:00
Stein Magnus Jodal
5d4c13268f Revert "Remove int to string conversions needed for pylast < 0.5.7"
This reverts commit 62111c277c. The issue
is not fully fixed in pylast yet.
2011-01-22 00:10:52 +01:00
Stein Magnus Jodal
62111c277c Remove int to string conversions needed for pylast < 0.5.7 2011-01-21 23:57:38 +01:00
Stein Magnus Jodal
f28a62b4a2 Update Last.fm frontend to catch new exceptions thrown by pylast 0.5.7 2011-01-21 23:55:55 +01:00
Stein Magnus Jodal
be09a8a62a Catch exceptions thrown by pylast on connection problems 2011-01-21 22:45:31 +01:00
Stein Magnus Jodal
1625c1e080 Be consistent in use of unicode string 2011-01-21 16:44:24 +01:00
Stein Magnus Jodal
55b32065a8 Expose MPD error codes as constants on the MpdAckError exception, to avoid use of magic values in the other exceptions 2011-01-21 16:38:16 +01:00
Stein Magnus Jodal
e1197ed84c Change default value of MPD_SERVER_PASSWORD from False to None 2011-01-21 16:31:35 +01:00
Stein Magnus Jodal
7f4ce3be8a Fix SettingsProxy.__getattr__ to support settings that are None or 0. 2011-01-21 16:29:04 +01:00
Stein Magnus Jodal
4953a80cce Add FIXME's to 'commands' and 'notcommands', as they currently do not care if the client is authenticated or not 2011-01-21 02:20:07 +01:00
Stein Magnus Jodal
775ec64976 Test and improve password handling in MpdSession 2011-01-21 02:15:27 +01:00
Stein Magnus Jodal
00897e9024 Improve MPD_SERVER_PASSWORD description 2011-01-21 00:18:04 +01:00
Stein Magnus Jodal
af0f80d238 Add MPD_SERVER_PASSWORD to list of relevant frontend settings 2011-01-21 00:17:30 +01:00
Stein Magnus Jodal
8f0e00e1d7 Implement 'password' command which will be reached post-auth 2011-01-21 00:17:01 +01:00
Stein Magnus Jodal
37b1ec018f Merge branch 'develop' into feature/mpd-password 2011-01-20 19:39:01 +01:00
Stein Magnus Jodal
2992a81ce0 Fix crash in lastfm frontend on tracks that does not contain the expected data 2011-01-20 17:05:32 +01:00
Stein Magnus Jodal
e7ed28d0d4 Fix crash in NadMixer when using unicode strings for settings 2011-01-15 14:00:35 +01:00
Stein Magnus Jodal
4eb694c84b Catch and log pylast.WSError 2011-01-15 12:51:20 +01:00
Stein Magnus Jodal
317492098a Merge branch 'develop' into feature/mpd-password 2011-01-11 22:15:02 +01:00
Stein Magnus Jodal
a9461df4a0 Merge branch 'develop' into feature/multi-backend 2011-01-11 22:10:40 +01:00
Stein Magnus Jodal
65f8acb287 Split Spotify playlist refreshing out of metadata updated callback 2011-01-11 22:09:51 +01:00
Stein Magnus Jodal
9f5e97d14b Make all tests pass without having pyserial installed 2011-01-10 23:18:12 +01:00
Stein Magnus Jodal
c2c39acbe8 Tweak log messages 2011-01-10 17:03:54 +01:00
Stein Magnus Jodal
099544d915 Rename libspotify backend to simply 'spotify', as suggested by adamcik and knutz3n half a year ago 2011-01-10 16:48:42 +01:00
Stein Magnus Jodal
8503fe7b9e pylast 0.5 seems to prefer unicode over utf-8 encoded bytestrings 2011-01-10 16:08:05 +01:00
Stein Magnus Jodal
3eb1d47765 Fix seek for Droid MPD 2011-01-09 23:46:03 +01:00
Stein Magnus Jodal
469e5fa189 Fix volume setting for Droid MPD 2011-01-09 23:38:46 +01:00
Stein Magnus Jodal
a14f114d2a Fix crash for Spotify users with playlist folders 2011-01-09 22:54:18 +01:00
Stein Magnus Jodal
dbbde5fdd6 Update Last.fm frontend to use pylast>=0.5 and the new Scrobbling 2.0 API 2011-01-08 03:48:16 +01:00
Stein Magnus Jodal
7f70d68eda Merge branch 'hotfix/crash-when-missing-lastfm' into develop
Conflicts:
	docs/changes.rst
	docs/installation/index.rst
	mopidy/__init__.py
2011-01-07 20:41:09 +01:00
Stein Magnus Jodal
d32d4b2cad Release v0.2.1 2011-01-07 20:38:48 +01:00
Stein Magnus Jodal
7dce103d90 Fix crash in Last.fm frontend if pylast was not installed or frontend not configured 2011-01-07 20:18:40 +01:00
Stein Magnus Jodal
18caae4b18 Simplify dependency list 2010-12-28 15:12:04 +01:00
Stein Magnus Jodal
2d7ac22567 docs: Update all Git repo references 2010-11-23 09:38:47 +01:00
Stein Magnus Jodal
0b9d7bbd3f Switch main GitHub repo from jodal/mopidy to mopidy/mopidy 2010-11-23 09:01:44 +01:00
Stein Magnus Jodal
1c48c7ab2f Show 320kbit bitrate in MPD if SPOTIFY_HIGH_BITRATE=True 2010-11-23 01:31:49 +01:00
Stein Magnus Jodal
360cf4d036 Merge branch 'develop' into feature/multi-backend 2010-11-23 01:15:15 +01:00
Johannes Knutsen
73ed9920c4 Document the default value on the Spotify preferred bitrate setting 2010-11-23 00:36:02 +01:00
Johannes Knutsen
975b264c2d set connection connected after preferred bitrate is set 2010-11-23 00:33:14 +01:00
Johannes Knutsen
133a22ef97 add SPOTIFY_HIGH_BITRATE setting to enable streaming of Spotify's high bitrate streams 2010-11-23 00:26:23 +01:00
Stein Magnus Jodal
1f9414d2a7 Return None from GStreamerOutput.get_position() upon failure 2010-11-03 23:38:27 +01:00
Stein Magnus Jodal
4b13dd9046 Remove LocalPlaybackController which is now redundant 2010-11-03 23:34:08 +01:00
Stein Magnus Jodal
4515f0764e Use time position from output if provided, else internally calculated position 2010-11-03 23:33:53 +01:00
Stein Magnus Jodal
52cdaa9d4f Output.get_position() should return None if position is unknown 2010-11-03 23:33:10 +01:00
Stein Magnus Jodal
be225c23f1 Simplify DummyBackend instantiation 2010-11-03 23:31:11 +01:00
Stein Magnus Jodal
7accf783ca Remove call to stop() on LocalPlaybackController init 2010-11-03 23:23:30 +01:00