update unicable stuff (by adenin)
[vuplus_dvbapp] / lib / dvb / frontend.h
index 06ed12c..bef4a18 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);
-
+       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 getFlags(unsigned int &flags) const { flags = m_flags; return 0; }
-       RESULT setFlags(unsigned int flags) { m_flags = flags; return 0; }
+#endif
 };
 
 #ifndef SWIG
@@ -63,6 +63,7 @@ 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;
@@ -74,6 +75,7 @@ private:
        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];
@@ -83,6 +85,12 @@ private:
        char m_sec_filename[128];
 #endif
        FRONTENDPARAMETERS parm;
+       union {
+               eDVBFrontendParametersSatellite sat;
+               eDVBFrontendParametersCable cab;
+               eDVBFrontendParametersTerrestrial ter;
+       } oparm;
+
        int m_state;
        ePtr<iDVBSatelliteEquipmentControl> m_sec;
        ePtr<eSocketNotifier> m_sn;
@@ -102,7 +110,8 @@ private:
        void feEvent(int);
        void timeout();
        void tuneLoop();  // called by m_tuneTimer
-       void setFrontend();
+       int tuneLoopInt();
+       void setFrontend(bool recvEvents=true);
        bool setSecSequencePos(int steps);
        static int PriorityOrder;
 public:
@@ -122,7 +131,7 @@ public:
        RESULT sendDiseqc(const eDVBDiseqcCommand &diseqc);
        RESULT sendToneburst(int burst);
        RESULT setSEC(iDVBSatelliteEquipmentControl *sec);
-       RESULT setSecSequence(const eSecCommandList &list);
+       RESULT setSecSequence(eSecCommandList &list);
        RESULT getData(int num, long &data);
        RESULT setData(int num, long val);
 
@@ -138,8 +147,9 @@ public:
        static void setTypePriorityOrder(int val) { PriorityOrder = val; }
        static int getTypePriorityOrder() { return PriorityOrder; }
 
+       void reopenFrontend();
        int openFrontend();
-       int closeFrontend(bool force=false);
+       int closeFrontend(bool force=false, bool no_delayed=false);
        const char *getDescription() const { return m_description; }
        bool is_simulate() const { return m_simulate; }
 };