diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-04-13 09:16:28 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-04-13 09:16:28 +0000 |
| commit | aafb5f9d5033791451ee9dc215e0825b950b209b (patch) | |
| tree | afc9a9ba98382f86effbb25652b777a5d1b486f1 /lib/dvb/sec.cpp | |
| parent | aa6c9dd559999a0b0223fbd66cd0f0512ebc0345 (diff) | |
| download | enigma2-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.cpp | 20 |
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; } |
