make menu text translatable
[enigma2.git] / lib / python / Plugins / SystemPlugins / Satfinder / plugin.py
index 6d177e4c024e79d0c6206758a74853c2cbc35d87..7456885533002f271c1b959fc66538a49e2d2069 100644 (file)
@@ -1,4 +1,4 @@
-from enigma import eTimer, eDVBResourceManager,\
+from enigma import eDVBResourceManager,\
        eDVBFrontendParametersSatellite, eDVBFrontendParameters
 
 from Screens.Screen import Screen
@@ -41,7 +41,7 @@ class Tuner:
 class Satfinder(ScanSetup):
        skin = """
                <screen position="90,100" size="520,400" title="Tune">
-                       <widget name="config" position="20,10" size="460,240" scrollbarMode="showOnDemand" />
+                       <widget name="config" position="20,10" size="460,210" scrollbarMode="showOnDemand" />
                        <widget name="introduction" position="20,360" zPosition="-10" size="350,30" font="Regular;23" />
                        <eLabel text="dB:" position="23,230" size="60,22" font="Regular;21" />
                        <eLabel text="SNR:" position="23,255" size="60,22" font="Regular;21" />
@@ -69,11 +69,11 @@ class Satfinder(ScanSetup):
                        <widget source="Frontend" render="Progress" position="85,307" size="200,22" >
                                <convert type="FrontendInfo">BER</convert>
                        </widget>
-                       <widget source="Frontend" render="Pixmap" pixmap="key_green-fs8.png" position="295,330" zPosition="4" size="28,20" alphatest="on" >
+                       <widget source="Frontend" render="Pixmap" pixmap="skin_default/buttons/key_green.png" position="295,330" zPosition="4" size="28,20" alphatest="on" >
                                <convert type="FrontendInfo">LOCK</convert>
                        <convert type="ConditionalShowHide" />
                        </widget>
-                       <widget source="Frontend" render="Pixmap" pixmap="key_red-fs8.png" position="295,330" zPosition="4" size="28,20" alphatest="on" >
+                       <widget source="Frontend" render="Pixmap" pixmap="skin_default/buttons/key_red.png" position="295,330" zPosition="4" size="28,20" alphatest="on" >
                                <convert type="FrontendInfo">LOCK</convert>
                        <convert type="ConditionalShowHide">Invert</convert>
                        </widget>
@@ -113,8 +113,12 @@ class Satfinder(ScanSetup):
                ScanSetup.__init__(self, session)
                self.tuner = Tuner(self.frontend)
                self["introduction"].setText("")
-               self["Frontend"] = FrontendStatus(frontend_source = self.frontend, update_interval = 100)
+               self["Frontend"] = FrontendStatus(frontend_source = lambda : self.frontend, update_interval = 100)
                self.initcomplete = True
+               self.onClose.append(self.__onClose)
+
+       def __onClose(self):
+               self.session.nav.playService(self.oldref)
 
        def createSetup(self):
                self.typeOfTuningEntry = None
@@ -154,10 +158,14 @@ class Satfinder(ScanSetup):
                if satpos is not None:
                        if self.tuning_type.value == "manual_transponder":
                                returnvalue = (self.scan_sat.frequency.value, self.scan_sat.symbolrate.value, self.scan_sat.polarization.index, self.scan_sat.fec.index, self.scan_sat.inversion.index, satpos)
+                               self.tune(returnvalue)
                        elif self.tuning_type.value == "predefined_transponder":
-                               transponder = nimmanager.getTransponders(satpos)[self.tuning_transponder.index]
-                               returnvalue = (int(transponder[1] / 1000), int(transponder[2] / 1000), transponder[3], transponder[4], 2, satpos)
-                       self.tune(returnvalue)
+                               tps = nimmanager.getTransponders(satpos)
+                               l = len(tps)
+                               if l > self.tuning_transponder.index:
+                                       transponder = nimmanager.getTransponders(satpos)[self.tuning_transponder.index]
+                                       returnvalue = (int(transponder[1] / 1000), int(transponder[2] / 1000), transponder[3], transponder[4], 2, satpos)
+                                       self.tune(returnvalue)
 
        def createConfig(self, foo):
                self.tuning_transponder = None
@@ -180,6 +188,7 @@ class Satfinder(ScanSetup):
                if orb_pos is not None:
                        transponderlist = nimmanager.getTransponders(orb_pos)
                        list = []
+                       default = None
                        for x in transponderlist:
                                if x[3] == 0:
                                        pol = "H"
@@ -189,6 +198,8 @@ class Satfinder(ScanSetup):
                                        pol = "CL"
                                elif x[3] == 3:
                                        pol = "CR"
+                               else:
+                                       pol = "??"
                                if x[4] == 0:
                                        fec = "FEC_AUTO"
                                elif x[4] == 1:
@@ -201,12 +212,23 @@ class Satfinder(ScanSetup):
                                        fec = "FEC_5_6"
                                elif x[4] == 5:
                                        fec = "FEC_7_8"
-                               elif x[4] == 5:
-                                       fec = "FEC_8_9"
                                elif x[4] == 6:
+                                       fec = "FEC_8_9"
+                               elif x[4] == 7:
+                                       fec = "FEC_3_5"
+                               elif x[4] == 8:
+                                       fec = "FEC_4_5"
+                               elif x[4] == 9:
+                                       fec = "FEC_9_10"
+                               elif x[4] == 15:
                                        fec = "FEC_None"
-                               list.append(str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec)
-                       self.tuning_transponder = ConfigSelection(choices = list)
+                               else:
+                                       fec = "FEC_Unknown"
+                               e = str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec
+                               if default is None:
+                                       default = e
+                               list.append(e)
+                       self.tuning_transponder = ConfigSelection(choices = list, default = default)
                        self.tuning_transponder.addNotifier(self.retune, initial_call = False)
 
        def keyGo(self):
@@ -217,7 +239,8 @@ class Satfinder(ScanSetup):
                        if self.frontend:
                                self.frontend = None
                                del self.raw_channel
-                       self.session.nav.playService(self.oldref)
+               else:
+                       self.oldref = None
                self.close(None)
 
        def keyCancel(self):
@@ -231,7 +254,7 @@ class Satfinder(ScanSetup):
                        if transponder is not None:
                                self.tuner.tune(transponder)
 
-class NimSelection(Screen):
+class SatNimSelection(Screen):
        skin = """
                <screen position="140,165" size="400,100" title="select Slot">
                        <widget name="nimlist" position="20,10" size="360,75" />
@@ -268,16 +291,16 @@ def SatfinderMain(session, **kwargs):
                        if len(nimList) == 1:
                                session.open(Satfinder, nimList[0])
                        else:
-                               session.open(NimSelection)
+                               session.open(SatNimSelection)
 
 def SatfinderStart(menuid, **kwargs):
        if menuid == "scan":
-               return [(_("Satfinder"), SatfinderMain)]
+               return [(_("Satfinder"), SatfinderMain, "satfinder", None)]
        else:
                return []
 
 def Plugins(**kwargs):
        if (nimmanager.hasNimType("DVB-S")):
-               return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_SETUP, fnc=SatfinderStart)
+               return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_MENU, fnc=SatfinderStart)
        else:
                return []