- add (heavily unoptimized (!!!)) matching check for repeated timers as a clock icon...
[enigma2.git] / RecordTimer.py
index cf4160cce8636a1120fd9fd1ac17f64b3ab68cbb..2fb923ba604bd43bec35e68e2afba0a0987419e6 100644 (file)
@@ -10,6 +10,7 @@ import xml.dom.minidom
 from Screens.MessageBox import MessageBox
 from Screens.SubserviceSelection import SubserviceSelection
 import NavigationInstance
 from Screens.MessageBox import MessageBox
 from Screens.SubserviceSelection import SubserviceSelection
 import NavigationInstance
+from time import localtime
 
 from Tools.XMLTools import elementsWithTag, mergeText
 from ServiceReference import ServiceReference
 
 from Tools.XMLTools import elementsWithTag, mergeText
 from ServiceReference import ServiceReference
@@ -221,7 +222,7 @@ class RecordTimer(timer.Timer):
                        self.loadTimer()
                except IOError:
                        print "unable to load timers from file!"
                        self.loadTimer()
                except IOError:
                        print "unable to load timers from file!"
-
+                       
        def isRecording(self):
                isRunning = False
                for timer in self.timer_list:
        def isRecording(self):
                isRunning = False
                for timer in self.timer_list:
@@ -325,6 +326,40 @@ class RecordTimer(timer.Timer):
                print "[Timer] Record " + str(entry)
                entry.Timer = self
                self.addTimerEntry(entry)
                print "[Timer] Record " + str(entry)
                entry.Timer = self
                self.addTimerEntry(entry)
+               
+       def isInTimer(self, eventid, begin, duration, service):
+               time_match = 0
+               for x in self.timer_list:
+                       if str(x.service_ref) == str(service):
+                               #if x.eit is not None and x.repeated == 0:
+                               #       if x.eit == eventid:
+                               #               return duration
+                               if x.repeated != 0:
+                                       chktime = localtime(begin)
+                                       time = localtime(x.begin)
+                                       chktimecmp = chktime.tm_wday * 1440 + chktime.tm_hour * 60 + chktime.tm_min
+                                       for y in range(7):
+                                               if x.repeated & (2 ** y):
+                                                       timecmp = y * 1440 + time.tm_hour * 60 + time.tm_min
+                                                       if timecmp <= chktimecmp < (timecmp + ((x.end - x.begin) / 60)):
+                                                               time_match = ((timecmp + ((x.end - x.begin) / 60)) - chktimecmp) * 60
+                                                       elif chktimecmp <= timecmp < (chktimecmp + (duration / 60)):
+                                                               time_match = ((chktimecmp + (duration / 60)) - timecmp) * 60
+                               elif x.eit is None:
+                                       end = begin + duration
+                                       if begin <= x.begin <= end:
+                                               diff = end - x.begin
+                                               if time_match < diff:
+                                                       time_match = diff
+                                       elif x.begin <= begin <= x.end:
+                                               diff = x.end - begin
+                                               if time_match < diff:
+                                                       time_match = diff
+               return time_match
+                                                       
+                                               
+                                               
+                       
 
        def removeEntry(self, entry):
                print "[Timer] Remove " + str(entry)
 
        def removeEntry(self, entry):
                print "[Timer] Remove " + str(entry)