From c4f4f2a1d330d8e09021619bbb8dcaac4df0a602 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Tue, 26 Jul 2016 16:27:51 +0200 Subject: Move actions to separate files --- helpers/actions/wait.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 helpers/actions/wait.py (limited to 'helpers/actions/wait.py') diff --git a/helpers/actions/wait.py b/helpers/actions/wait.py new file mode 100644 index 0000000..f7d2a78 --- /dev/null +++ b/helpers/actions/wait.py @@ -0,0 +1,38 @@ +import threading + +def run(action, duration=0, music=None, set_wait_id=None, **kwargs): + if set_wait_id is not None: + action.mapping.add_wait_id(set_wait_id, action) + + action.sleep_event = threading.Event() + action.sleep_event_timer = threading.Timer(duration, action.sleep_event.set) + + if music is not None: + music.wait_end() + + action.sleep_event_timer.start() + action.sleep_event.wait() + +def description(action, duration=0, music=None, set_wait_id=None, **kwargs): + message = "" + if music is None: + message += "waiting {}s" \ + .format(duration) + elif duration == 0: + message += "waiting the end of « {} »" \ + .format(music.name) + else: + message += "waiting the end of « {} » + {}s" \ + .format(music.name, duration) + + if set_wait_id is not None: + message += " (setting id = {})".format(set_wait_id) + + return message + +def interrupt(action, duration=0, music=None, **kwargs): + if action.sleep_event is not None: + action.sleep_event.set() + action.sleep_event_timer.cancel() + if music is not None: + music.wait_event.set() -- cgit v1.2.3