aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/TimerSanityCheck.py
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-01-26 04:38:04 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-01-26 04:38:04 +0000
commitb38677078a8882dfecd87533291863bbf76d1d63 (patch)
tree277d4059448aba57dc29bd1104c4e998b7fb57d3 /lib/python/Components/TimerSanityCheck.py
parent366798cd63b9250ce86e213e44c353fce1d722d0 (diff)
downloadenigma2-b38677078a8882dfecd87533291863bbf76d1d63.tar.gz
enigma2-b38677078a8882dfecd87533291863bbf76d1d63.zip
some work on the timer sanity check (overlapping timers solver)
Diffstat (limited to 'lib/python/Components/TimerSanityCheck.py')
-rw-r--r--lib/python/Components/TimerSanityCheck.py34
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