fix memleak
[enigma2.git] / RecordTimer.py
index f1f4e14be813aae1b7f416cdfaf909c8ef1a9d2e..2234bfc3f19f9975d141251c87c19138fbd80fd3 100644 (file)
@@ -3,10 +3,12 @@ import codecs
 #from time import datetime
 from Tools import Directories, Notifications
 
+from Components.config import config
 import timer
 import xml.dom.minidom
 
 from Screens.MessageBox import MessageBox
+from Screens.SubserviceSelection import SubserviceSelection
 import NavigationInstance
 
 from Tools.XMLTools import elementsWithTag
@@ -25,7 +27,7 @@ def parseEvent(ev):
        description = ev.getShortDescription()
        begin = ev.getBeginTime()
        end = begin + ev.getDuration()
-       eit = None
+       eit = ev.getEventId()
        return (begin, end, name, description, eit)
 
 class RecordTimerEntry(timer.TimerEntry):
@@ -85,7 +87,10 @@ class RecordTimerEntry(timer.TimerEntry):
                                self.prepareOK = True
                        else:
                                # error.
-                               Notifications.AddNotificationWithCallback(self.failureCB, MessageBox, _("A timer failed to record!\nDisable TV and try again?\n"))
+                               if config.recording.asktozap.value == 0:
+                                       Notifications.AddNotificationWithCallback(self.failureCB, MessageBox, _("A timer failed to record!\nDisable TV and try again?\n"))
+                               else: # zap without asking
+                                       self.failureCB(True)
                elif event == self.EventStart:
                        if self.prepareOK:
                                self.record_service.start()
@@ -98,6 +103,7 @@ class RecordTimerEntry(timer.TimerEntry):
                        if self.prepareOK:
                                self.record_service.stop()
                                self.record_service = None
+                               
                                print "Timer successfully ended"
                        else:
                                print "prepare failed, thus nothing was recorded."
@@ -108,8 +114,11 @@ class RecordTimerEntry(timer.TimerEntry):
 
        def failureCB(self, answer):
                if answer == True:
-                       NavigationInstance.instance.stopUserServices()
+                       #NavigationInstance.instance.stopUserServices()
+                       print "[RecordTimer] zapping to", self.service_ref
+                       NavigationInstance.instance.playService(self.service_ref.ref)
                        self.activate(self.EventPrepare)
+
                        if self.wantStart:
                                print "post-activating record"
                                self.activate(self.EventStart)