X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1a3bd31e5cfcba89f2db03a2b4fa550de1fa2823..fc0d94d9a917be5979e4c2fcd910bd441a35843e:/lib/service/servicedvbrecord.h diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h index 7d5a4fb3..dcce3388 100644 --- a/lib/service/servicedvbrecord.h +++ b/lib/service/servicedvbrecord.h @@ -10,13 +10,25 @@ #include -class eDVBServiceRecord: public iRecordableService, public Object +class eDVBServiceRecord: public eDVBServiceBase, + public iRecordableService, + public iStreamableService, + public Object { DECLARE_REF(eDVBServiceRecord); public: - RESULT prepare(const char *filename); + RESULT connectEvent(const Slot2 &event, ePtr &connection); + RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id); + RESULT prepareStreaming(); RESULT start(); RESULT stop(); + RESULT stream(ePtr &ptr); + RESULT getError(int &error) { error = m_error; return 0; } + RESULT frontendInfo(ePtr &ptr); + + /* streamable service */ + PyObject *getStreamingData(); + private: enum { stateIdle, statePrepared, stateRecording }; int m_state, m_want_record; @@ -24,17 +36,25 @@ private: eDVBServiceRecord(const eServiceReferenceDVB &ref); eServiceReferenceDVB m_ref; - eDVBServicePMTHandler m_service_handler; - void serviceEvent(int event); ePtr m_record; + ePtr m_con_record_event; - int m_recording; + int m_recording, m_tuned, m_error; std::set m_pids_active; std::string m_filename; + int m_target_fd; + int m_streaming; int doPrepare(); int doRecord(); + + /* events */ + void serviceEvent(int event); + Signal2 m_event; + + /* recorder events */ + void recordEvent(int event); }; #endif