X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3cddda083f4ace59e279f9f4f6ae12bad079d33b..4d855f82eafba2c96fdc31d852ac6b4278444cdf:/lib/service/servicedvbrecord.h diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h index 93118bed..6a58fc84 100644 --- a/lib/service/servicedvbrecord.h +++ b/lib/service/servicedvbrecord.h @@ -6,22 +6,43 @@ #include #include +#include #include -class eDVBServiceRecord: public iRecordableService, public Object +class eDVBServiceRecord: public eDVBServiceBase, + public iRecordableService, 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 start(); RESULT stop(); + RESULT getError(int &error) { error = m_error; m_error = 0; return 0; } private: + enum { stateIdle, statePrepared, stateRecording }; + int m_state, m_want_record; friend class eServiceFactoryDVB; eDVBServiceRecord(const eServiceReferenceDVB &ref); - eDVBServicePMTHandler m_service_handler; eServiceReferenceDVB m_ref; + + ePtr m_record; + + int m_recording, m_tuned, m_error; + std::set m_pids_active; + std::string m_filename; + int m_target_fd; + + int doPrepare(); + int doRecord(); + RESULT frontendInfo(ePtr &ptr); + + /* events */ void serviceEvent(int event); + Signal2 m_event; + }; #endif