aboutsummaryrefslogtreecommitdiff
path: root/timer.py
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2005-11-17 03:40:07 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2005-11-17 03:40:07 +0000
commit80069b70a6b69e8e0ef0aeef5dbd8a1655a5e713 (patch)
treec742d481f5d4dee1c065d1ff5397a44afb7c4484 /timer.py
parent7abf1d06a7a051f55708af14aef49ad7fea093ac (diff)
downloadenigma2-80069b70a6b69e8e0ef0aeef5dbd8a1655a5e713.tar.gz
enigma2-80069b70a6b69e8e0ef0aeef5dbd8a1655a5e713.zip
fix(??) repeated timer... i really don't know, if this will ever work
Diffstat (limited to 'timer.py')
-rw-r--r--timer.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/timer.py b/timer.py
index 6c174c86..525014fe 100644
--- a/timer.py
+++ b/timer.py
@@ -27,6 +27,26 @@ class TimerEntry:
self.repeated |= (2 ** day)
print "Repeated: " + str(self.repeated)
+ # update self.begin and self.end according to the self.repeated-flags
+ def processRepeated(self):
+ if (self.repeated != 0):
+ now = time.time()
+
+ day = []
+ flags = self.repeated
+ for x in range(0, 7):
+ if (flags & 1 == 1):
+ day.append(0)
+ else:
+ day.append(1)
+ flags = flags >> 1
+
+ while ((day[time.localtime(self.begin).tm_wday] != 0) and (self.end > now)):
+ self.begin += 86400
+ self.end += 86400
+
+
+
def getTime(self):
if self.state == self.StateWait:
return self.begin - self.prepare_time
@@ -65,8 +85,11 @@ class Timer:
self.calcNextActivation()
def addTimerEntry(self, entry, noRecalc=0):
+ entry.processRepeated()
+
# we either go trough Prepare/Start/End-state if the timer is still running,
# or skip it when it's alrady past the end.
+
if entry.end > time.time():
bisect.insort(self.timer_list, entry)
if not noRecalc: