+
+ @cached
+ def getText(self):
+ service = self.source.service
+ info = service and service.info()
+ if not info:
+ return ""
+
+ if self.type == self.XRES:
+ return self.getServiceInfoString(info, iServiceInformation.sVideoWidth)
+ elif self.type == self.YRES:
+ return self.getServiceInfoString(info, iServiceInformation.sVideoHeight)
+ elif self.type == self.APID:
+ return self.getServiceInfoString(info, iServiceInformation.sAudioPID)
+ elif self.type == self.VPID:
+ return self.getServiceInfoString(info, iServiceInformation.sVideoPID)
+ elif self.type == self.PCRPID:
+ return self.getServiceInfoString(info, iServiceInformation.sPCRPID)
+ elif self.type == self.PMTPID:
+ return self.getServiceInfoString(info, iServiceInformation.sPMTPID)
+ elif self.type == self.TXTPID:
+ return self.getServiceInfoString(info, iServiceInformation.sTXTPID)
+ elif self.type == self.TSID:
+ return self.getServiceInfoString(info, iServiceInformation.sTSID)
+ elif self.type == self.ONID:
+ return self.getServiceInfoString(info, iServiceInformation.sONID)
+ elif self.type == self.SID:
+ return self.getServiceInfoString(info, iServiceInformation.sSID)
+ elif self.type == self.FRAMERATE:
+ return self.getServiceInfoString(info, iServiceInformation.sFrameRate, lambda x: "%d fps" % ((x+500)/1000))
+ return ""
+
+ text = property(getText)
+
+ @cached
+ def getValue(self):
+ service = self.source.service
+ info = service and service.info()
+ if not info:
+ return -1
+
+ if self.type == self.XRES:
+ return info.getInfo(iServiceInformation.sVideoWidth)
+ if self.type == self.YRES:
+ return info.getInfo(iServiceInformation.sVideoHeight)
+ if self.type == self.FRAMERATE:
+ return info.getInfo(iServiceInformation.sFrameRate)
+
+ return -1
+
+ value = property(getValue)
+
+ def changed(self, what):
+ if what[0] != self.CHANGED_SPECIFIC or what[1] in self.interesting_events:
+ Converter.changed(self, what)