diff options
Diffstat (limited to 'lib/service/servicedvb.h')
| -rw-r--r-- | lib/service/servicedvb.h | 45 |
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 |
