dont send a diseqc switch command when simple rotor mode is used
[enigma2.git] / lib / python / Components / Sources / FrontendStatus.py
index f1402f110863d1f06ec979ea8302f16ffdb63251..1af03f95574da03fb3290a9f3ab247a557bf4734 100644 (file)
@@ -13,27 +13,36 @@ class FrontendStatus(Source):
                self.poll_timer.start(1000)
 
        def invalidate(self):
-               self.snr = self.agc = self.ber = self.lock = None
+               self.snr = self.agc = self.ber = self.lock = self.snr_db = None
 
        def updateFrontendStatus(self):
-               feinfo = self.getFrontendInfo()
-               if feinfo is None:
+               status = self.getFrontendStatus()
+               if not status:
                        self.invalidate()
                else:
-                       (self.snr, self.agc, self.ber, self.lock) = \
-                               [feinfo.getFrontendInfo(x) \
-                                       for x in [iFrontendInformation.signalPower, 
-                                               iFrontendInformation.signalQuality, 
-                                               iFrontendInformation.bitErrorRate, 
-                                               iFrontendInformation.lockState] ]
-
+                       self.snr = status.get("tuner_signal_power")
+                       self.snr_db = status.get("tuner_signal_power_db")
+                       self.agc = status.get("tuner_signal_quality")
+                       self.ber = status.get("tuner_bit_error_rate")
+                       self.lock = status.get("tuner_locked")
                self.changed((self.CHANGED_ALL, ))
 
-       def getFrontendInfo(self):
+       def getFrontendStatus(self):
                if self.frontend_source:
-                       return self.frontend_source()
+                       frontend = self.frontend_source()
+                       if frontend:
+                               dict = { }
+                               frontend.getFrontendStatus(dict)
                elif self.service_source:
                        service = self.service_source()
-                       return service and service.frontendInfo()
+                       feinfo = service and service.frontendInfo()
+                       return feinfo and feinfo.getFrontendStatus()
                else:
                        return None
+
+       def doSuspend(self, suspended):
+               if suspended:
+                       self.poll_timer.stop()
+               else:
+                       self.poll_timer.start(1000)
+