X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1557c715e461d5a7deb04bb008c6497441351bbe..485ab51b143b6308bc96f3c0028534c5961cdfb0:/lib/python/Components/Sources/Boolean.py diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py index bd5222af..c92027ae 100644 --- a/lib/python/Components/Sources/Boolean.py +++ b/lib/python/Components/Sources/Boolean.py @@ -1,4 +1,5 @@ from Source import Source +from Components.Element import cached from enigma import eTimer # a small warning: @@ -11,18 +12,32 @@ from enigma import eTimer class Boolean(Source, object): def __init__(self, fixed = False, function = None, poll = 0): Source.__init__(self) + self.function = function + self.fixed = fixed if poll > 0: self.poll_timer = eTimer() - self.poll_timer.timeout.get().append(self.poll) + self.poll_timer.callback.append(self.poll) self.poll_timer.start(poll) + else: + self.poll_timer = None + @cached def getBoolean(self): if self.function is not None: return self.function() else: return self.fixed - boolean = property(getBoolean) + def setBoolean(self, value): + assert self.function is None + self.fixed = value + self.poll() + + boolean = property(getBoolean, setBoolean) def poll(self): self.changed((self.CHANGED_ALL,)) + + def destroy(self): + if self.poll_timer: + self.poll_timer.callback.remove(self.poll)