1 from GUIComponent import GUIComponent
3 from enigma import eLabel, eSlider, iFrontendStatusInformation
7 class TunerInfo(GUIComponent):
16 def __init__(self, type, servicefkt):
17 GUIComponent.__init__(self)
22 self.servicefkt = servicefkt
26 def setText(self, text):
29 self.instance.setText(self.message)
31 def setValue(self, value):
34 self.instance.setValue(self.value)
40 return (long)(log(val)/log(2))
44 service = self.servicefkt()
46 if service is not None:
47 feinfo = service.frontendStatusInfo()
48 if feinfo is not None:
49 if self.type == self.SNR_PERCENTAGE or self.type == self.SNR_BAR:
50 value = feinfo.getFrontendInfo(iFrontendStatusInformation.signalPower) * 100 / 65536
51 elif self.type == self.AGC_PERCENTAGE or self.type == self.AGC_BAR:
52 value = feinfo.getFrontendInfo(iFrontendStatusInformation.signalQuality) * 100 / 65536
53 elif self.type == self.BER_VALUE or self.type == self.BER_BAR:
54 value = feinfo.getFrontendInfo(iFrontendStatusInformation.bitErrorRate)
55 elif self.type == self.LOCK_STATE:
56 value = feinfo.getFrontendInfo(iFrontendStatusInformation.LockState)
58 if self.type == self.SNR_PERCENTAGE or self.type == self.AGC_PERCENTAGE:
59 self.setText("%d%%" % (value))
60 elif self.type == self.BER_VALUE:
61 self.setText("%d" % (value))
62 elif self.type == self.SNR_BAR or self.type == self.AGC_BAR:
64 elif self.type == self.BER_BAR:
65 self.setValue(self.calc(value))
66 elif self.type == self.LOCK_STATE:
68 self.setText(_("locked"))
70 self.setText(_("not locked"))
72 def createWidget(self, parent):
73 if self.SNR_PERCENTAGE <= self.type <= self.BER_VALUE or self.type == self.LOCK_STATE:
75 elif self.SNR_BAR <= self.type <= self.BER_BAR:
76 self.g = eSlider(parent)
77 self.g.setRange(0, 100)
80 def GUIcreate(self, parent):
81 self.instance = self.createWidget(parent)
82 if self.message is not None:
83 self.instance.setText(self.message)
84 elif self.value is not None:
85 self.instance.setValue(self.value)
88 self.removeWidget(self.instance)
91 def removeWidget(self, instance):