From cbe505c09b3491ad80b7703514ddfc3b083249e1 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Wed, 25 May 2005 10:06:53 +0000 Subject: [PATCH] voltage was not set, when not diseqc send was needed .. fix this --- lib/dvb/frontend.cpp | 12 +++++++++--- lib/dvb/idvb.h | 2 +- lib/dvb/sec.cpp | 5 ++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 1136d9dc..36377592 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -375,17 +375,25 @@ void eDVBFrontend::tuneLoop() // called by m_tuneTimer break; case eSecCommand::SET_VOLTAGE: setVoltage(m_sec_sequence.current()->voltage); + eDebug("setVoltage %d", m_sec_sequence.current()->voltage); break; case eSecCommand::SET_TONE: setTone(m_sec_sequence.current()->tone); + eDebug("setTone %d", m_sec_sequence.current()->tone); break; case eSecCommand::SEND_DISEQC: sendDiseqc(m_sec_sequence.current()->diseqc); + eDebugNoNewLine("sendDiseqc: "); + for (int i=0; i < m_sec_sequence.current()->diseqc.len; ++i) + eDebugNoNewLine("%02x", m_sec_sequence.current()->diseqc.data[i]); + eDebug(""); break; case eSecCommand::SEND_TONEBURST: sendToneburst(m_sec_sequence.current()->toneburst); + eDebug("sendToneburst: %d", m_sec_sequence.current()->toneburst); break; case eSecCommand::SET_FRONTEND: + eDebug("setFrontend"); setFrontend(); break; case eSecCommand::IF_LOCK_GOTO: @@ -578,7 +586,7 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) } } - m_sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND, 0) ); + m_sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND) ); m_tuneTimer->start(0,true); m_sec_sequence.current() = m_sec_sequence.begin(); @@ -658,8 +666,6 @@ RESULT eDVBFrontend::setTone(int t) RESULT eDVBFrontend::sendDiseqc(const eDVBDiseqcCommand &diseqc) { - eDebug("send %02x %02x %02x %02x", - diseqc.data[0], diseqc.data[1], diseqc.data[2], diseqc.data[3]); #if HAVE_DVB_API_VERSION < 3 struct secCommand cmd; cmd.type = SEC_CMDTYPE_DISEQC_RAW; diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 9393d0e2..d521b999 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -380,7 +380,7 @@ public: }; virtual RESULT getState(int &state)=0; enum { - toneOn, toneOff + toneOff, toneOn }; virtual RESULT setTone(int tone)=0; enum { diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index 98b00cf9..edecca90 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -127,6 +127,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA tone = iDVBFrontend::toneOff; eSecCommandList sec_sequence; + bool setVoltage=true; if (di_param.m_diseqc_mode >= eDVBSatelliteDiseqcParameters::V1_0) { @@ -166,6 +167,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) ); sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) ); sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 30) ); // standard says 15 msek here + setVoltage=false; } if ( send_diseqc ) @@ -333,7 +335,8 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA } } } - else + + if ( setVoltage ) { sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) ); sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 10) ); -- 2.30.2