also scan for video-CD content in directory MPEGAV (capitalized)
[enigma2.git] / timer.py
index d4ac23d7b5363b87ab5ed8d0e1919cebb82d1031..750a8c0300e2537c90628fd4c1e23f07a3deeeff 100644 (file)
--- a/timer.py
+++ b/timer.py
@@ -3,6 +3,8 @@ from time import strftime, time, localtime, mktime
 from enigma import eTimer
 import datetime
 
+import NavigationInstance
+
 class TimerEntry:
        StateWaiting  = 0
        StatePrepared = 1
@@ -21,7 +23,13 @@ class TimerEntry:
                self.backoff = 0
                
                self.disabled = False
-               
+
+       def resetState(self):
+               self.state = self.StateWaiting
+               self.cancelled = False
+               self.first_try_prepare = True
+               self.timeChanged()
+
        def resetRepeated(self):
                self.repeated = int(0)
 
@@ -51,8 +59,10 @@ class TimerEntry:
                        localend = localtime(self.end)
                        localnow = localtime(now)
 
+                       print "localrepeatedbegindate:", strftime("%c", localrepeatedbegindate)
                        print "localbegin:", strftime("%c", localbegin)
                        print "localend:", strftime("%c", localend)
+                       print "localnow:", strftime("%c", localnow)
 
                        day = []
                        flags = self.repeated
@@ -64,11 +74,10 @@ class TimerEntry:
                                        day.append(1)
                                flags = flags >> 1
 
-                       print strftime("%c", localnow)
-
                        # if day is NOT in the list of repeated days
                        # OR if the day IS in the list of the repeated days, check, if event is currently running... then if findRunningEvent is false, go to the next event
-                       while ((day[localbegin.tm_wday] != 0) or (mktime(localrepeatedbegindate) > mktime(localbegin))  or ((day[localbegin.tm_wday] == 0) and ((findRunningEvent and localend < localnow) or ((not findRunningEvent) and localbegin < localnow)))):
+                       while ((day[localbegin.tm_wday] != 0) or (mktime(localrepeatedbegindate) > mktime(localbegin))  or
+                               ((day[localbegin.tm_wday] == 0) and ((findRunningEvent and localend < localnow) or ((not findRunningEvent) and localbegin < localnow)))):
                                localbegin = self.addOneDay(localbegin)
                                localend = self.addOneDay(localend)
                                print "localbegin after addOneDay:", strftime("%c", localbegin)
@@ -138,7 +147,7 @@ class Timer:
                self.processed_timers = [ ]
                
                self.timer = eTimer()
-               self.timer.timeout.get().append(self.calcNextActivation)
+               self.timer.callback.append(self.calcNextActivation)
                self.lastActivation = time()
                
                self.calcNextActivation()
@@ -168,6 +177,27 @@ class Timer:
                        insort(self.timer_list, entry)
                        if not noRecalc:
                                self.calcNextActivation()
+
+# small piece of example code to understand how to use record simulation
+#              if NavigationInstance.instance:
+#                      lst = [ ]
+#                      cnt = 0
+#                      for timer in self.timer_list:
+#                              print "timer", cnt
+#                              cnt += 1
+#                              if timer.state == 0: #waiting
+#                                      lst.append(NavigationInstance.instance.recordService(timer.service_ref))
+#                              else:
+#                                      print "STATE: ", timer.state
+#
+#                      for rec in lst:
+#                              if rec.start(True): #simulate
+#                                      print "FAILED!!!!!!!!!!!!"
+#                              else:
+#                                      print "OK!!!!!!!!!!!!!!"
+#                              NavigationInstance.instance.stopRecordService(rec)
+#              else:
+#                      print "no NAV"
        
        def setNextActivation(self, when):
                delay = int((when - time()) * 1000)
@@ -196,6 +226,8 @@ class Timer:
                        w = self.timer_list[0].getNextActivation()
                        if w < min:
                                min = w
+                       else:
+                               print "next real activation is", strftime("%c", localtime(w))
                
                self.setNextActivation(min)