save playlist on leaving the media player (currently saved with line by line service...
[enigma2.git] / RecordTimer.py
index 1198643..1d34395 100644 (file)
@@ -7,10 +7,9 @@ from Components.config import config
 import timer
 import xml.dom.minidom
 
-from enigma import quitMainloop
+from enigma import quitMainloop, eEPGCache, eEPGCachePtr
 
 from Screens.MessageBox import MessageBox
-from Screens.SubserviceSelection import SubserviceSelection
 import NavigationInstance
 from time import localtime
 
@@ -43,9 +42,16 @@ class AFTEREVENT:
 
 # please do not translate log messages
 class RecordTimerEntry(timer.TimerEntry):
-       def __init__(self, serviceref, begin, end, name, description, eit, disabled = False, justplay = False, afterEvent = AFTEREVENT.NONE):
+       def __init__(self, serviceref, begin, end, name, description, eit, disabled = False, justplay = False, afterEvent = AFTEREVENT.NONE, checkOldTimers = False):
                timer.TimerEntry.__init__(self, int(begin), int(end))
                
+               if checkOldTimers == True:
+                       if self.begin < time.time() - 1209600:
+                               self.begin = int(time.time())
+               
+               if self.end < self.begin:
+                       self.end = self.begin
+               
                assert isinstance(serviceref, ServiceReference)
                
                self.service_ref = serviceref
@@ -109,7 +115,13 @@ class RecordTimerEntry(timer.TimerEntry):
                                        self.log(2, "'prepare' failed: error %d" % prep_res)
                                        self.record_service = None
                                        return False
-       
+
+                               if self.repeated:
+                                       epgcache = eEPGCache.getInstance()
+                                       queryTime=self.begin+(self.end-self.begin)/2
+                                       evt = epgcache.lookupEventTime(self.service_ref.ref, queryTime)
+                                       if evt:
+                                               self.description = evt.getShortDescription()
                                self.log(3, "prepare ok, writing meta information to %s" % self.Filename)
                                try:
                                        f = open(self.Filename + ".ts.meta", "w")
@@ -148,9 +160,10 @@ class RecordTimerEntry(timer.TimerEntry):
                                self.first_try_prepare = False
                                if config.recording.asktozap.value == 0:
                                        self.log(8, "asking user to zap away")
-                                       Notifications.AddNotificationWithCallback(self.failureCB, MessageBox, _("A timer failed to record!\nDisable TV and try again?\n"))
+                                       Notifications.AddNotificationWithCallback(self.failureCB, MessageBox, _("A timer failed to record!\nDisable TV and try again?\n"), timeout=20)
                                else: # zap without asking
                                        self.log(9, "zap without asking")
+                                       Notifications.AddNotification(MessageBox, _("In order to record a timer, the TV was switched to the recording service!\n"), type=MessageBox.TYPE_INFO, timeout=20)
                                        self.failureCB(True)
 
                        self.do_backoff()