fix caching
[enigma2.git] / lib / python / Components / Converter / FrontendInfo.py
index afff2a7a90e33310652f5589a4a583b8d015963d..e2923a95a3264f88673e773b72193ed760bf2da7 100644 (file)
@@ -1,4 +1,5 @@
 from Components.Converter.Converter import Converter
+from Components.Element import cached
 
 class FrontendInfo(Converter, object):
        BER = 0
@@ -6,8 +7,8 @@ class FrontendInfo(Converter, object):
        AGC = 2
        LOCK = 3
 
-       def __init__(self, type, *args, **kwargs):
-               Converter.__init__(self)
+       def __init__(self, type):
+               Converter.__init__(self, type)
                if type == "BER":
                        self.type = self.BER
                elif type == "SNR":
@@ -17,6 +18,7 @@ class FrontendInfo(Converter, object):
                else:
                        self.type = self.LOCK
 
+       @cached
        def getText(self):
                assert self.type != self.LOCK, "the text output of FrontendInfo cannot be used for lock info"
                if self.type == self.BER: # as count
@@ -35,14 +37,19 @@ class FrontendInfo(Converter, object):
 
                return "%d %%" % (percent * 100 / 65536)
 
+       @cached
        def getBool(self):
-               assert self.type == LOCK, "the boolean output of FrontendInfo can only be used for lock info"
-               return self.source.lock
+               assert self.type in [self.LOCK, self.BER], "the boolean output of FrontendInfo can only be used for lock or BER info"
+               if self.type == self.LOCK:
+                       return self.source.lock
+               else:
+                       return self.source.ber > 0
 
        text = property(getText)
 
        boolean = property(getBool)
 
+       @cached
        def getValue(self):
                assert self.type != self.LOCK, "the value/range output of FrontendInfo can not be used for lock info"
                if self.type == self.AGC: