add possibility to enable / disable ac3 downmix in audio track selection
[enigma2.git] / lib / python / Screens / Satconfig.py
index 99be85c1a672d180f66eb6fdb3e0646417895f89..9f22013dcce3e1ccc3a4344a0789a72cb0c957c8 100644 (file)
@@ -1,10 +1,13 @@
 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 time import mktime, localtime
+from datetime import datetime
+
 class NimSetup(Screen, ConfigListScreen):
        def createSimpleSetup(self, list, mode):
                if mode == "single":
 class NimSetup(Screen, ConfigListScreen):
        def createSimpleSetup(self, list, mode):
                if mode == "single":
@@ -19,14 +22,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))
-#              elif self.nimConfig.positionerMode.value == "manual": # manual
-#                      pass
+               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))
+
+               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"
@@ -40,11 +52,16 @@ class NimSetup(Screen, ConfigListScreen):
                self.advancedUsalsEntry = None
                self.advancedLof = None
                self.advancedPowerMeasurement = None
                self.advancedUsalsEntry = None
                self.advancedLof = None
                self.advancedPowerMeasurement = None
-               
+               self.turningSpeed = None
+               self.turnFastEpochBegin = None
+               self.turnFastEpochEnd = None
+
+               self.cableScanType = None
+
                if self.nim.isCompatible("DVB-S"):
                        self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode)
                        self.list.append(self.configMode)
                if self.nim.isCompatible("DVB-S"):
                        self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode)
                        self.list.append(self.configMode)
-                       
+
                        if self.nimConfig.configMode.value == "simple":                 #simple setup
                                self.diseqcModeEntry = getConfigListEntry(_("DiSEqC Mode"), self.nimConfig.diseqcMode)
                                self.list.append(self.diseqcModeEntry)
                        if self.nimConfig.configMode.value == "simple":                 #simple setup
                                self.diseqcModeEntry = getConfigListEntry(_("DiSEqC Mode"), self.nimConfig.diseqcMode)
                                self.list.append(self.diseqcModeEntry)
@@ -66,20 +83,55 @@ class NimSetup(Screen, ConfigListScreen):
                                self.fillListWithAdvancedSatEntrys(currSat)
                        self.have_advanced = True
                elif self.nim.isCompatible("DVB-C"):
                                self.fillListWithAdvancedSatEntrys(currSat)
                        self.have_advanced = True
                elif self.nim.isCompatible("DVB-C"):
-                       self.list.append(getConfigListEntry(_("Service scan type needed"), self.nimConfig.cabletype))
+                       self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode)
+                       self.list.append(self.configMode)
+                       if self.nimConfig.configMode.value == "enabled":
+                               self.cableScanType=getConfigListEntry(_("Used service scan type"), self.nimConfig.cable.scan_type)
+                               self.list.append(self.cableScanType)
+                               if self.nimConfig.cable.scan_type.value == "provider":
+                                       self.list.append(getConfigListEntry(_("Provider to scan"), self.nimConfig.cable.scan_provider))
+                               else:
+                                       if self.nimConfig.cable.scan_type.value == "bands":
+                                               self.list.append(getConfigListEntry(_("Scan band EU VHF I"), self.nimConfig.cable.scan_band_EU_VHF_I))
+                                               self.list.append(getConfigListEntry(_("Scan band EU MID"), self.nimConfig.cable.scan_band_EU_MID))
+                                               self.list.append(getConfigListEntry(_("Scan band EU VHF III"), self.nimConfig.cable.scan_band_EU_VHF_III))
+                                               self.list.append(getConfigListEntry(_("Scan band EU UHF IV"), self.nimConfig.cable.scan_band_EU_UHF_IV))
+                                               self.list.append(getConfigListEntry(_("Scan band EU UHF V"), self.nimConfig.cable.scan_band_EU_UHF_V))
+                                               self.list.append(getConfigListEntry(_("Scan band EU SUPER"), self.nimConfig.cable.scan_band_EU_SUPER))
+                                               self.list.append(getConfigListEntry(_("Scan band EU HYPER"), self.nimConfig.cable.scan_band_EU_HYPER))
+                                               self.list.append(getConfigListEntry(_("Scan band US LOW"), self.nimConfig.cable.scan_band_US_LOW))
+                                               self.list.append(getConfigListEntry(_("Scan band US MID"), self.nimConfig.cable.scan_band_US_MID))
+                                               self.list.append(getConfigListEntry(_("Scan band US HIGH"), self.nimConfig.cable.scan_band_US_HIGH))
+                                               self.list.append(getConfigListEntry(_("Scan band US SUPER"), self.nimConfig.cable.scan_band_US_SUPER))
+                                               self.list.append(getConfigListEntry(_("Scan band US HYPER"), self.nimConfig.cable.scan_band_US_HYPER))
+                                       elif self.nimConfig.cable.scan_type.value == "steps":
+                                               self.list.append(getConfigListEntry(_("Frequency scan step size(khz)"), self.nimConfig.cable.scan_frequency_steps))
+                                       self.list.append(getConfigListEntry(_("Scan QAM16"), self.nimConfig.cable.scan_mod_qam16))
+                                       self.list.append(getConfigListEntry(_("Scan QAM32"), self.nimConfig.cable.scan_mod_qam32))
+                                       self.list.append(getConfigListEntry(_("Scan QAM64"), self.nimConfig.cable.scan_mod_qam64))
+                                       self.list.append(getConfigListEntry(_("Scan QAM128"), self.nimConfig.cable.scan_mod_qam128))
+                                       self.list.append(getConfigListEntry(_("Scan QAM256"), self.nimConfig.cable.scan_mod_qam256))
+                                       self.list.append(getConfigListEntry(_("Scan SR6900"), self.nimConfig.cable.scan_sr_6900))
+                                       self.list.append(getConfigListEntry(_("Scan SR6875"), self.nimConfig.cable.scan_sr_6875))
+                                       self.list.append(getConfigListEntry(_("Scan additional SR"), self.nimConfig.cable.scan_sr_ext1))
+                                       self.list.append(getConfigListEntry(_("Scan additional SR"), self.nimConfig.cable.scan_sr_ext2))
                        self.have_advanced = False
                elif self.nim.isCompatible("DVB-T"):
                        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
                        self.have_advanced = False
-                       self.list.append(getConfigListEntry(_("Terrestrial provider"), self.nimConfig.terrestrial))
-                       self.list.append(getConfigListEntry(_("Enable 5V for active antenna"), self.nimConfig.terrestrial_5V))
+                       if self.nimConfig.configMode.value == "enabled":
+                               self.list.append(getConfigListEntry(_("Terrestrial provider"), self.nimConfig.terrestrial))
+                               self.list.append(getConfigListEntry(_("Enable 5V for active antenna"), self.nimConfig.terrestrial_5V))
                else:
                        self.have_advanced = False
                else:
                        self.have_advanced = False
-
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
        def newConfig(self):
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
        def newConfig(self):
-               checkList = (self.configMode, self.diseqcModeEntry, self.advancedSatsEntry, self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, self.advancedLof, self.advancedPowerMeasurement)
+               checkList = (self.configMode, self.diseqcModeEntry, self.advancedSatsEntry, \
+                       self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, \
+                       self.advancedLof, self.advancedPowerMeasurement, self.turningSpeed, self.cableScanType)
                for x in checkList:
                        if self["config"].getCurrent() == x:
                                self.createSetup()
                for x in checkList:
                        if self["config"].getCurrent() == x:
                                self.createSetup()
@@ -87,7 +139,13 @@ 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..
+                               tm = localtime(x[1].value)
+                               dt = datetime(1970, 1, 1, tm.tm_hour, tm.tm_min)
+                               x[1].value = int(mktime(dt.timetuple()))
                        x[1].save()
                nimmanager.sec.update()
 
                        x[1].save()
                nimmanager.sec.update()
 
@@ -127,10 +185,17 @@ class NimSetup(Screen, ConfigListScreen):
                                        self.list.append(getConfigListEntry(" ", currLnb.longitudeOrientation))
                                        self.list.append(getConfigListEntry(_("Latitude"), currLnb.latitude))
                                        self.list.append(getConfigListEntry(" ", currLnb.latitudeOrientation))
                                        self.list.append(getConfigListEntry(" ", currLnb.longitudeOrientation))
                                        self.list.append(getConfigListEntry(_("Latitude"), currLnb.latitude))
                                        self.list.append(getConfigListEntry(" ", currLnb.latitudeOrientation))
-                                       self.advancedPowerMeasurement = getConfigListEntry("Use Power Measurement", currLnb.powerMeasurement)
+                                       self.advancedPowerMeasurement = getConfigListEntry(_("Use Power Measurement"), currLnb.powerMeasurement)
                                        self.list.append(self.advancedPowerMeasurement)
                                        self.list.append(self.advancedPowerMeasurement)
-                                       if currLnb.powerMeasurement.value == "yes":
-                                               self.list.append(getConfigListEntry("Power Threshold in mA", currLnb.powerThreshold))
+                                       if currLnb.powerMeasurement.value:
+                                               self.list.append(getConfigListEntry(_("Power threshold in mA"), currLnb.powerThreshold))
+                                               self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), currLnb.turningSpeed)
+                                               self.list.append(self.turningSpeed)
+                                               if currLnb.turningSpeed.value == "fast epoch":
+                                                       self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), currLnb.fastTurningBegin)
+                                                       self.turnFastEpochEnd = getConfigListEntry(_("End time"), currLnb.fastTurningEnd)
+                                                       self.list.append(self.turnFastEpochBegin)
+                                                       self.list.append(self.turnFastEpochEnd)
                        self.advancedLof = getConfigListEntry(_("LOF"), currLnb.lof)
                        self.list.append(self.advancedLof)
                        if currLnb.lof.value == "user_defined":
                        self.advancedLof = getConfigListEntry(_("LOF"), currLnb.lof)
                        self.list.append(self.advancedLof)
                        if currLnb.lof.value == "user_defined":