also show SNR in dB in PositionerSetup
[enigma2.git] / lib / python / Plugins / SystemPlugins / PositionerSetup / plugin.py
index 90de8b2fbca7ed7da446b95b32bf490a4b4805cd..928d72a65f227fba7bda6622cce84631ce46c904 100644 (file)
@@ -26,22 +26,20 @@ class PositionerSetup(Screen):
                        <widget name="green" position="140,155" size="140,80" backgroundColor="green" halign="center" valign="center" font="Regular;21" />
                        <widget name="yellow" position="280,155" size="140,80" backgroundColor="yellow" halign="center" valign="center" font="Regular;21" />
                        <widget name="blue" position="420,155" size="140,80" backgroundColor="blue" halign="center" valign="center" font="Regular;21" />
-                       
-                       <widget name="snr" text="SNR:" position="0,245" size="60,22" font="Regular;21" />
-                       <widget name="agc" text="AGC:" position="0,270" size="60,22" font="Regular;21" />
-                       <widget name="ber" text="BER:" position="0,295" size="60,22" font="Regular;21" />
-                       <widget name="lock" text="Lock:" position="0,320" size="60,22" font="Regular;21" />
-                       <widget name="snr_percentage" position="220,245" size="60,22" font="Regular;21" />
-                       <widget name="agc_percentage" position="220,270" size="60,22" font="Regular;21" />
+
+                       <widget name="snr_db" position="60,245" size="150,22" halign="center" valign="center" font="Regular;21" />
+                       <eLabel text="SNR:" position="0,270" size="60,22" font="Regular;21" />
+                       <eLabel text="BER:" position="0,295" size="60,22" font="Regular;21" />
+                       <eLabel text="Lock:" position="0,320" size="60,22" font="Regular;21" />
+                       <widget name="snr_percentage" position="220,270" size="60,22" font="Regular;21" />
                        <widget name="ber_value" position="220,295" size="60,22" font="Regular;21" />
                        <widget name="lock_state" position="60,320" size="150,22" font="Regular;21" />
-                       <widget name="snr_bar" position="60,245" size="150,22" />
-                       <widget name="agc_bar" position="60,270" size="150,22" />
+                       <widget name="snr_bar" position="60,270" size="150,22" />
                        <widget name="ber_bar" position="60,295" size="150,22" />
 
-                       <widget name="frequency" text="Frequency:" position="300,245" size="120,22" font="Regular;21" />
-                       <widget name="symbolrate" text="Symbolrate:" position="300,270" size="120,22" font="Regular;21" />
-                       <widget name="fec" text="FEC:" position="300,295" size="120,22" font="Regular;21" />
+                       <eLabel text="Frequency:" position="300,245" size="120,22" font="Regular;21" />
+                       <eLabel text="Symbolrate:" position="300,270" size="120,22" font="Regular;21" />
+                       <eLabel text="FEC:" position="300,295" size="120,22" font="Regular;21" />
                        <widget name="frequency_value" position="420,245" size="120,22" font="Regular;21" />
                        <widget name="symbolrate_value" position="420,270" size="120,22" font="Regular;21" />
                        <widget name="fec_value" position="420,295" size="120,22" font="Regular;21" />
@@ -81,27 +79,18 @@ class PositionerSetup(Screen):
                self["yellow"] = self.yellow
                self.blue = Label("")
                self["blue"] = self.blue
-               
+
                self.list = []
                self["list"] = ConfigList(self.list)
                self.createSetup()
-               
-               self["snr"] = Label()
-               self["agc"] = Label()
-               self["ber"] = Label()
-               self["lock"] = Label()
+
+               self["snr_db"] = TunerInfo(TunerInfo.SNR_DB, statusDict = self.frontendStatus)
                self["snr_percentage"] = TunerInfo(TunerInfo.SNR_PERCENTAGE, statusDict = self.frontendStatus)
-               self["agc_percentage"] = TunerInfo(TunerInfo.AGC_PERCENTAGE, statusDict = self.frontendStatus)
                self["ber_value"] = TunerInfo(TunerInfo.BER_VALUE, statusDict = self.frontendStatus)
                self["snr_bar"] = TunerInfo(TunerInfo.SNR_BAR, statusDict = self.frontendStatus)
-               self["agc_bar"] = TunerInfo(TunerInfo.AGC_BAR, statusDict = self.frontendStatus)
                self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, statusDict = self.frontendStatus)
                self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, statusDict = self.frontendStatus)
 
-               self["frequency"] = Label()
-               self["symbolrate"] = Label()
-               self["fec"] = Label()
-
                self["frequency_value"] = Label("")
                self["symbolrate_value"] = Label("")
                self["fec_value"] = Label("")
@@ -124,16 +113,21 @@ class PositionerSetup(Screen):
                
                self.statusTimer = eTimer()
                self.statusTimer.callback.append(self.updateStatus)
-               self.statusTimer.start(50, False)
+               self.statusTimer.start(50, True)
+               self.onClose.append(self.__onClose)
+
+       def __onClose(self):
+               self.session.nav.playService(self.oldref)
 
        def restartPrevService(self, yesno):
                if yesno:
                        if self.frontend:
                                self.frontend = None
                                del self.raw_channel
-                       self.session.nav.playService(self.oldref)
-               self.close(None)
-       
+               else:
+                       self.oldref=None
+               self.close(None)        
+
        def keyCancel(self):
                if self.oldref:
                        self.session.openWithCallback(self.restartPrevService, MessageBox, _("Zap back to service before positioner setup?"), MessageBox.TYPE_YESNO)
@@ -324,11 +318,10 @@ class PositionerSetup(Screen):
        def updateStatus(self):
                if self.frontend:
                        self.frontend.getFrontendStatus(self.frontendStatus)
+               self["snr_db"].update()
                self["snr_percentage"].update()
-               self["agc_percentage"].update()
                self["ber_value"].update()
                self["snr_bar"].update()
-               self["agc_bar"].update()
                self["ber_bar"].update()
                self["lock_state"].update()
                transponderdata = self.tuner.getTransponderData()
@@ -340,6 +333,7 @@ class PositionerSetup(Screen):
                        self.isMoving = False
                        self.stopOnLock = False
                        self.updateColors(self.getCurrentConfigPath())
+               self.statusTimer.start(50, True)
 
        def tune(self, transponder):
                if transponder is not None:
@@ -530,7 +524,7 @@ class TunerScreen(ScanSetup):
        def keyCancel(self):
                self.close(None)
 
-class NimSelection(Screen):
+class RotorNimSelection(Screen):
        skin = """
                <screen position="140,165" size="400,100" title="select Slot">
                        <widget name="nimlist" position="20,10" size="360,75" />
@@ -572,7 +566,7 @@ def PositionerMain(session, **kwargs):
                        if len(usableNims) == 1:
                                session.open(PositionerSetup, usableNims[0])
                        elif len(usableNims) > 1:
-                               session.open(NimSelection)
+                               session.open(RotorNimSelection)
                        else:
                                session.open(MessageBox, _("No tuner is configured for use with a diseqc positioner!"), MessageBox.TYPE_ERROR)