X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bc937acb188ea59ced7d67ceaa91f2598db39ab9..8105da47caaa6e47246d73239d056491fa091ae5:/RecordTimer.py diff --git a/RecordTimer.py b/RecordTimer.py index 63ddaab0..f93872cd 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -79,7 +79,7 @@ class RecordTimerEntry(timer.TimerEntry, object): RecordTimerEntry.receiveRecordEvents = False @staticmethod - def TryQuitMainloop(): + def TryQuitMainloop(default_yes = True): if not RecordTimerEntry.receiveRecordEvents: print "RecordTimer.TryQuitMainloop" NavigationInstance.instance.record_event.append(RecordTimerEntry.staticGotRecordEvent) @@ -88,7 +88,7 @@ class RecordTimerEntry(timer.TimerEntry, object): # other timers start in a few seconds RecordTimerEntry.staticGotRecordEvent(None, iRecordableService.evEnd) # send normal notification for the case the user leave the standby now.. - Notifications.AddNotification(Screens.Standby.TryQuitMainloop, 1, onSessionOpenCallback=RecordTimerEntry.stopTryQuitMainloop) + Notifications.AddNotification(Screens.Standby.TryQuitMainloop, 1, onSessionOpenCallback=RecordTimerEntry.stopTryQuitMainloop, default_yes = default_yes) ################################################################# def __init__(self, serviceref, begin, end, name, description, eit, disabled = False, justplay = False, afterEvent = AFTEREVENT.NONE, checkOldTimers = False, dirname = None): @@ -115,6 +115,7 @@ class RecordTimerEntry(timer.TimerEntry, object): self.justplay = justplay self.afterEvent = afterEvent self.dirname = dirname + self.dirnameHadToFallback = False self.log_entries = [] self.resetState() @@ -122,13 +123,7 @@ class RecordTimerEntry(timer.TimerEntry, object): def log(self, code, msg): self.log_entries.append((int(time.time()), code, msg)) print "[TIMER]", msg - - def resetState(self): - self.state = self.StateWaiting - self.cancelled = False - self.first_try_prepare = True - self.timeChanged() - + def calculateFilename(self): service_name = self.service_ref.getServiceName() begin_date = time.strftime("%Y%m%d %H%M", time.localtime(self.begin)) @@ -142,7 +137,11 @@ class RecordTimerEntry(timer.TimerEntry, object): if self.name: filename += " - " + self.name - self.Filename = Directories.getRecordingFilename(filename, self.dirname) + if self.dirname and not Directories.pathExists(self.dirname): + self.dirnameHadToFallback = True + self.Filename = Directories.getRecordingFilename(filename, None) + else: + self.Filename = Directories.getRecordingFilename(filename, self.dirname) self.log(0, "Filename calculated as: '%s'" % self.Filename) #begin_date + " - " + service_name + description) @@ -272,9 +271,9 @@ class RecordTimerEntry(timer.TimerEntry, object): if self.afterEvent == AFTEREVENT.STANDBY: if not Screens.Standby.inStandby: # not already in standby Notifications.AddNotificationWithCallback(self.sendStandbyNotification, MessageBox, _("A finished record timer wants to set your\nDreambox to standby. Do that now?"), timeout = 20) - if self.afterEvent == AFTEREVENT.DEEPSTANDBY: + elif self.afterEvent == AFTEREVENT.DEEPSTANDBY: if not Screens.Standby.inTryQuitMainloop: # not a shutdown messagebox is open - if Screens.Standby.inStandby: # not in standby + if Screens.Standby.inStandby: # in standby RecordTimerEntry.TryQuitMainloop() # start shutdown handling without screen else: Notifications.AddNotificationWithCallback(self.sendTryQuitMainloopNotification, MessageBox, _("A finished record timer wants to shut down\nyour Dreambox. Shutdown now?"), timeout = 20) @@ -329,8 +328,12 @@ class RecordTimerEntry(timer.TimerEntry, object): # that in our state, with also keeping the possibility to re-try. # TODO: this has to be done. elif event == iRecordableService.evStart: + text = _("A record has been started:\n%s") % self.name + if self.dirnameHadToFallback: + text = '\n'.join([text, _("Please note that the previously selected media could not be accessed and therefore the default directory is being used instead.")]) + # maybe this should be configurable? - Notifications.AddPopup(text = _("A record has been started:\n%s") % self.name, type = MessageBox.TYPE_INFO, timeout = 3) + Notifications.AddPopup(text = text, type = MessageBox.TYPE_INFO, timeout = 3) # we have record_service as property to automatically subscribe to record service events def setRecordService(self, service): @@ -361,11 +364,10 @@ def createTimer(xml): else: eit = None if xml.hasAttribute("location") and xml.getAttribute("location") != "None": - location = str(xml.getAttribute("location")).encode("utf-8") + location = xml.getAttribute("location").encode("utf-8") else: location = None - name = xml.getAttribute("name").encode("utf-8") #filename = xml.getAttribute("filename").encode("utf-8") entry = RecordTimerEntry(serviceref, begin, end, name, description, eit, disabled, justplay, afterevent, dirname = location)