def sendServiceLine(service, counter, last=False): if service[0][:5] == '1:64:': # format for markers: ":Name" line = "%d%s:%s" % (CODE_OK, '-' if not last else ' ', service[1]) else: # <id> <full name>,<short name>;<provider>:<freq>:<parameters>:<source>:<srate>:<vpid>:<apid>:<tpid>:<conditional access>:<:sid>:<nid>:<tid>:<:rid> # e.g. 5 RTL Television,RTL:12188:h:S19.2E:27500:163:104:105:0:12003:1:1089:0 sref = ServiceReference(service[0]) info = sref.info() # XXX: how to get this?! o0 feinfo = None #sref.ref.frontendInfo() fedata = feinfo.getAll(True) if feinfo else {} prov = getServiceInfoValue(info, sref, iServiceInformation.sProvider) frequency = fedata.get("frequency", 0) / 1000 param = -1 source = '-1' srate = -1 vpid = '-1' apid = '-1' tpid = -1 ca = '-1' sid = -1 nid = -1 tid = -1 rid = -1 # TODO: support full format, these are only the important fields ;) line = "%d%s%d %s,%s;%s:%d:%s:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d" % ( CODE_OK, '-' if not last else ' ', counter, service[1], service[2], prov, frequency, param, source, srate, vpid, apid, tpid, ca, sid, nid, tid, rid) self.sendLine(line)
def sendServiceLine(service, counter, last=False): if service[0][:5] == '1:64:': # format for markers: ":Name" line = "%d%s:%s" % (CODE_OK, '-' if not last else ' ', service[1]) else: # <id> <full name>,<short name>;<provider>:<freq>:<parameters>:<source>:<srate>:<vpid>:<apid>:<tpid>:<conditional access>:<:sid>:<nid>:<tid>:<:rid> # e.g. 5 RTL Television,RTL:12188:h:S19.2E:27500:163:104:105:0:12003:1:1089:0 sref = ServiceReference(service[0]) info = sref.info() # XXX: how to get this?! o0 feinfo = None #sref.ref.frontendInfo() fedata = feinfo.getAll(True) if feinfo else {} prov = getServiceInfoValue(info, sref, iServiceInformation.sProvider) frequency = fedata.get("frequency", 0)/1000 param = -1 source = '-1' srate = -1 vpid = '-1' apid = '-1' tpid = -1 ca = '-1' sid = -1 nid = -1 tid = -1 rid = -1 # TODO: support full format, these are only the important fields ;) line = "%d%s%d %s,%s;%s:%d:%s:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d" % (CODE_OK, '-' if not last else ' ', counter, service[1], service[2], prov, frequency, param, source, srate, vpid, apid, tpid, ca, sid, nid, tid, rid) self.sendLine(line)
def onLayoutReady(self): #service = self.session.nav.getCurrentService() #info = service and service.info() #if (info is not None) and not(config.plugins.MerlinEPG.StartFirst.value): #nameROH = info.getName().replace('\xc2\x86', '').replace('\xc2\x87', '') if self.srvList: service = ServiceReference(self.srvList.getCurrentSelection()) info = service and service.info() nameROH = info and info.getName(service.ref).replace('\xc2\x86', '').replace('\xc2\x87', '') else: service = self.session.nav.getCurrentService() info = service and service.info() nameROH = info and info.getName().replace('\xc2\x86', '').replace('\xc2\x87', '') if (nameROH is not None) and not(config.plugins.MerlinEPG.StartFirst.value): # for idx in range(1, len(self.list)): name = str(idx) + ". " + nameROH if name == self.list[idx-1]: break self["prg_list"].moveToIndex(idx-1) else: self["prg_list"].moveToIndex(0) self.updateInfos()
def getTransponderInfo(ref): serviceref = ServiceReference(str(ref)) # print "serviceref:", serviceref info = serviceref.info() data = {} if info is None: return data transponder_info = info.getInfoObject(serviceref.ref, iServiceInformation.sTransponderData) if transponder_info is None: return data transponder_info["tsid"] = serviceref.ref.getUnsignedData(2) transponder_info["onid"] = serviceref.ref.getUnsignedData(3) transponder_info["namespace"] = serviceref.ref.getUnsignedData(4) return transponder_info
def onLayoutReady(self): #service = self.session.nav.getCurrentService() #info = service and service.info() #if (info is not None) and not(config.plugins.MerlinEPG.StartFirst.value): #nameROH = info.getName().replace('\xc2\x86', '').replace('\xc2\x87', '') if self.srvList: service = ServiceReference(self.srvList.getCurrentSelection()) info = service and service.info() nameROH = info and info.getName(service.ref).replace('\xc2\x86', '').replace('\xc2\x87', '') else: service = self.session.nav.getCurrentService() info = service and service.info() nameROH = info and info.getName().replace('\xc2\x86', '').replace('\xc2\x87', '') if (nameROH is not None) and not(config.plugins.MerlinEPG.StartFirst.value): # for idx in range(1, len(self.list)): name = str(idx) + ". " + nameROH if name == self.list[idx - 1]: break self["prg_list"].moveToIndex(idx - 1) else: self["prg_list"].moveToIndex(0) self.updateInfos()
def getServicePIDs(ref): """ PIDs are only available, if the service was tuned already in the current enigma2 session. """ serviceref = ServiceReference(str(ref)) info = serviceref.info() data = {} if info is None: return data data["vpid"] = getServiceInfoValue(info, serviceref.ref, iServiceInformation.sVideoPID) data["apid"] = getServiceInfoValue(info, serviceref.ref, iServiceInformation.sAudioPID) data["pcrpid"] = getServiceInfoValue(info, serviceref.ref, iServiceInformation.sPCRPID) data["pmtpid"] = getServiceInfoValue(info, serviceref.ref, iServiceInformation.sPMTPID) data["txtpid"] = getServiceInfoValue(info, serviceref.ref, iServiceInformation.sTXTPID) data["tsid"] = serviceref.ref.getUnsignedData(2) data["onid"] = serviceref.ref.getUnsignedData(3) data["sid"] = serviceref.ref.getUnsignedData(1) data["namespace"] = serviceref.ref.getUnsignedData(4) return data