diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index 7eedb750..0709c688 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -165,7 +165,7 @@ class PlaybackController(object): else: self.stop(clear_current_track=True) - self.core.tracklist.mark("consumed", original_tl_track) + self.core.tracklist.mark_consumed(original_tl_track) def on_tracklist_change(self): """ @@ -230,7 +230,7 @@ class PlaybackController(object): backend = self._get_backend() if not backend or not backend.playback.play(tl_track.track).get(): logger.warning('Track is not playable: %s', tl_track.track.uri) - self.core.tracklist.mark("unplayable", tl_track) + self.core.tracklist.mark_unplayable(tl_track) if on_error_step == 1: # TODO: can cause an endless loop for single track repeat. self.next() @@ -238,7 +238,7 @@ class PlaybackController(object): self.previous() return - self.core.tracklist.mark("played", tl_track) + self.core.tracklist.mark_starting(tl_track) self._trigger_track_playback_started() diff --git a/mopidy/core/tracklist.py b/mopidy/core/tracklist.py index 135f3e73..154eb0d5 100644 --- a/mopidy/core/tracklist.py +++ b/mopidy/core/tracklist.py @@ -438,30 +438,19 @@ class TracklistController(object): """ return self._tl_tracks[start:end] - def mark(self, what, tl_track): - """ - Marks the given track as specified. Currently supports:: - * `consumed` The track has been completely played. - * `played` The track has been played, at least a piece of it. - * `unplayable` The track is unplayable + def mark_consumed(self, tl_track): + if not self.consume: + return False + self.remove(tlid=tl_track.tlid) + return True - :param what: What to be marked as - :type what: string - :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 what == "consumed": - if not self.consume: - return False - self.remove(tlid=tl_track.tlid) - return True - elif what == "played": - if self.random and tl_track in self._shuffled: - self._shuffled.remove(tl_track) - elif what == "unplayable": - if self.random and self._shuffled: - self._shuffled.remove(tl_track) + def mark_starting(self, tl_track): + if self.random and tl_track in self._shuffled: + self._shuffled.remove(tl_track) + + def mark_unplayable(self, tl_track): + if self.random and self._shuffled: + self._shuffled.remove(tl_track) def _trigger_tracklist_changed(self): self._first_shuffle = True