use magic instead of readable code
[enigma2.git] / timer.py
index 5500c34ad4c84e0633bf682780973f9584afd558..c03eb1e78d3fae37087230733ff138cf03377f51 100644 (file)
--- a/timer.py
+++ b/timer.py
@@ -16,6 +16,8 @@ class TimerEntry:
                self.resetRepeated()
                self.backoff = 0
                
                self.resetRepeated()
                self.backoff = 0
                
+               self.disabled = False
+               
        def resetRepeated(self):
                self.repeated = int(0)
 
        def resetRepeated(self):
                self.repeated = int(0)
 
@@ -112,7 +114,7 @@ class Timer:
                        f(entry)
                        
        def cleanup(self):
                        f(entry)
                        
        def cleanup(self):
-               self.processed_timers = []
+               self.processed_timers = [entry for entry in self.processed_timers if entry.disabled]
        
        def addTimerEntry(self, entry, noRecalc=0):
                entry.processRepeated()
        
        def addTimerEntry(self, entry, noRecalc=0):
                entry.processRepeated()
@@ -120,7 +122,7 @@ class Timer:
                # when the timer has not yet started, and is already passed,
                # don't go trough waiting/running/end-states, but sort it
                # right into the processedTimers.
                # when the timer has not yet started, and is already passed,
                # don't go trough waiting/running/end-states, but sort it
                # right into the processedTimers.
-               if entry.shouldSkip() or entry.state == TimerEntry.StateEnded:
+               if entry.shouldSkip() or entry.state == TimerEntry.StateEnded or (entry.state == TimerEntry.StateWaiting and entry.disabled):
                        print "already passed, skipping"
                        bisect.insort(self.processed_timers, entry)
                        entry.state = TimerEntry.StateEnded
                        print "already passed, skipping"
                        bisect.insort(self.processed_timers, entry)
                        entry.state = TimerEntry.StateEnded