Test and implement mpris.Play()

This commit is contained in:
Stein Magnus Jodal 2011-06-10 19:39:36 +02:00
parent fae469cca3
commit 1a6d577ed5
2 changed files with 19 additions and 4 deletions

View File

@ -264,10 +264,11 @@ class MprisObject(dbus.service.Object):
@dbus.service.method(dbus_interface=PLAYER_IFACE)
def Play(self):
logger.debug(u'%s.Play called', PLAYER_IFACE)
# TODO Pseudo code:
# if playback.state == playback.PAUSED: playback.resume()
# elif playback.state == playback.STOPPED: playback.play()
pass
state = self.backend.playback.state.get()
if state == PlaybackController.PAUSED:
self.backend.playback.resume().get()
else:
self.backend.playback.play().get()
@dbus.service.method(dbus_interface=PLAYER_IFACE)
def Seek(self, offset):

View File

@ -204,6 +204,12 @@ class PlayerInterfaceTest(unittest.TestCase):
self.mpris.Stop()
self.assertEquals(self.backend.playback.state.get(), STOPPED)
def test_play_when_stopped_starts_playback(self):
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
self.assertEquals(self.backend.playback.state.get(), STOPPED)
self.mpris.Play()
self.assertEquals(self.backend.playback.state.get(), PLAYING)
def test_play_after_pause_resumes_from_same_position(self):
self.backend.current_playlist.append([Track(uri='a', length=40000)])
self.backend.playback.play()
@ -212,9 +218,17 @@ class PlayerInterfaceTest(unittest.TestCase):
self.assert_(before_pause >= 0)
self.mpris.Pause()
self.assertEquals(self.backend.playback.state.get(), PAUSED)
at_pause = self.backend.playback.time_position.get()
self.assert_(at_pause >= before_pause)
self.mpris.Play()
self.assertEquals(self.backend.playback.state.get(), PLAYING)
after_pause = self.backend.playback.time_position.get()
self.assert_(after_pause >= at_pause)
def test_play_when_there_is_no_track_has_no_effect(self):
self.backend.current_playlist.clear()
self.assertEquals(self.backend.playback.state.get(), STOPPED)
self.mpris.Play()
self.assertEquals(self.backend.playback.state.get(), STOPPED)