-#ifndef __servicemp3_h
-#define __servicemp3_h
+#ifndef __servicedvb_h
+#define __servicedvb_h
#include <lib/service/iservice.h>
#include <lib/dvb/idvb.h>
class eServiceFactoryDVB: public iServiceHandler
{
-DECLARE_REF;
+DECLARE_REF(eServiceFactoryDVB);
public:
eServiceFactoryDVB();
virtual ~eServiceFactoryDVB();
RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr);
RESULT list(const eServiceReference &, ePtr<iListableService> &ptr);
RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr);
+private:
+ RESULT lookupService(ePtr<eDVBService> &ptr, const eServiceReference &ref);
};
class eDVBServiceList: public iListableService
{
-DECLARE_REF;
+DECLARE_REF(eDVBServiceList);
private:
eServiceReference m_parent;
friend class eServiceFactoryDVB;
public:
virtual ~eDVBServiceList();
RESULT getContent(std::list<eServiceReference> &list);
+ RESULT getNext(eServiceReference &ptr);
};
-class eDVBServicePlay: public iPlayableService, public Object, public iServiceInformation
+class eDVBServicePlay: public iPlayableService, iSeekableService, public Object, public iServiceInformation
{
-DECLARE_REF;
+DECLARE_REF(eDVBServicePlay);
private:
friend class eServiceFactoryDVB;
eServiceReference m_reference;
+ ePtr<eDVBService> m_dvb_service;
+
ePtr<iTSMPEGDecoder> m_decoder;
eDVBServicePMTHandler m_service_handler;
eDVBServiceEITHandler m_event_handler;
- eDVBServicePlay(const eServiceReference &ref);
+ eDVBServicePlay(const eServiceReference &ref, eDVBService *service);
void gotNewEvent();
void serviceEvent(int event);
+ Signal2<void,iPlayableService*,int> m_event;
+
+ int m_is_pvr;
public:
virtual ~eDVBServicePlay();
RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection);
RESULT start();
RESULT stop();
+ RESULT seek(ePtr<iSeekableService> &ptr);
RESULT pause(ePtr<iPauseableService> &ptr);
RESULT info(ePtr<iServiceInformation> &ptr);
+ // iSeekableService
+ RESULT getLength(pts_t &len);
+ RESULT seekTo(pts_t to);
+ RESULT getPlayPosition(pts_t &pos);
+
// iServiceInformation
- RESULT getName(const eServiceReference &ref, std::string &name);
+ RESULT getName(std::string &name);
RESULT getEvent(ePtr<eServiceEvent> &evt, int nownext);
};