From 2c83225a1ec4b175ff92366c5dd0b4e427275469 Mon Sep 17 00:00:00 2001 From: Javier Domingo Cansino Date: Thu, 8 Aug 2013 11:56:35 +0200 Subject: [PATCH] Created a TracklistController to let it control wether if a track must be consumed or not --- mopidy/core/playback.py | 3 +-- mopidy/core/tracklist.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index 8ae7b4d9..6a5b0dc7 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -148,8 +148,7 @@ class PlaybackController(object): else: self.stop(clear_current_track=True) - if self.core.tracklist.consume: - self.core.tracklist.remove(tlid=original_tl_track.tlid) + self.core.tracklist.mark_consumed(tlid=original_tl_track.tlid) def on_tracklist_change(self): """ diff --git a/mopidy/core/tracklist.py b/mopidy/core/tracklist.py index 7207f1a9..8971745e 100644 --- a/mopidy/core/tracklist.py +++ b/mopidy/core/tracklist.py @@ -434,6 +434,19 @@ class TracklistController(object): """ return self._tl_tracks[start:end] + def mark_consumed(self, **kwargs): + """ + Marks the given track as played. + + :param tl_track: Track to mark + :type tl_track: :class:`mopidy.models.TlTrack` + :rtype: True if the track was actually removed from the tracklist + """ + if not self.consume: + return False + self.remove(**kwargs) + return True + def _trigger_tracklist_changed(self): self._first_shuffle = True self._shuffled = []