read transponders from sat.xml
[enigma2.git] / lib / python / Components / NimManager.py
index 53c6b62..f636254 100644 (file)
@@ -99,10 +99,11 @@ class nimSlot:
 
 class NimManager:
        class parseSats(ContentHandler):
-               def __init__(self, satList, satellites):
+               def __init__(self, satList, satellites, transponders):
                        self.isPointsElement, self.isReboundsElement = 0, 0
                        self.satList = satList
                        self.satellites = satellites
+                       self.transponders = transponders
        
                def startElement(self, name, attrs):
                        if (name == "sat"):
@@ -111,6 +112,21 @@ class NimManager:
                                tname = attrs.get('name',"")
                                self.satellites[tpos] = tname
                                self.satList.append( (tname, tpos) )
+                               self.parsedSat = int(tpos)
+                       elif (name == "transponder"):
+                               freq = int(attrs.get('frequency',""))
+                               sr = int(attrs.get('symbol_rate',""))
+                               pol = int(attrs.get('polarization',""))
+                               fec = int(attrs.get('fec_inner',""))
+                               if self.parsedSat in self.transponders:
+                                       pass
+                               else:
+                                       self.transponders[self.parsedSat] = [ ]
+
+                               self.transponders[self.parsedSat].append((0, freq, sr, pol, fec))
+
+       def getTransponders(self, pos):
+               return self.transponders[pos]
 
        def getConfiguredSats(self):
                return self.sec.getSatList()
@@ -120,10 +136,11 @@ class NimManager:
 
        def readSatsfromFile(self):
                self.satellites = { }
+               self.transponders = { }
 
                print "Reading satellites.xml"
                parser = make_parser()
-               satHandler = self.parseSats(self.satList, self.satellites)
+               satHandler = self.parseSats(self.satList, self.satellites, self.transponders)
                parser.setContentHandler(satHandler)
                parser.parse('/etc/tuxbox/satellites.xml')
 
@@ -159,13 +176,6 @@ class NimManager:
                                                break   
                nimfile.close()
                return self.nimType["empty/unknown"]
-               
-               if slotID == 0:
-                       return self.nimType["DVB-S"]
-               elif slotID == 1:
-                       return self.nimType["DVB-S"]
-               else:
-                       return self.nimType["empty/unknown"]
 
        def getNimName(self, slotID):
                #FIXME get it from /proc
@@ -187,7 +197,7 @@ class NimManager:
                self.satList = [ ]                                                                              
                                                                                                
                self.readSatsfromFile()                                                                         
-                                                                                               
+               
                self.nimCount = self.getNimSocketCount()
                
                self.nimslots = [ ]
@@ -214,17 +224,19 @@ class NimManager:
                return list
        
        def getSatListForNim(self, slotid):
-               #print "slotid:", slotid
                list = []
-               #print "self.satellites:", self.satList[config.Nims[slotid].diseqcA.value]
-               #print "diseqcA:", config.Nims[slotid].diseqcA.value
-               if (config.Nims[slotid].diseqcMode.value <= 3):
-                       list.append(self.satList[config.Nims[slotid].diseqcA.value])
-               if (0 < config.Nims[slotid].diseqcMode.value <= 3):
-                       list.append(self.satList[config.Nims[slotid].diseqcB.value])
-               if (config.Nims[slotid].diseqcMode.value == 3):
-                       list.append(self.satList[config.Nims[slotid].diseqcC.value])
-                       list.append(self.satList[config.Nims[slotid].diseqcD.value])
+               if (self.getNimType(slotid) != self.nimType["empty/unknown"]):
+                       #print "slotid:", slotid
+                       
+                       #print "self.satellites:", self.satList[config.Nims[slotid].diseqcA.value]
+                       #print "diseqcA:", config.Nims[slotid].diseqcA.value
+                       if (config.Nims[slotid].diseqcMode.value <= 3):
+                               list.append(self.satList[config.Nims[slotid].diseqcA.value])
+                       if (0 < config.Nims[slotid].diseqcMode.value <= 3):
+                               list.append(self.satList[config.Nims[slotid].diseqcB.value])
+                       if (config.Nims[slotid].diseqcMode.value == 3):
+                               list.append(self.satList[config.Nims[slotid].diseqcC.value])
+                               list.append(self.satList[config.Nims[slotid].diseqcD.value])
                return list
 
        #callbacks for c++ config