4.5.1r7
[enigma2.git] / usr / include / enigma2 / lib / dvb / demux.h
1 #ifndef __dvb_demux_h
2 #define __dvb_demux_h
3
4 #include <lib/dvb/idvb.h>
5 #include <lib/dvb/idemux.h>
6
7 class eDVBSectionReader;
8 class eDVBPESReader;
9 class eDVBTSReader;
10 class eDVBTSRecorder;
11
12 class eDVBDemux: public iDVBDemux
13 {
14         DECLARE_REF(eDVBDemux);
15 public:
16         enum {
17                 evtFlush
18         };
19         eDVBDemux(int adapter, int demux);
20         virtual ~eDVBDemux();
21         
22         RESULT setSourceFrontend(int fenum);
23         int getSource() const { return source; }
24         RESULT setSourcePVR(const std::string &pvr_source);
25         std::string getSourcePVR() const { return pvr_source; }
26
27         RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader);
28         RESULT createPESReader(eMainloop *context, ePtr<iDVBPESReader> &reader);
29         RESULT createTSReader(eMainloop *context, ePtr<iDVBTSReader> &reader);
30         RESULT createTSWriter(ePtr<iDVBTSWriter> &writer);
31         RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder);
32         RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader, int decoder_id);
33         RESULT getSTC(pts_t &pts, int num);
34         RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; }
35         RESULT flush();
36         RESULT connectEvent(const sigc::slot1<void,int> &event, ePtr<eConnection> &conn);
37         int openDVR(int flags);
38
39         int getRefCount() { return ref; }
40 private:
41         int adapter, demux, source;
42         std::string pvr_source;
43         int m_pcr_fd;
44
45         friend class eDVBSectionReader;
46         friend class eDVBPESReader;
47         friend class eDVBTSReader;
48         friend class eDVBAudio;
49         friend class eDVBVideo;
50         friend class eDVBPCR;
51         friend class eDVBTText;
52         friend class eDVBTSRecorder;
53         friend class eDVBCAService;
54         sigc::signal1<void, int> m_event;
55         
56         int openDemux(void);
57 };
58
59 #endif