X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/a6014454bb8627882386ced03f75628304078637..95039ba3e50f5df85e6e1e2d4108486fd28f2264:/lib/dvb/dvb.h diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 0c652e35..8b0a3595 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,12 @@ class eDVBResourceManager: public iObject Signal1 m_channelAdded; bool canAllocateFrontend(ePtr &feparm); + + eUsePtr m_cached_channel; + Connection m_cached_channel_state_changed_conn; + eTimer m_releaseCachedChannelTimer; + void DVBChannelStateChanged(iDVBChannel*); + void releaseCachedChannel(); public: eDVBResourceManager(); virtual ~eDVBResourceManager(); @@ -195,6 +200,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 +262,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 */