def linkNIMs(self, sec, nim1, nim2):
print "link tuner", nim1, "to tuner", nim2
- if nim2 == (nim1 - 1):
- self.linkInternally(nim1)
+# if nim2 == (nim1 - 1):
+# self.linkInternally(nim1)
+#
+# for internally connect tuner A to B
+ self.linkInternally(nim1)
sec.setTunerLinked(nim1, nim2)
def getRoot(self, slotid, connto):
for slot in nim_slots:
if slot.type is not None:
- used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.frontend_id is None and -1 or slot.frontend_id))
+ used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.isCompatible("DVB-T2"), slot.frontend_id is None and -1 or slot.frontend_id))
eDVBResourceManager.getInstance().setFrontendSlotInformations(used_nim_slots)
for slot in nim_slots:
def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None, i2c = None, is_empty = False):
self.slot = slot
- if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", None):
+ if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", "DVB-T2", None):
print "warning: unknown NIM type %s, not using." % type
type = None
"DVB-S": ("DVB-S", None),
"DVB-C": ("DVB-C", None),
"DVB-T": ("DVB-T", None),
- "DVB-S2": ("DVB-S", "DVB-S2", None)
+ "DVB-S2": ("DVB-S", "DVB-S2", None),
+ "DVB-T2": ("DVB-T", "DVB-T2", None)
}
return what in compatible[self.type]
"DVB-S": ("DVB-S", "DVB-S2"),
"DVB-C": ("DVB-C",),
"DVB-T": ("DVB-T",),
- "DVB-S2": ("DVB-S", "DVB-S2")
+ "DVB-S2": ("DVB-S", "DVB-S2"),
+ "DVB-T2": ("DVB-T", "DVB-T2",)
}
return connectable[self.type]
return {
"DVB-S": "DVB-S",
"DVB-T": "DVB-T",
- "DVB-S2": "DVB-S2",
"DVB-C": "DVB-C",
+ "DVB-S2": "DVB-S2",
+ "DVB-T2": "DVB-T2",
None: _("empty")
}[self.type]
type = self.getNimType(slotid)
if type == "DVB-S2":
type = "DVB-S"
+ elif type == "DVB-T2":
+ type = "DVB-T"
nimList = self.getNimListOfType(type, slotid)
for nim in nimList[:]:
mode = self.getNimConfig(nim)
type = self.getNimType(slotid)
if type == "DVB-S2":
type = "DVB-S"
+ elif type == "DVB-T2":
+ type = "DVB-T"
nimList = self.getNimListOfType(type, slotid)
positionerList = []
for nim in nimList[:]:
nim = config.Nims[slotid]
configMode = nim.configMode.value
- if self.nim_slots[slotid].isCompatible("DVB-S") or self.nim_slots[slotid].isCompatible("DVB-T") or self.nim_slots[slotid].isCompatible("DVB-C"):
+ if self.nim_slots[slotid].isCompatible("DVB-S") or self.nim_slots[slotid].isCompatible("DVB-T") or self.nim_slots[slotid].isCompatible("DVB-C") or self.nim_slots[slotid].isCompatible("DVB-T2"):
return not (configMode == "nothing")
def getSatListForNim(self, slotid):
slot_id = configElement.slot_id
if nimmgr.nim_slots[slot_id].description == 'Alps BSBE2':
open("/proc/stb/frontend/%d/tone_amplitude" %(fe_id), "w").write(configElement.value)
-
+
def tunerTypeChanged(nimmgr, configElement):
fe_id = configElement.fe_id
- print "tunerTypeChanged feid %d to mode %s" % (fe_id, configElement.value)
- try:
- oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
- open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
- except:
- print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
- frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
- frontend.closeFrontend()
- open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
- frontend.reopenFrontend()
- try:
- open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
- except:
- print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
- nimmgr.enumerateNIMs()
-
+
+ cur_type = int(open("/proc/stb/frontend/%d/mode" % (fe_id), "r").read())
+ if cur_type != int(configElement.value):
+ print "tunerTypeChanged feid %d from %d to mode %d" % (fe_id, cur_type, int(configElement.value))
+
+ try:
+ oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
+ open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
+ except:
+ print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+
+ frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
+ frontend.closeFrontend()
+ open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
+ frontend.reopenFrontend()
+ try:
+ open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
+ except:
+ print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+ nimmgr.enumerateNIMs()
+ else:
+ print "tuner type is already already %d" %cur_type
+
empty_slots = 0
for slot in nimmgr.nim_slots:
x = slot.slot
n += 1
nim.terrestrial = ConfigSelection(choices = list)
nim.terrestrial_5V = ConfigOnOff()
+ elif slot.isCompatible("DVB-T2"):
+ nim.configMode = ConfigSelection(
+ choices = {
+ "enabled": _("enabled"),
+ "nothing": _("nothing connected"),
+ },
+ default = "enabled")
+ list = []
+ n = 0
+ for x in nimmgr.terrestrialsList:
+ list.append((str(n), x[0]))
+ n += 1
+ nim.terrestrial = ConfigSelection(choices = list)
+ nim.terrestrial_5V = ConfigOnOff()
else:
empty_slots += 1
nim.configMode = ConfigSelection(choices = { "nothing": _("disabled") }, default="nothing");