From: kaliko <kaliko@azylum.org> Date: Tue, 21 Nov 2017 15:35:06 +0000 (+0100) Subject: Add option to prevent single|repeat to disable queuing (Closes #19) X-Git-Tag: 0.15.0~14 X-Git-Url: http://git.kaliko.me/?a=commitdiff_plain;h=41e7f45be3c35a4630478211b2036ce496fdf588;p=mpd-sima.git Add option to prevent single|repeat to disable queuing (Closes #19) --- diff --git a/data/man/mpd_sima.cfg.5 b/data/man/mpd_sima.cfg.5 index b696d61..5d5aba6 100644 --- a/data/man/mpd_sima.cfg.5 +++ b/data/man/mpd_sima.cfg.5 @@ -212,6 +212,16 @@ Use MusicBrainzIdentifier to search music (mainly for artists)\&. Default is Tru Consider using these metadata as it enhances a lot artist/album/tracks identification\&. Use Picard to tag your file: \m[blue]\fB\%https://picard.musicbrainz.org/\fR\m[]\&. .RE +.PP +\fBrepeat_disable_queue=\fR\fItrue\fR +.RS 4 +Prevent disabling queuing in repeat play mode\&. +.RE +.PP +\fBsingle_disable_queue=\fR\fItrue\fR +.RS 4 +Prevent disabling queuing in single play mode\&. +.RE .SS "Crop section" .PP crop plugin\*(Aqs configuration: diff --git a/data/man/mpd_sima.cfg.5.xml b/data/man/mpd_sima.cfg.5.xml index 3f7172f..002b141 100644 --- a/data/man/mpd_sima.cfg.5.xml +++ b/data/man/mpd_sima.cfg.5.xml @@ -185,63 +185,77 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/ <term><option>[sima]</option></term> <listitem><para></para></listitem> </varlistentry> - <variablelist> - <varlistentry> <!-- sima.contrib --> - <term><option>contrib=</option><replaceable></replaceable></term> - <listitem> - <para></para> - </listitem> - </varlistentry> - <varlistentry> <!-- sima.internal --> - <term><option>internal=</option><replaceable>Lastfm, Random, Crop</replaceable></term> - <listitem> - <para>&dhpackage;'s plugin management for internal source plugin - and contrib (ie. external plugins).<sbr /> Plugins list is a - comma separated string list.<sbr /> Optional plugin's - configuration lays in its own section.<sbr />For instance a - "AwesomePlugin" declared here gets its configuration from the - corresponding section "[awesomeplugin]". - </para> - <para>The default list of plugins to load at startup: <option>Lastfm</option>,<option>Random</option>,<option>Crop</option>.<sbr /> - <option>Crop</option> is an utility plugin, it does not queue any tracks (cf. below).<sbr /> - <option>Random</option> will queue a track at random if other plugins did not return any tracks.<sbr /> - </para> - <para>You can add here as many plugins you want, - currently shipping <option>Lastfm</option> only.<sbr /> - The priority may be used to order them. - </para> - </listitem> - </varlistentry> - <varlistentry> <!-- sima.history_duration --> - <term><option>history_duration=</option><replaceable>8</replaceable></term> - <listitem> - <para>How far to look back in history to avoid to play - twice the same track/title (duration in - hours).<sbr /> - The <option>history_duration</option> is also used to give priority to not recently played artists. - </para> - </listitem> - </varlistentry> - <varlistentry> <!-- sima.queue_length --> - <term><option>queue_length=</option><replaceable>2</replaceable></term> - <listitem> - <para>Threshold value triggering queue process.</para> - </listitem> - </varlistentry> - <varlistentry> <!-- sima.musicbrainzid --> - <term><option>musicbrainzid=</option><replaceable>true</replaceable></term> - <listitem> - <para>Use MusicBrainzIdentifier to search music (mainly - for artists). - Default is True, switch to False if you don't have - MusicBrainzIdentifier set for at least 80% of you - music library.<sbr /> Consider using these metadata as it - enhances a lot artist/album/tracks identification. - Use Picard to tag your file: <ulink url="https://picard.musicbrainz.org/"/>. - </para> - </listitem> - </varlistentry> - </variablelist> + <variablelist> + <varlistentry> <!-- sima.contrib --> + <term><option>contrib=</option><replaceable></replaceable></term> + <listitem> + <para></para> + </listitem> + </varlistentry> + <varlistentry> <!-- sima.internal --> + <term><option>internal=</option><replaceable>Lastfm, Random, Crop</replaceable></term> + <listitem> + <para>&dhpackage;'s plugin management for internal source plugin + and contrib (ie. external plugins).<sbr /> Plugins list is a + comma separated string list.<sbr /> Optional plugin's + configuration lays in its own section.<sbr />For instance a + "AwesomePlugin" declared here gets its configuration from the + corresponding section "[awesomeplugin]". + </para> + <para>The default list of plugins to load at startup: <option>Lastfm</option>,<option>Random</option>,<option>Crop</option>.<sbr /> + <option>Crop</option> is an utility plugin, it does not queue any tracks (cf. below).<sbr /> + <option>Random</option> will queue a track at random if other plugins did not return any tracks.<sbr /> + </para> + <para>You can add here as many plugins you want, + currently shipping <option>Lastfm</option> only.<sbr /> + The priority may be used to order them. + </para> + </listitem> + </varlistentry> + <varlistentry> <!-- sima.history_duration --> + <term><option>history_duration=</option><replaceable>8</replaceable></term> + <listitem> + <para>How far to look back in history to avoid to play + twice the same track/title (duration in + hours).<sbr /> + The <option>history_duration</option> is also used to give priority to not recently played artists. + </para> + </listitem> + </varlistentry> + <varlistentry> <!-- sima.queue_length --> + <term><option>queue_length=</option><replaceable>2</replaceable></term> + <listitem> + <para>Threshold value triggering queue process.</para> + </listitem> + </varlistentry> + <varlistentry> <!-- sima.musicbrainzid --> + <term><option>musicbrainzid=</option><replaceable>true</replaceable></term> + <listitem> + <para>Use MusicBrainzIdentifier to search music (mainly + for artists). + Default is True, switch to False if you don't have + MusicBrainzIdentifier set for at least 80% of you + music library.<sbr /> Consider using these metadata as it + enhances a lot artist/album/tracks identification. + Use Picard to tag your file: <ulink url="https://picard.musicbrainz.org/"/>. + </para> + </listitem> + </varlistentry> + <varlistentry> <!-- sima.repeat_disable_queue --> + <term><option>repeat_disable_queue=</option><replaceable>true</replaceable></term> + <listitem> + <para>Prevent disabling queuing in repeat play mode. + </para> + </listitem> + </varlistentry> + <varlistentry> <!-- sima.single_disable_queue --> + <term><option>single_disable_queue=</option><replaceable>true</replaceable></term> + <listitem> + <para>Prevent disabling queuing in single play mode. + </para> + </listitem> + </varlistentry> + </variablelist> </variablelist> </refsect2> <refsect2 id="crop"> diff --git a/doc/Changelog b/doc/Changelog index 8b5e7c3..9aa9442 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,7 @@ MPD_sima v0.15.0 * Remove EchoNest support (Closes #10) * Enhanced queuing behavior in random mode (Closes #16) + * Add option to prevent single & repeat mode to disable queuing (Closes #19) -- kaliko jack <kaliko@azylum.org> UNRELEASED diff --git a/doc/examples/all_settings.cfg b/doc/examples/all_settings.cfg index b0df17f..a720375 100644 --- a/doc/examples/all_settings.cfg +++ b/doc/examples/all_settings.cfg @@ -106,6 +106,18 @@ queue_length = 2 # description: Use of MusicBrainzIdentifier tag musicbrainzid = True +## REPEAT_DISABLE_QUEUE +# type: boolean +# default: True +# description: Prevent repeat play mode to disable queuing +repeat_disable_queue = True + +## SINGLE_DISABLE_QUEUE +# type: boolean +# default: True +# description: Prevent single play mode to disable queuing +single_disable_queue = True + ######################### PLUGINS ##################################### [crop] diff --git a/sima/plugins/core/mpdoptions.py b/sima/plugins/core/mpdoptions.py index fe368bd..47b0c04 100644 --- a/sima/plugins/core/mpdoptions.py +++ b/sima/plugins/core/mpdoptions.py @@ -18,7 +18,7 @@ # # """ - Deal with MPD options â idle and repeat mode + Deal with MPD options â single and repeat mode """ # standard library import @@ -44,11 +44,13 @@ class MpdOptions(Plugin): """ player = self.daemon.player if player.playmode.get('single'): - self.log.info('MPD "single" mode activated.') - self.daemon.enabled = False + if self.daemon.config.getboolean('sima', 'single_disable_queue'): + self.log.info('MPD "single" mode activated.') + self.daemon.enabled = False elif player.playmode.get('repeat'): - self.log.info('MPD "repeat" mode activated.') - self.daemon.enabled = False + if self.daemon.config.getboolean('sima', 'repeat_disable_queue'): + self.log.info('MPD "repeat" mode activated.') + self.daemon.enabled = False else: if self.daemon.enabled is False: self.log.debug('enabling queuing (leaving single|repeat mode)') diff --git a/sima/utils/config.py b/sima/utils/config.py index 0f13cba..dfa91e7 100644 --- a/sima/utils/config.py +++ b/sima/utils/config.py @@ -53,6 +53,8 @@ DEFAULT_CONF = { 'queue_length': 2, 'var_dir': 'empty', 'musicbrainzid': "true", + 'repeat_disable_queue': "true", + 'single_disable_queue': "true", }, 'daemon':{ 'daemon': False,