diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-11-30 20:03:35 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-11-30 20:03:35 +0000 |
| commit | 2b557e7ef4b0518736c5162a501cd9bc743930b3 (patch) | |
| tree | e9995bb4a94f52f063e0a6dc03c7f59059972245 /Navigation.py | |
| parent | bc2f8b7dcdacde72c1f06dcb5bd9672094b17ed5 (diff) | |
| download | enigma2-2b557e7ef4b0518736c5162a501cd9bc743930b3.tar.gz enigma2-2b557e7ef4b0518736c5162a501cd9bc743930b3.zip | |
more changes for service groups (replacement for zapping alternatives
plugin).. now its basicaly working..
TODO: change zapping alternatives editor for new style
Diffstat (limited to 'Navigation.py')
| -rw-r--r-- | Navigation.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/Navigation.py b/Navigation.py index 53e9ed42..50cdf01f 100644 --- a/Navigation.py +++ b/Navigation.py @@ -43,15 +43,24 @@ class Navigation: x(rec_service, event) def playService(self, ref, checkParentalControl = True): + oldref = self.currentlyPlayingServiceReference 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 self.pnav and not self.pnav.playService(ref): + 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))): + self.stopService() + return 0 + else: + playref = ref + if self.pnav and not self.pnav.playService(playref): self.currentlyPlayingServiceReference = ref return 0 else: @@ -62,16 +71,17 @@ class Navigation: return self.currentlyPlayingServiceReference def recordService(self, ref): + service = None print "recording service: %s" % (str(ref)) if isinstance(ref, ServiceReference.ServiceReference): ref = ref.ref - service = self.pnav and self.pnav.recordService(ref) - - if service is None: - print "record returned non-zero" - return None - else: - return service + if ref: + if ref.flags & eServiceReference.isGroup: + ref = getBestPlayableServiceReference(ref, eServiceReference()) + service = ref and self.pnav and self.pnav.recordService(ref) + if service is None: + print "record returned non-zero" + return service def stopRecordService(self, service): ret = self.pnav and self.pnav.stopRecordService(service) |
