Index: leahi_dialin/utils/base.py =================================================================== diff -u -r2138d06d100fdcf23f2e9069f35ee2fdee62008f -r894abd4d8e62d20ba65ca78e443ffb5ea00c07ea --- leahi_dialin/utils/base.py (.../base.py) (revision 2138d06d100fdcf23f2e9069f35ee2fdee62008f) +++ leahi_dialin/utils/base.py (.../base.py) (revision 894abd4d8e62d20ba65ca78e443ffb5ea00c07ea) @@ -321,3 +321,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)