-from enigma import eDVBDB
+from enigma import eDVBDB, getLinkedSlotID, isFBCLink
from Screen import Screen
from Components.SystemInfo import SystemInfo
from Components.ActionMap import ActionMap
from time import mktime, localtime
from datetime import datetime
+from Components.PluginComponent import plugins
+from Plugins.Plugin import PluginDescriptor
+
class NimSetup(Screen, ConfigListScreen, ServiceStopScreen):
def createSimpleSetup(self, list, mode):
nim = self.nimConfig
choices["satposdepends"] = _("second cable of motorized LNB")
if len(nimmanager.canConnectTo(self.slotid)) > 0:
choices["loopthrough"] = _("loopthrough to")
+ if isFBCLink(self.nim.slot):
+ choices = { "nothing": _("not configured"),
+ "advanced": _("advanced")}
self.nimConfig.configMode.setChoices(choices, default = "nothing")
def createSetup(self):
self.advancedType, self.advancedSCR, self.advancedDiction, self.advancedManufacturer, self.advancedUnicable, self.advancedConnected, \
self.uncommittedDiseqcCommand, self.cableScanType, self.multiType)
if self["config"].getCurrent() == self.multiType:
+ update_slots = [self.slotid]
from Components.NimManager import InitNimManager
- InitNimManager(nimmanager)
+ InitNimManager(nimmanager, update_slots)
self.nim = nimmanager.nim_slots[self.slotid]
self.nimConfig = self.nim.config
self.list.append(self.advancedLnbsEntry)
if currLnb:
+ if isFBCLink(self.nim.slot):
+ if currLnb.lof.value != "unicable":
+ currLnb.lof.value = "unicable"
+
self.list.append(getConfigListEntry(_("Priority"), currLnb.prio))
self.advancedLof = getConfigListEntry(_("LOF"), currLnb.lof)
self.list.append(self.advancedLof)
for id in connectable:
choices.append((str(id), nimmanager.getNimDescription(id)))
if len(choices):
+ if isFBCLink(self.nim.slot):
+ if self.nimConfig.advanced.unicableconnected.value != True:
+ self.nimConfig.advanced.unicableconnected.value = True
+
self.advancedConnected = getConfigListEntry(_("connected"), self.nimConfig.advanced.unicableconnected)
self.list.append(self.advancedConnected)
if self.nimConfig.advanced.unicableconnected.value == True:
self.deleteConfirmed((None, "no"))
def deleteConfirmed(self, confirmed):
+ if confirmed is None:
+ confirmed = (None, "no")
+
if confirmed[1] == "yes" or confirmed[1] == "yestoall":
eDVBDB.getInstance().removeServices(-1, -1, -1, self.satpos_to_remove)
self.createSetup()
def keyLeft(self):
+ if isFBCLink(self.nim.slot):
+ checkList = (self.advancedLof, self.advancedConnected)
+ curEntry = self["config"].getCurrent()
+ if curEntry in checkList:
+ return
+
ConfigListScreen.keyLeft(self)
self.newConfig()
def keyRight(self):
+ if isFBCLink(self.nim.slot):
+ checkList = (self.advancedLof, self.advancedConnected)
+ curEntry = self["config"].getCurrent()
+ if curEntry in checkList:
+ return
+
ConfigListScreen.keyRight(self)
self.newConfig()
if type(self["config"].getCurrent()[1]) is ConfigSatlist:
self["config"].getCurrent()[1].setValue("3601")
self["config"].invalidateCurrent()
-
+
class NimSelection(Screen):
def __init__(self, session):
Screen.__init__(self, session)
self.list = [None] * nimmanager.getSlotCount()
self["nimlist"] = List(self.list)
+ self.loadFBCLinks()
self.updateList()
self.setResultClass()
"ok": self.okbuttonClick ,
"cancel": self.close
}, -2)
+
+ def loadFBCLinks(self):
+ for x in nimmanager.nim_slots:
+ slotid = x.slot
+ nimConfig = nimmanager.getNimConfig(x.slot)
+ configMode = nimConfig.configMode.value
+ if self.showNim(x):
+ if x.isCompatible("DVB-S"):
+ if isFBCLink(x.slot) and configMode != "advanced":
+ link = getLinkedSlotID(x.slot)
+
+ if link == -1:
+ nimConfig.configMode.value = "nothing"
+ else:
+ nimConfig.configMode.value = "loopthrough"
+ nimConfig.connectedTo.value = str(link)
def setResultClass(self):
self.resultclass = NimSetup
def okbuttonClick(self):
nim = self["nimlist"].getCurrent()
nim = nim and nim[3]
+
+ nimConfig = nimmanager.getNimConfig(nim.slot)
+ if isFBCLink(nim.slot) and nimConfig.configMode.value == "loopthrough":
+ return
+
if nim is not None and not nim.empty and nim.isSupported():
- self.session.openWithCallback(self.updateList, self.resultclass, nim.slot)
+ self.session.openWithCallback(self.NimSetupCB, self.resultclass, nim.slot)
+
+ def NimSetupCB(self):
+ self.loadFBCLinks()
+ self.updateList()
def showNim(self, nim):
return True
text = { "loopthrough": _("loopthrough to"),
"equal": _("equal to"),
"satposdepends": _("second cable of motorized LNB") } [nimConfig.configMode.value]
- text += " " + _("Tuner") + " " + ["A", "B", "C", "D"][int(nimConfig.connectedTo.value)]
+ text += " " + _("Tuner") + " " + chr(ord('A')+int(nimConfig.connectedTo.value))
elif nimConfig.configMode.value == "nothing":
text = _("not configured")
elif nimConfig.configMode.value == "simple":
text = _("simple")
elif nimConfig.configMode.value == "advanced":
text = _("advanced")
+ if isFBCLink(x.slot) and nimConfig.configMode.value != "advanced":
+ text += _("\n<This tuner is configured automatically>")
elif x.isCompatible("DVB-T") or x.isCompatible("DVB-C"):
if nimConfig.configMode.value == "nothing":
text = _("nothing connected")
self.list.append((slotid, x.friendly_full_description, text, x))
self["nimlist"].setList(self.list)
self["nimlist"].updateList(self.list)
+