m_demux.push_back(new eDVBRegisteredDemux(demux, adapter));
}
+ ePtr<eDVBRegisteredFrontend> prev_dvbt_frontend;
for (i=0; i<num_fe; ++i)
{
ePtr<eDVBFrontend> frontend;
-
if (!adapter->getFrontend(frontend, i))
{
+ int frontendType=0;
+ frontend->getFrontendType(frontendType);
+ eDVBRegisteredFrontend *new_fe = new eDVBRegisteredFrontend(frontend, adapter);
+ CONNECT(new_fe->stateChanged, eDVBResourceManager::feStateChanged);
+ m_frontend.push_back(new_fe);
frontend->setSEC(m_sec);
- m_frontend.push_back(new eDVBRegisteredFrontend(frontend, adapter));
- CONNECT(m_frontend.back()->stateChanged, eDVBResourceManager::feStateChanged);
+ // we must link all dvb-t frontends ( for active antenna voltage )
+ if (frontendType == iDVBFrontend::feTerrestrial)
+ {
+ if (prev_dvbt_frontend)
+ {
+ prev_dvbt_frontend->m_frontend->setData(eDVBFrontend::LINKED_NEXT_PTR, (int)new_fe);
+ frontend->setData(eDVBFrontend::LINKED_PREV_PTR, (int)&(*prev_dvbt_frontend));
+ }
+ prev_dvbt_frontend = new_fe;
+ }
}
}
}
#include <lib/dvb/dvb.h>
#include <lib/base/eerror.h>
+#include <lib/base/nconfig.h> // access to python config
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
if (!res)
{
m_sec_sequence.push_back( eSecCommand(eSecCommand::START_TUNE_TIMEOUT) );
+ eDVBRegisteredFrontend *linked_fe = (eDVBRegisteredFrontend*)m_data[LINKED_PREV_PTR];
+ if (linked_fe == (eDVBRegisteredFrontend*)-1)
+ {
+ std::string enable_5V;
+ ePythonConfigQuery::getConfigValue("config.terrestrial.enable_5V", enable_5V);
+ if (enable_5V == "yes")
+ m_sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, iDVBFrontend::voltage13) );
+ }
m_sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND) );
}
break;
pass
def InitNimManager(nimmgr):
+ have_terrestrial_tuner = False
+ config.terrestrial = ConfigSubsection()
config.Nims = []
for x in range(nimmgr.nimCount):
config.Nims.append(ConfigSubsection())
elif slot.nimType == nimmgr.nimType["DVB-C"]:
nim.cable = configElement(cname + "cable", configSelection, 0, nimmgr.cablesList, False);
elif slot.nimType == nimmgr.nimType["DVB-T"]:
+ have_terrestrial_tuner = True
list = []
for x in nimmgr.terrestrialsList:
list.append(x[0])
else:
print "pls add support for this frontend type!"
+ if have_terrestrial_tuner:
+ config.terrestrial.enable_5V = configElement("config.terrestrial.enable_5V", configSelection, 1, (("yes", _("Yes")), ("no", _("No"))), True);
+
nimmgr.sec = SecConfigure(nimmgr)
nimmanager = NimManager()
self.list.append(getConfigListEntry(_("Hierarchy mode"), config.scan.ter.hierarchy))
elif currentConfigSelectionElement(config.scan.typeterrestrial) == "complete":
self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
+ self.list.append(getConfigListEntry(_("Enable 5V for active antenna"), config.terrestrial.enable_5V))
# if (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-S"] and currentConfigSelectionElement(config.scan.type) == "single_transponder") or \
# (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-C"] and currentConfigSelectionElement(config.scan.typecable) == "single_transponder") or \
tlist = []
nimcount = nimmanager.getNimSocketCount()
+ have_terrestrial = False
if nimcount > 0:
+ nimtype = nimmanager.getNimType(0)
scan_possible=True
config.scan = ConfigSubsection()
config.scan.clearallservices = configElement_nonSave("config.scan.clearallservices", configSelection, 0, (("no", _("no")), ("yes", _("yes")), ("yes_hold_feeds", _("yes (keep feeds)"))))
self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
nim = configElement_nonSave(0, configSelection, 0, (("yes", _("yes")), ("no", _("no"))))
- if nimmanager.getNimType(0) == nimmanager.nimType["DVB-S"] and not len(nimmanager.getSatListForNim(0)):
+ if nimtype == nimmanager.nimType["DVB-T"]:
+ have_terrestrial = True
+ elif nimtype == nimmanager.nimType["DVB-S"] and not len(nimmanager.getSatListForNim(0)):
scan_possible=False
if scan_possible:
self.list.append(getConfigListEntry(_("Scan NIM") + " 0 (" + nimmanager.getNimTypeName(0) + ")", nim))
+
if nimcount > 1 and self.ScanNimTwoNeeded():
nim = configElement_nonSave(1, configSelection, 0, (("yes", _("yes")), ("no", _("no"))))
self.list.append(getConfigListEntry(_("Scan NIM") + " 1 (" + nimmanager.getNimTypeName(1) + ")", nim))
+ if nimtype = nimmanager.getNimType(1) == nimmanager.nimType["DVB-T"]:
+ have_terrestrial = True
+
+ if have_terrestrial:
+ self.list.append(getConfigListEntry(_("Enable 5V for active antenna"), config.terrestrial.enable_5V))
self["config"] = ConfigList(self.list)
self["header"] = Label(_("Automatic Scan"))