X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/a4cadca93a60d5a5019d2a063e39d66f50e576e2..cd883d9759844701ef57afa0cb03de7722acc5e5:/lib/dvb/sec.cpp diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index e0bf5fd3..faad062f 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -144,12 +144,14 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite if ( di_param.m_diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2 ) // ROTOR rotor = true; - ret = 1000; + ret=10000; + if (rotor && curRotorPos != -1) + ret -= abs(curRotorPos-sat.orbital_position); } else { csw = band; - ret = 2000; + ret = 15000; } while (linked_prev_ptr != -1) // check for linked tuners.. @@ -544,7 +546,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA sec_sequence.push_back( eSecCommand(eSecCommand::IF_VOLTAGE_GOTO, compare) ); compare.steps = +3; sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, compare.voltage) ); - // voltage was disabled..so we wait a longer time .. for normal switches 500ms should be enough + // voltage was disabled..so we wait a longer time .. for normal switches 750ms should be enough sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 750) ); for (int seq_repeat = 0; seq_repeat < (di_param.m_seq_repeat?2:1); ++seq_repeat) @@ -562,8 +564,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA if ( send_mask & 2 ) ++loops; - for ( int i=0; i < di_param.m_repeats; ++i ) - loops *= 2; + loops <<= di_param.m_repeats; for ( int i = 0; i < loops;) // fill commands... { @@ -598,7 +599,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA cmd=0x38; if (cmd) { - static int delay = (120 - 54) / 2; // standard says 100msek between two repeated commands + int delay = di_param.m_repeats ? (120 - 54) / 2 : 120; // standard says 100msek between two repeated commands sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, delay) ); diseqc.data[2]=cmd; diseqc.data[3]=(cmd==0x38) ? csw : ucsw; @@ -774,9 +775,9 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA else csw = band; - frontend.setData(eDVBFrontend::NEW_CSW, csw); - frontend.setData(eDVBFrontend::NEW_UCSW, ucsw); - frontend.setData(eDVBFrontend::NEW_TONEBURST, di_param.m_toneburst_param); + frontend.setData(eDVBFrontend::CSW, csw); + frontend.setData(eDVBFrontend::UCSW, ucsw); + frontend.setData(eDVBFrontend::TONEBURST, di_param.m_toneburst_param); if (!linked && doSetVoltageToneFrontend) { @@ -1103,7 +1104,7 @@ struct sat_compare PyObject *eDVBSatelliteEquipmentControl::get_exclusive_satellites(int tu1, int tu2) { - PyObject *ret=0; + ePyObject ret; if (tu1 != tu2) {