add Event
authorFelix Domke <tmbinc@elitedvb.net>
Thu, 15 Jun 2006 17:34:39 +0000 (17:34 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Thu, 15 Jun 2006 17:34:39 +0000 (17:34 +0000)
lib/python/Tools/Event.py [new file with mode: 0644]
lib/python/Tools/Makefile.am

diff --git a/lib/python/Tools/Event.py b/lib/python/Tools/Event.py
new file mode 100644 (file)
index 0000000..6b96bff
--- /dev/null
@@ -0,0 +1,23 @@
+
+class Event:
+       def __init__(self, start = None, stop = None):
+               self.list = [ ]
+               self.start = start
+               self.stop = stop
+       
+       def __call__(self, *args, **kwargs):
+               for x in self.list:
+                       x(*args, **kwargs)
+
+       def listen(self, fnc):
+               was_empty = len(self.list) == 0
+               self.list.append(fnc)
+               if was_empty:
+                       if self.start:
+                               self.start()
+
+       def unlisten(self, fnc):
+               self.list.remove(fnc)
+               if len(self.list) == 0:
+                       if self.stop:
+                               self.stop()
index a2160d8..2521cd9 100644 (file)
@@ -3,5 +3,4 @@ installdir = $(LIBDIR)/enigma2/python/Tools
 install_DATA = \
        FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \
        KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \
-       RedirectOutput.py DreamboxHardware.py
-
+       RedirectOutput.py DreamboxHardware.py Import.py Event.py