X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8a951b87cc4f6d4db0f1c3c9113a4c0943971ef2..9083b11e3985534d45494cd89e0c54fddf7e5b52:/Navigation.py diff --git a/Navigation.py b/Navigation.py index 06d47ac4..b4110f49 100644 --- a/Navigation.py +++ b/Navigation.py @@ -1,4 +1,4 @@ -from enigma import eServiceCenter, eServiceReference, pNavigation, getBestPlayableServiceReference +from enigma import eServiceCenter, eServiceReference, pNavigation, getBestPlayableServiceReference, iPlayableService from Components.ParentalControl import parentalControl from Tools.BoundFunction import boundFunction import RecordTimer @@ -7,8 +7,6 @@ import SleepTimer import NavigationInstance import ServiceReference -from time import time - # TODO: remove pNavgation, eNavigation and rewrite this stuff in python. class Navigation: def __init__(self): @@ -34,6 +32,9 @@ class Navigation: def dispatchEvent(self, i): for x in self.event: x(i) + if i == iPlayableService.evEnd: + self.currentlyPlayingServiceReference = None + self.currentlyPlayingService = None def dispatchRecordEvent(self, rec_service, event): # print "record_event", rec_service, event @@ -42,24 +43,25 @@ 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() @@ -97,8 +99,6 @@ class Navigation: print "stopService" if self.pnav: self.pnav.stopService() - self.currentlyPlayingService = None - self.currentlyPlayingServiceReference = None def pause(self, p): return self.pnav and self.pnav.pause(p)