Exemplo n.º 1
0
	def serviceList(self, param):
		print "serviceList: ", param
		sRef = str(param["sRef"])
		bouquet = str(param["bouquet"])
		self.sRefFound = 0

		if bouquet == '':
			returnList = []
			bouquet = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.tv" ORDER BY bouquet'
			ref = eServiceReference(bouquet)
			self.servicelist = ServiceList(ref, command_func=self.getServiceList, validate_commands=False)
			self.servicelist.setRoot(ref)
			for (ref2, name) in self.servicelist.getServicesAsList():
				part = self.serviceListOne(ref2, sRef)
				if part:
					returnList = returnList + [["-- " + name + " --", "<" + name + ">", ""]] + part
			bouquet = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.radio" ORDER BY bouquet'
			ref = eServiceReference(bouquet)
			self.servicelist = ServiceList(ref, command_func=self.getServiceList, validate_commands=False)
			self.servicelist.setRoot(ref)
			for (ref2, name) in self.servicelist.getServicesAsList():
				part = self.serviceListOne(ref2, sRef)
				if part:
					returnList = returnList + [["-- " + name + " --", "<" + name + ">", ""]] + part
		else:
			returnList = self.serviceListOne(bouquet, sRef)

		if self.sRefFound == 0 and sRef != '':
			returnListPart = ["Inserted", sRef, "selected"]
			returnList = [returnListPart] + returnList
		#print returnList
		return returnList
Exemplo n.º 2
0
def getServices(sRef,
                showAll=True,
                showHidden=False,
                pos=0,
                provider=False,
                picon=False):
    services = []
    allproviders = {}

    if sRef == "":
        sRef = '%s FROM BOUQUET "bouquets.tv" ORDER BY bouquet' % (
            service_types_tv)

    if provider:
        s_type = service_types_tv
        if "radio" in sRef:
            s_type = service_types_radio
        pserviceHandler = eServiceCenter.getInstance()
        pservices = pserviceHandler.list(
            eServiceReference('%s FROM PROVIDERS ORDER BY name' % (s_type)))
        providers = pservices and pservices.getContent("SN", True)

        if provider:
            for provider in providers:
                servicelist = ServiceList(eServiceReference(provider[0]))
                slist = servicelist.getServicesAsList()
                for sitem in slist:
                    allproviders[sitem[0]] = provider[1]

    servicelist = ServiceList(eServiceReference(sRef))
    slist = servicelist.getServicesAsList()

    for sitem in slist:
        st = int(sitem[0].split(":")[1])
        if (sitem[0][:7] == '1:832:D') or (not (st & 512) and not (st & 64)):
            pos = pos + 1
        if not st & 512 or showHidden:
            if showAll or st == 0:
                service = {}
                service['pos'] = 0 if (st & 64) else pos
                sr = unicode(sitem[0], 'utf_8',
                             errors='ignore').encode('utf_8', 'ignore')
                if picon:
                    service['picon'] = getPicon(sr)
                service['servicereference'] = sr
                service['program'] = int(
                    service['servicereference'].split(':')[3], 16)
                service['servicename'] = unicode(sitem[1],
                                                 'utf_8',
                                                 errors='ignore').encode(
                                                     'utf_8', 'ignore')
                if provider:
                    if sitem[0] in allproviders:
                        service['provider'] = allproviders[sitem[0]]
                    else:
                        service['provider'] = ""
                services.append(service)

    return {"services": services, "pos": pos}
Exemplo n.º 3
0
def getServices(sRef, showAll=True, showHidden=False):
    services = []

    if sRef == "":
        sRef = '%s FROM BOUQUET "bouquets.tv" ORDER BY bouquet' % (
            service_types_tv)

    servicelist = ServiceList(eServiceReference(sRef))
    slist = servicelist.getServicesAsList()

    for sitem in slist:
        st = int(sitem[0].split(":")[1])
        if not st & 512 or showHidden:
            if showAll or st == 0:
                service = {}
                service['servicereference'] = unicode(sitem[0],
                                                      'utf_8',
                                                      errors='ignore').encode(
                                                          'utf_8', 'ignore')
                service['servicename'] = unicode(sitem[1],
                                                 'utf_8',
                                                 errors='ignore').encode(
                                                     'utf_8', 'ignore')
                services.append(service)

    return {"services": services}
Exemplo n.º 4
0
    def updateEventCache(self):
        try:
            from Screens.ChannelSelection import service_types_tv
            from Components.Sources.ServiceList import ServiceList
            bouquetlist = ServiceList(
                eServiceReference(
                    service_types_tv +
                    ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet'),
                validate_commands=False).getServicesAsList()
            for bouquetitem in bouquetlist:
                serviceHandler = eServiceCenter.getInstance()
                list = serviceHandler.list(
                    eServiceReference(str(bouquetitem[0])))
                services = list and list.getContent('S')
                search = ['IBDCTSERNX']

                if services:  # It's a Bouquet
                    search.extend([(service, 0, -1) for service in services])

                events = self.epgcache.lookupEvent(search)

                for eventinfo in events:
                    #0 eventID | 4 eventname | 5 short descr | 6 long descr | 7 serviceref | 8 channelname
                    self.eventcache.append((eventinfo[0], eventinfo[7],
                                            eventinfo[8], eventinfo[4]))

        except Exception:
            print "[TVCharts Plugin] Error creating eventcache!"
Exemplo n.º 5
0
def getServices(sRef, showAll=True, showHidden=False, pos=0):
    services = []

    if sRef == "":
        sRef = '%s FROM BOUQUET "bouquets.tv" ORDER BY bouquet' % (
            service_types_tv)

    servicelist = ServiceList(eServiceReference(sRef))
    slist = servicelist.getServicesAsList()

    for sitem in slist:
        st = int(sitem[0].split(":")[1])
        if (sitem[0][:7] == '1:832:D') or (not (st & 512) and not (st & 64)):
            pos = pos + 1
        if not st & 512 or showHidden:
            if showAll or st == 0:
                service = {}
                service['pos'] = 0 if (st & 64) else pos
                service['servicereference'] = unicode(sitem[0],
                                                      'utf_8',
                                                      errors='ignore').encode(
                                                          'utf_8', 'ignore')
                service['program'] = int(
                    service['servicereference'].split(':')[3], 16)
                service['servicename'] = unicode(sitem[1],
                                                 'utf_8',
                                                 errors='ignore').encode(
                                                     'utf_8', 'ignore')
                services.append(service)

    return {"services": services, "pos": pos}
Exemplo n.º 6
0
	def render(self, req):
		try:
			w1 = req.uri.split("?")[1]
			w2 = w1.split("&")
			parts = {}
			for i in w2:
					w3 = i.split("=")
					parts[w3[0]] = w3[1]
		except:
			req.setResponseCode(200);
			return "no ref given with ref=???"

		if parts.has_key("ref"):
			s = '<br/>'
			ref = parts['ref'].replace('%20', ' ').replace('%3A', ':').replace('%22', '"')
			print ref
			fav = eServiceReference(ref)
			services = ServiceList(fav, command_func = None, validate_commands = False)
			sub = services.getServicesAsList()
			if len(sub) > 0:
				for (ref, name) in sub:
					s = s + '<p>'
					s = s + '<a href="http://%s:8001/%s" vod>%s</a>'%(req.host.host,ref,name)
				req.setResponseCode(200);
				req.setHeader('Content-type', 'text/html');
				return s;
		else:
			req.setResponseCode(200);
			return "no ref";
Exemplo n.º 7
0
	def buildList(self, ref, epg):
		self.servicelist = ServiceList(ref, command_func = self.getServiceList, validate_commands=False)
		list = self.servicelist.getServicesAsList()
		E2List = [] 
		for index in range(len(list)): 
			item = list[index]
			servicereference = item[0]
			servicename = item[1]
			eventstart = 0
			eventduration = 0
			eventtitle = ""
			eventid = 0
			eventdescription = ""
			eventdescriptionextended = ""
			if epg:
				epgref = item[0]
				events = self.epgcache.lookupEvent(['IBDTSERNX', (epgref, 0, -1)])
				if events:
					if events[0][0] is not None:
						eventid =  events[0][0]
					if events[0][1] is not None:
						eventstart =  events[0][1]
					if events[0][2] is not None:
						eventduration =  events[0][2]
					if events[0][3] is not None:
						eventtitle = events[0][3]
					if events[0][4] is not None:
						eventdescription= events[0][4]
					if events[0][5] is not None:
						eventdescriptionextended= events[0][5]
				E2List.append(E2EPGListAllData(servicereference = servicereference, servicename = servicename, eventstart = eventstart, eventduration = eventduration, eventtitle = eventtitle, eventid = eventid, eventdescription= eventdescription, eventdescriptionextended = eventdescriptionextended))
			else:
					E2List.append(E2ServiceList(servicereference = item[0], servicename = item[1]))
		return E2List
Exemplo n.º 8
0
	def getChannelList(self):
		if not self._channelList:
			from Components.Sources.ServiceList import ServiceList
			bouquet = eServiceReference('1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet')
			slist = ServiceList(bouquet, validate_commands=False)
			services = slist.getServicesAsList(format="S")
			self._channelList = services[:]
		return self._channelList
Exemplo n.º 9
0
	def __init__(self, session, request):
		WebScreen.__init__(self, session, request)

		from Components.Sources.ServiceList import ServiceList
		from Screens.ChannelSelection import service_types_tv

		fav = eServiceReference(service_types_tv + ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
		self["ServiceList"] = ServiceList(fav, command_func=self.getServiceList, validate_commands=False)
Exemplo n.º 10
0
    def __init__(self, session, request):
        WebScreen.__init__(self, session, request)
        from WebComponents.Sources.ServiceListRecursive import ServiceListRecursive
        from Components.Sources.ServiceList import ServiceList
        from Screens.ChannelSelection import service_types_tv

        fav = eServiceReference(service_types_tv +
                                ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
        self["SwitchService"] = ServiceList(fav,
                                            command_func=self.zapTo,
                                            validate_commands=False)
        self["ServiceList"] = ServiceList(fav,
                                          command_func=self.getServiceList,
                                          validate_commands=False)
        self["ServiceListRecursive"] = ServiceListRecursive(
            session, func=ServiceListRecursive.FETCH)
        self["localip"] = RequestData(request, what=RequestData.HOST)
Exemplo n.º 11
0
	def LSTC(self, args):
		if args:
			payload = "%d parameter not implemented" % (CODE_IMP_PARAM,)
			return self.sendLine(payload)
		from Components.Sources.ServiceList import ServiceList
		bouquet = eServiceReference('1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet')
		slist = ServiceList(bouquet, validate_commands=False)
		services = slist.getServicesAsList(format="SNn")
		if services:
			def getServiceInfoValue(info, sref, what):
				if info is None: return ""
				v = info.getInfo(sref.ref, what)
				if v == -2: return info.getInfoString(sref.ref, what)
				elif v == -1: return "N/A"
				return v
			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)

			self.channelList = [x[0] for x in services] # always refresh cache b/c this is what the user works with from now on
			lastItem = services.pop()
			idx = 1
			for service in services:
				sendServiceLine(service, idx)
				idx += 1
			sendServiceLine(lastItem, idx, last=True)
		else:
			payload = "%d no services found" % (CODE_ERR_LOCAL,)
			self.sendLine(payload)
Exemplo n.º 12
0
	def __init__(self, session, request):
		ServiceListWebScreen.__init__(self, session, request)
		LocationsAndTagsWebScreen.__init__(self, session, request)

		from Components.Sources.ServiceList import ServiceList
		from Screens.ChannelSelection import service_types_tv
		fav = eServiceReference(service_types_tv + ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
		self["BouquetList"] = ServiceList(fav, command_func=self.getBouquetList, validate_commands=False)
		#get the first bouquet and set it
		favlist = self["BouquetList"].getServicesAsList(format = "S")
		if len(favlist) > 0:
			self["ServiceList"].root = eServiceReference(favlist[0])
Exemplo n.º 13
0
def getServices(sRef):
    services = []

    if sRef == "":
        sRef = '%s FROM BOUQUET "bouquets.tv" ORDER BY bouquet' % (
            service_types_tv)

    servicelist = ServiceList(eServiceReference(sRef))
    slist = servicelist.getServicesAsList()
    for sitem in slist:
        service = {}
        service['servicereference'] = sitem[0]
        service['servicename'] = sitem[1]
        services.append(service)

    return {"services": services}
Exemplo n.º 14
0
 def serviceListOne(self, bouquet, selref):
     ref = eServiceReference(bouquet)
     self.servicelist = ServiceList(ref,
                                    command_func=self.getServiceList,
                                    validate_commands=False)
     self.servicelist.setRoot(ref)
     returnList = []
     for (ref2, name) in self.servicelist.getServicesAsList():
         print "ref2: (", ref2, ") name: (", name, ")"
         returnListPart = [name, ref2]
         if ref2 == str(selref):
             returnListPart.append("selected")
             self.sRefFound = 1
         else:
             returnListPart.append("")
         returnList.append(returnListPart)
     return returnList
Exemplo n.º 15
0
def getServices(sRef):
	services = []

	if sRef == "":
		sRef = '%s FROM BOUQUET "bouquets.tv" ORDER BY bouquet' % (service_types_tv)

	servicelist = ServiceList(eServiceReference(sRef))
	slist = servicelist.getServicesAsList()

	for sitem in slist:
		if not int(sitem[0].split(":")[1]) & 512:	# 512 is hidden service on sifteam image. Doesn't affect other images
			service = {}
			service['servicereference'] = sitem[0]
			service['servicename'] = sitem[1]
			services.append(service)

	return { "services": services }
Exemplo n.º 16
0
	def render(self, req):
		s = '<br/>'
		if config.usage.multibouquet.value:
			bouquet_rootstr = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.tv" ORDER BY bouquet'
		else:
			from Screens.ChannelSelection import service_types_tv
			bouquet_rootstr = '%s FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'%(service_types_tv)
		fav = eServiceReference(bouquet_rootstr)
		services = ServiceList(fav, command_func = None, validate_commands = False)
		sub = services.getServicesAsList()
		if len(sub) > 0:
			self.putChild('channel', ChannelList())
			for (ref, name) in sub:
				s = s + '<p>'
				ref = ref.replace(' ', '%20').replace(':', '%3A').replace('"', '%22')
				s = s + '<a href="/channel?ref=' + ref + '">' + name + '</a>'
			req.setResponseCode(200)
			req.setHeader('Content-type', 'text/html');
			return s;
Exemplo n.º 17
0
    def buildList(self, ref):
        self.servicelist = ServiceList(ref,
                                       command_func=self.getServiceList,
                                       validate_commands=False)
        list = self.servicelist.getServicesAsList()
        for item in list:
            self.servicelist.setRoot(eServiceReference(item[0]))
            sub = self.servicelist.getServicesAsList()

            if sub:
                self.xml += "\t<e2bouquet>\n"
                bouquet = True

                subxml = ""
                for (ref, name) in sub:
                    name = name.replace('\xc2\x86', '').replace('\xc2\x87', '')
                    subxml += "\t\t\t<e2service>\n"
                    subxml += "\t\t\t\t<e2servicereference>%s</e2servicereference>\n\t\t\t\t<e2servicename>%s</e2servicename>\n" % (
                        self.filterXML(ref), self.filterXML(name))
                    subxml += "\t\t\t</e2service>\n"

            else:
                self.xml += "\t\t<e2service>\n"
                bouquet = False

            self.xml += "\t\t<e2servicereference>%s</e2servicereference>\n\t\t<e2servicename>%s</e2servicename>\n" % (
                self.filterXML(item[0]), self.filterXML(item[1]))

            if bouquet:
                self.xml += "\t\t<e2servicelist>\n"
                self.xml += subxml
                self.xml += "\t\t</e2servicelist>\n"
                self.xml += "\t</e2bouquet>\n"
            else:
                self.xml += "\t</e2service>\n"

        return self.xml
Exemplo n.º 18
0
    def _init_services(self, ref):
        self.info(ref)
        servicelist = None

        def get_servicelist(ref):
            servicelist.root = ref

        if ref:
            ref = eServiceReference(ref)
            if not ref.valid():
                self.warning("Invalid ref %s" % ref)
                return []
        else:
            self.warning("Missing ref!")

        servicelist = ServiceList(ref,
                                  command_func=get_servicelist,
                                  validate_commands=False)
        services = servicelist.getServicesAsList()
        for ref, name in services:
            if ref.startswith("1:64"):  #skip markers
                continue
            child = self._gen_child(ref, name)
            self.add_child(child)
Exemplo n.º 19
0
def getServices(sRef,
                showAll=True,
                showHidden=False,
                pos=0,
                provider=False,
                picon=False):
    services = []
    allproviders = {}

    CalcPos = False

    if sRef == "":
        sRef = '%s FROM BOUQUET "bouquets.tv" ORDER BY bouquet' % (
            service_types_tv)
        CalcPos = True
    elif ' "bouquets.radio" ' in sRef:
        CalcPos = True
    elif ' "bouquets.tv" ' in sRef:
        CalcPos = True

    if provider:
        s_type = service_types_tv
        if "radio" in sRef:
            s_type = service_types_radio
        pserviceHandler = eServiceCenter.getInstance()
        pservices = pserviceHandler.list(
            eServiceReference('%s FROM PROVIDERS ORDER BY name' % (s_type)))
        providers = pservices and pservices.getContent("SN", True)

        if provider:
            for provider in providers:
                servicelist = ServiceList(eServiceReference(provider[0]))
                slist = servicelist.getServicesAsList()
                for sitem in slist:
                    allproviders[sitem[0]] = provider[1]

    servicelist = ServiceList(eServiceReference(sRef))
    slist = servicelist.getServicesAsList()
    serviceHandler = eServiceCenter.getInstance()

    oPos = 0
    for sitem in slist:

        oldoPos = oPos
        sref = sitem[0]
        if CalcPos and 'userbouquet' in sref:
            serviceslist = serviceHandler.list(eServiceReference(sref))
            sfulllist = serviceslist and serviceslist.getContent("RN", True)
            for citem in sfulllist:
                sref = citem[0].toString()
                hs = (int(sref.split(":")[1]) & 512)
                sp = (sref[:7] == '1:832:D') or (sref[:7]
                                                 == '1:832:1') or (sref[:6]
                                                                   == '1:320:')
                if not hs or sp:  # 512 is hidden service on sifteam image. Doesn't affect other images
                    oPos = oPos + 1
                    if not sp and citem[0].flags & eServiceReference.isMarker:
                        oPos = oPos - 1

        st = int(sitem[0].split(":")[1])
        sp = (sitem[0][:7] == '1:832:D') or (sitem[0][:7]
                                             == '1:832:1') or (sitem[0][:6]
                                                               == '1:320:')
        if sp or (not (st & 512) and not (st & 64)):
            pos = pos + 1
        if not st & 512 or showHidden:
            if showAll or st == 0:
                service = {}
                service['pos'] = 0 if (st & 64) else pos
                sr = unicode(sitem[0], 'utf_8',
                             errors='ignore').encode('utf_8', 'ignore')
                if CalcPos:
                    service['startpos'] = oldoPos
                if picon:
                    service['picon'] = getPicon(sr)
                service['servicereference'] = sr
                service['program'] = int(
                    service['servicereference'].split(':')[3], 16)
                service['servicename'] = unicode(sitem[1],
                                                 'utf_8',
                                                 errors='ignore').encode(
                                                     'utf_8', 'ignore')
                if provider:
                    if sitem[0] in allproviders:
                        service['provider'] = allproviders[sitem[0]]
                    else:
                        service['provider'] = ""
                services.append(service)

    return {"services": services, "pos": pos}
Exemplo n.º 20
0
    def setValue(self, oid, value):
        #the first time we are called, we have to fill the bisect oid store, values are just values, no objects (we cannot call value.get)
        try:
            value.get()
        except:
            return bisectoidstore.BisectOIDStore.setValue(self, oid, value)

        oidstring = bisectoidstore.sortableToOID(oid)
        if oidstring == self.MANAGERIP_OID:
            if config.plugins.SnmpAgent.managerip.value <> value.get():
                config.plugins.SnmpAgent.managerip.value = value.get()
                config.plugins.SnmpAgent.managerip.save()
        elif oidstring == self.ENABLE_BITRATE_OID:
            if config.plugins.SnmpAgent.measurebitrate.value and not value.get(
            ):
                config.plugins.SnmpAgent.measurebitrate.value = False
                config.plugins.SnmpAgent.measurebitrate.save()
                if self.bitrate:
                    self.bitrate.stop()
                    self.bitrate = None
            elif not config.plugins.SnmpAgent.measurebitrate.value and value.get(
            ):
                config.plugins.SnmpAgent.measurebitrate.value = True
                config.plugins.SnmpAgent.measurebitrate.save()
                self.bitrate = Bitrate(self.session)
                self.bitrate.start()
        elif oidstring == self.SYSTEMNAME_OID:
            if config.plugins.SnmpAgent.systemname.value <> value.get():
                config.plugins.SnmpAgent.systemname.value = value.get()
                config.plugins.SnmpAgent.systemname.save()
        elif oidstring == self.SUPPORTADDRESS_OID:
            if config.plugins.SnmpAgent.supportaddress.value <> value.get():
                config.plugins.SnmpAgent.supportaddress.value = value.get()
                config.plugins.SnmpAgent.supportaddress.save()
        elif oidstring == self.SYSTEMDESCRIPTION_OID:
            if config.plugins.SnmpAgent.systemdescription.value <> value.get():
                config.plugins.SnmpAgent.systemdescription.value = value.get()
                config.plugins.SnmpAgent.systemdescription.save()
        elif oidstring == self.LOCATION_OID:
            if config.plugins.SnmpAgent.location.value <> value.get():
                config.plugins.SnmpAgent.location.value = value.get()
                config.plugins.SnmpAgent.location.save()
        elif oidstring == self.CHANNELNAME_OID:
            if self.getChannelName() <> value.get():
                root = config.tv.lastroot.value.split(';')
                fav = eServiceReference(root[-2])
                services = ServiceList(fav,
                                       command_func=self.zapTo,
                                       validate_commands=False)
                sub = services.getServicesAsList()

                if len(sub) > 0:
                    for (ref, name) in sub:
                        if name == value.get():
                            self.zapTo(eServiceReference(ref))
                            break
        elif oidstring == self.SERVICESTRING_OID:
            if self.getServiceString() <> value.get():
                self.zapTo(eServiceReference(value.get()))
        elif oidstring == self.FASTSCANSTRING_OID:
            refstring = ''
            fields = value.get().split(',')
            if len(fields) >= 15:
                onid, tsid, freq, id1, id2, sid, orbital_pos, f1, f2, f3, symbolrate, f4, name, provider, servicetype = fields[
                    0:15]
                refstring = '%d:%d:%d:%x:%x:%x:%x:%x:%x:%x:' % (
                    1, 0, int(servicetype), int(sid), int(tsid), int(onid),
                    int(orbital_pos) * 65536, 0, 0, 0)
            if refstring is not '':
                self.zapTo(eServiceReference(refstring))
        elif oidstring == self.SERVICEPARAMS_OID:
            refstring = ''
            fields = value.get().split(',')
            if len(fields) >= 5:
                orbital_pos, tsid, onid, sid, servicetype = fields[0:5]
                refstring = '%d:%d:%d:%x:%x:%x:%x:%x:%x:%x:' % (
                    1, 0, int(servicetype), int(sid), int(tsid), int(onid),
                    int(orbital_pos) * 65536, 0, 0, 0)
            if refstring is not '':
                self.zapTo(eServiceReference(refstring))
        elif oidstring == self.IP_OID:
            ipstring = value.get().split('.')
            ipval = []
            for x in ipstring:
                ipval.append(int(x))
            if iNetwork.getAdapterAttribute(self.iface, "ip") <> ipval:
                iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
                iNetwork.setAdapterAttribute(self.iface, "ip", ipval)
                iNetwork.deactivateNetworkConfig()
                iNetwork.writeNetworkConfig()
                iNetwork.activateNetworkConfig()
        elif oidstring == self.IP_OID:
            ipstring = value.get().split('.')
            ipval = []
            for x in ipstring:
                ipval.append(int(x))
            if iNetwork.getAdapterAttribute(self.iface, "netmask") <> ipval:
                iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
                iNetwork.setAdapterAttribute(self.iface, "netmask", ipval)
                iNetwork.deactivateNetworkConfig()
                iNetwork.writeNetworkConfig()
                iNetwork.activateNetworkConfig()
        elif oidstring == self.GATEWAY_OID:
            ipstring = value.get().split('.')
            ipval = []
            for x in ipstring:
                ipval.append(int(x))
            if iNetwork.getAdapterAttribute(self.iface, "gateway") <> ipval:
                iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
                iNetwork.setAdapterAttribute(self.iface, "gateway", ipval)
                iNetwork.deactivateNetworkConfig()
                iNetwork.writeNetworkConfig()
                iNetwork.activateNetworkConfig()
        elif oidstring == self.ENABLE_EMM_OID:
            if config.plugins.SnmpAgent.checkemm.value and not value.get():
                config.plugins.SnmpAgent.checkemm.value = False
                config.plugins.SnmpAgent.checkemm.save()
                if self.emm:
                    self.emm.stop()
                    self.emm = None
            elif not config.plugins.SnmpAgent.checkemm.value and value.get():
                config.plugins.SnmpAgent.checkemm.value = True
                config.plugins.SnmpAgent.checkemm.save()
                self.emm = Emm(self.session)
                self.emm.start()
        else:
            print "oid not found!?"

        return None