work on linked tuners ( can not test it :( )
[enigma2.git] / lib / dvb / sec.h
index 3370a0b09c2fca83f7efd09df1320f29fc1676a0..f80b25e53909174921f34dddd4aaf66c6dc969dc 100644 (file)
@@ -5,6 +5,7 @@
 #include <lib/dvb/idvb.h>
 #include <list>
 
+#ifndef SWIG
 class eSecCommand
 {
 public:
@@ -198,18 +199,28 @@ public:
        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;
+#endif
 public:
        DECLARE_REF(eDVBSatelliteEquipmentControl);
-       eDVBSatelliteEquipmentControl();
-       RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat);
-
+       eDVBSatelliteEquipmentControl(eSmartPtrList<eDVBRegisteredFrontend> &avail_frontends);
+#ifndef SWIG
+       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();
@@ -226,6 +237,7 @@ public:
        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);
@@ -238,6 +250,8 @@ public:
        RESULT setVoltageMode(int mode);
        RESULT setToneMode(int mode);
        RESULT setRotorPosNum(int rotor_pos_num);
+/* Tuner Specific Parameters */
+       RESULT setTunerLinked(int from, int to);
 };
 
 #endif