From 759b9701c379997cc37d1c128a83302863e7df4f Mon Sep 17 00:00:00 2001 From: jaseg Date: Thu, 16 Jul 2020 19:28:33 +0200 Subject: mpv.py: add wait_until_paused, wait_until_playing --- mpv-test.py | 8 ++++---- mpv.py | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mpv-test.py b/mpv-test.py index 8bcf0d3..ecc4d18 100755 --- a/mpv-test.py +++ b/mpv-test.py @@ -379,7 +379,7 @@ class KeyBindingTest(MpvTestCase): def test_register_simple_decorator_fun_chaining(self): self.m.loop = 'inf' self.m.play(TESTVID) - self.m.wait_for_property('core-idle', lambda idle: not idle) + self.m.wait_until_playing() handler1, handler2 = mock.Mock(), mock.Mock() @@ -397,7 +397,7 @@ class KeyBindingTest(MpvTestCase): def keypress_and_sync(key): self.m.keypress(key) self.m.frame_step() - self.m.wait_for_property('pause', lambda paused: paused) + self.m.wait_until_playing() keypress_and_sync('a') handler1.assert_has_calls([ mock.call() ]) @@ -569,7 +569,7 @@ class TestLifecycle(unittest.TestCase): m = mpv.MPV(log_handler=handler) m.play(TESTVID) # Wait for playback to start - m.wait_for_property('core-idle', lambda x: not x) + m.wait_until_playing() m.command("print-text", 'This is a python-mpv test') m.wait_for_playback() m.terminate() @@ -599,7 +599,7 @@ class CommandTests(MpvTestCase): self.m.property_observer('sub-text')(handler) self.m.loadfile(TESTVID) - self.m.wait_for_property('core-idle', lambda x: not x) + self.m.wait_until_playing() self.m.sub_add('sub_test.srt') self.m.wait_for_playback() diff --git a/mpv.py b/mpv.py index 768a95f..dd2a611 100644 --- a/mpv.py +++ b/mpv.py @@ -886,6 +886,14 @@ class MPV(object): with self._playback_cond: self._playback_cond.wait() + def wait_until_paused(self): + """Waits until playback of the current title is paused or done.""" + self.wait_for_property('core-idle') + + def wait_until_playing(self): + """Waits until playback of the current title has started.""" + self.wait_for_property('core-idle', lambda idle: not idle) + def wait_for_property(self, name, cond=lambda val: val, level_sensitive=True): """Waits until ``cond`` evaluates to a truthy value on the named property. This can be used to wait for properties such as ``idle_active`` indicating the player is done with regular playback and just idling around -- cgit