X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/056f4ed60ae323f41601b8acdc42794902eac0d1..95c570d26ce81e3dd1e0610ff6c5c0b34d75ba5a:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 0326c60f..1f8aebda 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -18,6 +18,14 @@ #include #include +#if defined(__GNUC__) && ((__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ == 4 ) // check if gcc version >= 3.1 +#include +#define CAID_LIST __gnu_cxx::slist +#else +#include +#define CAID_LIST std::slist +#endif + struct eBouquet { std::string m_bouquet_name; @@ -26,7 +34,7 @@ struct eBouquet list m_services; // the following five methods are implemented in db.cpp RESULT flushChanges(); - RESULT addService(const eServiceReference &); + RESULT addService(const eServiceReference &, eServiceReference before=eServiceReference()); RESULT removeService(const eServiceReference &); RESULT moveService(const eServiceReference &, unsigned int); RESULT setListName(const std::string &name); @@ -220,15 +228,21 @@ class eDVBChannelQuery; class eDVBService: public iStaticServiceInformation { DECLARE_REF(eDVBService); + int *m_cache; + void initCache(); + void copyCache(int *source); public: enum cacheID { - cVPID, cAPID, cTPID, cPCRPID, cAC3PID, cacheMax + cVPID, cAPID, cTPID, cPCRPID, cAC3PID, + cVTYPE, cACHANNEL, cAC3DELAY, cPCMDELAY, + cSUBTITLE, cacheMax }; - int getCachePID(cacheID); - void setCachePID(cacheID, int); - bool cacheEmpty() { return m_cache.empty(); } + int getCacheEntry(cacheID); + void setCacheEntry(cacheID, int); + + bool cacheEmpty(); eDVBService(); /* m_service_name_sort is uppercase, with special chars removed, to increase sort performance. */ @@ -249,8 +263,8 @@ public: bool usePMT() const { return !(m_flags & dxNoDVB); } - std::set m_ca; - std::map m_cache; + CAID_LIST m_ca; + virtual ~eDVBService(); eDVBService &operator=(const eDVBService &); @@ -349,7 +363,7 @@ public: virtual RESULT getDVBC(eDVBFrontendParametersCable &SWIG_OUTPUT) const = 0; virtual RESULT getDVBT(eDVBFrontendParametersTerrestrial &SWIG_OUTPUT) const = 0; - virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &SWIG_OUTPUT) const = 0; + virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &SWIG_OUTPUT, bool exact) const = 0; virtual RESULT getHash(unsigned long &SWIG_OUTPUT) const = 0; }; @@ -409,7 +423,7 @@ public: virtual RESULT setSecSequence(const eSecCommandList &list)=0; #endif enum { - bitErrorRate, signalPower, signalQuality, Locked, Synced + bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber }; virtual int readFrontendData(int type)=0; virtual PyObject *readTransponderData(bool original)=0; @@ -552,6 +566,7 @@ public: }; class iDVBSectionReader; +class iDVBPESReader; class iDVBTSRecorder; class iTSMPEGDecoder; @@ -559,6 +574,7 @@ class iDVBDemux: public iObject { public: virtual RESULT createSectionReader(eMainloop *context, ePtr &reader)=0; + virtual RESULT createPESReader(eMainloop *context, ePtr &reader)=0; virtual RESULT createTSRecorder(ePtr &recorder)=0; virtual RESULT getMPEGDecoder(ePtr &reader, int primary=1)=0; virtual RESULT getSTC(pts_t &pts, int num=0)=0; @@ -570,13 +586,23 @@ class iTSMPEGDecoder: public iObject { public: enum { pidDisabled = -1 }; - /** Set Displayed Video PID */ - virtual RESULT setVideoPID(int vpid)=0; + /** Set Displayed Video PID and type */ + virtual RESULT setVideoPID(int vpid, int type)=0; - enum { af_MPEG, af_AC3, af_DTS }; + enum { af_MPEG, af_AC3, af_DTS, af_AAC }; /** Set Displayed Audio PID and type */ virtual RESULT setAudioPID(int apid, int type)=0; + enum { ac_left, ac_stereo, ac_right }; + /** Set Displayed Audio Channel */ + virtual RESULT setAudioChannel(int channel)=0; + virtual int getAudioChannel()=0; + + virtual RESULT setPCMDelay(int delay)=0; + virtual int getPCMDelay()=0; + virtual RESULT setAC3Delay(int delay)=0; + virtual int getAC3Delay()=0; + /** Set Displayed Videotext PID */ virtual RESULT setTextPID(int vpid)=0; @@ -616,6 +642,10 @@ public: virtual RESULT setTrickmode(int what) = 0; virtual RESULT getPTS(int what, pts_t &pts) = 0; + + virtual RESULT showSinglePic(const char *filename) = 0; + + virtual RESULT setRadioPic(const std::string &filename) = 0; }; #endif //SWIG