Commit Graph

3716 Commits

Author SHA1 Message Date
Thomas Adamcik
54a89038d3 utils/path: Don't skip hidden files and folders in generic find code
Updates the local scan code to do this instead.
2014-10-15 23:45:49 +02:00
Thomas Adamcik
ebb62885cd util/path: Add basic support for following symlinks 2014-10-15 23:44:48 +02:00
Thomas Adamcik
de5fe5ebab tests: Add test for current find symlink handling 2014-10-15 23:43:13 +02:00
Thomas Adamcik
de4bdbec03 tests: Minor cleanup of the existing find tests 2014-10-15 23:42:15 +02:00
Thomas Adamcik
2447e2fa40 util/path: Expose errors to callers of find helper 2014-10-15 23:42:12 +02:00
Stein Magnus Jodal
c9b0101e76 docs: Make extensiondev example and API docs for validate_environment() match
(cherry picked from commit 31c874b3eb)
2014-10-13 23:19:30 +02:00
Stein Magnus Jodal
31c874b3eb docs: Make extensiondev example and API docs for validate_environment() match 2014-10-12 11:40:59 +02:00
Thomas Adamcik
2665a5521b audio: Add gst.DEBUG_BIN_TO_DOT_FILE pipeline debuging 2014-09-26 23:51:33 +02:00
Stein Magnus Jodal
130b1eb32a docs: Define timestamp type 2014-09-23 20:55:16 +02:00
Stein Magnus Jodal
7b50855908 Merge remote-tracking branch 'mopidy/develop' into feature/history
Conflicts:
	docs/changelog.rst
2014-09-23 20:14:40 +02:00
Thomas Adamcik
a16cac2188 Merge pull request #862 from jodal/fix/clear-current-track
core: Remove clear_current_track argument from stop()
2014-09-23 19:54:59 +02:00
Stein Magnus Jodal
542cd3a3bb http: Add history controller to JSON-RPC API 2014-09-23 19:02:58 +02:00
Stein Magnus Jodal
5317834baf history: Change size property to get_length() method
For consistency with tracklist.get_length() and our goal of aligning Python
and JS APIs by using less properties in the core API.
2014-09-23 18:47:54 +02:00
Stein Magnus Jodal
177f91fb27 history: Tweaking formatting and variable names 2014-09-23 18:45:24 +02:00
Stein Magnus Jodal
1f1e86023b history: Cleanup docstrings 2014-09-23 18:44:17 +02:00
Stein Magnus Jodal
d30cf68efd history: Raise TypeError if non-Tracks are added 2014-09-23 18:42:41 +02:00
Stein Magnus Jodal
ded43039bf history: Keep history in private attribute
So it is not accessible directly from other actors.
2014-09-23 18:38:38 +02:00
Stein Magnus Jodal
f3a6c10188 history: Import entire modules
For concistency with other code.
2014-09-23 18:37:18 +02:00
Stein Magnus Jodal
1f9c5c609a history: Use time.time() to get time since epoch 2014-09-23 18:34:50 +02:00
Stein Magnus Jodal
f8f06f4ec4 playback: Move comment so its next to the line it applies to 2014-09-23 18:33:24 +02:00
Stein Magnus Jodal
718405421d history: Rename class to HistoryController
For consistency with other core controllers.
2014-09-23 18:32:37 +02:00
Arjun Naik
a6370b0a67 Switched track name and artist order in history object. 2014-09-23 18:09:12 +02:00
Arjun Naik
9006968f75 TrackHistory stores Ref instances. Timestamp as epoch in milliseconds also stored. 2014-09-23 18:09:12 +02:00
Arjun Naik
ed87ab8dd1 Added a playback history object to the core. 2014-09-23 18:09:11 +02:00
Stein Magnus Jodal
c629e105d7 docs: Update changelog with PR#840 2014-09-23 14:29:30 +02:00
Stein Magnus Jodal
1fcc75ba1e Merge pull request #840 from tkem/feature/local-library-lookup-multiple
local: Return multiple tracks from lookup()
2014-09-23 14:14:22 +02:00
Stein Magnus Jodal
d5de898b2d core: Remove clear_current_track argument from stop() 2014-09-23 01:10:51 +02:00
Thomas Adamcik
508391cf51 Merge pull request #855 from jodal/feature/emit-none-to-emit-eos
audio: Deprecate emit_end_of_stream
2014-09-22 22:58:32 +02:00
Stein Magnus Jodal
abed15b9e4 models: Make all fields default to None or empty collection 2014-09-22 22:25:42 +02:00
Stein Magnus Jodal
bdd1fb983b models: Fix equality for fields set to the default
Fixes #837
2014-09-22 22:01:50 +02:00
Stein Magnus Jodal
305a76486d models: Hide empty lists from repr() 2014-09-22 21:42:57 +02:00
Stein Magnus Jodal
00c17ae193 audio: Deprecate emit_end_of_stream 2014-09-21 21:01:11 +02:00
Stein Magnus Jodal
f58fe9a192 py3: Replace xrange() with range() 2014-09-17 20:28:07 +02:00
Stein Magnus Jodal
cd3d44ff6d py3: Use '0o' octal literal 2014-09-16 09:48:38 +02:00
Stein Magnus Jodal
c2810d0423 py3: Fix thread import 2014-09-16 09:46:16 +02:00
Stein Magnus Jodal
4c6c7ce016 http: Update Mopidy.js to v0.4.1 2014-09-11 21:50:11 +02:00
Stein Magnus Jodal
37c736533d Remove Pykka version check
This check was made redundant with our move to setuptools. The executables
made by setuptools checks if all our Python dependencies are available in the
required versions before starting Mopidy.
2014-09-09 08:38:14 +02:00
Stein Magnus Jodal
eb97b55d88 Keep gobject check together with the other checks 2014-09-09 08:35:21 +02:00
Stein Magnus Jodal
2050385a5f Update Python and Pykka version check error messages 2014-09-09 08:24:42 +02:00
Stein Magnus Jodal
db4868207c Print friendly error message if gobject isn't found
Fixes #836
2014-09-08 21:15:14 +02:00
Thomas Adamcik
ada7641ee6 audio: Remove visualizer support 2014-09-07 23:48:04 +02:00
Thomas Adamcik
3f699b97d2 audio: Split message/event teardown handler 2014-09-07 22:35:58 +02:00
Thomas Adamcik
d049b07fa9 Merge branch 'develop' into feature/audio-message-handler 2014-09-07 21:38:19 +02:00
Thomas Adamcik
e744a6da87 audio: Resolve review comments 2014-09-07 21:38:13 +02:00
Thomas Adamcik
c129cd4b24 audio: s/Triggering/Audio event/ 2014-09-07 21:36:31 +02:00
Thomas Kemmer
806174916d Change JsonLibrary.lookup to return a list 2014-09-05 05:35:18 +02:00
Stein Magnus Jodal
d41deb1844 Merge branch 'release/v0.19.x' into develop
Conflicts:
	docs/changelog.rst
2014-09-01 23:17:00 +02:00
Stein Magnus Jodal
e1ab70e1e9 Bump version to 0.19.4 2014-09-01 23:08:59 +02:00
Thomas Kemmer
380223bb96 local: Return multiple tracks from lookup() 2014-08-30 14:02:43 +02:00
Stein Magnus Jodal
c6f88feb00 Merge branch 'release/v0.19.x' into develop 2014-08-30 00:27:07 +02:00
Stein Magnus Jodal
83e779eaaf http: Guard against double close of WebSocket 2014-08-30 00:25:43 +02:00
Stein Magnus Jodal
fc94d0789e Merge branch 'release/v0.19.x' into develop 2014-08-29 21:28:58 +02:00
Stein Magnus Jodal
f1096d332c local: Move constant to Library class
Related to #833
2014-08-29 21:28:42 +02:00
Stein Magnus Jodal
c50641230d Merge branch 'release/v0.19.x' into develop 2014-08-29 14:03:11 +02:00
Stein Magnus Jodal
69c3e107a2 local: Add ROOT_DIRECTORY_URI constant
Related to #833
2014-08-29 14:02:08 +02:00
Stein Magnus Jodal
0e60730704 backends: Update browse() signature and docs to match core implementation
Fixes #833
2014-08-29 13:50:12 +02:00
Stein Magnus Jodal
2830784703 Merge pull request #827 from trygveaa/fix/network-thread-issue
network: disable_recv before telling actor to close connection
2014-08-29 13:36:48 +02:00
Stein Magnus Jodal
a244761abc mpd: Replace / with | instead of whitespace in playlist names 2014-08-17 23:25:09 +02:00
Stein Magnus Jodal
1484514224 main: Log uncaught exceptions
(cherry picked from commit 027b7a53fe)
2014-08-16 23:20:43 +02:00
Stein Magnus Jodal
027b7a53fe main: Log uncaught exceptions 2014-08-16 23:04:01 +02:00
Stein Magnus Jodal
3c3fce0187 Merge branch 'release/v0.19.x' into develop 2014-08-15 22:52:11 +02:00
Trygve Aaberge
265951bf00 network: disable_recv before telling actor to close connection
As of d62ad96, when the connection can't receive more data from the
client, it tells the actor to stop the connection and calls
disable_recv(). The actor operates in it's own thread and when it stops
the connection, disable_recv is being called again from a different
thread. Since the actor is told to stop the connection before
disable_recv is called, the two calls to disable_recv may happen
simultaneously.

This causes a race condition issue where both threads can reach past the
check that recv_id is not None before either of them set it to None. If
one of them set it to None before the other one tries to use it, an
error is raised.

This commit calls disable_recv before telling the actor to stop the
connection. Since disable_recv is a blocking call, this ensures that
recv_id is being set to None before the actor thread begins to stop the
connection.

Fixes #781
2014-08-14 01:58:48 +02:00
Trygve Aaberge
f0b66bdfcb main: Ensure that exit_status_code always is assigned
KeyboardInterrupts are not always catched in commands.py. As far as I
have seen, if I/O operations are ongoing, a KeyboardInterrupt may be
raised there instead of in commands.py. In some cases, this may cause
loop.run() to return, which previously resulted in exit_status_code
being referenced before assignment.
2014-08-13 01:21:03 +02:00
Stein Magnus Jodal
ae3a932ed3 Merge branch 'release/v0.19.x' into develop
Conflicts:
	mopidy/config/__init__.py
2014-08-12 23:54:14 +02:00
Thomas Adamcik
ac5bf9af17 audio: Move most of event handling out of audio.
Some of the signal handling still needs to be moved.
2014-08-11 22:33:49 +02:00
Thomas Adamcik
101b2a9817 audio: Make stream-changed correctly handle tee setup
For the purposes of this event we consider the outputs sink the final element.
If we don't do this we would get one event per branch, and we don't want to
track when each of them actually switches any way. So just tracking when the
tee/outputs bin gets the event is good enough for us.

As part of this I've also added 'testoutput' as a special cased output value.
This is now needed as outputs are always synced to the clock, making testing
a lot less practical.
2014-08-11 22:33:49 +02:00
Trygve Aaberge
584484379a config: Only load .conf-files when loading directories 2014-08-11 16:21:34 +02:00
Trygve Aaberge
9e41eff187 config: Support passing directories to mopidy --config 2014-08-11 14:48:04 +02:00
Trygve Aaberge
0863a813fa main: Return status code 1 if {Backend,Frontend,Mixer}Error is raised 2014-08-11 13:43:18 +02:00
Trygve Aaberge
bac3bfb7a2 log: Don't disable loggers when loading fileConfig
The default when loading config for logging from a file is to disable
existing loggers. Since some loggers are created before logging is set
up, these loggers were disabled if logging/config_file is set.

(cherry picked from commit cb0387c46d)

Conflicts:
	docs/changelog.rst
2014-08-11 13:00:01 +02:00
Trygve Aaberge
cb0387c46d log: Don't disable loggers when loading fileConfig
The default when loading config for logging from a file is to disable
existing loggers. Since some loggers are created before logging is set
up, these loggers were disabled if logging/config_file is set.
2014-08-11 01:42:30 +02:00
Stein Magnus Jodal
e1fda35351 config: Only log existing config files 2014-08-07 11:36:25 +02:00
Trygve Aaberge
210e1705e7 mpd: Fix list commands with 3 arguments (fixes #817)
List commands with 3 arguments should return albums, not artists.

(cherry picked from commit ec413126f1)
2014-08-05 23:52:46 +02:00
Trygve Aaberge
ec413126f1 mpd: Fix list commands with 3 arguments (fixes #817)
List commands with 3 arguments should return albums, not artists.
2014-08-05 18:46:16 +02:00
Thomas Adamcik
fd9100a5f3 audio: Annotate code with more TODOs and questions 2014-08-03 23:57:22 +02:00
Thomas Adamcik
6b88b4f685 audio: Group playbin teardown/setup
This makes it possible to see that we setup and teardown the same things. Also
fixes disconnect on a signal we no longer listen to.
2014-08-03 23:57:22 +02:00
Thomas Adamcik
b8a0ca59cd audio: Refactor softwaremixer and audio interactions
This rips the mixer bits and pieces that have been hiding in the audio actor to
it's own class. The software mixer now only knows about this and nothing else
from audio.
2014-08-03 23:57:22 +02:00
Thomas Adamcik
4bfc5e7a80 audio: Split out proxy setup 2014-08-03 23:57:22 +02:00
Thomas Adamcik
72ca1a74c3 audio: Unify source handlers
notify::source and setup-source are the same, just that setup-source is a
convenience wrapper.
2014-08-03 23:57:22 +02:00
Thomas Adamcik
d650c0ba14 audio: Split out ouput handling from audio actor
This also lays some basic ground work for handling multiple outputs.
2014-08-03 23:57:22 +02:00
Thomas Adamcik
b9879ef81e audio: Improve GStreamer logging
This adds an extra mopidy.audio.gst logger and moves the GStreamer logging to
it. Additionally this adds more logging so we can likely get by with just
mopidy logs in more cases.
2014-08-03 23:57:22 +02:00
Thomas Adamcik
88788fddfd audio: Use pbutils to provide usable plugin missing info 2014-08-03 23:57:22 +02:00
Thomas Adamcik
fb8b02cee9 audio: Split out appsrc handling 2014-08-03 23:57:22 +02:00
Thomas Adamcik
f0f19ebc2e audio: Add docs to signal handler helper 2014-08-03 23:57:22 +02:00
Thomas Adamcik
531b312ace audio: Split out the signals tracking 2014-08-03 23:57:21 +02:00
Stein Magnus Jodal
e9822117e5 Merge branch 'master' into develop
Conflicts:
	docs/changelog.rst
2014-08-03 23:40:18 +02:00
Stein Magnus Jodal
dc80f17296 Bump version to 0.19.3 2014-08-03 23:34:25 +02:00
Stein Magnus Jodal
9260ae23a7 Merge branch 'release/v0.19.x' into develop 2014-08-03 23:13:40 +02:00
Stein Magnus Jodal
837fb00fb7 Fail early if extension doesn't implement setup()
Fixes #813
2014-08-03 23:13:14 +02:00
Thomas Adamcik
8376286e7e zeroconf: Fix intermittent dbus/avahi exception
This fixes an issue where I sometimes would get an error from dbus
'Unable to guess signature from an empty list'. After some digging
and checking the avahi dbus specs I found they expect the text list
to have a signature of 'aay' (an array of arrays containing bytes).
So instead of using python lists we now use a 'typed' dbus array.

It is not clear to me why this is a heisenbug, but this fix does
seem to make it go away.

(cherry picked from commit 80f5c9158d)
2014-08-03 15:18:55 +02:00
Thomas Adamcik
80f5c9158d zeroconf: Fix intermittent dbus/avahi exception
This fixes an issue where I sometimes would get an error from dbus
'Unable to guess signature from an empty list'. After some digging
and checking the avahi dbus specs I found they expect the text list
to have a signature of 'aay' (an array of arrays containing bytes).
So instead of using python lists we now use a 'typed' dbus array.

It is not clear to me why this is a heisenbug, but this fix does
seem to make it go away.
2014-08-03 11:43:28 +02:00
Stein Magnus Jodal
4f34f0103d Merge pull request #680 from adamcik/feature/audio-prep-work-for-gapless
audio: Preparation work for gapless playback support
2014-08-02 20:55:54 +02:00
Thomas Adamcik
5d1dd1a355 review-fixes: Mostly typos etc. 2014-08-02 20:45:55 +02:00
Stein Magnus Jodal
514d83636a docs: Add PlaylistsProvider docs 2014-08-02 00:22:38 +02:00
Thomas Adamcik
1b8feefcdc audio: Link to context of why we demote jack sinks
(cherry picked from commit 29019d94af)
2014-07-30 00:30:13 +02:00
Thomas Adamcik
3f6a9acea1 Merge branch 'develop' into feature/audio-prep-work-for-gapless 2014-07-30 00:12:00 +02:00
Thomas Adamcik
29019d94af audio: Link to context of why we demote jack sinks 2014-07-29 23:45:22 +02:00
Thomas Adamcik
1fd455a53c Merge pull request #801 from arjunrn/develop
raspi: Workaround for RasPi selecting jack server.
2014-07-29 23:43:39 +02:00
Thomas Adamcik
e73159dc6c Merge branch 'develop' into feature/audio-prep-work-for-gapless 2014-07-29 23:07:08 +02:00
Ignasi Fosch
13073362f4 Correct if .. is not None 2014-07-27 17:52:14 +02:00