4 #include <lib/service/iservice.h>
5 #include <lib/dvb/idvb.h>
7 #include <lib/dvb/pmt.h>
8 #include <lib/dvb/eit.h>
10 class eServiceFactoryDVB: public iServiceHandler
12 DECLARE_REF(eServiceFactoryDVB);
15 virtual ~eServiceFactoryDVB();
19 RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr);
20 RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr);
21 RESULT list(const eServiceReference &, ePtr<iListableService> &ptr);
22 RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr);
24 RESULT lookupService(ePtr<eDVBService> &ptr, const eServiceReference &ref);
27 class eDVBServiceList: public iListableService
29 DECLARE_REF(eDVBServiceList);
31 eServiceReference m_parent;
32 friend class eServiceFactoryDVB;
33 eDVBServiceList(const eServiceReference &parent);
35 virtual ~eDVBServiceList();
36 RESULT getContent(std::list<eServiceReference> &list);
39 class eDVBServicePlay: public iPlayableService, public Object, public iServiceInformation
41 DECLARE_REF(eDVBServicePlay);
43 friend class eServiceFactoryDVB;
44 eServiceReference m_reference;
46 ePtr<eDVBService> m_dvb_service;
48 ePtr<iTSMPEGDecoder> m_decoder;
50 eDVBServicePMTHandler m_service_handler;
51 eDVBServiceEITHandler m_event_handler;
53 eDVBServicePlay(const eServiceReference &ref, eDVBService *service);
57 void serviceEvent(int event);
58 Signal2<void,iPlayableService*,int> m_event;
60 virtual ~eDVBServicePlay();
63 RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection);
66 RESULT pause(ePtr<iPauseableService> &ptr);
67 RESULT info(ePtr<iServiceInformation> &ptr);
69 // iServiceInformation
70 RESULT getName(std::string &name);
71 RESULT getEvent(ePtr<eServiceEvent> &evt, int nownext);