diff --git a/selfdrive/ui/sunnypilot/ui_state.py b/selfdrive/ui/sunnypilot/ui_state.py index 1c350a0e6f..3f7e87ab9a 100644 --- a/selfdrive/ui/sunnypilot/ui_state.py +++ b/selfdrive/ui/sunnypilot/ui_state.py @@ -1,3 +1,5 @@ +from collections.abc import Callable + from openpilot.selfdrive.ui.ui_state import UIState from cereal import messaging from openpilot.common.params import Params @@ -17,8 +19,16 @@ class UIStateSP(UIState): ] self.sm = messaging.SubMaster(op_services + sp_services) + # Callbacks + self._ui_update_callbacks: list[Callable[[], None]] = [] + + def add_ui_update_callback(self, callback: Callable[[], None]): + self._ui_update_callbacks.append(callback) + def update(self) -> None: UIState.update(self) + for callback in self._ui_update_callbacks: + callback() def _update_status(self) -> None: UIState._update_status(self)