ask to delete unconfigured satellites when leave tuner configuration
[enigma2.git] / lib / python / Screens / Satconfig.py
index 2921972165860fddc95501944cbef9ab2edbec00..bd97948f6c23c7950cf55e4b28b7a0b5e9b72b96 100644 (file)
@@ -1,9 +1,11 @@
+from enigma import eDVBDB
 from Screen import Screen
 from Components.ActionMap import ActionMap
 from Screen import Screen
 from Components.ActionMap import ActionMap
-from Components.ConfigList import ConfigList, ConfigListScreen
+from Components.ConfigList import ConfigListScreen
 from Components.MenuList import MenuList
 from Components.NimManager import nimmanager
 from Components.config import getConfigListEntry, config, ConfigNothing
 from Components.MenuList import MenuList
 from Components.NimManager import nimmanager
 from Components.config import getConfigListEntry, config, ConfigNothing
+from Screens.MessageBox import MessageBox
 
 from time import mktime, localtime
 from datetime import datetime
 
 from time import mktime, localtime
 from datetime import datetime
@@ -22,22 +24,23 @@ class NimSetup(Screen, ConfigListScreen):
                                list.append(getConfigListEntry(_("Port D"), self.nimConfig.diseqcD))
 
        def createPositionerSetup(self, list):
                                list.append(getConfigListEntry(_("Port D"), self.nimConfig.diseqcD))
 
        def createPositionerSetup(self, list):
-#              list.append(getConfigListEntry(_("Positioner mode"), self.nimConfig.positionerMode))
-#              if self.nimConfig.positionerMode.value == "usals": # USALS
-               list.append(getConfigListEntry(_("Longitude"), self.nimConfig.longitude))
-               list.append(getConfigListEntry(" ", self.nimConfig.longitudeOrientation))
-               list.append(getConfigListEntry(_("Latitude"), self.nimConfig.latitude))
-               list.append(getConfigListEntry(" ", self.nimConfig.latitudeOrientation))
-               self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), self.nimConfig.turningSpeed)
-               self.list.append(self.turningSpeed)
-               if self.nimConfig.turningSpeed.value == "fast epoch":
-                       self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), self.nimConfig.fastTurningBegin)
-                       self.turnFastEpochEnd = getConfigListEntry(_("End time"), self.nimConfig.fastTurningEnd)
-                       self.list.append(self.turnFastEpochBegin)
-                       self.list.append(self.turnFastEpochEnd)
+               nim = self.nimConfig
+               list.append(getConfigListEntry(_("Longitude"), nim.longitude))
+               list.append(getConfigListEntry(" ", nim.longitudeOrientation))
+               list.append(getConfigListEntry(_("Latitude"), nim.latitude))
+               list.append(getConfigListEntry(" ", nim.latitudeOrientation))
 
 
-#              elif self.nimConfig.positionerMode.value == "manual": # manual
-#                      pass
+               self.advancedPowerMeasurement = getConfigListEntry(_("Use Power Measurement"), nim.powerMeasurement)
+               list.append(self.advancedPowerMeasurement)
+               if nim.powerMeasurement.value:
+                       list.append(getConfigListEntry(_("Power threshold in mA"), nim.powerThreshold))
+                       self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), nim.turningSpeed)
+                       list.append(self.turningSpeed)
+                       if nim.turningSpeed.value == "fast epoch":
+                               self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), nim.fastTurningBegin)
+                               self.turnFastEpochEnd = getConfigListEntry(_("End time"), nim.fastTurningEnd)
+                               list.append(self.turnFastEpochBegin)
+                               list.append(self.turnFastEpochEnd)
 
        def createSetup(self):
                print "Creating setup"
 
        def createSetup(self):
                print "Creating setup"
@@ -117,6 +120,7 @@ class NimSetup(Screen, ConfigListScreen):
                        self.have_advanced = False
                elif self.nim.isCompatible("DVB-T"):
                        self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode)
                        self.have_advanced = False
                elif self.nim.isCompatible("DVB-T"):
                        self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode)
+                       self.list.append(self.configMode)
                        self.have_advanced = False
                        if self.nimConfig.configMode.value == "enabled":
                                self.list.append(getConfigListEntry(_("Terrestrial provider"), self.nimConfig.terrestrial))
                        self.have_advanced = False
                        if self.nimConfig.configMode.value == "enabled":
                                self.list.append(getConfigListEntry(_("Terrestrial provider"), self.nimConfig.terrestrial))
@@ -137,7 +141,7 @@ class NimSetup(Screen, ConfigListScreen):
        def run(self):
                if self.have_advanced and self.nim.config_mode == "advanced":
                        self.fillAdvancedList()
        def run(self):
                if self.have_advanced and self.nim.config_mode == "advanced":
                        self.fillAdvancedList()
-               for x in self["config"].list:
+               for x in self.list:
                        if x in [self.turnFastEpochBegin, self.turnFastEpochEnd]:
                                # workaround for storing only hour*3600+min*60 value in configfile
                                # not really needed.. just for cosmetics..
                        if x in [self.turnFastEpochBegin, self.turnFastEpochEnd]:
                                # workaround for storing only hour*3600+min*60 value in configfile
                                # not really needed.. just for cosmetics..
@@ -145,7 +149,37 @@ class NimSetup(Screen, ConfigListScreen):
                                dt = datetime(1970, 1, 1, tm.tm_hour, tm.tm_min)
                                x[1].value = int(mktime(dt.timetuple()))
                        x[1].save()
                                dt = datetime(1970, 1, 1, tm.tm_hour, tm.tm_min)
                                x[1].value = int(mktime(dt.timetuple()))
                        x[1].save()
+
+               old_configured_sats = nimmanager.getConfiguredSats()
                nimmanager.sec.update()
                nimmanager.sec.update()
+               new_configured_sats = nimmanager.getConfiguredSats()
+               self.unconfed_sats = old_configured_sats - new_configured_sats
+               self.satpos_to_remove = None
+               self.deleteConfirmed(False)
+
+       def deleteConfirmed(self, confirmed):
+               if confirmed:
+                       eDVBDB.getInstance().removeServices(-1, -1, -1, self.satpos_to_remove)
+
+               if self.satpos_to_remove is not None:
+                       self.unconfed_sats.remove(self.satpos_to_remove)
+
+               self.satpos_to_remove = None
+               for orbpos in self.unconfed_sats:
+                       self.satpos_to_remove = orbpos
+                       orbpos = self.satpos_to_remove
+                       try:
+                               # why we need this cast?
+                               sat_name = str(nimmanager.getSatDescription(orbpos))
+                       except:
+                               if orbpos > 1800: # west
+                                       orbpos = 3600 - orbpos
+                                       h = _("W")
+                               else:
+                                       h = _("E")
+                               sat_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10)
+                       self.session.openWithCallback(self.deleteConfirmed, MessageBox, _("Delete no more configured satellite\n%s?") %(sat_name))
+                       break
 
        def fillListWithAdvancedSatEntrys(self, Sat):
                currLnb = self.nimConfig.advanced.lnb[int(Sat.lnb.value)]
 
        def fillListWithAdvancedSatEntrys(self, Sat):
                currLnb = self.nimConfig.advanced.lnb[int(Sat.lnb.value)]