{
DECLARE_REF(eDVBRegisteredFrontend);
eTimer *disable;
+ Signal0<void> stateChanged;
void closeFrontend()
{
if (!m_inuse && m_frontend->closeFrontend()) // frontend busy
void dec_use()
{
if (!--m_inuse)
+ {
+ /* emit */ stateChanged();
disable->start(3000, true);
+ }
}
void inc_use()
{
if (++m_inuse == 1)
+ {
m_frontend->openFrontend();
+ /* emit */ stateChanged();
+ }
}
iDVBAdapter *m_adapter;
ePtr<eDVBFrontend> m_frontend;
eSmartPtrList<eDVBFrontend> m_frontend;
eSmartPtrList<eDVBDemux> m_demux;
};
-
#endif // SWIG
+SWIG_IGNORE(eDVBResourceManager);
class eDVBResourceManager: public iObject, public Object
{
DECLARE_REF(eDVBResourceManager);
Signal1<void,eDVBChannel*> m_channelAdded;
- bool canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
+ int canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
eUsePtr<iDVBChannel> m_cached_channel;
Connection m_cached_channel_state_changed_conn;
eTimer m_releaseCachedChannelTimer;
void DVBChannelStateChanged(iDVBChannel*);
void releaseCachedChannel();
+ void feStateChanged();
#ifndef SWIG
public:
#endif
errNoDemux = -2,
errChidNotFound = -3
};
-
+
RESULT connectChannelAdded(const Slot1<void,eDVBChannel*> &channelAdded, ePtr<eConnection> &connection);
- bool canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
+ int canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
/* allocate channel... */
RESULT allocateChannel(const eDVBChannelID &channelid, eUsePtr<iDVBChannel> &channel);
RESULT allocatePVRChannel(eUsePtr<iDVBPVRChannel> &channel);
+ static RESULT getInstance(ePtr<eDVBResourceManager> &);
#ifdef SWIG
public:
#endif
- RESULT allocateRawChannel(eUsePtr<iDVBChannel> &channel, int frontend_index);
- static RESULT getInstance(ePtr<eDVBResourceManager> &ptr) { if (instance) { ptr = instance; return 0; } return -1; }
+ PSignal1<void,int> frontendUseMaskChanged;
+ SWIG_VOID(RESULT) allocateRawChannel(eUsePtr<iDVBChannel> &SWIG_OUTPUT, int frontend_index);
};
+SWIG_TEMPLATE_TYPEDEF(ePtr<eDVBResourceManager>, eDVBResourceManager);
+SWIG_EXTEND(ePtr<eDVBResourceManager>,
+ static ePtr<eDVBResourceManager> getInstance()
+ {
+ extern ePtr<eDVBResourceManager> NewResourceManagerPtr(void);
+ return NewResourceManagerPtr();
+ }
+);
#ifndef SWIG
-
/* iDVBPVRChannel includes iDVBChannel. don't panic. */
class eDVBChannel: public iDVBPVRChannel, public iFilePushScatterGather, public Object
{
void AddUse();
void ReleaseUse();
};
-
#endif // SWIG
+
#endif