show similar broadcastings deferred in eventview
[enigma2.git] / RecordTimer.py
index caedc1ee8d9cd8608989b6a650666d1f82fd07a9..6c942fb10720fc19525e522a793a0d24875f601f 100644 (file)
@@ -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)