aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/frontend.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-06-26 11:58:11 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-06-26 11:58:11 +0000
commit256711935ca5934a9e1a8c0d7b103aa46801e3cf (patch)
tree9cd9730ed555015688833d2351536c298c0aa392 /lib/dvb/frontend.cpp
parent1a9e2e35bab6de58c8ec6981f47b4713a6925ead (diff)
downloadenigma2-256711935ca5934a9e1a8c0d7b103aa46801e3cf.tar.gz
enigma2-256711935ca5934a9e1a8c0d7b103aa46801e3cf.zip
dont tune with -s2 frontend to -S transponders when a free -S Tuner is
available.. dont try to tune to -S2 Transponders with -S Tuner (HACK)
Diffstat (limited to 'lib/dvb/frontend.cpp')
-rw-r--r--lib/dvb/frontend.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index 05f354e9..72c907d8 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -420,7 +420,8 @@ int eDVBFrontend::PriorityOrder=0;
eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok)
:m_enabled(false), m_type(-1), m_dvbid(fe), m_slotid(fe)
- ,m_fd(-1), m_need_rotor_workaround(false), m_sn(0), m_timeout(0), m_tuneTimer(0)
+ ,m_fd(-1), m_need_rotor_workaround(false), m_can_handle_dvbs2(false)
+ ,m_sn(0), m_timeout(0), m_tuneTimer(0)
#if HAVE_DVB_API_VERSION < 3
,m_secfd(-1)
#endif
@@ -2230,7 +2231,11 @@ int eDVBFrontend::isCompatibleWith(ePtr<iDVBFrontendParameters> &feparm)
eDVBFrontendParametersSatellite sat_parm;
int ret = feparm->getDVBS(sat_parm);
ASSERT(!ret);
- return m_sec->canTune(sat_parm, this, 1 << m_slotid);
+ if (sat_parm.system == eDVBFrontendParametersSatellite::System::DVB_S2 && !m_can_handle_dvbs2)
+ return 0;
+ ret = m_sec->canTune(sat_parm, this, 1 << m_slotid);
+ if (ret > 1 && sat_parm.system == eDVBFrontendParametersSatellite::System::DVB_S && m_can_handle_dvbs2)
+ ret -= 1;
}
else if (m_type == eDVBFrontend::feCable)
return 2; // more prio for cable frontends
@@ -2254,6 +2259,7 @@ bool eDVBFrontend::setSlotInfo(ePyObject obj)
m_need_rotor_workaround = !!strstr(m_description, "Alps BSBE1") ||
!!strstr(m_description, "Alps BSBE2") ||
!!strstr(m_description, "Alps -S");
+ m_can_handle_dvbs2 = !!strstr(m_description, "Alps BSBE2") || !!strstr(m_description, "bcm4501");
eDebug("setSlotInfo for dvb frontend %d to slotid %d, descr %s, need rotorworkaround %s, enabled %s",
m_dvbid, m_slotid, m_description, m_need_rotor_workaround ? "Yes" : "No", m_enabled ? "Yes" : "No" );
return true;