From 53c757daa021cf7b742bd686a7cbd884d8612444 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Sat, 6 Sep 2008 12:44:10 +0000 Subject: allow more complicated sat configuration --- lib/dvb/sec.cpp | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'lib/dvb/sec.cpp') diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index 10b2c2c1..b1f421c0 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -114,9 +114,12 @@ eDVBSatelliteEquipmentControl::eDVBSatelliteEquipmentControl(eSmartPtrList 2200000) ret=0; } + if (ret > score) + { + score = ret; + if (highest_score_lnb) + *highest_score_lnb = idx; + } } } } - if (ret && satcount) - ret -= (satcount-1); - if (ret && m_not_linked_slot_mask & slot_id) - ret += 5; // increase score for tuners with direct sat connection - return ret; + if (score && satcount) + score -= (satcount-1); + if (score && m_not_linked_slot_mask & slot_id) + score += 5; // increase score for tuners with direct sat connection + return score; } bool need_turn_fast(int turn_speed) @@ -299,11 +309,10 @@ bool need_turn_fast(int turn_speed) RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int slot_id, unsigned int tunetimeout) { - for (int idx=0; idx <= m_lnbidx; ++idx ) + int lnb_idx = -1; + if (canTune(sat, &frontend, slot_id, &lnb_idx)) { - eDVBSatelliteLNBParameters &lnb_param = m_lnbs[idx]; - if (!(lnb_param.slot_mask & slot_id)) // lnb for correct tuner? - continue; + eDVBSatelliteLNBParameters &lnb_param = m_lnbs[lnb_idx]; eDVBSatelliteDiseqcParameters &di_param = lnb_param.m_diseqc_parameters; eDVBSatelliteRotorParameters &rotor_param = lnb_param.m_rotor_parameters; @@ -842,6 +851,8 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA return 0; } } + else + eFatal("canTune failed in sec prepare!!! this should never ever happen!"); eDebug("found no useable satellite configuration for orbital position (%d)", sat.orbital_position ); return -1; -- cgit v1.2.3