voltage was not set, when not diseqc send was needed .. fix this
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Wed, 25 May 2005 10:06:53 +0000 (10:06 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Wed, 25 May 2005 10:06:53 +0000 (10:06 +0000)
lib/dvb/frontend.cpp
lib/dvb/idvb.h
lib/dvb/sec.cpp

index 1136d9dc46d35ab35a3b6ebc059a2cb3a050d7ee..363775925eac3bcf8eff930047c1c2d7d9d7acd2 100644 (file)
@@ -375,17 +375,25 @@ void eDVBFrontend::tuneLoop()  // called by m_tuneTimer
                                break;
                        case eSecCommand::SET_VOLTAGE:
                                setVoltage(m_sec_sequence.current()->voltage);
                                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);
                                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);
                                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);
                                break;
                        case eSecCommand::SEND_TONEBURST:
                                sendToneburst(m_sec_sequence.current()->toneburst);
+                               eDebug("sendToneburst: %d", m_sec_sequence.current()->toneburst);
                                break;
                        case eSecCommand::SET_FRONTEND:
                                break;
                        case eSecCommand::SET_FRONTEND:
+                               eDebug("setFrontend");
                                setFrontend();
                                break;
                        case eSecCommand::IF_LOCK_GOTO:
                                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();
 
        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)
 {
 
 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;
 #if HAVE_DVB_API_VERSION < 3
        struct secCommand cmd;
        cmd.type = SEC_CMDTYPE_DISEQC_RAW;
index 9393d0e23bb2eb914c139c0f2587bd689e06952a..d521b999463b6b565c19742e60a937c3170f5fc7 100644 (file)
@@ -380,7 +380,7 @@ public:
        };
        virtual RESULT getState(int &state)=0;
        enum {
        };
        virtual RESULT getState(int &state)=0;
        enum {
-               toneOn, toneOff
+               toneOff, toneOn
        };
        virtual RESULT setTone(int tone)=0;
        enum {
        };
        virtual RESULT setTone(int tone)=0;
        enum {
index 98b00cf95875c3adf3bba5b549111bd848d01430..edecca902fa12bc779d4d9a8703514cbc6e32cf7 100644 (file)
@@ -127,6 +127,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                tone = iDVBFrontend::toneOff;
 
                        eSecCommandList sec_sequence;
                                tone = iDVBFrontend::toneOff;
 
                        eSecCommandList sec_sequence;
+                       bool setVoltage=true;
 
                        if (di_param.m_diseqc_mode >= eDVBSatelliteDiseqcParameters::V1_0)
                        {
 
                        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
                                        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 )
                                }
 
                                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) );
                        {
                                sec_sequence.push_back( eSecCommand(eSecCommand::SET_VOLTAGE, voltage) );
                                sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, 10) );