add iStreamableService
[enigma2.git] / lib / service / servicedvbrecord.h
index 5f36991f92935b78982cdbb4538c41512cef9894..018e83f98117ed5afdd056acd126c2b489ee86b7 100644 (file)
 #include <lib/service/servicedvb.h>
 
 class eDVBServiceRecord: public eDVBServiceBase,
-       public iRecordableService, public Object
+       public iRecordableService, 
+       public iStreamableService,
+       public Object
 {
 DECLARE_REF(eDVBServiceRecord);
 public:
        RESULT connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &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<iStreamableService> &ptr);
        RESULT getError(int &error) { error = m_error; return 0; }
+       RESULT frontendInfo(ePtr<iFrontendInformation> &ptr);
+
+               /* streamable service */
+       PyObject *getStreamingData();
+
 private:
        enum { stateIdle, statePrepared, stateRecording };
        int m_state, m_want_record;
@@ -34,15 +43,14 @@ private:
        std::set<int> m_pids_active;
        std::string m_filename;
        int m_target_fd;
+       int m_streaming;
        
        int doPrepare();
        int doRecord();
-       RESULT frontendInfo(ePtr<iFrontendInformation> &ptr);
 
                        /* events */
        void serviceEvent(int event);
        Signal2<void,iRecordableService*,int> m_event;
-
 };
 
 #endif