X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FSources%2FBoolean.py;h=21c2c2b976222f8b31f324b87c24bcd49b37cce4;hp=c25b4626aafb1eb362a2b7b9c18a7dddf815f573;hb=194615a88fac0c4259b3c2217c8e13372b7c3b86;hpb=77bb53beb46f6984e1529c4f703523c146956d0f diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py index c25b462..21c2c2b 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,11 +12,16 @@ 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.changed) + self.poll_timer.timeout.get().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() @@ -23,3 +29,10 @@ class Boolean(Source, object): return self.fixed boolean = property(getBoolean) + + def poll(self): + self.changed((self.CHANGED_ALL,)) + + def destroy(self): + if self.poll_timer: + self.poll_timer.timeout.get().remove(self.poll)