+ 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)
+ print "playref", playref
+ if playref and oldref and playref == oldref and not forceRestart:
+ print "ignore request to play already running service(2)"
+ return 0
+ 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 = playref
+ return 0
+ else:
+ self.stopService()