Merge branch 'bug_461_play_another_timeshift_file_after_eof' into experimental
[enigma2.git] / lib / dvb / frontend.h
index cbe3dfc2ad53e914387e6ddeb57d12ecd23ccfa5..4cf050813cf27083b82fd4a916c961ee121b1d76 100644 (file)
@@ -20,22 +20,22 @@ public:
        {
        }
 
        {
        }
 
-       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);
 
        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;
        RESULT calculateDifference(const iDVBFrontendParameters *parm, int &, bool exact) const;
 
        RESULT getHash(unsigned long &) const;
        RESULT calcLockTimeout(unsigned int &) const;
-
-       RESULT getFlags(unsigned int &flags) const { flags = m_flags; return 0; }
-       RESULT setFlags(unsigned int flags) { m_flags = flags; return 0; }
+#endif
 };
 
 #ifndef SWIG
 };
 
 #ifndef SWIG
@@ -63,16 +63,19 @@ public:
                FREQ_OFFSET,          // current frequency offset
                CUR_VOLTAGE,          // current voltage
                CUR_TONE,             // current continuous tone
                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);
                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_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];
        bool m_need_rotor_workaround;
        bool m_can_handle_dvbs2;
        char m_filename[128];
@@ -82,12 +85,17 @@ private:
        char m_sec_filename[128];
 #endif
        FRONTENDPARAMETERS parm;
        char m_sec_filename[128];
 #endif
        FRONTENDPARAMETERS parm;
+       union {
+               eDVBFrontendParametersSatellite sat;
+               eDVBFrontendParametersCable cab;
+               eDVBFrontendParametersTerrestrial ter;
+       } oparm;
+
        int m_state;
        ePtr<iDVBSatelliteEquipmentControl> m_sec;
        int m_state;
        ePtr<iDVBSatelliteEquipmentControl> m_sec;
-       eSocketNotifier *m_sn;
+       ePtr<eSocketNotifier> m_sn;
        int m_tuning;
        int m_tuning;
-       eTimer *m_timeout;
-       eTimer *m_tuneTimer;
+       ePtr<eTimer> m_timeout, m_tuneTimer;
 
        eSecCommandList m_sec_sequence;
 
 
        eSecCommandList m_sec_sequence;
 
@@ -102,11 +110,11 @@ private:
        void feEvent(int);
        void timeout();
        void tuneLoop();  // called by m_tuneTimer
        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:
        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();
        virtual ~eDVBFrontend();
 
        int readInputpower();
@@ -141,6 +149,10 @@ public:
        int openFrontend();
        int closeFrontend(bool force=false);
        const char *getDescription() const { return m_description; }
        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
 };
 
 #endif // SWIG