Merge branch 'bug_245_record_playback_fixes' into experimental
[enigma2.git] / RecordTimer.py
index cba161e3f17496f1687a98cf6fa9e39e2b0aa63b..f670417a5eddca05f8322c01b3b60c88bb372141 100644 (file)
@@ -2,6 +2,7 @@ from enigma import eEPGCache, getBestPlayableServiceReference, \
        eServiceReference, iRecordableService, quitMainloop
 
 from Components.config import config
+from Components.UsageConfig import defaultMoviePath
 from Components.TimerSanityCheck import TimerSanityCheck
 
 from Screens.MessageBox import MessageBox
@@ -14,7 +15,7 @@ import xml.etree.cElementTree
 import NavigationInstance
 from ServiceReference import ServiceReference
 
-from time import localtime, strftime, localtime, ctime, time
+from time import localtime, strftime, ctime, time
 from bisect import insort
 
 # ok, for descriptions etc we have:
@@ -141,11 +142,13 @@ class RecordTimerEntry(timer.TimerEntry, object):
                if config.recording.ascii_filenames.value:
                        filename = ASCIItranslit.legacyEncode(filename)
 
-               if self.dirname and not Directories.fileExists(self.dirname, 'w'):
-                       self.dirnameHadToFallback = True
-                       self.Filename = Directories.getRecordingFilename(filename, None)
+               if not self.dirname or not Directories.fileExists(self.dirname, 'w'):
+                       if self.dirname:
+                               self.dirnameHadToFallback = True
+                       dirname = defaultMoviePath()
                else:
-                       self.Filename = Directories.getRecordingFilename(filename, self.dirname)
+                       dirname = self.dirname
+               self.Filename = Directories.getRecordingFilename(filename, dirname)
                self.log(0, "Filename calculated as: '%s'" % self.Filename)
                #begin_date + " - " + service_name + description)
 
@@ -218,7 +221,8 @@ class RecordTimerEntry(timer.TimerEntry, object):
                                # because another recording at the same time on another service can try to record the same event
                                # i.e. cable / sat.. then the second recording needs an own extension... when we create the file
                                # here than calculateFilename is happy
-                               open(self.Filename + ".ts", "w").close() 
+                               if not self.justplay:
+                                       open(self.Filename + ".ts", "w").close() 
                                # fine. it worked, resources are allocated.
                                self.next_activation = self.begin
                                self.backoff = 0
@@ -689,7 +693,7 @@ class RecordTimer(timer.Timer):
                                                chktimecmp_end = chktimecmp + (duration / 60)
                                        time = localtime(x.begin)
                                        for y in (0, 1, 2, 3, 4, 5, 6):
-                                               if x.repeated & (2 ** y) and (x.begin <= begin or begin <= x.begin <= end):
+                                               if x.repeated & (1 << y) and (x.begin <= begin or begin <= x.begin <= end):
                                                        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