summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaseg <code@jaseg.net>2020-07-16 19:28:33 +0200
committerjaseg <code@jaseg.net>2020-07-16 19:28:33 +0200
commit759b9701c379997cc37d1c128a83302863e7df4f (patch)
treec53653e4ca1e36c54ac62607cce19dfc429ec733
parent7362f663c16f81d051757c2f79b764b0eb8d2a90 (diff)
downloadpython-mpv-759b9701c379997cc37d1c128a83302863e7df4f.tar.gz
python-mpv-759b9701c379997cc37d1c128a83302863e7df4f.tar.bz2
python-mpv-759b9701c379997cc37d1c128a83302863e7df4f.zip
mpv.py: add wait_until_paused, wait_until_playing
-rwxr-xr-xmpv-test.py8
-rw-r--r--mpv.py8
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