InputBox/Screen: remove trailing semicolon
[enigma2.git] / Navigation.py
index bda6f58..a905da1 100644 (file)
@@ -11,7 +11,7 @@ import ServiceReference
 
 # TODO: remove pNavgation, eNavigation and rewrite this stuff in python.
 class Navigation:
-       def __init__(self):
+       def __init__(self, nextRecordTimerAfterEventActionAuto=False):
                if NavigationInstance.instance is not None:
                        raise NavigationInstance.instance
                
@@ -33,7 +33,7 @@ class Navigation:
                        clearFPWasTimerWakeup()
                        if getFPWasTimerWakeup(): # sanity check to detect if the FP driver is working correct!
                                print "buggy fp driver detected!!! please update drivers.... ignore timer wakeup!"
-                       elif len(self.getRecordings()) or abs(self.RecordTimer.getNextRecordingTime() - time()) <= 360:
+                       elif nextRecordTimerAfterEventActionAuto and (len(self.getRecordings()) or abs(self.RecordTimer.getNextRecordingTime() - time()) <= 360):
                                if not Screens.Standby.inTryQuitMainloop: # not a shutdown messagebox is open
                                        RecordTimer.RecordTimerEntry.TryQuitMainloop(False) # start shutdown handling
                self.SleepTimer = SleepTimer.SleepTimer()
@@ -50,10 +50,10 @@ class Navigation:
                for x in self.record_event:
                        x(rec_service, event)
 
-       def playService(self, ref, checkParentalControl = True):
+       def playService(self, ref, checkParentalControl = True, forceRestart = False):
                oldref = self.currentlyPlayingServiceReference
-               if ref and oldref and ref == oldref:
-                       print "ignore request to play already running service"
+               if ref and oldref and ref == oldref and not forceRestart:
+                       print "ignore request to play already running service(1)"
                        return 0
                print "playing", ref and ref.toString()
                if ref is None:
@@ -64,6 +64,10 @@ class Navigation:
                                if not oldref:
                                        oldref = eServiceReference()
                                playref = getBestPlayableServiceReference(ref, oldref)
+                               print "playref", playref
+                               if playref and oldref and playref == oldref and not forceRestart:
+                                       print "ignore request to play already running service(2)"
+                                       return 0
                                if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref, boundFunction(self.playService, checkParentalControl = False))):
                                        self.stopService()
                                        return 0
@@ -79,15 +83,15 @@ class Navigation:
        def getCurrentlyPlayingServiceReference(self):
                return self.currentlyPlayingServiceReference
        
-       def recordService(self, ref):
+       def recordService(self, ref, simulate=False):
                service = None
                print "recording service: %s" % (str(ref))
                if isinstance(ref, ServiceReference.ServiceReference):
                        ref = ref.ref
                if ref:
                        if ref.flags & eServiceReference.isGroup:
-                               ref = getBestPlayableServiceReference(ref, eServiceReference())
-                       service = ref and self.pnav and self.pnav.recordService(ref)
+                               ref = getBestPlayableServiceReference(ref, eServiceReference(), simulate)
+                       service = ref and self.pnav and self.pnav.recordService(ref, simulate)
                        if service is None:
                                print "record returned non-zero"
                return service
@@ -96,8 +100,8 @@ class Navigation:
                ret = self.pnav and self.pnav.stopRecordService(service)
                return ret
 
-       def getRecordings(self):
-               return self.pnav and self.pnav.getRecordings()
+       def getRecordings(self, simulate=False):
+               return self.pnav and self.pnav.getRecordings(simulate)
 
        def getCurrentService(self):
                if not self.currentlyPlayingService: