X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8ef98e5273d9778bd7c53b5ea30de3e1c5d0165e..0517c18e39080ea8a8cb49ba764ec2c143e31917:/lib/python/Screens/ServiceInfo.py diff --git a/lib/python/Screens/ServiceInfo.py b/lib/python/Screens/ServiceInfo.py index 10f7b28c..6b0a2e00 100644 --- a/lib/python/Screens/ServiceInfo.py +++ b/lib/python/Screens/ServiceInfo.py @@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap from Components.Label import Label from Components.MenuList import MenuList from ServiceReference import ServiceReference -from enigma import eListboxPythonMultiContent, eListbox, gFont +from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation RT_HALIGN_LEFT = 0 @@ -39,33 +39,62 @@ class ServiceInfoList(HTMLComponent, GUIComponent): class ServiceInfo(Screen): def __init__(self, session): Screen.__init__(self, session) - + self["actions"] = ActionMap(["OkCancelActions"], { "ok": self.close, "cancel": self.close }, -1) - - Labels = ( ("Name", "ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName()"), - ("Provider", ), - ("VideoPID",""), - ("AudioPID",""), - ("PCRPID",""), - ("PMTPID",""), - ("TXTPID",""), - ("Videoformat",""), - ("TSID",""), - ("ONID",""), - ("SID",""), - ("Namespace","")) + + service = session.nav.getCurrentService() + if service is not None: + self.info = service.info() + else: + self.info = None + + if self.session.nav.getCurrentlyPlayingServiceReference() is not None: + name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName() + else: + name = "N/A" + Labels = ( ("Name", name), + ("Provider", self.getValue(iServiceInformation.sProvider)), + ("VideoPID", self.getValue(iServiceInformation.sVideoPID)), + ("AudioPID", self.getValue(iServiceInformation.sAudioPID)), + ("PCRPID", self.getValue(iServiceInformation.sPCRPID)), + ("PMTPID", self.getValue(iServiceInformation.sPMTPID)), + ("TXTPID", self.getValue(iServiceInformation.sTXTPID)), + ("Videoformat", self.getValue(iServiceInformation.sAspect)), + ("TSID", self.getValue(iServiceInformation.sTSID)), + ("ONID", self.getValue(iServiceInformation.sONID)), + ("SID", self.getValue(iServiceInformation.sSID)), + ("Namespace", self.getValue(iServiceInformation.sNamespace))) tlist = [ ] for item in Labels: - try: - value = str(eval(item[1])) - except: - value = "N/A" + value = item[1] tlist.append(ServiceInfoListEntry(item[0]+":", value)) self["infolist"] = ServiceInfoList(tlist) + + def getValue(self, what): + if self.info is None: + return "" + + v = self.info.getInfo(what) + if v == -2: + v = self.info.getInfoString(what) + elif v != -1: + if what in [iServiceInformation.sVideoPID, + iServiceInformation.sAudioPID, iServiceInformation.sPCRPID, iServiceInformation.sPMTPID, + iServiceInformation.sTXTPID, iServiceInformation.sTSID, iServiceInformation.sONID, + iServiceInformation.sSID]: + v = "0x%04x (%dd)" % (v, v) + elif what in [iServiceInformation.sNamespace]: + v = "0x%08x" % (v) + else: + v = str(v) + else: + v = "N/A" + + return v