support only one upstream element (source)
[vuplus_dvbapp] / lib / python / Components / NimManager.py
index f3e1b7c..c24d8d3 100644 (file)
@@ -251,11 +251,11 @@ class SecConfigure:
                                                
                                                if currentConfigSelectionElement(currLnb.diseqcRepeats) == "none":
                                                        sec.setRepeats(0)
-                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "One":
+                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "one":
                                                        sec.setRepeats(1)
-                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "Two":
+                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "two":
                                                        sec.setRepeats(2)
-                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "Three":
+                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "three":
                                                        sec.setRepeats(3)
                                                
                                        setCommandOrder=False
@@ -348,16 +348,18 @@ class NimManager:
                                self.satList.append( (tname, tpos) )
                                self.parsedSat = int(tpos)
                        elif (name == "transponder"):
+                               modulation = int(attrs.get('modulation',"1")) # QPSK default
+                               system = int(attrs.get('system',"0")) # DVB-S default
                                freq = int(attrs.get('frequency',""))
                                sr = int(attrs.get('symbol_rate',""))
                                pol = int(attrs.get('polarization',""))
-                               fec = int(attrs.get('fec_inner',""))
+                               fec = int(attrs.get('fec_inner',"0")) # AUTO default
                                if self.parsedSat in self.transponders:
                                        pass
                                else:
                                        self.transponders[self.parsedSat] = [ ]
 
-                               self.transponders[self.parsedSat].append((0, freq, sr, pol, fec))
+                               self.transponders[self.parsedSat].append((0, freq, sr, pol, fec, system, modulation))
 
        class parseCables(ContentHandler):
                def __init__(self, cablesList, transponders):
@@ -374,8 +376,8 @@ class NimManager:
                        elif (name == "transponder"):
                                freq = int(attrs.get('frequency',""))
                                sr = int(attrs.get('symbol_rate',""))
-                               mod = int(attrs.get('modulation',""))
-                               fec = int(attrs.get('fec_inner',""))
+                               mod = int(attrs.get('modulation',"3")) # QAM64 default
+                               fec = int(attrs.get('fec_inner',"0")) # AUTO default
                                if self.parsedCab in self.transponders:
                                        pass
                                else:
@@ -398,14 +400,18 @@ class NimManager:
                        elif (name == "transponder"):
                                # TODO finish this!
                                freq = int(attrs.get('centre_frequency',""))
-                               bw = int(attrs.get('bandwidth',""))
-                               const = int(attrs.get('constellation',""))
-                               crh = int(attrs.get('code_rate_hp',""))
-                               crl = int(attrs.get('code_rate_lp',""))
-                               guard = int(attrs.get('guard_interval',""))
-                               transm = int(attrs.get('transmission_mode',""))
-                               hierarchy = int(attrs.get('hierarchy_information',""))
-                               inv = int(attrs.get('inversion',""))
+                               bw = int(attrs.get('bandwidth',"3")) # AUTO
+                               const = int(attrs.get('constellation',"1")) # AUTO
+                               crh = int(attrs.get('code_rate_hp',"5")) # AUTO
+                               if crh > 5: # our terrestrial.xml is buggy... 6 for AUTO
+                                       crh = 5
+                               crl = int(attrs.get('code_rate_lp',"5")) # AUTO
+                               if crl > 5: # our terrestrial.xml is buggy... 6 for AUTO
+                                       crl = 5
+                               guard = int(attrs.get('guard_interval',"4")) # AUTO
+                               transm = int(attrs.get('transmission_mode',"2")) # AUTO
+                               hierarchy = int(attrs.get('hierarchy_information',"4")) # AUTO
+                               inv = int(attrs.get('inversion',"2")) # AUTO
                                if self.parsedTer in self.transponders:
                                        pass
                                else:
@@ -582,6 +588,11 @@ class NimManager:
                        #print "self.satellites:", self.satList[config.Nims[slotid].diseqcA.value]
                        #print "diseqcA:", config.Nims[slotid].diseqcA.value
                        configMode = currentConfigSelectionElement(config.Nims[slotid].configMode)
+
+                       if configMode == "equal":
+                               slotid=0 #FIXME add handling for more than two tuners !!!
+                               configMode = currentConfigSelectionElement(config.Nims[slotid].configMode)
+
                        if configMode == "simple":
                                if (config.Nims[slotid].diseqcMode.value <= 3):
                                        list.append(self.satList[config.Nims[slotid].diseqcA.value])
@@ -597,6 +608,7 @@ class NimManager:
                                for x in self.satList:
                                        if config.Nims[slotid].advanced.sat[x[1]].lnb.value != 0:
                                                list.append(x)
+
                return list
 
        def getRotorSatListForNim(self, slotid):
@@ -693,9 +705,9 @@ def InitNimManager(nimmgr):
                        nim.diseqcC = configElement(cname + "diseqcC", configSatlist, 0, nimmgr.satList, False);
                        nim.diseqcD = configElement(cname + "diseqcD", configSatlist, 0, nimmgr.satList, False);
                        nim.positionerMode = configElement(cname + "positionerMode", configSelection, 0, (("usals", _("USALS")), ("manual", _("manual"))), False);
-                       nim.longitude = configElement(cname + "longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)]), False);
+                       nim.longitude = configElement(cname + "longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,359),(0,999)]), False);
                        nim.longitudeOrientation = configElement(cname + "longitudeOrientation", configSelection, 0, (("east", _("East")), ("west", _("West"))), False)
-                       nim.latitude = configElement(cname + "latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)]), False);
+                       nim.latitude = configElement(cname + "latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,359),(0,999)]), False);
                        nim.latitudeOrientation = configElement(cname + "latitudeOrientation", configSelection, 0, (("north", _("North")), ("south", _("South"))), False)
                        satNimList = nimmgr.getNimListOfType(nimmgr.nimType["DVB-S"], slot.slotid)
                        satNimListNames = []
@@ -754,9 +766,9 @@ def InitNimManager(nimmgr):
                                nim.advanced.lnb[x].commandOrder = configElement(cname + "advanced.lnb" + str(x) + ".commandOrder", configSelection, 0, ("committed, toneburst", "toneburst, committed", "committed, uncommitted, toneburst", "toneburst, committed, uncommitted", "uncommitted, committed, toneburst", "toneburst, uncommitted, commmitted"), False)
                                nim.advanced.lnb[x].uncommittedDiseqcCommand = configElement(cname + "advanced.lnb" + str(x) + ".uncommittedDiseqcCommand", configSelection, 0, ucsw, False)
                                nim.advanced.lnb[x].diseqcRepeats = configElement(cname + "advanced.lnb" + str(x) + ".diseqcRepeats", configSelection, 0, (("none", _("None")), ("one", _("One")), ("two", _("Two")), ("three", _("Three"))), False)
-                               nim.advanced.lnb[x].longitude = configElement(cname + "advanced.lnb" + str(x) + ".longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)]), False)
+                               nim.advanced.lnb[x].longitude = configElement(cname + "advanced.lnb" + str(x) + ".longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,359),(0,999)]), False)
                                nim.advanced.lnb[x].longitudeOrientation = configElement(cname + "advanced.lnb" + str(x) + ".longitudeOrientation", configSelection, 0, (("east", _("East")), ("west", _("West"))), False)
-                               nim.advanced.lnb[x].latitude = configElement(cname + "advanced.lnb" + str(x) + ".latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)]), False)
+                               nim.advanced.lnb[x].latitude = configElement(cname + "advanced.lnb" + str(x) + ".latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,359),(0,999)]), False)
                                nim.advanced.lnb[x].latitudeOrientation = configElement(cname + "advanced.lnb" + str(x) + ".latitudeOrientation", configSelection, 0, (("north", _("North")), ("south", _("South"))), False)
                                nim.advanced.lnb[x].powerMeasurement = configElement(cname + "advanced.lnb" + str(x) + ".powerMeasurement", configSelection, 0, (("yes", _("Yes")), ("no", _("No"))), False)
                                nim.advanced.lnb[x].powerThreshold = configElement(cname + "advanced.lnb" + str(x) + ".powerThreshold", configSequence, [50], configsequencearg.get("INTEGER", (0, 100)), False)
@@ -767,9 +779,11 @@ def InitNimManager(nimmgr):
                        for x in nimmgr.terrestrialsList:
                                list.append(x[0])
                        nim.terrestrial = configElement(cname + "terrestrial", configSelection, 0, list, False);
+                       nim.terrestrial_5V = configElement(cname + "terrestrial_5V", configSelection, 1, (("on", _("On")), ("off", _("Off"))), True);
                else:
                        print "pls add support for this frontend type!"         
 
        nimmgr.sec = SecConfigure(nimmgr)
 
+
 nimmanager = NimManager()