From 2267d591b7f6309f780d4c3d9102fc96796285a3 Mon Sep 17 00:00:00 2001 From: SimLeek Date: Mon, 25 Feb 2019 22:57:03 -0700 Subject: [PATCH] keymouse: Fixed input slowdown. --- cvpubsubs/input.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cvpubsubs/input.py b/cvpubsubs/input.py index 74e5014..d341731 100644 --- a/cvpubsubs/input.py +++ b/cvpubsubs/input.py @@ -1,5 +1,6 @@ from cvpubsubs.window_sub.winctrl import WinCtrl import threading +import time if False: from typing import Callable @@ -18,22 +19,24 @@ class mouse_thread(object): # NOSONAR class mouse_loop_thread(object): # NOSONAR - def __init__(self, f, run_when_no_events=False): + def __init__(self, f, run_when_no_events=False, fps=60): self.f = f self.sub_mouse = WinCtrl.mouse_pub.make_sub() self.sub_cmd = WinCtrl.win_cmd_pub.make_sub() self.sub_cmd.return_on_no_data = '' self.run_when_no_events = run_when_no_events + self.fps = fps def __call__(self, *args, **kwargs): msg_cmd = '' while msg_cmd != 'quit': - mouse_xyzclick = self.sub_mouse.get() # type: MouseEvent + mouse_xyzclick = self.sub_mouse.get(blocking=True) # type: MouseEvent if mouse_xyzclick is not self.sub_mouse.return_on_no_data: self.f(mouse_xyzclick, *args, **kwargs) elif self.run_when_no_events: self.f(None, *args, **kwargs) msg_cmd = self.sub_cmd.get() + time.sleep(1.0 / self.fps) WinCtrl.quit(force_all_read=False) @@ -59,12 +62,13 @@ class key_thread(object): # NOSONAR class key_loop_thread(object): # NOSONAR - def __init__(self, f, run_when_no_events=False): + def __init__(self, f, run_when_no_events=False, fps=60): self.f = f self.sub_key = WinCtrl.key_pub.make_sub() self.sub_cmd = WinCtrl.win_cmd_pub.make_sub() self.sub_cmd.return_on_no_data = '' self.run_when_no_events = run_when_no_events + self.fps = fps def __call__(self, *args, **kwargs): msg_cmd = '' @@ -75,6 +79,7 @@ class key_loop_thread(object): # NOSONAR elif self.run_when_no_events: self.f(None, *args, **kwargs) msg_cmd = self.sub_cmd.get() + time.sleep(1.0 / self.fps) WinCtrl.quit(force_all_read=False)