X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6629073331fbe67edfa9f4d591c9df6e41c465a6..d87e3beb37390b59d288ae1cb43d9f887754ed56:/lib/dvb/dvb.h diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 692ae839..c71a4d1b 100644 --- a/lib/dvb/dvb.h +++ b/lib/dvb/dvb.h @@ -33,9 +33,12 @@ public: eDVBRegisteredFrontend(eDVBFrontend *fe, iDVBAdapter *adap) :disable(new eTimer(eApp)), m_adapter(adap), m_frontend(fe), m_inuse(0) { - disable = new eTimer(eApp); CONNECT(disable->timeout, eDVBRegisteredFrontend::closeFrontend); } + ~eDVBRegisteredFrontend() + { + delete disable; + } void dec_use() { if (!--m_inuse) @@ -149,7 +152,7 @@ class eDVBResourceManager: public iObject, public Object combinations. this will be evaluated here. */ RESULT allocateFrontend(ePtr &fe, ePtr &feparm); - RESULT allocateFrontendByIndex(ePtr &fe, int index); + RESULT allocateFrontendByIndex(ePtr &fe, int slot_index); /* allocate a demux able to filter on the selected frontend. */ RESULT allocateDemux(eDVBRegisteredFrontend *fe, ePtr &demux, int cap); @@ -181,11 +184,11 @@ class eDVBResourceManager: public iObject, public Object Connection m_cached_channel_state_changed_conn; eTimer m_releaseCachedChannelTimer; void DVBChannelStateChanged(iDVBChannel*); - void releaseCachedChannel(); void feStateChanged(); #ifndef SWIG public: #endif + void releaseCachedChannel(); eDVBResourceManager(); virtual ~eDVBResourceManager(); @@ -193,9 +196,13 @@ public: RESULT getChannelList(ePtr &list); enum { - errNoFrontend = -1, + /* errNoFrontend = -1 replaced by more spcific messages */ errNoDemux = -2, - errChidNotFound = -3 + errChidNotFound = -3, + errNoChannelList = -4, + errChannelNotInList = -5, + errAllSourcesBusy = -6, + errNoSourceFound = -7, }; RESULT connectChannelAdded(const Slot1 &channelAdded, ePtr &connection); @@ -209,7 +216,8 @@ public: public: #endif PSignal1 frontendUseMaskChanged; - SWIG_VOID(RESULT) allocateRawChannel(eUsePtr &SWIG_OUTPUT, int frontend_index); + SWIG_VOID(RESULT) allocateRawChannel(eUsePtr &SWIG_OUTPUT, int slot_index); + PyObject *setFrontendSlotInformations(SWIG_PYOBJECT(ePyObject) list); }; SWIG_TEMPLATE_TYPEDEF(ePtr, eDVBResourceManager); SWIG_EXTEND(ePtr, @@ -221,6 +229,9 @@ SWIG_EXTEND(ePtr, ); #ifndef SWIG + +class eDVBChannelFilePush; + /* iDVBPVRChannel includes iDVBChannel. don't panic. */ class eDVBChannel: public iDVBPVRChannel, public iFilePushScatterGather, public Object { @@ -272,7 +283,7 @@ private: ePtr m_conn_frontendStateChanged; /* for PVR playback */ - eFilePushThread *m_pvr_thread; + eDVBChannelFilePush *m_pvr_thread; void pvrEvent(int event); int m_pvr_fd_dst;