#include <lib/dvb/idvb.h>
#include <list>
+#ifndef SWIG
class eSecCommand
{
public:
{
__u8 m_lo_direction; // EAST, WEST
__u8 m_la_direction; // NORT, SOUTH
- double m_longitude; // longitude for gotoXX° function
- double m_latitude; // latitude for gotoXX° function
+ double m_longitude; // longitude for gotoXX? function
+ double m_latitude; // latitude for gotoXX? function
};
eDVBSatelliteRotorGotoxxParameters m_gotoxx_parameters;
eDVBSatelliteDiseqcParameters m_diseqc_parameters;
eDVBSatelliteRotorParameters m_rotor_parameters;
};
+#endif
+
+class eDVBRegisteredFrontend;
class eDVBSatelliteEquipmentControl: public iDVBSatelliteEquipmentControl
{
+#ifndef SWIG
+ static eDVBSatelliteEquipmentControl *instance;
eDVBSatelliteLNBParameters m_lnbs[128]; // i think its enough
int m_lnbidx; // current index for set parameters
std::map<int, eDVBSatelliteSwitchParameters>::iterator m_curSat;
+ eSmartPtrList<eDVBRegisteredFrontend> &m_avail_frontends;
+ bool m_rotorMoving;
+#endif
public:
+ eDVBSatelliteEquipmentControl(eSmartPtrList<eDVBRegisteredFrontend> &avail_frontends);
+#ifndef SWIG
DECLARE_REF(eDVBSatelliteEquipmentControl);
- eDVBSatelliteEquipmentControl();
- RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat);
-
+ RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id);
+ int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *, int frontend_id);
bool currentLNBValid() { return m_lnbidx > -1 && m_lnbidx < (int)(sizeof(m_lnbs) / sizeof(eDVBSatelliteLNBParameters)); }
+#endif
+ static eDVBSatelliteEquipmentControl *getInstance() { return instance; }
RESULT clear();
/* LNB Specific Parameters */
RESULT addLNB();
RESULT setUncommittedCommand(int command);
RESULT setCommandOrder(int order);
RESULT setFastDiSEqC(bool onoff);
+ RESULT setSeqRepeat(bool onoff); // send the complete switch sequence twice (without rotor command)
/* Rotor Specific Parameters */
RESULT setLongitude(float longitude);
RESULT setLatitude(float latitude);
RESULT setVoltageMode(int mode);
RESULT setToneMode(int mode);
RESULT setRotorPosNum(int rotor_pos_num);
+/* Tuner Specific Parameters */
+ RESULT setTunerLinked(int from, int to);
+
+ void setRotorMoving(bool); // called from the frontend's
+ bool isRotorMoving();
};
#endif