implement readFrontendData method to get a python dictionary containing data
[enigma2.git] / lib / dvb / idvb.h
index 7dbad780ed984f717a295302c487d8b1e9afd657..955688b95e679a306dea07336624023262c2561d 100644 (file)
@@ -11,6 +11,7 @@
 #include <lib/dvb/frontendparms.h>
 #include <lib/base/object.h>
 #include <lib/base/ebase.h>
+#include <lib/base/elock.h>
 #include <lib/service/service.h>
 #include <libsig_comp.h>
 #include <connection.h>
@@ -357,9 +358,10 @@ public:
        virtual RESULT setSecSequence(const eSecCommandList &list)=0;
 
        enum {
-               bitErrorRate, signalPower, signalQuality
+               bitErrorRate, signalPower, signalQuality, Locked, Synced
        };
        virtual int readFrontendData(int type)=0;
+       virtual PyObject *readTransponderData(bool original)=0;
 
        virtual RESULT getData(int num, int &data)=0;
        virtual RESULT setData(int num, int val)=0;
@@ -371,7 +373,7 @@ public:
 class iDVBSatelliteEquipmentControl: public iObject
 {
 public:
-       virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id)=0;
+       virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id)=0;
        virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id)=0;
        virtual void setRotorMoving(bool)=0;
 };
@@ -391,6 +393,7 @@ public:
                state_failed,      /* tuning failed. */
                state_unavailable, /* currently unavailable, will be back without further interaction */
                state_ok,          /* ok */
+               state_last_instance, /* just one reference to this channel is left */
                state_release      /* channel is being shut down. */
        };
        
@@ -413,6 +416,7 @@ public:
        
                /* direct frontend access for raw channels and/or status inquiries. */
        virtual RESULT getFrontend(ePtr<iDVBFrontend> &frontend)=0;
+       virtual RESULT getCurrentFrontendParameters(ePtr<iDVBFrontendParameters> &)=0;
        
                /* use count handling */
        virtual void AddUse() = 0;
@@ -424,6 +428,7 @@ public:
 typedef long long pts_t;
 
 class iFilePushScatterGather;
+class iTSMPEGDecoder;
 
        /* note that a cue sheet describes the logical positions. thus 
           everything is specified in pts and not file positions */
@@ -440,9 +445,13 @@ public:
        
        void clear();
        void addSourceSpan(const pts_t &begin, const pts_t &end);
+       void commitSpans();
        
        void setSkipmode(const pts_t &ratio); /* 90000 is 1:1 */
-       void setDecodingDemux(iDVBDemux *demux);
+       void setDecodingDemux(iDVBDemux *demux, iTSMPEGDecoder *decoder);
+       
+                       /* frontend and backend */
+       eSingleLock m_lock;
        
                        /* backend */
        enum { evtSeek, evtSkipmode, evtSpanChanged };
@@ -453,6 +462,7 @@ public:
        pts_t m_skipmode_ratio;
        Signal1<void,int> m_event;
        ePtr<iDVBDemux> m_decoding_demux;
+       ePtr<iTSMPEGDecoder> m_decoder;
 };
 
 class iDVBPVRChannel: public iDVBChannel
@@ -544,6 +554,8 @@ public:
        virtual RESULT setZoom(int what)=0;
        
        virtual RESULT setTrickmode(int what) = 0;
+       
+       virtual RESULT getPTS(int what, pts_t &pts) = 0;
 };
 
 #endif