aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-06-26 21:46:10 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-06-26 21:46:10 +0000
commit8b6a8658b1ea5aa358947a488c80eff75295d0fb (patch)
treeb90badb653ba5e53b3251ea74d2febc601395bd7 /lib/dvb/dvb.cpp
parent31ee53b29f079a6e20688e20832896b497b19478 (diff)
downloadenigma2-8b6a8658b1ea5aa358947a488c80eff75295d0fb.tar.gz
enigma2-8b6a8658b1ea5aa358947a488c80eff75295d0fb.zip
add 5V handling for active DVB-T antennas (needs new drivers)
Diffstat (limited to 'lib/dvb/dvb.cpp')
-rw-r--r--lib/dvb/dvb.cpp19
1 files changed, 16 insertions, 3 deletions
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<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;
+ }
}
}
}