{
DECLARE_REF(eDVBResourceManager);
int avail, busy;
-
+
+ eUsePtr<iDVBChannel> m_cached_channel;
+
eSmartPtrList<iDVBAdapter> m_adapter;
eSmartPtrList<eDVBRegisteredDemux> m_demux;
friend class eDVBChannel;
RESULT addChannel(const eDVBChannelID &chid, eDVBChannel *ch);
RESULT removeChannel(eDVBChannel *ch);
-
+
Signal1<void,eDVBChannel*> m_channelAdded;
- Signal1<void,eDVBChannel*> m_channelRemoved;
- Signal1<void,iDVBChannel*> m_channelRunning;
- bool canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm, int used_tuner_mask);
+ bool canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
public:
eDVBResourceManager();
virtual ~eDVBResourceManager();
RESULT allocatePVRChannel(eUsePtr<iDVBPVRChannel> &channel);
RESULT connectChannelAdded(const Slot1<void,eDVBChannel*> &channelAdded, ePtr<eConnection> &connection);
- RESULT connectChannelRemoved(const Slot1<void,eDVBChannel*> &channelRemoved, ePtr<eConnection> &connection);
- RESULT connectChannelRunning(const Slot1<void,iDVBChannel*> &channelRemoved, ePtr<eConnection> &connection);
- bool canAllocateChannel(const eDVBChannelID &channelid);
+ bool canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
};
class eFilePushThread;
there is an unknown amount of buffers in between */
RESULT seekToPosition(iDVBDemux *decoding_demux, const off_t &off);
+ int getUseCount() { return m_use_count; }
private:
ePtr<eDVBAllocatedFrontend> m_frontend;
ePtr<eDVBAllocatedDemux> m_demux, m_decoder_demux;