X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fservicedvbrecord.h;h=17de033e190b18629f386538ea589d195fe799f0;hp=6a58fc84cdb0972c69b2c96ae4efd401feda5621;hb=6696994da0d59a3b483eda65d1dc8b1a9df67cc0;hpb=9511adb1e0b28923cd05f5bcb74575d49e57f650 diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h index 6a58fc8..17de033 100644 --- a/lib/service/servicedvbrecord.h +++ b/lib/service/servicedvbrecord.h @@ -11,17 +11,27 @@ #include class eDVBServiceRecord: public eDVBServiceBase, - public iRecordableService, public Object + public iRecordableService, + public iStreamableService, + public Object { -DECLARE_REF(eDVBServiceRecord); + 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 prepareStreaming(); + RESULT start(bool simulate=false); RESULT stop(); - RESULT getError(int &error) { error = m_error; m_error = 0; return 0; } + 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 }; + bool m_simulate; int m_state, m_want_record; friend class eServiceFactoryDVB; eDVBServiceRecord(const eServiceReferenceDVB &ref); @@ -29,20 +39,23 @@ private: eServiceReferenceDVB m_ref; ePtr m_record; + ePtr m_con_record_event; 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(); - RESULT frontendInfo(ePtr &ptr); /* events */ void serviceEvent(int event); Signal2 m_event; - + + /* recorder events */ + void recordEvent(int event); }; #endif