X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/019ba406ed5ba46782951d501ed2d4c0a96e6096..31599fec5555e06ce7c3405d05347f915f8825ed:/RecordTimer.py diff --git a/RecordTimer.py b/RecordTimer.py index fd2da33c..448a5003 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -186,7 +186,7 @@ class RecordTimerEntry(timer.TimerEntry, object): prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id, self.name.replace("\n", ""), self.description.replace("\n", ""), ' '.join(self.tags)) if prep_res: - if prep_res == 255: + if prep_res == -255: self.log(4, "failed to write meta information") else: self.log(2, "'prepare' failed: error %d" % prep_res) @@ -207,7 +207,7 @@ class RecordTimerEntry(timer.TimerEntry, object): def activate(self): next_state = self.state + 1 self.log(5, "activating state %d" % next_state) - + if next_state == self.StatePrepared: if self.tryPrepare(): self.log(6, "prepare ok, waiting for begin") @@ -215,17 +215,23 @@ class RecordTimerEntry(timer.TimerEntry, object): self.next_activation = self.begin self.backoff = 0 return True - + self.log(7, "prepare failed") if self.first_try_prepare: self.first_try_prepare = False - if not config.recording.asktozap.value: - self.log(8, "asking user to zap away") - 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) + cur_ref = NavigationInstance.instance.getCurrentlyPlayingServiceReference() + if cur_ref and not cur_ref.getPath(): + if not config.recording.asktozap.value: + self.log(8, "asking user to zap away") + 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) + elif cur_ref: + self.log(8, "currently running service is not a live service.. so stop it makes no sense") + else: + self.log(8, "currently no service running... so we dont need to stop it") self.do_backoff() # retry @@ -356,8 +362,8 @@ class RecordTimerEntry(timer.TimerEntry, object): 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 = text, type = MessageBox.TYPE_INFO, timeout = 3) + if config.usage.show_message_when_recording_starts.value: + 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): @@ -649,7 +655,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): + if x.repeated & (2 ** 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