1 #ifndef __servicedvbrecord_h
2 #define __servicedvbrecord_h
4 #include <lib/service/iservice.h>
5 #include <lib/dvb/idvb.h>
7 #include <lib/dvb/pmt.h>
8 #include <lib/dvb/eit.h>
11 #include <lib/service/servicedvb.h>
13 class eDVBServiceRecord: public eDVBServiceBase,
14 public iRecordableService, public Object
16 DECLARE_REF(eDVBServiceRecord);
18 RESULT connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection);
19 RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id);
22 RESULT getError(int &error) { error = m_error; m_error = 0; return 0; }
24 enum { stateIdle, statePrepared, stateRecording };
25 int m_state, m_want_record;
26 friend class eServiceFactoryDVB;
27 eDVBServiceRecord(const eServiceReferenceDVB &ref);
29 eServiceReferenceDVB m_ref;
31 ePtr<iDVBTSRecorder> m_record;
33 int m_recording, m_tuned, m_error;
34 std::set<int> m_pids_active;
35 std::string m_filename;
40 RESULT frontendInfo(ePtr<iFrontendInformation> &ptr);
43 void serviceEvent(int event);
44 Signal2<void,iRecordableService*,int> m_event;