diff --git a/mopidy/backends/base.py b/mopidy/backends/base.py index 54339ecd..fd529d4c 100644 --- a/mopidy/backends/base.py +++ b/mopidy/backends/base.py @@ -38,7 +38,7 @@ class BaseBackend(object): return self.state # Control methods - def stop(self): + def pause(self): pass def play(self, songid): @@ -47,6 +47,12 @@ class BaseBackend(object): def play_id(self, songid): pass + def resume(self): + pass + + def stop(self): + pass + # Current/single playlist methods def playlist_changes_since(self, version): return None diff --git a/mopidy/backends/spotify.py b/mopidy/backends/spotify.py index 5a5b826c..d12a78c4 100644 --- a/mopidy/backends/spotify.py +++ b/mopidy/backends/spotify.py @@ -96,6 +96,10 @@ class SpotifyBackend(BaseBackend): if track is not None and self.state in (self.PLAY, self.PAUSE): return self._format_track(track) + def pause(self): + self.state = self.PAUSE + self.spotify.pause() + def play_id(self, songid): self.state = self.PLAY track = self._current_playlist[songid] @@ -131,6 +135,10 @@ class SpotifyBackend(BaseBackend): else: return self._format_playlist(self._current_playlist) + def resume(self): + self.state = self.PLAY + self.spotify.resume() + def stop(self): self.state = self.STOP self.spotify.stop() diff --git a/mopidy/handler.py b/mopidy/handler.py index b66a9ef8..ed2f2bae 100644 --- a/mopidy/handler.py +++ b/mopidy/handler.py @@ -173,9 +173,12 @@ class MpdHandler(object): def _password(self, password): pass # TODO - @register(r'^pause (?P[01])$') + @register(r'^pause "(?P[01])"$') def _pause(self, state): - pass # TODO + if int(state): + self.backend.pause() + else: + self.backend.resume() @register(r'^ping$') def _ping(self): diff --git a/tests/handlertest.py b/tests/handlertest.py index 77d05a4d..d9ba3abf 100644 --- a/tests/handlertest.py +++ b/tests/handlertest.py @@ -208,11 +208,11 @@ class PlaybackControlHandlerTest(unittest.TestCase): self.assert_(result is None) def test_pause_off(self): - result = self.h.handle_request(u'pause 0') + result = self.h.handle_request(u'pause "0"') self.assert_(result is None) def test_pause_on(self): - result = self.h.handle_request(u'pause 1') + result = self.h.handle_request(u'pause "1"') self.assert_(result is None) def test_play(self):