diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-11-17 03:40:07 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-11-17 03:40:07 +0000 |
| commit | 80069b70a6b69e8e0ef0aeef5dbd8a1655a5e713 (patch) | |
| tree | c742d481f5d4dee1c065d1ff5397a44afb7c4484 /timer.py | |
| parent | 7abf1d06a7a051f55708af14aef49ad7fea093ac (diff) | |
| download | enigma2-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.py | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -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: |
