diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-01-26 04:38:04 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-01-26 04:38:04 +0000 |
| commit | b38677078a8882dfecd87533291863bbf76d1d63 (patch) | |
| tree | 277d4059448aba57dc29bd1104c4e998b7fb57d3 /lib/python/Components | |
| parent | 366798cd63b9250ce86e213e44c353fce1d722d0 (diff) | |
| download | enigma2-b38677078a8882dfecd87533291863bbf76d1d63.tar.gz enigma2-b38677078a8882dfecd87533291863bbf76d1d63.zip | |
some work on the timer sanity check (overlapping timers solver)
Diffstat (limited to 'lib/python/Components')
| -rw-r--r-- | lib/python/Components/TimerSanityCheck.py | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/lib/python/Components/TimerSanityCheck.py b/lib/python/Components/TimerSanityCheck.py index a5b81ffc..a6af1412 100644 --- a/lib/python/Components/TimerSanityCheck.py +++ b/lib/python/Components/TimerSanityCheck.py @@ -6,22 +6,26 @@ class TimerSanityCheck: def __init__(self, timerlist, newtimer): self.timerlist = timerlist self.newtimer = newtimer - + self.simultimer = [] + def check(self): - simultimer = [ self.newtimer ] + self.simultimer = [ self.newtimer ] for timer in self.timerlist: if self.isSimultaneous(timer, self.newtimer): - simultimer.append(timer) - - if len(simultimer) > 1: - return self.checkRecordable(simultimer) + self.simultimer.append(timer) + + if len(self.simultimer) > 1: + return self.checkRecordable(self.simultimer) return True + + def getSimulTimerList(self): + return self.simultimer def isSimultaneous(self, timer1, timer2): # both timers are repeated if (timer1.repeated & timer2.repeated): - return True + return self.timeEquals(timer1, timer2) # one timer is repeated if not timer1.repeated: @@ -33,12 +37,24 @@ class TimerSanityCheck: dow2 = (localtime(timer2.begin).tm_wday - 1) % 7 if timer1.repeated & (2 ** dow2): - return True + return self.timeEquals(timer1, timer2) else: - if (timer1.begin < timer2.begin < timer1.end) or (timer2.begin < timer1.begin < timer2.end): + if (timer1.begin <= timer2.begin < timer1.end) or (timer2.begin <= timer1.begin < timer2.end): return True return False + + def timeEquals(self, timer1, timer2): + ltb1 = localtime(timer1.begin) + ltb2 = localtime(timer2.begin) + + begin1 = ltb1.tm_hour * 3600 + ltb1.tm_min * 60 + ltb1.tm_sec + begin2 = ltb2.tm_hour * 3600 + ltb2.tm_min * 60 + ltb2.tm_sec + + end1 = begin1 + timer1.end - timer1.begin + end2 = begin2 + timer2.end - timer2.begin + + return (begin1 <= begin2 < end1) or (begin2 <= begin1 < end2) def checkRecordable(self, timerlist): # TODO: Add code here |
