IF_TONE_GOTO, IF_NOT_TONE_GOTO,
START_TUNE_TIMEOUT,
SET_ROTOR_MOVING,
- SET_ROTOR_STOPPED
+ SET_ROTOR_STOPPED,
+ DELAYED_CLOSE_FRONTEND
};
int cmd;
struct rotor
{
secSequence.push_back(cmd);
}
+ void push_back(eSecCommandList &list)
+ {
+ secSequence.insert(end(), list.begin(), list.end());
+ }
void clear()
{
secSequence.clear();
{
return secSequence.size();
}
+ eSecCommandList &operator=(const eSecCommandList &lst)
+ {
+ secSequence = lst.secSequence;
+ cur = begin();
+ return *this;
+ }
};
#endif
int m_prio; // to override automatic tuner management ... -1 is Auto
#endif
+public:
+#define guard_offset_min -8000
+#define guard_offset_max 8000
+#define guard_offset_step 8000
+#define MAX_SATCR 8
+#define MAX_LNBNUM 32
+
+ int SatCR_positions;
+ int SatCR_idx;
+ unsigned int SatCRvco;
+ unsigned int UnicableTuningWord;
+ unsigned int UnicableConfigWord;
+ int old_frequency;
+ int old_polarisation;
+ int old_orbital_position;
+ int guard_offset_old;
+ int guard_offset;
+ int LNBNum;
};
class eDVBRegisteredFrontend;
DECLARE_REF(eDVBSatelliteEquipmentControl);
public:
enum {
- DELAY_AFTER_CONT_TONE=0, // delay after continuous tone change
+ DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC=0, // delay after continuous tone disable before diseqc command
+ DELAY_AFTER_FINAL_CONT_TONE_CHANGE, // delay after continuous tone change before tune
DELAY_AFTER_FINAL_VOLTAGE_CHANGE, // delay after voltage change at end of complete sequence
DELAY_BETWEEN_DISEQC_REPEATS, // delay between repeated diseqc commands
DELAY_AFTER_LAST_DISEQC_CMD, // delay after last diseqc command
int m_lnbidx; // current index for set parameters
std::map<int, eDVBSatelliteSwitchParameters>::iterator m_curSat;
eSmartPtrList<eDVBRegisteredFrontend> &m_avail_frontends, &m_avail_simulate_frontends;
- bool m_rotorMoving;
+ int m_rotorMoving;
int m_not_linked_slot_mask;
bool m_canMeasureInputPower;
#endif
#ifndef SWIG
eDVBSatelliteEquipmentControl(eSmartPtrList<eDVBRegisteredFrontend> &avail_frontends, eSmartPtrList<eDVBRegisteredFrontend> &avail_simulate_frontends);
RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id, unsigned int tunetimeout);
+ void prepareTurnOffSatCR(iDVBFrontend &frontend, int satcr); // used for unicable
int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *, int frontend_id, int *highest_score_lnb=0);
bool currentLNBValid() { return m_lnbidx > -1 && m_lnbidx < (int)(sizeof(m_lnbs) / sizeof(eDVBSatelliteLNBParameters)); }
#endif
RESULT setLNBThreshold(int threshold);
RESULT setLNBIncreasedVoltage(bool onoff);
RESULT setLNBPrio(int prio);
+ RESULT setLNBNum(int LNBNum);
/* DiSEqC Specific Parameters */
RESULT setDiSEqCMode(int diseqcmode);
RESULT setToneburst(int toneburst);
RESULT setUseInputpower(bool onoff);
RESULT setInputpowerDelta(int delta); // delta between running and stopped rotor
RESULT setRotorTurningSpeed(int speed); // set turning speed..
+/* Unicable Specific Parameters */
+ RESULT setLNBSatCR(int SatCR_idx);
+ RESULT setLNBSatCRvco(int SatCRvco);
+ RESULT setLNBSatCRpositions(int SatCR_positions);
+ RESULT getLNBSatCR();
+ RESULT getLNBSatCRvco();
+ RESULT getLNBSatCRpositions();
/* Satellite Specific Parameters */
RESULT addSatellite(int orbital_position);
RESULT setVoltageMode(int mode);
RESULT setTunerDepends(int from, int to);
void setSlotNotLinked(int tuner_no);
- void setRotorMoving(bool); // called from the frontend's
+ void setRotorMoving(int, bool); // called from the frontend's
bool isRotorMoving();
bool canMeasureInputPower() { return m_canMeasureInputPower; }
};