X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2d0d9ad2cf4891c5386a3d8ca040c2738b5c2532..8b5176ab8d8a334dfee75cfbda878240e2501823:/lib/dvb/dvb.h diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 037c1974..d2148bc9 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) @@ -125,9 +128,9 @@ private: eSmartPtrList m_frontend; eSmartPtrList m_demux; }; - #endif // SWIG +SWIG_IGNORE(eDVBResourceManager); class eDVBResourceManager: public iObject, public Object { DECLARE_REF(eDVBResourceManager); @@ -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,27 +196,43 @@ 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); int canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore); /* allocate channel... */ RESULT allocateChannel(const eDVBChannelID &channelid, eUsePtr &channel); RESULT allocatePVRChannel(eUsePtr &channel); + static RESULT getInstance(ePtr &); #ifdef SWIG public: #endif + bool canMeasureFrontendInputPower(); PSignal1 frontendUseMaskChanged; - RESULT allocateRawChannel(eUsePtr &, int frontend_index); - static RESULT getInstance(ePtr &); + SWIG_VOID(RESULT) allocateRawChannel(eUsePtr &SWIG_OUTPUT, int slot_index); + PyObject *setFrontendSlotInformations(SWIG_PYOBJECT(ePyObject) list); }; -TEMPLATE_TYPEDEF(ePtr, eDVBResourceManagerPtr); +SWIG_TEMPLATE_TYPEDEF(ePtr, eDVBResourceManager); +SWIG_EXTEND(ePtr, + static ePtr getInstance() + { + extern ePtr NewResourceManagerPtr(void); + return NewResourceManagerPtr(); + } +); + #ifndef SWIG +class eDVBChannelFilePush; + /* iDVBPVRChannel includes iDVBChannel. don't panic. */ class eDVBChannel: public iDVBPVRChannel, public iFilePushScatterGather, public Object { @@ -265,7 +284,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; @@ -289,6 +308,6 @@ private: void AddUse(); void ReleaseUse(); }; - #endif // SWIG + #endif