X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6696994da0d59a3b483eda65d1dc8b1a9df67cc0..cdb4e68027ec99a49805d8ab5e84d644f5ec2ff1:/lib/service/servicedvbrecord.h diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h index 17de033e..0535f029 100644 --- a/lib/service/servicedvbrecord.h +++ b/lib/service/servicedvbrecord.h @@ -13,22 +13,27 @@ class eDVBServiceRecord: public eDVBServiceBase, public iRecordableService, public iStreamableService, + public iSubserviceList, public Object { DECLARE_REF(eDVBServiceRecord); public: RESULT connectEvent(const Slot2 &event, ePtr &connection); - RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id); + RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags); RESULT prepareStreaming(); RESULT start(bool simulate=false); RESULT stop(); RESULT stream(ePtr &ptr); RESULT getError(int &error) { error = m_error; return 0; } RESULT frontendInfo(ePtr &ptr); + RESULT subServices(ePtr &ptr); - /* streamable service */ + // iStreamableService PyObject *getStreamingData(); + // iSubserviceList + int getNumberOfSubservices(); + RESULT getSubservice(eServiceReference &subservice, unsigned int n); private: enum { stateIdle, statePrepared, stateRecording }; bool m_simulate; @@ -36,16 +41,21 @@ private: friend class eServiceFactoryDVB; eDVBServiceRecord(const eServiceReferenceDVB &ref); + eDVBServiceEITHandler m_event_handler; + eServiceReferenceDVB m_ref; ePtr m_record; - ePtr m_con_record_event; + ePtr m_con_record_event; int m_recording, m_tuned, m_error; std::set m_pids_active; std::string m_filename; + + std::map m_event_timestamps; int m_target_fd; int m_streaming; + int m_last_event_id; int doPrepare(); int doRecord(); @@ -56,6 +66,10 @@ private: /* recorder events */ void recordEvent(int event); + + /* eit updates */ + void gotNewEvent(); + void saveCutlist(); }; #endif