Index: leahi_dialin/utils/base.py =================================================================== diff -u -r18c90a1b2b6c7339bdd192a2d2fac32f2b8a35df -rc5bfcf84ed942ca5841bf9de155aa0f495b4d28d --- leahi_dialin/utils/base.py (.../base.py) (revision 18c90a1b2b6c7339bdd192a2d2fac32f2b8a35df) +++ leahi_dialin/utils/base.py (.../base.py) (revision c5bfcf84ed942ca5841bf9de155aa0f495b4d28d) @@ -315,3 +315,16 @@ def stop(self): self._timer.cancel() self.is_running = False + + +class InternalEvent: + def __init__(self): + self._listeners = [] + + def add_listener(self, func): + self._listeners.append(func) + return func + + def trigger(self, *args, **kwargs): + for func in self._listeners: + func(*args, **kwargs)