From 625c1df5cae26451d306f5f7e2f4f68402be63dd Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Thu, 17 Nov 2005 05:18:13 +0000 Subject: [PATCH] the timer sucks --- lib/python/Components/TimerList.py | 3 +++ timer.py | 25 ++++++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/python/Components/TimerList.py b/lib/python/Components/TimerList.py index 6511f6f1..b1e8bf45 100644 --- a/lib/python/Components/TimerList.py +++ b/lib/python/Components/TimerList.py @@ -26,6 +26,9 @@ RT_WRAP = 32 def TimerEntryComponent(timer, processed): res = [ timer ] + print time.strftime("%c", time.localtime(timer.begin)) + print time.strftime("%c", time.localtime(timer.end)) + res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName())) repeatedtext = "" days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ] diff --git a/timer.py b/timer.py index afbbfdf8..a4c74e01 100644 --- a/timer.py +++ b/timer.py @@ -29,24 +29,19 @@ class TimerEntry: # update self.begin and self.end according to the self.repeated-flags def processRepeated(self): - print "Processing repeated" + print "ProcessRepeated" if (self.repeated != 0): now = int(time.time()) - print "Now: " + str(now) day = [] flags = self.repeated for x in range(0, 7): if (flags & 1 == 1): day.append(0) - print "Day " + str(x) else: day.append(1) flags = flags >> 1 - print time.localtime(self.begin).tm_wday - print day - print str(now) + " " + str(self.end) + " " + str(self.begin) while ((day[time.localtime(self.begin).tm_wday] != 0) and (self.end < now)): print str(now) + " " + str(self.end) + " " + str(self.begin) self.begin += 86400 @@ -133,17 +128,29 @@ class Timer: self.setNextActivation(min) def timeChanged(self, timer): - self.timer_list.remove(timer) + try: + self.timer_list.remove(timer) + except: + pass self.addTimerEntry(timer) def doActivate(self, w): w.activate(w.state) - self.timer_list.remove(w) + try: + self.timer_list.remove(w) + except: + pass + w.state += 1 if w.state < TimerEntry.StateEnded: bisect.insort(self.timer_list, w) else: - bisect.insort(self.processed_timers, w) + if (w.repeated == 0): + bisect.insort(self.processed_timers, w) + else: + w.processRepeated() + w.state = TimerEntry.StateWait + self.timeChanged(w) def processActivation(self): t = int(time.time()) + 1 -- 2.30.2