# (c) 2boom mod from Components.Converter.Converter import Converter from enigma import iServiceInformation, iPlayableService, iPlayableServicePtr from Components.Element import cached class ServiceOrbitalPosition2(Converter, object): def __init__(self, type): Converter.__init__(self, type) @cached def getText(self): service = self.source.service if isinstance(service, iPlayableServicePtr): info = service and service.info() ref = None else: # reference info = service and self.source.info ref = service if info is None: return "" if ref: transponder_info = info.getInfoObject(ref, iServiceInformation.sTransponderData) else: transponder_info = info.getInfoObject(iServiceInformation.sTransponderData) if ref: refString = ref.toString().lower() if "%3a//" in refString: return _("Stream") if refString.startswith("1:134:"): return _("Altern") if transponder_info and "orbital_position" in transponder_info.keys(): pos = int(transponder_info["orbital_position"]) direction = 'E' if pos > 1800: pos = 3600 - pos direction = 'W' return "%d%d%s" % (pos/10, pos%10, direction) return "picon_default" text = property(getText) def changed(self, what): if what[0] != self.CHANGED_SPECIFIC or what[1] in [iPlayableService.evStart]: Converter.changed(self, what)