Merge branch 'bug_587_new_internally_connectable_and_unsupported_tuner_management...
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 6 Oct 2010 07:00:42 +0000 (09:00 +0200)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 6 Oct 2010 07:00:42 +0000 (09:00 +0200)
Conflicts:
lib/python/Components/NimManager.py

1  2 
lib/python/Components/NimManager.py

@@@ -471,7 -481,7 +481,8 @@@ class SecConfigure
                self.update()
  
  class NIM(object):
-       def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, i2c = None):
 -      def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None):
++      def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None, i2c = None):
++
                self.slot = slot
  
                if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", None):
                self.has_outputs = has_outputs
                self.internally_connectable = internally_connectable
                self.multi_type = multi_type
 +              self.i2c = i2c
+               self.frontend_id = frontend_id
  
        def isCompatible(self, what):
+               if not self.isSupported():
+                       return False
                compatible = {
                                None: (None,),
                                "DVB-S": ("DVB-S", None),
@@@ -699,15 -725,18 +733,21 @@@ class NimManager
                        if not (entry.has_key("name") and entry.has_key("type")):
                                entry["name"] =  _("N/A")
                                entry["type"] = None
 +                      if not (entry.has_key("i2c")):
 +                              entry["i2c"] = None
                        if not (entry.has_key("has_outputs")):
                                entry["has_outputs"] = True
-                       if not (entry.has_key("internally_connectable")):
-                               entry["internally_connectable"] = None
+                       if entry.has_key("frontend_device"): # check if internally connectable
+                               if path.exists("/proc/stb/frontend/%d/rf_switch" % entry["frontend_device"]):
+                                       entry["internally_connectable"] = entry["frontend_device"] - 1
+                               else:
+                                       entry["internally_connectable"] = None
+                       else:
+                               entry["frontend_device"] = entry["internally_connectable"] = None
                        if not (entry.has_key("multi_type")):
                                entry["multi_type"] = {}
-                       self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"], i2c = entry["i2c"]))
 -                      self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"], frontend_id = entry["frontend_device"]))
++                      self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"], frontend_id = entry["frontend_device"], i2c = entry["i2c"]))
++
  
        def hasNimType(self, chktype):
                for slot in self.nim_slots: