From ba7a3a51e34dc710ed30153a881ba86348fd8af2 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sat, 13 Feb 2010 01:28:39 +0100 Subject: [PATCH] libspotify: Improve playback controls by stopping before playing new track. Fix a couple of bugs. --- mopidy/backends/libspotify.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/mopidy/backends/libspotify.py b/mopidy/backends/libspotify.py index e6c74863..14615ee6 100644 --- a/mopidy/backends/libspotify.py +++ b/mopidy/backends/libspotify.py @@ -47,22 +47,38 @@ class LibspotifyLibraryController(BaseLibraryController): class LibspotifyPlaybackController(BasePlaybackController): + def _next(self, track): + if self.state == self.PLAYING: + self._stop() + self._play(track) + return True + def _pause(self): # TODO return False def _play(self, track): + if self.state == self.PLAYING: + self._stop() + if track.uri is None: + return False self.backend.spotify.session.load( - Link.from_string(self._current_track.uri).as_track()) + Link.from_string(track.uri).as_track()) self.backend.spotify.session.play(1) return True + def _previous(self, track): + if self.state == self.PLAYING: + self._stop() + self._play(track) + return True + def _resume(self): # TODO return False def _stop(self): - self.spotify.session.play(0) + self.backend.spotify.session.play(0) return True