git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add optional notification of childs when parent moves
[enigma2.git]
/
lib
/
dvb
/
dvb.h
diff --git
a/lib/dvb/dvb.h
b/lib/dvb/dvb.h
index 0c652e35dd0569d84de17bd1b4722ab083cf285c..bc51ccd89b61d9753171a6c14a6ab98539ca2e59 100644
(file)
--- a/
lib/dvb/dvb.h
+++ b/
lib/dvb/dvb.h
@@
-1,8
+1,11
@@
#ifndef __dvb_dvb_h
#define __dvb_dvb_h
#ifndef __dvb_dvb_h
#define __dvb_dvb_h
+#ifndef SWIG
+
#include <lib/base/ebase.h>
#include <lib/base/filepush.h>
#include <lib/base/ebase.h>
#include <lib/base/filepush.h>
+#include <lib/base/elock.h>
#include <lib/dvb/idvb.h>
#include <lib/dvb/demux.h>
#include <lib/dvb/frontend.h>
#include <lib/dvb/idvb.h>
#include <lib/dvb/demux.h>
#include <lib/dvb/frontend.h>
@@
-116,13
+119,13
@@
private:
eSmartPtrList<eDVBDemux> m_demux;
};
eSmartPtrList<eDVBDemux> m_demux;
};
-class eDVBResourceManager: public iObject
+#endif // SWIG
+
+class eDVBResourceManager: public iObject, public Object
{
DECLARE_REF(eDVBResourceManager);
int avail, busy;
{
DECLARE_REF(eDVBResourceManager);
int avail, busy;
- eUsePtr<iDVBChannel> m_cached_channel;
-
eSmartPtrList<iDVBAdapter> m_adapter;
eSmartPtrList<eDVBRegisteredDemux> m_demux;
eSmartPtrList<iDVBAdapter> m_adapter;
eSmartPtrList<eDVBRegisteredDemux> m_demux;
@@
-166,12
+169,18
@@
class eDVBResourceManager: public iObject
Signal1<void,eDVBChannel*> m_channelAdded;
bool canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
Signal1<void,eDVBChannel*> m_channelAdded;
bool canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
+
+ eUsePtr<iDVBChannel> m_cached_channel;
+ Connection m_cached_channel_state_changed_conn;
+ eTimer m_releaseCachedChannelTimer;
+ void DVBChannelStateChanged(iDVBChannel*);
+ void releaseCachedChannel();
+#ifndef SWIG
public:
public:
+#endif
eDVBResourceManager();
virtual ~eDVBResourceManager();
eDVBResourceManager();
virtual ~eDVBResourceManager();
-
- static RESULT getInstance(ePtr<eDVBResourceManager> &ptr) { if (instance) { ptr = instance; return 0; } return -1; }
-
+
RESULT setChannelList(iDVBChannelList *list);
RESULT getChannelList(ePtr<iDVBChannelList> &list);
RESULT setChannelList(iDVBChannelList *list);
RESULT getChannelList(ePtr<iDVBChannelList> &list);
@@
-181,20
+190,26
@@
public:
errChidNotFound = -3
};
errChidNotFound = -3
};
+ RESULT connectChannelAdded(const Slot1<void,eDVBChannel*> &channelAdded, ePtr<eConnection> &connection);
+ bool canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
+
/* allocate channel... */
RESULT allocateChannel(const eDVBChannelID &channelid, eUsePtr<iDVBChannel> &channel);
/* allocate channel... */
RESULT allocateChannel(const eDVBChannelID &channelid, eUsePtr<iDVBChannel> &channel);
- RESULT allocateRawChannel(eUsePtr<iDVBChannel> &channel, int frontend_index);
RESULT allocatePVRChannel(eUsePtr<iDVBPVRChannel> &channel);
RESULT allocatePVRChannel(eUsePtr<iDVBPVRChannel> &channel);
-
- RESULT connectChannelAdded(const Slot1<void,eDVBChannel*> &channelAdded, ePtr<eConnection> &connection);
-
- bool canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
+#ifdef SWIG
+public:
+#endif
+ RESULT allocateRawChannel(eUsePtr<iDVBChannel> &, int frontend_index);
+ static RESULT getInstance(ePtr<eDVBResourceManager> &);
};
};
+TEMPLATE_TYPEDEF(ePtr<eDVBResourceManager>, eDVBResourceManagerPtr);
+#ifndef SWIG
/* iDVBPVRChannel includes iDVBChannel. don't panic. */
class eDVBChannel: public iDVBPVRChannel, public iFilePushScatterGather, public Object
{
DECLARE_REF(eDVBChannel);
/* iDVBPVRChannel includes iDVBChannel. don't panic. */
class eDVBChannel: public iDVBPVRChannel, public iFilePushScatterGather, public Object
{
DECLARE_REF(eDVBChannel);
+ friend class eDVBResourceManager;
public:
eDVBChannel(eDVBResourceManager *mgr, eDVBAllocatedFrontend *frontend);
virtual ~eDVBChannel();
public:
eDVBChannel(eDVBResourceManager *mgr, eDVBAllocatedFrontend *frontend);
virtual ~eDVBChannel();
@@
-212,7
+227,8
@@
public:
RESULT setCIRouting(const eDVBCIRouting &routing);
RESULT getDemux(ePtr<iDVBDemux> &demux, int cap);
RESULT getFrontend(ePtr<iDVBFrontend> &frontend);
RESULT setCIRouting(const eDVBCIRouting &routing);
RESULT getDemux(ePtr<iDVBDemux> &demux, int cap);
RESULT getFrontend(ePtr<iDVBFrontend> &frontend);
-
+ RESULT getCurrentFrontendParameters(ePtr<iDVBFrontendParameters> ¶m);
+
/* iDVBPVRChannel */
RESULT playFile(const char *file);
void stopFile();
/* iDVBPVRChannel */
RESULT playFile(const char *file);
void stopFile();
@@
-224,7
+240,6
@@
public:
int getUseCount() { return m_use_count; }
private:
int getUseCount() { return m_use_count; }
private:
- ePtr<iDVBFrontendParameters> m_feparm; // for retune on lostlock
ePtr<eDVBAllocatedFrontend> m_frontend;
ePtr<eDVBAllocatedDemux> m_demux, m_decoder_demux;
ePtr<eDVBAllocatedFrontend> m_frontend;
ePtr<eDVBAllocatedDemux> m_demux, m_decoder_demux;
@@
-244,7
+259,7
@@
private:
eFilePushThread *m_pvr_thread;
void pvrEvent(int event);
eFilePushThread *m_pvr_thread;
void pvrEvent(int event);
- int m_pvr_fd_
src, m_pvr_fd_
dst;
+ int m_pvr_fd_dst;
eDVBTSTools m_tstools;
ePtr<eCueSheet> m_cue;
eDVBTSTools m_tstools;
ePtr<eCueSheet> m_cue;
@@
-256,6
+271,8
@@
private:
std::list<std::pair<off_t, off_t> > m_source_span;
void getNextSourceSpan(off_t current_offset, size_t bytes_read, off_t &start, size_t &size);
void flushPVR(iDVBDemux *decoding_demux=0);
std::list<std::pair<off_t, off_t> > m_source_span;
void getNextSourceSpan(off_t current_offset, size_t bytes_read, off_t &start, size_t &size);
void flushPVR(iDVBDemux *decoding_demux=0);
+
+ eSingleLock m_cuesheet_lock;
friend class eUsePtr<eDVBChannel>;
/* use count */
friend class eUsePtr<eDVBChannel>;
/* use count */
@@
-264,4
+281,5
@@
private:
void ReleaseUse();
};
void ReleaseUse();
};
+#endif // SWIG
#endif
#endif