Example #1
0
 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)
Example #2
0
			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)
Example #3
0
	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()
Example #4
0
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
Example #5
0
	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()
Example #6
0
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