added config-callbacks for nimsetup
authorRonny Strutz <ronny.strutz@multimedia-labs.de>
Sat, 8 Oct 2005 02:11:07 +0000 (02:11 +0000)
committerRonny Strutz <ronny.strutz@multimedia-labs.de>
Sat, 8 Oct 2005 02:11:07 +0000 (02:11 +0000)
lib/python/Components/NimManager.py

index 6af1e76516c77a478c5e7f1d21eaf9d6e6c611a7..d214832642d59595b8c491a053db3194bfd7b6b7 100644 (file)
@@ -11,6 +11,13 @@ from xml.dom import EMPTY_NAMESPACE
 from skin import elementsWithTag
 from Tools import XMLTools
 
+class boundFunction:
+       def __init__(self, fnc, *args):
+               self.fnc = fnc
+               self.args = args
+       def __call__(self, *args):
+               self.fnc(*self.args + args)
+
 class nimSlot:
        def __init__(self, slotid, nimtype, name):
                self.slotid = slotid
@@ -87,9 +94,38 @@ class NimManager:
                        list.append((nimText, slot))
                return list
 
+       #callbacks for c++ config
+       def nimConfigModeChanged(self, slotid, mode):
+               print "nimConfigModeChanged set to " + str(mode)
+       def nimDiseqcModeChanged(self, slotid, mode):
+               print "nimDiseqcModeChanged set to " + str(mode)
+       def nimPortAChanged(self, slotid, val):
+               print "nimDiseqcA set to " + str(val)
+       def nimPortBChanged(self, slotid, val):
+               print "nimDiseqcB set to " + str(val)
+       def nimPortCChanged(self, slotid, val):
+               print "nimDiseqcC set to " + str(val)
+       def nimPortDChanged(self, slotid, val):
+               print "nimDiseqcD set to " + str(val)
+
+
 def InitNimManager(nimmgr):
        config.Nims = [ConfigSubsection()] * nimmgr.nimCount
 
+       def nimConfigModeChanged(slotid, configElement):
+               nimmgr.nimConfigModeChanged(slotid, configElement.value)
+       def nimDiseqcModeChanged(slotid, configElement):
+               nimmgr.nimDiseqcModeChanged(slotid, configElement.value)
+               
+       def nimPortAChanged(slotid, configElement):
+               nimmgr.nimPortAChanged(slotid, configElement.vals[configElement.value][1])
+       def nimPortBChanged(slotid, configElement):
+               nimmgr.nimPortBChanged(slotid, configElement.vals[configElement.value][1])
+       def nimPortCChanged(slotid, configElement):
+               nimmgr.nimPortCChanged(slotid, configElement.vals[configElement.value][1])
+       def nimPortDChanged(slotid, configElement):
+               nimmgr.nimPortDChanged(slotid, configElement.vals[configElement.value][1])
+
        for slot in nimmgr.nimslots:
                x = slot.slotid
                cname = nimmgr.getConfigPrefix(x)
@@ -101,19 +137,14 @@ def InitNimManager(nimmgr):
                        config.Nims[x].diseqcB = configElement(cname + "diseqcB",configSatlist, 130, nimmgr.satList);
                        config.Nims[x].diseqcC = configElement(cname + "diseqcC",configSatlist, 0, nimmgr.satList);
                        config.Nims[x].diseqcD = configElement(cname + "diseqcD",configSatlist, 0, nimmgr.satList);
+                       
+                       config.Nims[x].configMode.addNotifier(boundFunction(nimConfigModeChanged,x))
+                       config.Nims[x].diseqcMode.addNotifier(boundFunction(nimDiseqcModeChanged,x))
+                       config.Nims[x].diseqcA.addNotifier(boundFunction(nimPortAChanged,x))
+                       config.Nims[x].diseqcB.addNotifier(boundFunction(nimPortBChanged,x))
+                       config.Nims[x].diseqcC.addNotifier(boundFunction(nimPortCChanged,x))
+                       config.Nims[x].diseqcD.addNotifier(boundFunction(nimPortDChanged,x))
                else:
                        print "pls add support for this frontend type!"         
 
-       #def nimConfig
-
-  #def inputDevicesRepeatChanged(configElement):
-  #  iDevices.setRepeat(configElement.value);
-
-  #def inputDevicesDelayChanged(configElement):
-  #  iDevices.setDelay(configElement.value);
-
-  # this will call the "setup-val" initial
-  #config.inputDevices.repeat.addNotifier(inputDevicesRepeatChanged);
-  #config.inputDevices.delay.addNotifier(inputDevicesDelayChanged);
-
 nimmanager = NimManager()