get plugged NIMs from /proc
[enigma2.git] / lib / python / Components / NimManager.py
index 8bbe2810545f7522cb3e54157b391f91b71a6a7f..f04d076d29d50ef87428e6a63d82adbb10a4810f 100644 (file)
@@ -18,6 +18,13 @@ from Tools import XMLTools
 from xml.sax import make_parser
 from xml.sax.handler import ContentHandler
 
+def tryOpen(filename):
+       try:
+               procFile = open(filename)
+       except IOError:
+               return ""
+       return procFile
+
 class SecConfigure:
        def addLNBSimple(self, slotid, orbpos, toneburstmode, diseqcmode, diseqcpos):
                #simple defaults
@@ -122,6 +129,30 @@ class NimManager:
 
        def getNimType(self, slotID):
                #FIXME get it from /proc
+               nimfile = tryOpen("/proc/bus/nim_sockets")
+
+               if nimfile == "":
+                       return self.nimType["empty/unknown"]
+
+               while 1:                
+                       line = nimfile.readline()
+                       if line == "":
+                               break
+                       if line.startswith("NIM Socket"):
+                               parts = line.strip().split(" ")
+                               id = int(parts[2][:1])
+                               if id == slotID:
+                                       line = nimfile.readline()
+                                       if line == "":
+                                               break
+                                       if line.startswith("   Type:"):
+                                               nimfile.close()
+                                               return self.nimType["DVB-S"]
+                                       else:
+                                               break   
+               nimfile.close()
+               return self.nimType["empty/unknown"]
+               
                if slotID == 0:
                        return self.nimType["DVB-S"]
                elif slotID == 1: