MPD: Support 'pause' without args to work with MPDroid
This commit is contained in:
parent
255d70d1ae
commit
a3fb8a1f72
@ -24,6 +24,7 @@ Another great release.
|
||||
- Search improvements, including support for multi-word search.
|
||||
- Fixed ``play "-1"`` and ``playid "-1"`` behaviour when playlist is empty.
|
||||
- Support ``plchanges "-1"`` to work better with MPDroid.
|
||||
- Support ``pause`` without arguments to work better with MPDroid.
|
||||
|
||||
- Backend API:
|
||||
|
||||
|
||||
@ -86,16 +86,28 @@ def next_(frontend):
|
||||
"""
|
||||
return frontend.backend.playback.next()
|
||||
|
||||
@handle_pattern(r'^pause$')
|
||||
@handle_pattern(r'^pause "(?P<state>[01])"$')
|
||||
def pause(frontend, state):
|
||||
def pause(frontend, state=None):
|
||||
"""
|
||||
*musicpd.org, playback section:*
|
||||
|
||||
``pause {PAUSE}``
|
||||
|
||||
Toggles pause/resumes playing, ``PAUSE`` is 0 or 1.
|
||||
|
||||
*MPDroid:*
|
||||
|
||||
- Calls ``pause`` without any arguments to toogle pause.
|
||||
"""
|
||||
if int(state):
|
||||
if state is None:
|
||||
if (frontend.backend.playback.state ==
|
||||
frontend.backend.playback.PLAYING):
|
||||
frontend.backend.playback.pause()
|
||||
elif (frontend.backend.playback.state ==
|
||||
frontend.backend.playback.PAUSED):
|
||||
frontend.backend.playback.resume()
|
||||
elif int(state):
|
||||
frontend.backend.playback.pause()
|
||||
else:
|
||||
frontend.backend.playback.resume()
|
||||
|
||||
@ -136,8 +136,7 @@ class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_pause_off(self):
|
||||
track = Track()
|
||||
self.b.current_playlist.load([track])
|
||||
self.b.current_playlist.load([Track()])
|
||||
self.h.handle_request(u'play "0"')
|
||||
self.h.handle_request(u'pause "1"')
|
||||
result = self.h.handle_request(u'pause "0"')
|
||||
@ -145,16 +144,26 @@ class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
|
||||
def test_pause_on(self):
|
||||
track = Track()
|
||||
self.b.current_playlist.load([track])
|
||||
self.b.current_playlist.load([Track()])
|
||||
self.h.handle_request(u'play "0"')
|
||||
result = self.h.handle_request(u'pause "1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PAUSED, self.b.playback.state)
|
||||
|
||||
def test_pause_toggle(self):
|
||||
self.b.current_playlist.load([Track()])
|
||||
result = self.h.handle_request(u'play "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
result = self.h.handle_request(u'pause')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PAUSED, self.b.playback.state)
|
||||
result = self.h.handle_request(u'pause')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
|
||||
def test_play_without_pos(self):
|
||||
track = Track()
|
||||
self.b.current_playlist.load([track])
|
||||
self.b.current_playlist.load([Track()])
|
||||
self.b.playback.state = self.b.playback.PAUSED
|
||||
result = self.h.handle_request(u'play')
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user