X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/a6014454bb8627882386ced03f75628304078637..477c468861635555c7179f2f4397dd765f499656:/lib/dvb/dvb.h diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 0c652e35..15e27536 100644 --- a/lib/dvb/dvb.h +++ b/lib/dvb/dvb.h @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -116,13 +117,11 @@ private: eSmartPtrList m_demux; }; -class eDVBResourceManager: public iObject +class eDVBResourceManager: public iObject, public Object { DECLARE_REF(eDVBResourceManager); int avail, busy; - eUsePtr m_cached_channel; - eSmartPtrList m_adapter; eSmartPtrList m_demux; @@ -166,6 +165,11 @@ class eDVBResourceManager: public iObject Signal1 m_channelAdded; bool canAllocateFrontend(ePtr &feparm); + + eUsePtr m_cached_channel; + eTimer m_releaseCachedChannelTimer; + void DVBChannelStateChanged(iDVBChannel*); + void releaseCachedChannel(); public: eDVBResourceManager(); virtual ~eDVBResourceManager(); @@ -195,6 +199,7 @@ public: class eDVBChannel: public iDVBPVRChannel, public iFilePushScatterGather, public Object { DECLARE_REF(eDVBChannel); + friend class eDVBResourceManager; public: eDVBChannel(eDVBResourceManager *mgr, eDVBAllocatedFrontend *frontend); virtual ~eDVBChannel(); @@ -256,6 +261,8 @@ private: std::list > m_source_span; void getNextSourceSpan(off_t current_offset, size_t bytes_read, off_t &start, size_t &size); void flushPVR(iDVBDemux *decoding_demux=0); + + eSingleLock m_cuesheet_lock; friend class eUsePtr; /* use count */