From 8b6a8658b1ea5aa358947a488c80eff75295d0fb Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Mon, 26 Jun 2006 21:46:10 +0000 Subject: add 5V handling for active DVB-T antennas (needs new drivers) --- lib/dvb/dvb.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'lib/dvb/dvb.cpp') diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index bad0ce1a..ff3e4712 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -215,15 +215,28 @@ void eDVBResourceManager::addAdapter(iDVBAdapter *adapter) m_demux.push_back(new eDVBRegisteredDemux(demux, adapter)); } + ePtr prev_dvbt_frontend; for (i=0; i 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; + } } } } -- cgit v1.2.3