X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=Navigation.py;h=7c1cdd426131d1d5343a82ce379395fa74f5c61e;hp=09daff34eb34de92e1f812e7703a1b12454b2eef;hb=1c49592bb36371a4a717156a2f93c557f972390c;hpb=9777558b9e1dc4a1ac89fe7a0740b8651f3936a0 diff --git a/Navigation.py b/Navigation.py index 09daff3..7c1cdd4 100644 --- a/Navigation.py +++ b/Navigation.py @@ -1,9 +1,14 @@ from enigma import * +from Components.ParentalControl import parentalControl +from Tools.BoundFunction import boundFunction import RecordTimer +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): @@ -12,31 +17,38 @@ class Navigation: NavigationInstance.instance = self self.ServiceHandler = eServiceCenter.getInstance() - + import Navigation as Nav Nav.navcore = self self.pnav = pNavigation() self.pnav.m_event.get().append(self.callEvent) self.event = [ ] - self.currentlyPlayingService = None self.currentlyPlayingServiceReference = None - + self.currentlyPlayingService = None + self.state = 0 self.RecordTimer = RecordTimer.RecordTimer() - + self.SleepTimer = SleepTimer.SleepTimer() + def callEvent(self, i): + self.state = i != 1 for x in self.event: x(i) - - def playService(self, ref): + + def playService(self, ref, checkParentalControl = True): + print "playing", ref and ref.toString() self.currentlyPlayingServiceReference = None + self.currentlyPlayingService = None if ref is None: self.stopService() return 0 - if not self.pnav.playService(ref): - self.currentlyPlayingServiceReference = ref - return 0 + if not checkParentalControl or parentalControl.isServicePlayable(ref.toCompareString(), boundFunction(self.playService, checkParentalControl = False)): + if self.pnav and not self.pnav.playService(ref): + self.currentlyPlayingServiceReference = ref + return 0 + else: + self.stopService() return 1 def getCurrentlyPlayingServiceReference(self): @@ -46,46 +58,42 @@ class Navigation: print "recording service: %s" % (str(ref)) if isinstance(ref, ServiceReference.ServiceReference): ref = ref.ref - service = self.pnav.recordService(ref) + service = self.pnav and self.pnav.recordService(ref) if service is None: print "record returned non-zero" return None else: return service - - def enqueueService(self, ref): - return self.pnav.enqueueService(ref) - + def getCurrentService(self): - service = self.pnav.getCurrentService() - - if service is None: - return None - - return service - + if self.state: + if not self.currentlyPlayingService: + self.currentlyPlayingService = self.pnav and self.pnav.getCurrentService() + return self.currentlyPlayingService + return None + def stopService(self): - self.pnav.stopService() - - def getPlaylist(self): - playlist = ePlaylistPtr() - if self.pnav.getPlaylist(playlist): - return None - return playlist - + print "stopService" + if self.pnav: + self.pnav.stopService() + self.currentlyPlayingService = None + self.currentlyPlayingServiceReference = None + def pause(self, p): - return self.pnav.pause(p) - - def recordWithTimer(self, begin, end, ref, epg, description): + return self.pnav and self.pnav.pause(p) + + def recordWithTimer(self, ref, begin, end, name, description, eit): if isinstance(ref, eServiceReference): ref = ServiceReference.ServiceReference(ref) - entry = RecordTimer.RecordTimerEntry(begin, end, ref, epg, description) + entry = RecordTimer.RecordTimerEntry(ref, begin, end, name, description, eit) self.RecordTimer.record(entry) return entry def shutdown(self): self.RecordTimer.shutdown() + self.ServiceHandler = None + self.pnav = None def stopUserServices(self): self.stopService()