+ if not checkParentalControl or parentalControl.isServicePlayable(ref.toCompareString(), 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))):
+ self.stopService()
+ return 0
+ else:
+ playref = ref
+ if self.pnav and not self.pnav.playService(playref):
+ self.currentlyPlayingServiceReference = ref
+ return 0
+ else:
+ self.stopService()