diff --git a/mopidy/backends/base.py b/mopidy/backends/base.py index 495aa07d..740d3843 100644 --- a/mopidy/backends/base.py +++ b/mopidy/backends/base.py @@ -50,6 +50,9 @@ class BaseBackend(object): def pause(self): self.state = self.PAUSE + def play(self): + self.state = self.PLAY + def play_pos(self, songpos): self.state = self.PLAY diff --git a/mopidy/backends/spotify.py b/mopidy/backends/spotify.py index b339b5d4..1a95edfa 100644 --- a/mopidy/backends/spotify.py +++ b/mopidy/backends/spotify.py @@ -116,6 +116,9 @@ class SpotifyBackend(BaseBackend): self.state = self.PAUSE self.spotify.pause() + def play(self): + self.play_id(self._current_song_id) + def play_pos(self, songpos): self.play_id(songpos) diff --git a/mopidy/handler.py b/mopidy/handler.py index f4a7e651..dc472cc4 100644 --- a/mopidy/handler.py +++ b/mopidy/handler.py @@ -227,8 +227,12 @@ class MpdHandler(object): def _ping(self): pass + @register(r'^play$') + def _play(self): + return self.backend.play() + @register(r'^play "(?P\d+)"$') - def _play(self, songpos): + def _playpos(self, songpos): return self.backend.play_pos(int(songpos)) @register(r'^playid "(?P\d+)"$') diff --git a/tests/handlertest.py b/tests/handlertest.py index 187ddc80..f4088df6 100644 --- a/tests/handlertest.py +++ b/tests/handlertest.py @@ -257,7 +257,12 @@ class PlaybackControlHandlerTest(unittest.TestCase): self.assert_(u'OK' in result) self.assertEquals(self.b.PAUSE, self.b.state) - def test_play(self): + def test_play_without_pos(self): + result = self.h.handle_request(u'play') + self.assert_(u'OK' in result) + self.assertEquals(self.b.PLAY, self.b.state) + + def test_play_with_pos(self): result = self.h.handle_request(u'play "0"') self.assert_(u'OK' in result) self.assertEquals(self.b.PLAY, self.b.state)