X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=Navigation.py;h=cde4ca4c33f1496809bb3698158673d1f5104734;hb=ed2ffac89d41e126a3a9cc951b0b112a5303ac19;hp=c2d2752a1a4b9cc1e1b9de95f7610de925d9b51b;hpb=ed40f6f85c9c07c3c1224ae20601082c0309a631;p=vuplus_dvbapp diff --git a/Navigation.py b/Navigation.py index c2d2752..cde4ca4 100644 --- a/Navigation.py +++ b/Navigation.py @@ -1,4 +1,4 @@ -from enigma import eServiceCenter, eServiceReference, pNavigation +from enigma import eServiceCenter, eServiceReference, pNavigation, getBestPlayableServiceReference from Components.ParentalControl import parentalControl from Tools.BoundFunction import boundFunction import RecordTimer @@ -28,12 +28,10 @@ class Navigation: self.record_event = [ ] self.currentlyPlayingServiceReference = None self.currentlyPlayingService = None - self.state = 0 self.RecordTimer = RecordTimer.RecordTimer() self.SleepTimer = SleepTimer.SleepTimer() def dispatchEvent(self, i): - self.state = i != 1 for x in self.event: x(i) @@ -44,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() @@ -91,11 +92,9 @@ class Navigation: return self.pnav and self.pnav.getRecordings() def getCurrentService(self): - if self.state: - if not self.currentlyPlayingService: - self.currentlyPlayingService = self.pnav and self.pnav.getCurrentService() - return self.currentlyPlayingService - return None + if not self.currentlyPlayingService: + self.currentlyPlayingService = self.pnav and self.pnav.getCurrentService() + return self.currentlyPlayingService def stopService(self): print "stopService"