dont start timers as recurring timers... this is better for blocking syscalls
[enigma2.git] / lib / python / Plugins / SystemPlugins / PositionerSetup / plugin.py
index 457648104b95dca49ecd085d016f36a8ce1f850f..d67a97cb4d4eaf3b3d3dc30c6b72b3175dd3596e 100644 (file)
@@ -123,17 +123,22 @@ class PositionerSetup(Screen):
                self.updateColors("tune")
                
                self.statusTimer = eTimer()
-               self.statusTimer.timeout.get().append(self.updateStatus)
-               self.statusTimer.start(50, False)
+               self.statusTimer.callback.append(self.updateStatus)
+               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)
@@ -340,6 +345,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:
@@ -482,6 +488,8 @@ class TunerScreen(ScanSetup):
                                        pol = "CL"
                                elif x[3] == 3:
                                        pol = "CR"
+                               else:
+                                       pol = "??"
                                if x[4] == 0:
                                        fec = "FEC_AUTO"
                                elif x[4] == 1:
@@ -494,10 +502,18 @@ class TunerScreen(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"
+                               else:
+                                       fec = "FEC_Unknown"
                                tps.append(str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec)
                        tuning.transponder = ConfigSelection(choices=tps)
 
@@ -520,7 +536,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" />
@@ -529,11 +545,10 @@ class NimSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
 
-               nimlist = nimmanager.getNimListOfType(nimmanager.nimType["DVB-S"])
+               nimlist = nimmanager.getNimListOfType("DVB-S")
                nimMenuList = []
                for x in nimlist:
-                       n = nimmanager.nim_slots[x]
-                       nimMenuList.append((n.friendly_full_name, x))
+                       nimMenuList.append((nimmanager.nim_slots[x].friendly_full_description, x))
                
                self["nimlist"] = MenuList(nimMenuList)
 
@@ -563,13 +578,13 @@ 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)
 
 def PositionerSetupStart(menuid, **kwargs):
        if menuid == "scan":
-               return [(_("Positioner setup"), PositionerMain, "positioner_setup")]
+               return [(_("Positioner setup"), PositionerMain, "positioner_setup", None)]
        else:
                return []