Merge commit 'origin/bug_449_fix_wlan_usbstick_recognition'
[enigma2.git] / lib / dvb / frontend.h
index 6643db03edc9705899fff1f23efdee16f1769c32..4cf050813cf27083b82fd4a916c961ee121b1d76 100644 (file)
@@ -13,25 +13,29 @@ class eDVBFrontendParameters: public iDVBFrontendParameters
                eDVBFrontendParametersTerrestrial terrestrial;
        };
        int m_type;
+       int m_flags;
 public:
        eDVBFrontendParameters();
        ~eDVBFrontendParameters()
        {
        }
 
-       RESULT getSystem(int &type) const;
-       RESULT getDVBS(eDVBFrontendParametersSatellite &) const;
-       RESULT getDVBC(eDVBFrontendParametersCable &) const;
-       RESULT getDVBT(eDVBFrontendParametersTerrestrial &) const;
+       SWIG_VOID(RESULT) getSystem(int &SWIG_OUTPUT) const;
+       SWIG_VOID(RESULT) getDVBS(eDVBFrontendParametersSatellite &SWIG_OUTPUT) const;
+       SWIG_VOID(RESULT) getDVBC(eDVBFrontendParametersCable &SWIG_OUTPUT) const;
+       SWIG_VOID(RESULT) getDVBT(eDVBFrontendParametersTerrestrial &SWIG_OUTPUT) const;
 
        RESULT setDVBS(const eDVBFrontendParametersSatellite &p, bool no_rotor_command_on_tune=false);
        RESULT setDVBC(const eDVBFrontendParametersCable &p);
        RESULT setDVBT(const eDVBFrontendParametersTerrestrial &p);
-
+       SWIG_VOID(RESULT) getFlags(unsigned int &SWIG_NAMED_OUTPUT(flags)) const { flags = m_flags; return 0; }
+       RESULT setFlags(unsigned int flags) { m_flags = flags; return 0; }
+#ifndef SWIG
        RESULT calculateDifference(const iDVBFrontendParameters *parm, int &, bool exact) const;
 
        RESULT getHash(unsigned long &) const;
        RESULT calcLockTimeout(unsigned int &) const;
+#endif
 };
 
 #ifndef SWIG
@@ -43,6 +47,9 @@ class eDVBFrontend: public iDVBFrontend, public Object
 {
 public:
        enum {
+               NEW_CSW,
+               NEW_UCSW,
+               NEW_TONEBURST,
                CSW,                  // state of the committed switch
                UCSW,                 // state of the uncommitted switch
                TONEBURST,            // current state of toneburst switch
@@ -56,16 +63,19 @@ public:
                FREQ_OFFSET,          // current frequency offset
                CUR_VOLTAGE,          // current voltage
                CUR_TONE,             // current continuous tone
+               SATCR,                // current SatCR
                NUM_DATA_ENTRIES
        };
        Signal1<void,iDVBFrontend*> m_stateChanged;
 private:
        DECLARE_REF(eDVBFrontend);
+       bool m_simulate;
        bool m_enabled;
        int m_type;
        int m_dvbid;
        int m_slotid;
        int m_fd;
+       bool m_rotor_mode;
        bool m_need_rotor_workaround;
        bool m_can_handle_dvbs2;
        char m_filename[128];
@@ -75,12 +85,17 @@ private:
        char m_sec_filename[128];
 #endif
        FRONTENDPARAMETERS parm;
+       union {
+               eDVBFrontendParametersSatellite sat;
+               eDVBFrontendParametersCable cab;
+               eDVBFrontendParametersTerrestrial ter;
+       } oparm;
+
        int m_state;
        ePtr<iDVBSatelliteEquipmentControl> m_sec;
-       eSocketNotifier *m_sn;
+       ePtr<eSocketNotifier> m_sn;
        int m_tuning;
-       eTimer *m_timeout;
-       eTimer *m_tuneTimer;
+       ePtr<eTimer> m_timeout, m_tuneTimer;
 
        eSecCommandList m_sec_sequence;
 
@@ -95,11 +110,11 @@ private:
        void feEvent(int);
        void timeout();
        void tuneLoop();  // called by m_tuneTimer
-       void setFrontend();
+       void setFrontend(bool recvEvents=true);
        bool setSecSequencePos(int steps);
        static int PriorityOrder;
 public:
-       eDVBFrontend(int adap, int fe, int &ok);        
+       eDVBFrontend(int adap, int fe, int &ok, bool simulate=false);
        virtual ~eDVBFrontend();
 
        int readInputpower();
@@ -134,6 +149,10 @@ public:
        int openFrontend();
        int closeFrontend(bool force=false);
        const char *getDescription() const { return m_description; }
+       bool is_simulate() const { return m_simulate; }
+
+       RESULT turnOffSatCR(int satcr);
+       RESULT ScanSatCR();
 };
 
 #endif // SWIG