X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ed40f6f85c9c07c3c1224ae20601082c0309a631..d87e3beb37390b59d288ae1cb43d9f887754ed56:/lib/dvb/dvb.h diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 95d10916..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); @@ -204,14 +211,15 @@ public: /* allocate channel... */ RESULT allocateChannel(const eDVBChannelID &channelid, eUsePtr &channel); RESULT allocatePVRChannel(eUsePtr &channel); - static SWIG_VOID(RESULT) getInstance(ePtr &SWIG_OUTPUT); + static RESULT getInstance(ePtr &); #ifdef SWIG 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_REPLACE(ePtr, eDVBResourceManager); +SWIG_TEMPLATE_TYPEDEF(ePtr, eDVBResourceManager); SWIG_EXTEND(ePtr, static ePtr getInstance() { @@ -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;