diff --git a/mopidy/mpd/protocol/audio_output.py b/mopidy/mpd/protocol/audio_output.py index 981cdd55..868edc49 100644 --- a/mopidy/mpd/protocol/audio_output.py +++ b/mopidy/mpd/protocol/audio_output.py @@ -33,6 +33,19 @@ def enableoutput(context, outputid): raise exceptions.MpdNoExistError('No such audio output') +# TODO: implement and test +#@protocol.commands.add('toggleoutput', outputid=protocol.UINT) +def toggleoutput(context, outputid): + """ + *musicpd.org, audio output section:* + + ``toggleoutput {ID}`` + + Turns an output on or off, depending on the current state. + """ + pass + + @protocol.commands.add('outputs') def outputs(context): """ diff --git a/mopidy/mpd/protocol/current_playlist.py b/mopidy/mpd/protocol/current_playlist.py index 45858f86..c2e54490 100644 --- a/mopidy/mpd/protocol/current_playlist.py +++ b/mopidy/mpd/protocol/current_playlist.py @@ -357,3 +357,65 @@ def swapid(context, tlid1, tlid2): position1 = context.core.tracklist.index(tl_tracks1[0]).get() position2 = context.core.tracklist.index(tl_tracks2[0]).get() swap(context, position1, position2) + + +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add( +# 'prio', priority=protocol.UINT, position=protocol.RANGE) +def prio(context, priority, position): + """ + *musicpd.org, current playlist section:* + + ``prio {PRIORITY} {START:END...}`` + + Set the priority of the specified songs. A higher priority means that + it will be played first when "random" mode is enabled. + + A priority is an integer between 0 and 255. The default priority of new + songs is 0. + """ + pass + + +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add('prioid') +def prioid(context, *args): + """ + *musicpd.org, current playlist section:* + + ``prioid {PRIORITY} {ID...}`` + + Same as prio, but address the songs with their id. + """ + pass + + +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add('addtagid', tlid=protocol.UINT) +def addtagid(context, tlid, tag, value): + """ + *musicpd.org, current playlist section:* + + ``addtagid {SONGID} {TAG} {VALUE}`` + + Adds a tag to the specified song. Editing song tags is only possible + for remote songs. This change is volatile: it may be overwritten by + tags received from the server, and the data is gone when the song gets + removed from the queue. + """ + pass + + +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add('cleartagid', tlid=protocol.UINT) +def cleartagid(context, tlid, tag): + """ + *musicpd.org, current playlist section:* + + ``cleartagid {SONGID} [TAG]`` + + Removes tags from the specified song. If TAG is not specified, then all + tag values will be removed. Editing song tags is only possible for + remote songs. + """ + pass diff --git a/mopidy/mpd/protocol/music_db.py b/mopidy/mpd/protocol/music_db.py index 2d895d67..3da9c5aa 100644 --- a/mopidy/mpd/protocol/music_db.py +++ b/mopidy/mpd/protocol/music_db.py @@ -547,3 +547,27 @@ def update(context, uri=None): ``status`` response. """ return {'updating_db': 0} # TODO + + +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add('readcomments') +def readcomments(context, uri): + """ + *musicpd.org, music database section:* + + ``readcomments [URI]`` + + Read "comments" (i.e. key-value pairs) from the file specified by + "URI". This "URI" can be a path relative to the music directory or a + URL in the form "file:///foo/bar.ogg". + + This command may be used to list metadata of remote files (e.g. URI + beginning with "http://" or "smb://"). + + The response consists of lines in the form "KEY: VALUE". Comments with + suspicious characters (e.g. newlines) are ignored silently. + + The meaning of these depends on the codec, and not all decoder plugins + support it. For example, on Ogg files, this lists the Vorbis comments. + """ + pass diff --git a/mopidy/mpd/protocol/playback.py b/mopidy/mpd/protocol/playback.py index c550a33a..a3de1891 100644 --- a/mopidy/mpd/protocol/playback.py +++ b/mopidy/mpd/protocol/playback.py @@ -32,6 +32,38 @@ def crossfade(context, seconds): raise exceptions.MpdNotImplemented # TODO +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add('mixrampdb') +def mixrampdb(context, decibels): + """ + *musicpd.org, playback section:* + + ``mixrampdb {deciBels}`` + + Sets the threshold at which songs will be overlapped. Like crossfading but + doesn't fade the track volume, just overlaps. The songs need to have + MixRamp tags added by an external tool. 0dB is the normalized maximum + volume so use negative values, I prefer -17dB. In the absence of mixramp + tags crossfading will be used. See http://sourceforge.net/projects/mixramp + """ + pass + + +# TODO: add at least reflection tests before adding NotImplemented version +#@protocol.commands.add('mixrampdelay', seconds=protocol.UINT) +def mixrampdelay(context, seconds): + """ + *musicpd.org, playback section:* + + ``mixrampdelay {SECONDS}`` + + Additional time subtracted from the overlap calculated by mixrampdb. A + value of "nan" disables MixRamp overlapping and falls back to + crossfading. + """ + pass + + @protocol.commands.add('next') def next_(context): """