X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ca7d92c97764d916bb8dd6731efa1ccff693b944..03379b6e86edfcce851da2d11c3189d1b7843afb:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index e9fb3cf0..2c80a9b8 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; @@ -220,15 +228,20 @@ 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, 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. */ @@ -240,19 +253,17 @@ public: int m_flags; enum { -#if 0 // not yet implemented dxNoSDT=1, // don't get SDT - dxDontshow=2, +//nyi dxDontshow=2, + dxNoDVB=4, // dont use PMT for this service ( use cached pids ) dxHoldName=8, -#endif dxNewFound=64, - dxNoDVB=4 // dont use PMT for this service ( use cached pids ) }; 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 &); @@ -411,7 +422,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; @@ -554,6 +565,7 @@ public: }; class iDVBSectionReader; +class iDVBPESReader; class iDVBTSRecorder; class iTSMPEGDecoder; @@ -561,6 +573,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; @@ -572,13 +585,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; @@ -618,6 +641,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