X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3220cd98443043566e3617c564370683d011878e..572caca1ba06dd8247724c9f5d6bcad515e2edf4:/lib/dvb/sec.cpp diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index e9fa80c8..4842945c 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -21,13 +21,14 @@ DEFINE_REF(eDVBSatelliteEquipmentControl); eDVBSatelliteEquipmentControl *eDVBSatelliteEquipmentControl::instance; eDVBSatelliteEquipmentControl::eDVBSatelliteEquipmentControl(eSmartPtrList &avail_frontends) - :m_lnbidx(-1), m_curSat(m_lnbs[0].m_satellites.end()), m_avail_frontends(avail_frontends) + :m_lnbidx(-1), m_curSat(m_lnbs[0].m_satellites.end()), m_avail_frontends(avail_frontends), m_rotorMoving(false) { if (!instance) instance = this; clear(); +#if 1 // ASTRA addLNB(); setLNBTunerMask(3); @@ -45,12 +46,12 @@ eDVBSatelliteEquipmentControl::eDVBSatelliteEquipmentControl(eSmartPtrListm_frontend->getData(1, oucsw); it->m_frontend->getData(2, oToneburst); it->m_frontend->getData(6, oRotorPos); - +#if 0 eDebug("compare csw %02x == lcsw %02x", csw, ocsw); if ( diseqc ) @@ -150,16 +193,16 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite if ( rotor ) eDebug("compare pos %d == current pos %d", sat.orbital_position, oRotorPos); - +#endif if ( (csw != ocsw) || ( diseqc && (ucsw != oucsw || toneburst != oToneburst) ) || ( rotor && oRotorPos != sat.orbital_position ) ) { - eDebug("can not tune this transponder with linked tuner in use!!"); +// eDebug("can not tune this transponder with linked tuner in use!!"); ret=0; } - else - eDebug("OK .. can tune this transponder with linked tuner in use :)"); +// else +// eDebug("OK .. can tune this transponder with linked tuner in use :)"); } } } @@ -310,7 +353,10 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA { send_diseqc = changed_csw; if ( send_diseqc && di_param.m_use_fast && (csw & 0xF0) && (lastcsw & 0xF0) && ((csw / 4) == (lastcsw / 4)) ) + { + frontend.setData(0, csw); // needed for linked tuner handling send_diseqc = false; + } } if ( send_diseqc || changed_burst ) @@ -415,7 +461,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA RotorCmd=sw_param.m_rotorPosNum; else // we must calc gotoxx cmd { - eDebug("Entry for %d,%d° not in Rotor Table found... i try gotoXX°", sat.orbital_position / 10, sat.orbital_position % 10 ); + eDebug("Entry for %d,%d? not in Rotor Table found... i try gotoXX?", sat.orbital_position / 10, sat.orbital_position % 10 ); useGotoXX = true; int satDir = sat.orbital_position < 0 ? @@ -890,3 +936,13 @@ RESULT eDVBSatelliteEquipmentControl::setTunerLinked(int tu1, int tu2) } return -1; } + +bool eDVBSatelliteEquipmentControl::isRotorMoving() +{ + return m_rotorMoving; +} + +void eDVBSatelliteEquipmentControl::setRotorMoving(bool b) +{ + m_rotorMoving=b; +}