From a071005c432a8ef1bf0b1369c6bb6fa62163cd68 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 14 Feb 2010 03:54:38 +0100 Subject: [PATCH] Convert playlist_position to property --- mopidy/backends/__init__.py | 14 +++++++++----- mopidy/backends/gstreamer.py | 4 +--- tests/backends/basetests.py | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 359e2da5..fdadf753 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -55,10 +55,6 @@ class BaseCurrentPlaylistController(object): playback = self.backend.playback - # FIXME introduce a mechanism for telling - # playback that it needs to reset - playback.playlist_position = 0 - if playlist.tracks: playback.current_track = playlist.tracks[0] else: @@ -107,7 +103,6 @@ class BasePlaybackController(object): def __init__(self, backend): self.backend = backend self.current_track = None - self.playlist_position = 0 def play(self, id=None, position=None): raise NotImplementedError @@ -142,3 +137,12 @@ class BasePlaybackController(object): self.playlist_position - 1] except IndexError: return None + + @property + def playlist_position(self): + playlist = self.backend.current_playlist.playlist + + try: + return playlist.tracks.index(self.current_track) + except ValueError: + return 0 diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index 44623d01..daa56b5e 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -81,7 +81,5 @@ class GStreamerPlaybackController(BasePlaybackController): if self.playlist_position + 1 >= len(playlist.tracks): self.stop() else: - self.playlist_position += 1 - self.current_track = playlist.tracks[self.playlist_position] - + self.current_track = playlist.tracks[self.playlist_position+1] self.play() diff --git a/tests/backends/basetests.py b/tests/backends/basetests.py index 35bc7b7a..426c6f3a 100644 --- a/tests/backends/basetests.py +++ b/tests/backends/basetests.py @@ -297,7 +297,7 @@ class BasePlaybackControllerTest(object): @populate_playlist def test_initial_playlist_position(self): - self.assertEqual(self.playback.playlist_position, 0) + self.assertEqual(self.playback.playlist_position, None) @populate_playlist def test_playlist_position_during_play(self):