diff options
Diffstat (limited to 'lib/python/Components/TimerSanityCheck.py')
| -rw-r--r-- | lib/python/Components/TimerSanityCheck.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/python/Components/TimerSanityCheck.py b/lib/python/Components/TimerSanityCheck.py new file mode 100644 index 00000000..a5b81ffc --- /dev/null +++ b/lib/python/Components/TimerSanityCheck.py @@ -0,0 +1,45 @@ +from Components.config import config +from Components.NimManager import nimmanager +from time import localtime + +class TimerSanityCheck: + def __init__(self, timerlist, newtimer): + self.timerlist = timerlist + self.newtimer = newtimer + + def check(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) + + return True + + def isSimultaneous(self, timer1, timer2): + # both timers are repeated + if (timer1.repeated & timer2.repeated): + return True + + # one timer is repeated + if not timer1.repeated: + tmp = timer1 + timer1 = timer2 + timer2 = tmp + + if timer1.repeated: + dow2 = (localtime(timer2.begin).tm_wday - 1) % 7 + + if timer1.repeated & (2 ** dow2): + return True + else: + if (timer1.begin < timer2.begin < timer1.end) or (timer2.begin < timer1.begin < timer2.end): + return True + + return False + + def checkRecordable(self, timerlist): + # TODO: Add code here + return True
\ No newline at end of file |
