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
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);
25 class eDVBServiceList: public iListableService
29 eServiceReference m_parent;
30 friend class eServiceFactoryDVB;
31 eDVBServiceList(const eServiceReference &parent);
33 virtual ~eDVBServiceList();
34 RESULT getContent(std::list<eServiceReference> &list);
37 class eDVBServicePlay: public iPlayableService, public Object, public iServiceInformation
41 friend class eServiceFactoryDVB;
42 eServiceReference m_reference;
44 ePtr<iTSMPEGDecoder> m_decoder;
46 eDVBServicePMTHandler m_service_handler;
47 eDVBServiceEITHandler m_event_handler;
49 eDVBServicePlay(const eServiceReference &ref);
53 void serviceEvent(int event);
54 Signal2<void,iPlayableService*,int> m_event;
56 virtual ~eDVBServicePlay();
59 RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection);
62 RESULT pause(ePtr<iPauseableService> &ptr);
63 RESULT info(ePtr<iServiceInformation> &ptr);
65 // iServiceInformation
66 RESULT getName(const eServiceReference &ref, std::string &name);
67 RESULT getEvent(ePtr<eServiceEvent> &evt, int nownext);