X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8fc0752931ad7a8efa802b0a0f0246a2b50eca6b..f2c69b1c3a49b8b03866894fe3e3f3a4f330f517:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index f20de190..a6a19fff 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -1,6 +1,8 @@ #ifndef __dvb_idvb_h #define __dvb_idvb_h +#ifndef SWIG + #if HAVE_DVB_API_VERSION < 3 #include #define FRONTENDPARAMETERS FrontendParameters @@ -299,16 +301,22 @@ public: virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query, const eServiceReference &source)=0; }; +#endif // SWIG + class iDVBFrontendParameters: public iObject { +#ifdef SWIG + iDVBFrontendParameters(); + ~iDVBFrontendParameters(); +#endif public: - virtual RESULT getSystem(int &type) const = 0; - virtual RESULT getDVBS(eDVBFrontendParametersSatellite &p) const = 0; - virtual RESULT getDVBC(eDVBFrontendParametersCable &p) const = 0; - virtual RESULT getDVBT(eDVBFrontendParametersTerrestrial &p) const = 0; + virtual RESULT getSystem(int &SWIG_OUTPUT) const = 0; + virtual RESULT getDVBS(eDVBFrontendParametersSatellite &SWIG_OUTPUT) const = 0; + virtual RESULT getDVBC(eDVBFrontendParametersCable &SWIG_OUTPUT) const = 0; + virtual RESULT getDVBT(eDVBFrontendParametersTerrestrial &SWIG_OUTPUT) const = 0; - virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &diff) const = 0; - virtual RESULT getHash(unsigned long &hash) const = 0; + virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &SWIG_OUTPUT) const = 0; + virtual RESULT getHash(unsigned long &SWIG_OUTPUT) const = 0; }; #define MAX_DISEQC_LENGTH 16 @@ -317,11 +325,14 @@ class eDVBDiseqcCommand { public: int len; +#ifndef SWIG __u8 data[MAX_DISEQC_LENGTH]; #if HAVE_DVB_API_VERSION < 3 int tone; int voltage; #endif +#endif //SWIG + void setData(const char *str); }; class iDVBSatelliteEquipmentControl; @@ -335,7 +346,9 @@ public: }; virtual RESULT getFrontendType(int &type)=0; virtual RESULT tune(const iDVBFrontendParameters &where)=0; +#ifndef SWIG virtual RESULT connectStateChange(const Slot1 &stateChange, ePtr &connection)=0; +#endif enum { stateIdle = 0, stateTuning = 1, @@ -354,25 +367,30 @@ public: virtual RESULT setVoltage(int voltage)=0; virtual RESULT sendDiseqc(const eDVBDiseqcCommand &diseqc)=0; virtual RESULT sendToneburst(int burst)=0; +#ifndef SWIG virtual RESULT setSEC(iDVBSatelliteEquipmentControl *sec)=0; virtual RESULT setSecSequence(const eSecCommandList &list)=0; - +#endif enum { - bitErrorRate, signalPower, signalQuality + bitErrorRate, signalPower, signalQuality, Locked, Synced }; virtual int readFrontendData(int type)=0; + virtual PyObject *readTransponderData(bool original)=0; +#ifndef SWIG virtual RESULT getData(int num, int &data)=0; virtual RESULT setData(int num, int val)=0; - /* 0 means: not compatible. other values are a priority. */ virtual int isCompatibleWith(ePtr &feparm)=0; +#endif }; +TEMPLATE_TYPEDEF(ePtr, iDVBFrontendPtr); +#ifndef SWIG 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; }; @@ -381,6 +399,7 @@ struct eDVBCIRouting { int enabled; }; +#endif // SWIG class iDVBChannel: public iObject { @@ -392,17 +411,23 @@ 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. */ }; - + virtual RESULT getState(int &state)=0; + + /* direct frontend access for raw channels and/or status inquiries. */ + virtual RESULT getFrontend(ePtr &frontend)=0; + +#ifndef SWIG + virtual RESULT getCurrentFrontendParameters(ePtr &)=0; enum { evtEOF, evtSOF, evtFailed }; virtual RESULT connectStateChange(const Slot1 &stateChange, ePtr &connection)=0; virtual RESULT connectEvent(const Slot2 &eventChange, ePtr &connection)=0; - virtual RESULT getState(int &state)=0; - + /* demux capabilities */ enum { @@ -412,19 +437,21 @@ public: virtual RESULT setCIRouting(const eDVBCIRouting &routing)=0; virtual RESULT getDemux(ePtr &demux, int cap=0)=0; - /* direct frontend access for raw channels and/or status inquiries. */ - virtual RESULT getFrontend(ePtr &frontend)=0; - /* use count handling */ virtual void AddUse() = 0; virtual void ReleaseUse() = 0; +#endif }; +TEMPLATE_TYPEDEF(ePtr, iDVBChannelPtr); + +#ifndef SWIG /* signed, so we can express deltas. */ 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 */ @@ -441,9 +468,10 @@ 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; @@ -457,6 +485,7 @@ public: pts_t m_skipmode_ratio; Signal1 m_event; ePtr m_decoding_demux; + ePtr m_decoder; }; class iDVBPVRChannel: public iDVBChannel @@ -548,6 +577,9 @@ public: virtual RESULT setZoom(int what)=0; virtual RESULT setTrickmode(int what) = 0; + + virtual RESULT getPTS(int what, pts_t &pts) = 0; }; +#endif //SWIG #endif