aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/Sources/Boolean.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python/Components/Sources/Boolean.py')
-rw-r--r--lib/python/Components/Sources/Boolean.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py
new file mode 100644
index 00000000..c25b4626
--- /dev/null
+++ b/lib/python/Components/Sources/Boolean.py
@@ -0,0 +1,25 @@
+from Source import Source
+from enigma import eTimer
+
+# a small warning:
+# you can use that boolean well to express screen-private
+# conditional expressions.
+#
+# however, if you think that there is ANY interest that another
+# screen could use your expression, please put your calculation
+# into a seperate Source, providing a "boolean"-property.
+class Boolean(Source, object):
+ def __init__(self, fixed = False, function = None, poll = 0):
+ Source.__init__(self)
+ if poll > 0:
+ self.poll_timer = eTimer()
+ self.poll_timer.timeout.get().append(self.changed)
+ self.poll_timer.start(poll)
+
+ def getBoolean(self):
+ if self.function is not None:
+ return self.function()
+ else:
+ return self.fixed
+
+ boolean = property(getBoolean)