X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/08fca93e7f2a37a452399d08c5c84b969b7e52af..2a6ff13c824fea58c274290495196e98228e27f1:/RecordTimer.py diff --git a/RecordTimer.py b/RecordTimer.py index caedc1ee..6c942fb1 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -61,6 +61,7 @@ class RecordTimerEntry(timer.TimerEntry): def resetState(self): self.state = self.StateWaiting + self.cancelled = False self.first_try_prepare = True self.timeChanged() @@ -108,7 +109,7 @@ class RecordTimerEntry(timer.TimerEntry): f.write(self.description + "\n") f.write(str(self.begin) + "\n") f.close() - except: + except IOError: self.log(4, "failed to write meta information") return True @@ -148,6 +149,10 @@ class RecordTimerEntry(timer.TimerEntry): self.start_prepare = time.time() + self.backoff return False elif next_state == self.StateRunning: + # if this timer has been cancelled, just go to "end" state. + if self.cancelled: + return True + if self.justplay: self.log(11, "zapping") NavigationInstance.instance.playService(self.service_ref.ref) @@ -166,8 +171,9 @@ class RecordTimerEntry(timer.TimerEntry): return True elif next_state == self.StateEnded: self.log(12, "stop recording") - self.record_service.stop() - self.record_service = None + if not self.justplay: + self.record_service.stop() + self.record_service = None return True def getNextActivation(self): @@ -236,7 +242,7 @@ class RecordTimer(timer.Timer): def isRecording(self): isRunning = False for timer in self.timer_list: - if timer.isRunning(): + if timer.isRunning() and not timer.justplay: isRunning = True return isRunning @@ -364,10 +370,6 @@ class RecordTimer(timer.Timer): if time_match < diff: time_match = diff return time_match - - - - def removeEntry(self, entry): print "[Timer] Remove " + str(entry)