def getText(self): service = self.source.service info = service and service.info() if not info: return "" text = "" width = info.getInfo(iServiceInformation.sVideoWidth) height = info.getInfo(iServiceInformation.sVideoHeight) if self.type == self.VIDEOMODE: if width > 0 and height > 0: f = open("/proc/stb/video/videomode") text = f.read()[:-1].replace('\n','') f.close() elif self.type == self.VIDEOSIZE: if width > 0 and height > 0: sProgressive = info.getInfo(iServiceInformation.sProgressive) text = "%dx%d" % (width,height) #text += ("i", "p", " ")[sProgressive] if sProgressive: text += "p" + str((info.getInfo(iServiceInformation.sFrameRate) + 499) / 1000) else: text += "i" + str((info.getInfo(iServiceInformation.sFrameRate) + 499) / 500) elif self.type == self.VIDEOSIZEWIDTH: if width > 0: text = "%d" % (width) elif self.type == self.VIDEOSIZEHEIGHT: if height > 0: sProgressive = info.getInfo(iServiceInformation.sProgressive) text = "%d" % (height) #text += ("i", "p", " ")[sProgressive] if sProgressive: text += "p" + str((info.getInfo(iServiceInformation.sFrameRate) + 499) / 1000) else: text += "i" + str((info.getInfo(iServiceInformation.sFrameRate) + 499) / 500) elif self.type == self.VIDEOSIZESHORT: if width > 0 and height > 0: text = "%dx%d" % (width,height) elif self.type == self.VIDEOCODEC: from Components.Converter.PliExtraInfo import codec_data text = codec_data.get(self.info.getInfo(iServiceInformation.sVideoType), "N/A") elif self.type == self.VIDEOFORMAT: if width > 0 and height > 0: text = info.getInfo(iServiceInformation.sAspect) if text == -2: text = info.getInfoString(iServiceInformation.sAspect) elif text == -1: text = _("N/A") if text in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ): text = "4:3" else: text = "16:9" else: print "type must be {VideoMode, VideoSize, VideoSizeWidth, VideoSizeHeight, VideoSizeShort, VideoCodec, VideoFormat} for MetrixHDVideoInfo converter" text = "type-error" return text
def ShowServiceInformation(self): menu_path = self.menu_path if self.type == TYPE_SERVICE_INFO: screentitle = _("Service & PIDs") if config.usage.show_menupath.value == 'large': menu_path += screentitle title = menu_path self["menu_path_compressed"] = StaticText("") elif config.usage.show_menupath.value == 'small': title = screentitle self["menu_path_compressed"] = StaticText(menu_path + " >" if not menu_path.endswith(' / ') else menu_path[:-3] + " >" or "") else: title = screentitle self["menu_path_compressed"] = StaticText("") Screen.setTitle(self, title) if self.feinfo or self.transponder_info: self["key_blue"].text = self["blue"].text = _("Tuner settings values") if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString() reftype = self.session.nav.getCurrentlyPlayingServiceReference().type else: name = _("N/A") refstr = _("N/A") reftype = 0 aspect = "-" videocodec = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get(self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = videocodec + " - " resolution += "%dx%d - " % (width,height) resolution += str((self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) resolution += ("i", "p", "")[self.info.getInfo(iServiceInformation.sProgressive)] aspect = self.getServiceInfoValue(iServiceInformation.sAspect) aspect = aspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ) and "4:3" or "16:9" resolution += " - "+aspect+"" gamma = ("SDR", "HDR", "HDR10", "HLG", "")[self.info.getInfo(iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma if "%3a//" in refstr and reftype not in (1,257,4098,4114): fillList = [(_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT)] else: if ":/" in refstr: fillList = [(_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("Filename"), refstr.split(":")[10], TYPE_TEXT)] else: fillList = [(_("Service name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT)] if "%3a//" in refstr: fillList = fillList + [(_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT)] else: fillList = fillList + [(_("Service reference"), refstr, TYPE_TEXT)] fillList = fillList + [(_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_("Service ID"), self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4), (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4), (_("Audio PID"), self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4), (_("PCR PID"), self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4), (_("PMT PID"), self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4), (_("TXT PID"), self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4), (_("TSID"), self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4), (_("ONID"), self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4)] self.fillList(fillList) elif self.transponder_info: self.fillList(self.getFEData(self.transponder_info))
def information(self): if self.type == TYPE_SERVICE_INFO: if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString() else: name = _("N/A") refstr = _("N/A") aspect = "-" videocodec = "-" videomode = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get(self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = "%dx%d" % (width, height) resolution += ("i", "p", "-")[self.info.getInfo(iServiceInformation.sProgressive)] resolution += str((self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) aspect = self.getServiceInfoValue(iServiceInformation.sAspect) aspect = aspect in (1, 2, 5, 6, 9, 0xA, 0xD, 0xE) and "4:3" or "16:9" resolution += " - [" + aspect + "]" gammas = ("SDR", "HDR", "HDR10", "HLG", "") if self.info.getInfo(iServiceInformation.sGamma) < len(gammas): gamma = gammas[self.info.getInfo(iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma f = open("/proc/stb/video/videomode") videomode = f.read()[:-1].replace('\n', '') f.close() Labels = [(_("Name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), (_("Videoformat"), aspect, TYPE_TEXT), (_("Videomode"), videomode, TYPE_TEXT), (_("Videosize"), resolution, TYPE_TEXT), (_("Videocodec"), videocodec, TYPE_TEXT), (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_("Service reference"), ":".join(refstr.split(":")[:10]), TYPE_TEXT)] if "%3a//" in refstr: Labels.append((_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT)) self.fillList(Labels) else: if self.transponder_info: tp_info = ConvertToHumanReadable(self.transponder_info) conv = {"tuner_type" : _("Transponder type"), "system" : _("System"), "modulation" : _("Modulation"), "orbital_position" : _("Orbital position"), "frequency" : _("Frequency"), "symbol_rate" : _("Symbol rate"), "bandwidth" : _("Bandwidth"), "polarization" : _("Polarization"), "inversion" : _("Inversion"), "pilot" : _("Pilot"), "rolloff" : _("Roll-off"), "is_id" : _("Input Stream ID"), "pls_mode" : _("PLS Mode"), "pls_code" : _("PLS Code"), "t2mi_plp_id" : _("T2MI PLP ID"), "t2mi_pip" : _("T2MI PID"), "fec_inner" : _("FEC"), "code_rate_lp" : _("Coderate LP"), "code_rate_hp" : _("Coderate HP"), "constellation" : _("Constellation"), "transmission_mode" : _("Transmission mode"), "guard_interval" : _("Guard interval"), "hierarchy_information" : _("Hierarchy information")} Labels = [(conv[i], tp_info[i], i == "orbital_position" and TYPE_VALUE_ORBIT_DEC or TYPE_VALUE_DEC) for i in tp_info.keys() if i in conv] self.fillList(Labels)
def ShowServiceInformation(self): if self.type == TYPE_SERVICE_INFO: self["Title"].text = _("Service info - service & PIDs") if self.feinfo or self.transponder_info: self["key_blue"].text = self["blue"].text = _( "Tuner setting values") if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference( self.session.nav.getCurrentlyPlayingServiceReference( )).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference( ).toString() reftype = self.session.nav.getCurrentlyPlayingServiceReference( ).type else: name = _("N/A") refstr = _("N/A") reftype = 0 aspect = "-" videocodec = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get( self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = videocodec + " - " resolution += "%dx%d - " % (width, height) resolution += str( (self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) resolution += (" i", " p", "")[self.info.getInfo( iServiceInformation.sProgressive)] aspect = self.getServiceInfoValue( iServiceInformation.sAspect) aspect = aspect in (1, 2, 5, 6, 9, 0xA, 0xD, 0xE) and "4:3" or "16:9" resolution += " - [" + aspect + "]" gamma = ("SDR", "HDR", "HDR10", "HLG", "")[self.info.getInfo(iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma self.service = self.session.nav.getCurrentService() if "%3a//" in refstr and reftype not in (1, 257, 4098, 4114): #IPTV 4097 5001, no PIDs shown fillList = [ (_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT) ] subList = self.getSubtitleList() else: if ":/" in refstr: # mp4 videos, dvb-s-t recording fillList = [(_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("Filename"), refstr.split(":")[10], TYPE_TEXT)] else: # fallback, movistartv, live dvb-s-t fillList = [ (_("Service name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue( iServiceInformation.sProvider), TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT) ] if "%3a//" in refstr: #fallback, movistartv fillList = fillList + [ (_("Service reference"), ":".join( refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace( "%3a", ":"), TYPE_TEXT) ] else: #live dvb-s-t fillList = fillList + [ (_("Service reference"), refstr, TYPE_TEXT) ] self.audio = self.service and self.service.audioTracks() self.numberofTracks = self.audio and self.audio.getNumberOfTracks( ) self.subList = self.getSubtitleList() self.togglePIDButton() trackList = self.getTrackList() fillList = fillList + ( [(_("Namespace & Orbital pos."), self.namespace( self.getServiceInfoValue( iServiceInformation.sNamespace)), TYPE_TEXT), (_("TSID"), self.getServiceInfoValue( iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4), (_("ONID"), self.getServiceInfoValue( iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4), (_("Service ID"), self.getServiceInfoValue( iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4), (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4)] + trackList + [(_("PCR PID"), self.getServiceInfoValue( iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4), (_("PMT PID"), self.getServiceInfoValue( iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4), (_("TXT PID"), self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4)]) if self.showAll == True: fillList = fillList + self.subList self.fillList(fillList) elif self.transponder_info: self.fillList(self.getFEData(self.transponder_info))
def ShowServiceInformation(self): if self.type == TYPE_SERVICE_INFO: self.setTitle(_("Service & PIDs")) if self.feinfo or self.transponder_info: self["key_blue"].text = self["blue"].text = _( "Tuner settings values") if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference( self.session.nav.getCurrentlyPlayingServiceReference( )).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference( ).toString() reftype = self.session.nav.getCurrentlyPlayingServiceReference( ).type else: name = _("N/A") refstr = _("N/A") reftype = 0 aspect = "-" videocodec = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get( self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = videocodec + " - " resolution += "%dx%d - " % (width, height) resolution += str( (self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) resolution += ("i", "p", "")[self.info.getInfo( iServiceInformation.sProgressive)] aspect = self.getServiceInfoValue( iServiceInformation.sAspect) aspect = aspect in (1, 2, 5, 6, 9, 0xA, 0xD, 0xE) and "4:3" or "16:9" resolution += " - " + aspect + "" gamma = ("SDR", "HDR", "HDR10", "HLG", "")[self.info.getInfo(iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma if "%3a//" in refstr and reftype not in (1, 257, 4098, 4114): fillList = [ (_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT) ] else: if ":/" in refstr: fillList = [(_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("Filename"), refstr.split(":")[10], TYPE_TEXT)] else: fillList = [ (_("Service name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue( iServiceInformation.sProvider), TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT) ] if "%3a//" in refstr: fillList = fillList + [ (_("Service reference"), ":".join( refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace( "%3a", ":"), TYPE_TEXT) ] else: fillList = fillList + [ (_("Service reference"), refstr, TYPE_TEXT) ] fillList = fillList + [ (_("Namespace"), self.getServiceInfoValue( iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_("Service ID"), self.getServiceInfoValue( iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4), (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4), (_("Audio PID"), self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4), (_("PCR PID"), self.getServiceInfoValue( iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4), (_("PMT PID"), self.getServiceInfoValue( iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4), (_("TXT PID"), self.getServiceInfoValue( iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4), (_("TSID"), self.getServiceInfoValue( iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4), (_("ONID"), self.getServiceInfoValue( iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4) ] self.fillList(fillList) elif self.transponder_info: self.fillList(self.getFEData(self.transponder_info))
def getText(self): service = self.source.service try: info = service and service.info() except: try: info = eServiceCenter.getInstance().info(service) except: pass if not info: return "" Ret_Text = "" Sec_Text = "" Res_Text = "" showCryptoInfo = False if (self.type == self.SMART_INFO_H or self.type == self.SERVICE_INFO or self.type == self.CRYPTO_INFO or self.type == self.FREQUENCY_INFO): # HORIZONTAL sep = " " sep2 = " - " elif (self.type == self.SMART_INFO_V): # VERTIKAL sep = "\n" sep2 = "\n" else: return "" # unsupported orientation if (self.type == self.FREQUENCY_INFO): try: feinfo = (service and service.frontendInfo()) prvd = info.getInfoString(iServiceInformation.sProvider) Ret_Text = self.short(prvd) frontendDataOrg = (feinfo and feinfo.getAll(True)) except: try: frontendDataOrg = info.getInfoObject( service, iServiceInformation.sTransponderData) prvd = info.getInfoString(service, iServiceInformation.sProvider) except: pass if (frontendDataOrg is not None): frontendData = ConvertToHumanReadable(frontendDataOrg) if ((frontendDataOrg.get("tuner_type") == "DVB-S") or (frontendDataOrg.get("tuner_type") == "DVB-C")): frequency = (str( (frontendData.get("frequency") / 1000)) + " MHz") symbolrate = (str( (frontendData.get("symbol_rate") / 1000))) fec_inner = frontendData.get("fec_inner") if (frontendDataOrg.get("tuner_type") == "DVB-S"): Ret_Text += sep + frontendData.get("system") orbital_pos = int(frontendDataOrg["orbital_position"]) if orbital_pos > 1800: if orbital_pos == 3590: orb_pos = 'Thor/Intelsat' elif orbital_pos == 3560: orb_pos = 'Amos (4' elif orbital_pos == 3550: orb_pos = 'Atlantic Bird' elif orbital_pos == 3530: orb_pos = 'Nilesat/Atlantic Bird' elif orbital_pos == 3520: orb_pos = 'Atlantic Bird' elif orbital_pos == 3475: orb_pos = 'Atlantic Bird' elif orbital_pos == 3460: orb_pos = 'Express' elif orbital_pos == 3450: orb_pos = 'Telstar' elif orbital_pos == 3420: orb_pos = 'Intelsat' elif orbital_pos == 3380: orb_pos = 'Nss' elif orbital_pos == 3355: orb_pos = 'Intelsat' elif orbital_pos == 3325: orb_pos = 'Intelsat' elif orbital_pos == 3300: orb_pos = 'Hispasat' elif orbital_pos == 3285: orb_pos = 'Intelsat' elif orbital_pos == 3170: orb_pos = 'Intelsat' elif orbital_pos == 3150: orb_pos = 'Intelsat' elif orbital_pos == 3070: orb_pos = 'Intelsat' elif orbital_pos == 3045: orb_pos = 'Intelsat' elif orbital_pos == 3020: orb_pos = 'Intelsat 9' elif orbital_pos == 2990: orb_pos = 'Amazonas' elif orbital_pos == 2900: orb_pos = 'Star One' elif orbital_pos == 2880: orb_pos = 'AMC 6 (72' elif orbital_pos == 2875: orb_pos = 'Echostar 6' elif orbital_pos == 2860: orb_pos = 'Horizons' elif orbital_pos == 2810: orb_pos = 'AMC5' elif orbital_pos == 2780: orb_pos = 'NIMIQ 4' elif orbital_pos == 2690: orb_pos = 'NIMIQ 1' elif orbital_pos == 3592: orb_pos = 'Thor/Intelsat' elif orbital_pos == 2985: orb_pos = 'Echostar 3,12' elif orbital_pos == 2830: orb_pos = 'Echostar 8' elif orbital_pos == 2630: orb_pos = 'Galaxy 19' elif orbital_pos == 2500: orb_pos = 'Echostar 10,11' elif orbital_pos == 2502: orb_pos = 'DirectTV 5' elif orbital_pos == 2410: orb_pos = 'Echostar 7 Anik F3' elif orbital_pos == 2391: orb_pos = 'Galaxy 23' elif orbital_pos == 2390: orb_pos = 'Echostar 9' elif orbital_pos == 2412: orb_pos = 'DirectTV 7S' elif orbital_pos == 2310: orb_pos = 'Galaxy 27' elif orbital_pos == 2311: orb_pos = 'Ciel 2' elif orbital_pos == 2120: orb_pos = 'Echostar 2' else: orb_pos = str( (float(3600 - orbital_pos)) / 10.0) + "W" elif orbital_pos > 0: if orbital_pos == 192: orb_pos = 'Astra 1F' elif orbital_pos == 130: orb_pos = 'Hot Bird 6,7A,8' elif orbital_pos == 235: orb_pos = 'Astra 1E' elif orbital_pos == 1100: orb_pos = 'BSat 1A,2A' elif orbital_pos == 1101: orb_pos = 'N-Sat 110' elif orbital_pos == 1131: orb_pos = 'KoreaSat 5' elif orbital_pos == 1440: orb_pos = 'SuperBird 7,C2' elif orbital_pos == 1006: orb_pos = 'AsiaSat 2' elif orbital_pos == 1030: orb_pos = 'Express A2' elif orbital_pos == 1056: orb_pos = 'Asiasat 3S' elif orbital_pos == 1082: orb_pos = 'NSS 11' elif orbital_pos == 881: orb_pos = 'ST1' elif orbital_pos == 900: orb_pos = 'Yamal 201' elif orbital_pos == 917: orb_pos = 'Mesat' elif orbital_pos == 950: orb_pos = 'Insat 4B' elif orbital_pos == 951: orb_pos = 'NSS 6' elif orbital_pos == 765: orb_pos = 'Telestar' elif orbital_pos == 785: orb_pos = 'ThaiCom 5' elif orbital_pos == 800: orb_pos = 'Express' elif orbital_pos == 830: orb_pos = 'Insat 4A' elif orbital_pos == 850: orb_pos = 'Intelsat 709' elif orbital_pos == 750: orb_pos = 'Abs' elif orbital_pos == 720: orb_pos = 'Intelsat' elif orbital_pos == 705: orb_pos = 'Eutelsat W5' elif orbital_pos == 685: orb_pos = 'Intelsat' elif orbital_pos == 620: orb_pos = 'Intelsat 902' elif orbital_pos == 600: orb_pos = 'Intelsat 904' elif orbital_pos == 570: orb_pos = 'Nss' elif orbital_pos == 530: orb_pos = 'Express AM22' elif orbital_pos == 480: orb_pos = 'Eutelsat 2F2' elif orbital_pos == 450: orb_pos = 'Intelsat' elif orbital_pos == 420: orb_pos = 'Turksat 2A' elif orbital_pos == 400: orb_pos = 'Express AM1' elif orbital_pos == 390: orb_pos = 'Hellas Sat 2' elif orbital_pos == 380: orb_pos = 'Paksat 1' elif orbital_pos == 360: orb_pos = 'Eutelsat Sesat' elif orbital_pos == 335: orb_pos = 'Astra 1M' elif orbital_pos == 330: orb_pos = 'Eurobird 3' elif orbital_pos == 328: orb_pos = 'Galaxy 11' elif orbital_pos == 315: orb_pos = 'Astra 5A' elif orbital_pos == 310: orb_pos = 'Turksat' elif orbital_pos == 305: orb_pos = 'Arabsat' elif orbital_pos == 285: orb_pos = 'Eurobird 1' elif orbital_pos == 284: orb_pos = 'Eurobird/Astra' elif orbital_pos == 282: orb_pos = 'Eurobird/Astra' elif orbital_pos == 1220: orb_pos = 'AsiaSat' elif orbital_pos == 1380: orb_pos = 'Telstar 18' elif orbital_pos == 260: orb_pos = 'Badr 3/4' elif orbital_pos == 255: orb_pos = 'Eurobird 2' elif orbital_pos == 215: orb_pos = 'Eutelsat' elif orbital_pos == 216: orb_pos = 'Eutelsat W6' elif orbital_pos == 210: orb_pos = 'AfriStar 1' elif orbital_pos == 160: orb_pos = 'Eutelsat W2' elif orbital_pos == 100: orb_pos = 'Eutelsat W1' elif orbital_pos == 90: orb_pos = 'Eurobird 9' elif orbital_pos == 70: orb_pos = 'Eutelsat W3A' elif orbital_pos == 50: orb_pos = 'Sirius 4' elif orbital_pos == 48: orb_pos = 'Sirius 4' elif orbital_pos == 30: orb_pos = 'Telecom 2' else: orb_pos = str( (float(orbital_pos)) / 10.0) + "E" Ret_Text += sep + orb_pos + "\n" Ret_Text += frequency + sep + frontendData.get( "polarization_abbreviation") Ret_Text += sep + symbolrate Ret_Text += sep + frontendData.get( "modulation") + "-" + fec_inner else: Ret_Text += sep + "DVB-C " + frequency + " MHz" + sep + fec_inner + sep + symbolrate elif (frontendData.get("tuner_type") == "DVB-T"): frequency = (str( (frontendData.get("frequency") / 1000)) + " MHz") Ret_Text = "Frequency: " + frequency if (self.type == self.SMART_INFO_H or self.type == self.SMART_INFO_V or self.type == self.SERVICE_INFO): xresol = info.getInfo(iServiceInformation.sVideoWidth) yresol = info.getInfo(iServiceInformation.sVideoHeight) feinfo = (service and service.frontendInfo()) prvd = info.getInfoString(iServiceInformation.sProvider) Ret_Text = self.short(prvd) frontendDataOrg = (feinfo and feinfo.getAll(True)) if (frontendDataOrg is not None): frontendData = ConvertToHumanReadable(frontendDataOrg) if ((frontendDataOrg.get("tuner_type") == "DVB-S") or (frontendDataOrg.get("tuner_type") == "DVB-C")): frequency = (str((frontendData.get("frequency") / 1000))) symbolrate = (str( (frontendData.get("symbol_rate") / 1000))) fec_inner = frontendData.get("fec_inner") if (frontendDataOrg.get("tuner_type") == "DVB-S"): Ret_Text += sep + frontendData.get("system") Ret_Text += sep + frequency + frontendData.get( "polarization_abbreviation") Ret_Text += sep + symbolrate Ret_Text += sep + fec_inner + " " + frontendData.get( "modulation") orbital_pos = int(frontendDataOrg["orbital_position"]) if orbital_pos > 1800: orb_pos = str( (float(3600 - orbital_pos)) / 10.0) + "W" elif orbital_pos > 0: orb_pos = str((float(orbital_pos)) / 10.0) + "E" Ret_Text += sep + orb_pos else: Ret_Text += sep + "DVB-C " + frequency + " MHz" + sep + fec_inner + sep + symbolrate elif (frontendDataOrg.get("tuner_type") == "DVB-T"): frequency = (str((frontendData.get("frequency") / 1000))) Ret_Text += sep + "DVB-T" + sep + "Frequency:" + sep + frequency + " MHz" if (feinfo is not None) and (xresol > 0): from Components.Converter.PliExtraInfo import codec_data Res_Text += codec_data.get( self.info.getInfo(iServiceInformation.sVideoType), "N/A") Res_Text += str(xresol) + "x" + str(yresol) Res_Text += ("i", "p", "")[info.getInfo( iServiceInformation.sProgressive)] Res_Text += str( (info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) if (self.type == self.SMART_INFO_H or self.type == self.SMART_INFO_V or self.type == self.CRYPTO_INFO): decCI = "0" Sec_Text = "" if (info.getInfo(iServiceInformation.sIsCrypted) == 1): data = self.ecmdata.getEcmData() if not config.usage.show_cryptoinfo.value: showCryptoInfo = True Sec_Text = data[0] + "\n" decCI = data[1] provid = data[2] pid = data[3] if decCI != '0': decCIfull = "%04x" % int(decCI, 16) for idline in self.idnames: if int(decCI, 16) >= int(idline[0], 16) and int( decCI, 16) <= int(idline[1], 16): decCIfull = idline[2] + ":" + decCIfull break Sec_Text += decCIfull if provid != '0': Sec_Text += ":%04x" % int(provid, 16) else: Sec_Text += ":" if pid != '0': Sec_Text += ":%04x:%04x" % (info.getInfo( iServiceInformation.sSID), int(pid, 16)) elif not config.usage.show_cryptoinfo.value: showCryptoInfo = True Sec_Text = "FTA" res = "" searchIDs = (info.getInfoObject(iServiceInformation.sCAIDs)) for idline in self.idnames: if int(decCI, 16) >= int(idline[0], 16) and int( decCI, 16) <= int(idline[1], 16): color = "\c0000??00" else: color = "\c007?7?7?" try: for oneID in searchIDs: if oneID >= int(idline[0], 16) and oneID <= int( idline[1], 16): color = "\c00????00" except: pass res += color + idline[3] + " " if (self.type != self.CRYPTO_INFO): Ret_Text += "\n" Ret_Text += res + "\c00?????? " + Sec_Text if Res_Text != "": if showCryptoInfo: Ret_Text += sep + Res_Text else: Ret_Text += "\n" + Res_Text return Ret_Text
def information(self): if self.type == TYPE_SERVICE_INFO: if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference( self.session.nav.getCurrentlyPlayingServiceReference( )).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference( ).toString() else: name = _('N/A') refstr = _('N/A') aspect = '-' videocodec = '-' videomode = '-' resolution = '-' if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get( self.info.getInfo(iServiceInformation.sVideoType), 'N/A') width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = '%dx%d' % (width, height) resolution += ('i', 'p', '-')[self.info.getInfo( iServiceInformation.sProgressive)] resolution += str( (self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) aspect = self.getServiceInfoValue( iServiceInformation.sAspect) aspect = aspect in (1, 2, 5, 6, 9, 10, 13, 14) and '4:3' or '16:9' resolution += ' - [' + aspect + ']' gammas = ('SDR', 'HDR', 'HDR10', 'HLG', '') if self.info.getInfo( iServiceInformation.sGamma) < len(gammas): gamma = gammas[self.info.getInfo( iServiceInformation.sGamma)] if gamma: resolution += ' - ' + gamma f = open('/proc/stb/video/videomode') videomode = f.read()[:-1].replace('\n', '') f.close() Labels = ((_('Name'), name, TYPE_TEXT), (_('Provider'), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), (_('Videoformat'), aspect, TYPE_TEXT), (_('Videomode'), videomode, TYPE_TEXT), (_('Videosize'), resolution, TYPE_TEXT), (_('Videocodec'), videocodec, TYPE_TEXT), (_('Namespace'), self.getServiceInfoValue( iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_('Service reference'), ':'.join(refstr.split(':')[:10]), TYPE_TEXT), (_('URL'), refstr.split(':')[10].replace('%3a', ':'), TYPE_TEXT)) self.fillList(Labels) elif self.transponder_info: tp_info = ConvertToHumanReadable(self.transponder_info) conv = { 'tuner_type': _('Transponder type'), 'system': _('System'), 'modulation': _('Modulation'), 'orbital_position': _('Orbital position'), 'frequency': _('Frequency'), 'symbol_rate': _('Symbol rate'), 'bandwidth': _('Bandwidth'), 'polarization': _('Polarization'), 'inversion': _('Inversion'), 'pilot': _('Pilot'), 'rolloff': _('Roll-off'), 'is_id': _('Input Stream ID'), 'pls_mode': _('PLS Mode'), 'pls_code': _('PLS Code'), 't2mi_plp_id': _('T2MI PLP ID'), 't2mi_pip': _('T2MI PID'), 'fec_inner': _('FEC'), 'code_rate_lp': _('Coderate LP'), 'code_rate_hp': _('Coderate HP'), 'constellation': _('Constellation'), 'transmission_mode': _('Transmission mode'), 'guard_interval': _('Guard interval'), 'hierarchy_information': _('Hierarchy information') } Labels = [(conv[i], tp_info[i], i == 'orbital_position' and TYPE_VALUE_ORBIT_DEC or TYPE_VALUE_DEC) for i in tp_info.keys() if i in conv] self.fillList(Labels)
def information(self): if self.type == TYPE_SERVICE_INFO: if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString() else: name = _("N/A") refstr = _("N/A") aspect = "-" videocodec = "-" videomode = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get(self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = "%dx%d" % (width,height) resolution += ("i", "p", "-")[self.info.getInfo(iServiceInformation.sProgressive)] resolution += str((self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) aspect = self.getServiceInfoValue(iServiceInformation.sAspect) aspect = aspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ) and "4:3" or "16:9" resolution += " - ["+aspect+"]" gammas = ("SDR", "HDR", "HDR10", "HLG", "") if self.info.getInfo(iServiceInformation.sGamma) < len(gammas): gamma = gammas[self.info.getInfo(iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma f = open("/proc/stb/video/videomode") videomode = f.read()[:-1].replace('\n','') f.close() Labels = ( (_("Name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), (_("Videoformat"), aspect, TYPE_TEXT), (_("Videomode"), videomode, TYPE_TEXT), (_("Videosize"), resolution, TYPE_TEXT), (_("Videocodec"), videocodec, TYPE_TEXT), (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_("Service reference"), refstr, TYPE_TEXT)) self.fillList(Labels) else: if self.transponder_info: tp_info = ConvertToHumanReadable(self.transponder_info) conv = { "tuner_type" : _("Transponder type"), "system" : _("System"), "modulation" : _("Modulation"), "orbital_position" : _("Orbital position"), "frequency" : _("Frequency"), "symbol_rate" : _("Symbol rate"), "bandwidth" : _("Bandwidth"), "polarization" : _("Polarization"), "inversion" : _("Inversion"), "pilot" : _("Pilot"), "rolloff" : _("Roll-off"), "is_id" : _("Input Stream ID"), "pls_mode" : _("PLS Mode"), "pls_code" : _("PLS Code"), "t2mi_plp_id" : _("T2MI PLP ID"), "t2mi_pip" : _("T2MI PID"), "fec_inner" : _("FEC"), "code_rate_lp" : _("Coderate LP"), "code_rate_hp" : _("Coderate HP"), "constellation" : _("Constellation"), "transmission_mode" : _("Transmission mode"), "guard_interval" : _("Guard interval"), "hierarchy_information" : _("Hierarchy information")} Labels = [(conv[i], tp_info[i], i == "orbital_position" and TYPE_VALUE_ORBIT_DEC or TYPE_VALUE_DEC) for i in tp_info.keys() if i in conv] self.fillList(Labels)
def ShowServiceInformation(self): if self.type == TYPE_SERVICE_INFO: self["Title"].text = _("Service info - service & PIDs") if self.feinfo or self.transponder_info: self["key_blue"].text = self["blue"].text = _("Tuner setting values") if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString() reftype = self.session.nav.getCurrentlyPlayingServiceReference().type else: name = _("N/A") refstr = _("N/A") reftype = 0 aspect = "-" videocodec = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get(self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = videocodec + " - " resolution += "%dx%d - " % (width,height) resolution += str((self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) resolution += (" i", " p", "")[self.info.getInfo(iServiceInformation.sProgressive)] aspect = self.getServiceInfoValue(iServiceInformation.sAspect) aspect = aspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ) and "4:3" or "16:9" resolution += " - ["+aspect+"]" gamma = ("SDR", "HDR", "HDR10", "HLG", "")[self.info.getInfo(iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma self.service = self.session.nav.getCurrentService() if "%3a//" in refstr and reftype not in (1,257,4098,4114): #IPTV 4097 5001, no PIDs shown fillList = [(_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT)] subList = self.getSubtitleList() else: if ":/" in refstr: # mp4 videos, dvb-s-t recording fillList = [(_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), (_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("Filename"), refstr.split(":")[10], TYPE_TEXT)] else: # fallback, movistartv, live dvb-s-t fillList = [(_("Service name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT)] if "%3a//" in refstr: #fallback, movistartv fillList = fillList + [(_("Service reference"), ":".join(refstr.split(":")[:9]), TYPE_TEXT), (_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT)] else: #live dvb-s-t fillList = fillList + [(_("Service reference"), refstr, TYPE_TEXT)] self.audio = self.service and self.service.audioTracks() self.numberofTracks = self.audio and self.audio.getNumberOfTracks() self.subList = self.getSubtitleList() self.togglePIDButton() trackList = self.getTrackList() fillList = fillList + ([(_("Namespace & Orbital pos."), self.namespace(self.getServiceInfoValue(iServiceInformation.sNamespace)), TYPE_TEXT), (_("TSID"), self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4), (_("ONID"), self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4), (_("Service ID"), self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4), (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4)] + trackList + [(_("PCR PID"), self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4), (_("PMT PID"), self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4), (_("TXT PID"), self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4)]) if self.showAll == True: fillList = fillList + self.subList self.fillList(fillList) elif self.transponder_info: self.fillList(self.getFEData(self.transponder_info))
def createVideoCodec(self, info): #return ("MPEG2", "MPEG4", "MPEG1", "MPEG4-II", "VC1", "VC1-SM", "H265_HEVC", "")[info.getInfo(iServiceInformation.sVideoType)] from Components.Converter.PliExtraInfo import codec_data return codec_data.get(info.getInfo(iServiceInformation.sVideoType), "")
def information(self): if self.type == TYPE_SERVICE_INFO: if self.session.nav.getCurrentlyPlayingServiceOrGroup(): name = ServiceReference( self.session.nav.getCurrentlyPlayingServiceReference( )).getServiceName() refstr = self.session.nav.getCurrentlyPlayingServiceReference( ).toString() else: name = _("N/A") refstr = _("N/A") aspect = "-" videocodec = "-" videomode = "-" resolution = "-" if self.info: from Components.Converter.PliExtraInfo import codec_data videocodec = codec_data.get( self.info.getInfo(iServiceInformation.sVideoType), "N/A") width = self.info.getInfo(iServiceInformation.sVideoWidth) height = self.info.getInfo(iServiceInformation.sVideoHeight) if width > 0 and height > 0: resolution = "%dx%d" % (width, height) resolution += ("i", "p", "-")[self.info.getInfo( iServiceInformation.sProgressive)] resolution += str( (self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) aspect = self.getServiceInfoValue( iServiceInformation.sAspect) aspect = aspect in (1, 2, 5, 6, 9, 0xA, 0xD, 0xE) and "4:3" or "16:9" resolution += " - [" + aspect + "]" gammas = ("SDR", "HDR", "HDR10", "HLG", "") if self.info.getInfo( iServiceInformation.sGamma) < len(gammas): gamma = gammas[self.info.getInfo( iServiceInformation.sGamma)] if gamma: resolution += " - " + gamma f = open("/proc/stb/video/videomode") videomode = f.read()[:-1].replace('\n', '') f.close() codenumbers = subprocess.check_output([ 'dvbsnoop -n 1 -nph 1 | grep CA_system_ID | awk -F "=" "{print $2}" | awk -F "]" "{print $1}" | wc -l' ], shell=True) codesystem = subprocess.check_output([ "dvbsnoop -n 1 -nph 1 | grep CA_system_ID | awk -F '=' '{print $2}' | awk -F ']' '{print $1}'" ], shell=True) caidssyst = subprocess.check_output([ "dvbsnoop -n 1 -nph 1 | grep CA_system_ID | awk -F '(' '{print $2}' | awk -F ')' '{print $1}'" ], shell=True) Labels = ((_("Name"), name, TYPE_TEXT), (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), (_("Videoformat"), aspect, TYPE_TEXT), (_("Videomode"), videomode, TYPE_TEXT), (_("Videosize"), resolution, TYPE_TEXT), (_("Videocodec"), videocodec, TYPE_TEXT), (_("Namespace"), self.getServiceInfoValue( iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), (_("Service reference"), refstr, TYPE_TEXT), (_("Coding Systems"), codenumbers, TYPE_TEXT)) if codenumbers > 0: i = 0 caidssyst1 = caidssyst.splitlines() codesystem1 = codesystem.splitlines() while i < int(codenumbers): caidsystem = caidssyst1[i] + " " + codesystem1[i] i += 1 newlabel = ((_("%s " % i), caidsystem, TYPE_TEXT)) Labels = Labels + (newlabel, ) self.fillList(Labels) else: if self.transponder_info: tp_info = ConvertToHumanReadable(self.transponder_info) conv = { "tuner_type": _("Transponder type"), "system": _("System"), "modulation": _("Modulation"), "orbital_position": _("Orbital position"), "frequency": _("Frequency"), "symbol_rate": _("Symbol rate"), "bandwidth": _("Bandwidth"), "polarization": _("Polarization"), "inversion": _("Inversion"), "pilot": _("Pilot"), "rolloff": _("Roll-off"), "is_id": _("Input Stream ID"), "pls_mode": _("PLS Mode"), "pls_code": _("PLS Code"), "t2mi_plp_id": _("T2MI PID-PLP ID"), "fec_inner": _("FEC"), "code_rate_lp": _("Coderate LP"), "code_rate_hp": _("Coderate HP"), "constellation": _("Constellation"), "transmission_mode": _("Transmission mode"), "guard_interval": _("Guard interval"), "hierarchy_information": _("Hierarchy information") } Labels = [(conv[i], tp_info[i], i == "orbital_position" and TYPE_VALUE_ORBIT_DEC or TYPE_VALUE_DEC) for i in tp_info.keys() if i in conv] self.fillList(Labels)
def getText(self): service = self.source.service try: info = service and service.info() except: try: info = eServiceCenter.getInstance().info(service) except: pass if not info: return '' Ret_Text = '' Sec_Text = '' Res_Text = '' showCryptoInfo = False if self.type == self.SMART_INFO_H or self.type == self.SERVICE_INFO or self.type == self.CRYPTO_INFO or self.type == self.FREQUENCY_INFO: sep = ' ' sep2 = ' - ' elif self.type == self.SMART_INFO_V: sep = '\n' sep2 = '\n' else: return '' if self.type == self.FREQUENCY_INFO: try: feinfo = service and service.frontendInfo() prvd = info.getInfoString(iServiceInformation.sProvider) Ret_Text = self.short(prvd) frontendDataOrg = feinfo and feinfo.getAll(True) except: try: frontendDataOrg = info.getInfoObject( service, iServiceInformation.sTransponderData) prvd = info.getInfoString(service, iServiceInformation.sProvider) except: pass if frontendDataOrg is not None: frontendData = ConvertToHumanReadable(frontendDataOrg) if frontendDataOrg.get( 'tuner_type') == 'DVB-S' or frontendDataOrg.get( 'tuner_type') == 'DVB-C': frequency = str( frontendData.get('frequency') / 1000) + ' MHz' symbolrate = str(frontendData.get('symbol_rate') / 1000) fec_inner = frontendData.get('fec_inner') if frontendDataOrg.get('tuner_type') == 'DVB-S': Ret_Text += sep + frontendData.get('system') orbital_pos = int(frontendDataOrg['orbital_position']) if orbital_pos > 1800: if orbital_pos == 3590: orb_pos = 'Thor/Intelsat' elif orbital_pos == 3560: orb_pos = 'Amos (4' elif orbital_pos == 3550: orb_pos = 'Atlantic Bird' elif orbital_pos == 3530: orb_pos = 'Nilesat/Atlantic Bird' elif orbital_pos == 3520: orb_pos = 'Atlantic Bird' elif orbital_pos == 3475: orb_pos = 'Atlantic Bird' elif orbital_pos == 3460: orb_pos = 'Express' elif orbital_pos == 3450: orb_pos = 'Telstar' elif orbital_pos == 3420: orb_pos = 'Intelsat' elif orbital_pos == 3380: orb_pos = 'Nss' elif orbital_pos == 3355: orb_pos = 'Intelsat' elif orbital_pos == 3325: orb_pos = 'Intelsat' elif orbital_pos == 3300: orb_pos = 'Hispasat' elif orbital_pos == 3285: orb_pos = 'Intelsat' elif orbital_pos == 3170: orb_pos = 'Intelsat' elif orbital_pos == 3150: orb_pos = 'Intelsat' elif orbital_pos == 3070: orb_pos = 'Intelsat' elif orbital_pos == 3045: orb_pos = 'Intelsat' elif orbital_pos == 3020: orb_pos = 'Intelsat 9' elif orbital_pos == 2990: orb_pos = 'Amazonas' elif orbital_pos == 2900: orb_pos = 'Star One' elif orbital_pos == 2880: orb_pos = 'AMC 6 (72' elif orbital_pos == 2875: orb_pos = 'Echostar 6' elif orbital_pos == 2860: orb_pos = 'Horizons' elif orbital_pos == 2810: orb_pos = 'AMC5' elif orbital_pos == 2780: orb_pos = 'NIMIQ 4' elif orbital_pos == 2690: orb_pos = 'NIMIQ 1' elif orbital_pos == 3592: orb_pos = 'Thor/Intelsat' elif orbital_pos == 2985: orb_pos = 'Echostar 3,12' elif orbital_pos == 2830: orb_pos = 'Echostar 8' elif orbital_pos == 2630: orb_pos = 'Galaxy 19' elif orbital_pos == 2500: orb_pos = 'Echostar 10,11' elif orbital_pos == 2502: orb_pos = 'DirectTV 5' elif orbital_pos == 2410: orb_pos = 'Echostar 7 Anik F3' elif orbital_pos == 2391: orb_pos = 'Galaxy 23' elif orbital_pos == 2390: orb_pos = 'Echostar 9' elif orbital_pos == 2412: orb_pos = 'DirectTV 7S' elif orbital_pos == 2310: orb_pos = 'Galaxy 27' elif orbital_pos == 2311: orb_pos = 'Ciel 2' elif orbital_pos == 2120: orb_pos = 'Echostar 2' else: orb_pos = str( float(3600 - orbital_pos) / 10.0) + 'W' elif orbital_pos > 0: if orbital_pos == 192: orb_pos = 'Astra 1F' elif orbital_pos == 130: orb_pos = 'Hot Bird 6,7A,8' elif orbital_pos == 235: orb_pos = 'Astra 1E' elif orbital_pos == 1100: orb_pos = 'BSat 1A,2A' elif orbital_pos == 1101: orb_pos = 'N-Sat 110' elif orbital_pos == 1131: orb_pos = 'KoreaSat 5' elif orbital_pos == 1440: orb_pos = 'SuperBird 7,C2' elif orbital_pos == 1006: orb_pos = 'AsiaSat 2' elif orbital_pos == 1030: orb_pos = 'Express A2' elif orbital_pos == 1056: orb_pos = 'Asiasat 3S' elif orbital_pos == 1082: orb_pos = 'NSS 11' elif orbital_pos == 881: orb_pos = 'ST1' elif orbital_pos == 900: orb_pos = 'Yamal 201' elif orbital_pos == 917: orb_pos = 'Mesat' elif orbital_pos == 950: orb_pos = 'Insat 4B' elif orbital_pos == 951: orb_pos = 'NSS 6' elif orbital_pos == 765: orb_pos = 'Telestar' elif orbital_pos == 785: orb_pos = 'ThaiCom 5' elif orbital_pos == 800: orb_pos = 'Express' elif orbital_pos == 830: orb_pos = 'Insat 4A' elif orbital_pos == 850: orb_pos = 'Intelsat 709' elif orbital_pos == 750: orb_pos = 'Abs' elif orbital_pos == 720: orb_pos = 'Intelsat' elif orbital_pos == 705: orb_pos = 'Eutelsat W5' elif orbital_pos == 685: orb_pos = 'Intelsat' elif orbital_pos == 620: orb_pos = 'Intelsat 902' elif orbital_pos == 600: orb_pos = 'Intelsat 904' elif orbital_pos == 570: orb_pos = 'Nss' elif orbital_pos == 530: orb_pos = 'Express AM22' elif orbital_pos == 480: orb_pos = 'Eutelsat 2F2' elif orbital_pos == 450: orb_pos = 'Intelsat' elif orbital_pos == 420: orb_pos = 'Turksat 2A' elif orbital_pos == 400: orb_pos = 'Express AM1' elif orbital_pos == 390: orb_pos = 'Hellas Sat 2' elif orbital_pos == 380: orb_pos = 'Paksat 1' elif orbital_pos == 360: orb_pos = 'Eutelsat Sesat' elif orbital_pos == 335: orb_pos = 'Astra 1M' elif orbital_pos == 330: orb_pos = 'Eurobird 3' elif orbital_pos == 328: orb_pos = 'Galaxy 11' elif orbital_pos == 315: orb_pos = 'Astra 5A' elif orbital_pos == 310: orb_pos = 'Turksat' elif orbital_pos == 305: orb_pos = 'Arabsat' elif orbital_pos == 285: orb_pos = 'Eurobird 1' elif orbital_pos == 284: orb_pos = 'Eurobird/Astra' elif orbital_pos == 282: orb_pos = 'Eurobird/Astra' elif orbital_pos == 1220: orb_pos = 'AsiaSat' elif orbital_pos == 1380: orb_pos = 'Telstar 18' elif orbital_pos == 260: orb_pos = 'Badr 3/4' elif orbital_pos == 255: orb_pos = 'Eurobird 2' elif orbital_pos == 215: orb_pos = 'Eutelsat' elif orbital_pos == 216: orb_pos = 'Eutelsat W6' elif orbital_pos == 210: orb_pos = 'AfriStar 1' elif orbital_pos == 160: orb_pos = 'Eutelsat W2' elif orbital_pos == 100: orb_pos = 'Eutelsat W1' elif orbital_pos == 90: orb_pos = 'Eurobird 9' elif orbital_pos == 70: orb_pos = 'Eutelsat W3A' elif orbital_pos == 50: orb_pos = 'Sirius 4' elif orbital_pos == 48: orb_pos = 'Sirius 4' elif orbital_pos == 30: orb_pos = 'Telecom 2' else: orb_pos = str(float(orbital_pos) / 10.0) + 'E' Ret_Text += sep + orb_pos + '\n' Ret_Text += frequency + sep + frontendData.get( 'polarization_abbreviation') Ret_Text += sep + symbolrate Ret_Text += sep + frontendData.get( 'modulation') + '-' + fec_inner else: Ret_Text += sep + 'DVB-C ' + frequency + ' MHz' + sep + fec_inner + sep + symbolrate elif frontendData.get('tuner_type') == 'DVB-T': frequency = str( frontendData.get('frequency') / 1000) + ' MHz' Ret_Text = 'Frequency: ' + frequency if self.type == self.SMART_INFO_H or self.type == self.SMART_INFO_V or self.type == self.SERVICE_INFO: xresol = info.getInfo(iServiceInformation.sVideoWidth) yresol = info.getInfo(iServiceInformation.sVideoHeight) feinfo = service and service.frontendInfo() prvd = info.getInfoString(iServiceInformation.sProvider) Ret_Text = self.short(prvd) frontendDataOrg = feinfo and feinfo.getAll(True) if frontendDataOrg is not None: frontendData = ConvertToHumanReadable(frontendDataOrg) if frontendDataOrg.get( 'tuner_type') == 'DVB-S' or frontendDataOrg.get( 'tuner_type') == 'DVB-C': frequency = str(frontendData.get('frequency') / 1000) symbolrate = str(frontendData.get('symbol_rate') / 1000) fec_inner = frontendData.get('fec_inner') if frontendDataOrg.get('tuner_type') == 'DVB-S': Ret_Text += sep + frontendData.get('system') Ret_Text += sep + frequency + frontendData.get( 'polarization_abbreviation') Ret_Text += sep + symbolrate Ret_Text += sep + fec_inner + ' ' + frontendData.get( 'modulation') orbital_pos = int(frontendDataOrg['orbital_position']) if orbital_pos > 1800: orb_pos = str( float(3600 - orbital_pos) / 10.0) + 'W' elif orbital_pos > 0: orb_pos = str(float(orbital_pos) / 10.0) + 'E' Ret_Text += sep + orb_pos else: Ret_Text += sep + 'DVB-C ' + frequency + ' MHz' + sep + fec_inner + sep + symbolrate elif frontendDataOrg.get('tuner_type') == 'DVB-T': frequency = str(frontendData.get('frequency') / 1000) Ret_Text += sep + 'DVB-T' + sep + 'Frequency:' + sep + frequency + ' MHz' if feinfo is not None and xresol > 0: from Components.Converter.PliExtraInfo import codec_data Res_Text += codec_data.get( self.info.getInfo(iServiceInformation.sVideoType), 'N/A') Res_Text += str(xresol) + 'x' + str(yresol) Res_Text += ('i', 'p', '')[info.getInfo( iServiceInformation.sProgressive)] Res_Text += str( (info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) if self.type == self.SMART_INFO_H or self.type == self.SMART_INFO_V or self.type == self.CRYPTO_INFO: decCI = '0' Sec_Text = '' if info.getInfo(iServiceInformation.sIsCrypted) == 1: data = self.ecmdata.getEcmData() if not config.usage.show_cryptoinfo.value: showCryptoInfo = True Sec_Text = data[0] + '\n' decCI = data[1] provid = data[2] pid = data[3] if decCI != '0': decCIfull = '%04x' % int(decCI, 16) for idline in self.idnames: if int(decCI, 16) >= int(idline[0], 16) and int( decCI, 16) <= int(idline[1], 16): decCIfull = idline[2] + ':' + decCIfull break Sec_Text += decCIfull if provid != '0': Sec_Text += ':%04x' % int(provid, 16) else: Sec_Text += ':' if pid != '0': Sec_Text += ':%04x:%04x' % (info.getInfo( iServiceInformation.sSID), int(pid, 16)) elif not config.usage.show_cryptoinfo.value: showCryptoInfo = True Sec_Text = 'FTA' res = '' searchIDs = info.getInfoObject(iServiceInformation.sCAIDs) for idline in self.idnames: if int(decCI, 16) >= int(idline[0], 16) and int( decCI, 16) <= int(idline[1], 16): color = '\\c0000??00' else: color = '\\c007?7?7?' try: for oneID in searchIDs: if oneID >= int(idline[0], 16) and oneID <= int( idline[1], 16): color = '\\c00????00' except: pass res += color + idline[3] + ' ' if self.type != self.CRYPTO_INFO: Ret_Text += '\n' Ret_Text += res + '\\c00?????? ' + Sec_Text if Res_Text != '': if showCryptoInfo: Ret_Text += sep + Res_Text else: Ret_Text += '\n' + Res_Text return Ret_Text