X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b9bda8a0d43be892f2e5d96ea45ba8d4b2fdae20..194615a88fac0c4259b3c2217c8e13372b7c3b86:/lib/python/Components/Sources/FrontendStatus.py diff --git a/lib/python/Components/Sources/FrontendStatus.py b/lib/python/Components/Sources/FrontendStatus.py index d9311771..4d38f754 100644 --- a/lib/python/Components/Sources/FrontendStatus.py +++ b/lib/python/Components/Sources/FrontendStatus.py @@ -1,27 +1,27 @@ from Source import Source -from enigma import eTimer, iFrontendInformation +from enigma import eTimer class FrontendStatus(Source): - def __init__(self, service_source = None, frontend_source = None): + def __init__(self, service_source = None, frontend_source = None, update_interval = 1000): Source.__init__(self) + self.update_interval = update_interval self.service_source = service_source self.frontend_source = frontend_source self.invalidate() - self.poll_timer = eTimer() self.poll_timer.timeout.get().append(self.updateFrontendStatus) - self.poll_timer.start(1000) + self.poll_timer.start(update_interval) 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): - print "updateFrontendStatus" status = self.getFrontendStatus() if not status: self.invalidate() else: 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") @@ -30,9 +30,10 @@ class FrontendStatus(Source): def getFrontendStatus(self): if self.frontend_source: frontend = self.frontend_source() + dict = { } if frontend: - dict = { } frontend.getFrontendStatus(dict) + return dict elif self.service_source: service = self.service_source() feinfo = service and service.frontendInfo() @@ -44,5 +45,8 @@ class FrontendStatus(Source): if suspended: self.poll_timer.stop() else: - self.poll_timer.start(1000) + self.poll_timer.start(self.update_interval) + + def destroy(self): + self.poll_timer.timeout.get().remove(self.updateFrontendStatus)