|
|
@ -4,24 +4,23 @@ from openpilot.system.ui.lib.application import gui_app |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Wrapper: |
|
|
|
class Wrapper: |
|
|
|
def __init__(self, title: str, renderer_cls, *renderer_args): |
|
|
|
def __init__(self, title: str, renderer_cls, *args): |
|
|
|
self._title = title |
|
|
|
self._title = title |
|
|
|
self._renderer_cls = renderer_cls |
|
|
|
self._renderer_class = renderer_cls |
|
|
|
self._renderer_args = renderer_args |
|
|
|
self._args = args |
|
|
|
|
|
|
|
self._renderer = None |
|
|
|
self._stop_event = threading.Event() |
|
|
|
self._stop_event = threading.Event() |
|
|
|
self._thread = threading.Thread(target=self._run, args=(self._stop_event,), daemon=True) |
|
|
|
self._thread = threading.Thread(target=self._run, args=(self._stop_event,), daemon=True) |
|
|
|
self._thread.start() |
|
|
|
self._thread.start() |
|
|
|
self._initialized = False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _run(self, stop_event: threading.Event): |
|
|
|
def _run(self, stop_event: threading.Event): |
|
|
|
gui_app.init_window(self._title) |
|
|
|
gui_app.init_window(self._title) |
|
|
|
renderer = self._renderer_cls(*self._renderer_args) |
|
|
|
self._renderer = self._renderer_class(*self._args) |
|
|
|
self._initialized = True |
|
|
|
|
|
|
|
try: |
|
|
|
try: |
|
|
|
for _ in gui_app.render(): |
|
|
|
for _ in gui_app.render(): |
|
|
|
if stop_event.is_set(): |
|
|
|
if stop_event.is_set(): |
|
|
|
break |
|
|
|
break |
|
|
|
renderer.render() |
|
|
|
self._renderer.render() |
|
|
|
finally: |
|
|
|
finally: |
|
|
|
gui_app.close() |
|
|
|
gui_app.close() |
|
|
|
|
|
|
|
|
|
|
@ -30,7 +29,7 @@ class Wrapper: |
|
|
|
|
|
|
|
|
|
|
|
def wait(self): |
|
|
|
def wait(self): |
|
|
|
"""wait for renderer to be initialized""" |
|
|
|
"""wait for renderer to be initialized""" |
|
|
|
while not self._initialized and self._thread is not None and self._thread.is_alive(): |
|
|
|
while self._renderer is None and self._thread is not None and self._thread.is_alive(): |
|
|
|
time.sleep(0.01) |
|
|
|
time.sleep(0.01) |
|
|
|
|
|
|
|
|
|
|
|
def close(self): |
|
|
|
def close(self): |
|
|
|