fix possible bluescreen
[enigma2.git] / Navigation.py
index 06d47ac4fcad6f6cf83de246bde15670c52942a3..cde4ca4c33f1496809bb3698158673d1f5104734 100644 (file)
@@ -42,24 +42,27 @@ class Navigation:
 
        def playService(self, ref, checkParentalControl = True):
                oldref = self.currentlyPlayingServiceReference
+               if ref and oldref and ref == oldref:
+                       print "ignore request to play already running service"
+                       return 0
                print "playing", ref and ref.toString()
                self.currentlyPlayingServiceReference = None
                self.currentlyPlayingService = None
                if ref is None:
                        self.stopService()
                        return 0
-               if not checkParentalControl or parentalControl.isServicePlayable(ref.toCompareString(), boundFunction(self.playService, checkParentalControl = False)):
+               if not checkParentalControl or parentalControl.isServicePlayable(ref, boundFunction(self.playService, checkParentalControl = False)):
                        if ref.flags & eServiceReference.isGroup:
                                if not oldref:
                                        oldref = eServiceReference()
                                playref = getBestPlayableServiceReference(ref, oldref)
-                               if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref.toCompareString(), boundFunction(self.playService, checkParentalControl = False))):
+                               if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref, boundFunction(self.playService, checkParentalControl = False))):
                                        self.stopService()
                                        return 0
                        else:
                                playref = ref
                        if self.pnav and not self.pnav.playService(playref):
-                               self.currentlyPlayingServiceReference = ref
+                               self.currentlyPlayingServiceReference = playref
                                return 0
                else:
                        self.stopService()