aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/service/servicedvb.h')
-rw-r--r--lib/service/servicedvb.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
new file mode 100644
index 00000000..fac9edf2
--- /dev/null
+++ b/lib/service/servicedvb.h
@@ -0,0 +1,45 @@
+#ifndef __servicemp3_h
+#define __servicemp3_h
+
+#include <lib/service/iservice.h>
+#include <lib/dvb/idvb.h>
+
+#include <lib/dvb/pmt.h>
+
+class eServiceFactoryDVB: public virtual iServiceHandler, public virtual iObject
+{
+DECLARE_REF;
+public:
+ eServiceFactoryDVB();
+ virtual ~eServiceFactoryDVB();
+ enum { id = 0x1 };
+
+ // iServiceHandler
+ RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr);
+ RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr);
+ RESULT list(const eServiceReference &, ePtr<iListableService> &ptr);
+};
+
+class eDVBServicePlay: public virtual iPlayableService, public virtual iObject, public Object
+{
+DECLARE_REF;
+private:
+ friend class eServiceFactoryDVB;
+ eServiceReference m_reference;
+
+ ePtr<iTSMPEGDecoder> m_decoder;
+
+ eDVBServicePMTHandler m_serviceHandler;
+
+ eDVBServicePlay(const eServiceReference &ref);
+
+ void serviceEvent(int event);
+public:
+ virtual ~eDVBServicePlay();
+
+ // iPlayableService
+ RESULT start();
+ RESULT getIPausableService(ePtr<iPauseableService> &ptr);
+};
+
+#endif