from Components.ConfigList import ConfigListScreen
from Components.MenuList import MenuList
from Components.NimManager import nimmanager
-from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection
+from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement
from Screens.MessageBox import MessageBox
from time import mktime, localtime
if nim.powerMeasurement.value:
nim.powerMeasurement.value = False
nim.powerMeasurement.save()
-
+
+ def createConfigMode(self):
+ choices = { "nothing": _("nothing connected"),
+ "simple": _("simple"),
+ "advanced": _("advanced")}
+ #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0:
+ # choices["equal"] = _("equal to")
+ # choices["satposdepends"] = _("second cable of motorized LNB")
+ if len(nimmanager.canEqualTo(self.slotid)) > 0:
+ choices["equal"] = _("equal to")
+ if len(nimmanager.canDependOn(self.slotid)) > 0:
+ choices["satposdepends"] = _("second cable of motorized LNB")
+ if len(nimmanager.canConnectTo(self.slotid)) > 0:
+ choices["loopthrough"] = _("loopthrough to")
+ self.nimConfig.configMode.setChoices(choices)
+
def createSetup(self):
print "Creating setup"
self.list = [ ]
self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value)
if self.nimConfig.diseqcMode.value == "positioner":
self.createPositionerSetup(self.list)
- elif self.nimConfig.configMode.value in ["satposdepends", "equal"]:
+ elif self.nimConfig.configMode.value == "equal":
+ choices = []
+ nimlist = nimmanager.canEqualTo(self.nim.slot)
+ for id in nimlist:
+ #choices.append((str(id), str(chr(65 + id))))
+ choices.append((str(id), nimmanager.getNimDescription(id)))
+ self.nimConfig.connectedTo.setChoices(choices)
+ #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices))
+ self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo))
+ elif self.nimConfig.configMode.value == "satposdepends":
choices = []
- nimlist = nimmanager.getNimListOfType(self.nim.type, exception = self.nim.slot)
+ nimlist = nimmanager.canDependOn(self.nim.slot)
for id in nimlist:
#choices.append((str(id), str(chr(65 + id))))
choices.append((str(id), nimmanager.getNimDescription(id)))
- self.nimConfig.connectedTo = ConfigSelection(choices = choices)
+ self.nimConfig.connectedTo.setChoices(choices)
+ #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices))
self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo))
elif self.nimConfig.configMode.value == "loopthrough":
choices = []
- print "connectable to:", nimmanager.connectableTo(self.slotid)
- connectable = nimmanager.connectableTo(self.slotid)
+ print "connectable to:", nimmanager.canConnectTo(self.slotid)
+ connectable = nimmanager.canConnectTo(self.slotid)
for id in connectable:
choices.append((str(id), nimmanager.getNimDescription(id)))
- self.nimConfig.connectedTo = ConfigSelection(choices = choices)
+ self.nimConfig.connectedTo.setChoices(choices)
+ #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices))
self.list.append(getConfigListEntry(_("Connected to"), self.nimConfig.connectedTo))
elif self.nimConfig.configMode.value == "nothing":
pass
self.unconfed_sats = old_configured_sats - new_configured_sats
self.satpos_to_remove = None
self.deleteConfirmed(False)
+ self.saveAll()
def deleteConfirmed(self, confirmed):
if confirmed:
self.slotid = slotid
self.nim = nimmanager.nim_slots[slotid]
self.nimConfig = self.nim.config
+ self.createConfigMode()
self.createSetup()
+ # safeAll is needed, so that keyCancel works properly
+ ConfigListScreen.saveAll(self)
def keyLeft(self):
ConfigListScreen.keyLeft(self)
def keyRight(self):
ConfigListScreen.keyRight(self)
self.newConfig()
-
+
+ def saveAll(self):
+ if self.nim.isCompatible("DVB-S"):
+ # reset connectedTo to all choices to properly store the default value
+ choices = []
+ nimlist = nimmanager.getNimListOfType("DVB-S", self.slotid)
+ for id in nimlist:
+ choices.append((str(id), nimmanager.getNimDescription(id)))
+ self.nimConfig.connectedTo.setChoices(choices)
+ for x in self["config"].list:
+ x[1].save()
+
class NimSelection(Screen):
def __init__(self, session):
Screen.__init__(self, session)