aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/sec.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-04-13 09:16:28 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-04-13 09:16:28 +0000
commitaafb5f9d5033791451ee9dc215e0825b950b209b (patch)
treeafc9a9ba98382f86effbb25652b777a5d1b486f1 /lib/dvb/sec.cpp
parentaa6c9dd559999a0b0223fbd66cd0f0512ebc0345 (diff)
downloadenigma2-aafb5f9d5033791451ee9dc215e0825b950b209b.tar.gz
enigma2-aafb5f9d5033791451ee9dc215e0825b950b209b.zip
take care of count of receivable satellites in transponder useable score
Diffstat (limited to 'lib/dvb/sec.cpp')
-rw-r--r--lib/dvb/sec.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp
index 464a845a..f24783c8 100644
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -95,7 +95,7 @@ eDVBSatelliteEquipmentControl::eDVBSatelliteEquipmentControl(eSmartPtrList<eDVBR
int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite &sat, iDVBFrontend *fe, int frontend_id )
{
- int ret=0;
+ int ret=0, satcount=0;
for (int idx=0; idx <= m_lnbidx; ++idx )
{
@@ -104,6 +104,8 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
{
eDVBSatelliteDiseqcParameters &di_param = lnb_param.m_diseqc_parameters;
+ satcount += lnb_param.m_satellites.size();
+
std::map<int, eDVBSatelliteSwitchParameters>::iterator sit =
lnb_param.m_satellites.find(sat.orbital_position);
if ( sit != lnb_param.m_satellites.end())
@@ -138,20 +140,14 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
csw |= band;
if ( di_param.m_diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2 ) // ROTOR
- {
- rotor=true;
- if ( curRotorPos == sat.orbital_position )
- ret=20; // rotor on correct orbpos = prio 20
- else
- ret=10; // rotor must turn to correct orbpos = prio 10
- }
- else
- ret = 30; // no rotor = prio 30
+ rotor = true;
+
+ ret = 1000;
}
else
{
csw = band;
- ret = 40; // no diseqc = prio 40
+ ret = 2000;
}
if (linked_to != -1) // check for linked tuners..
@@ -221,6 +217,8 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
}
}
}
+ if (ret && satcount)
+ ret -= (satcount-1);
return ret;
}