openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
servicedvbrecord.h
Go to the documentation of this file.
1 #ifndef __servicedvbrecord_h
2 #define __servicedvbrecord_h
3 
4 #include <lib/service/iservice.h>
5 #include <lib/dvb/idvb.h>
6 
7 #include <lib/dvb/pmt.h>
8 #include <lib/dvb/eit.h>
9 #include <set>
10 
11 #include <lib/service/servicedvb.h>
12 
14  public iRecordableService,
15  public iStreamableService,
16  public iSubserviceList,
17  public sigc::trackable
18 {
19  DECLARE_REF(eDVBServiceRecord);
20 public:
21  RESULT connectEvent(const sigc::slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection);
22  RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags, bool descramble, bool recordecm, int packetsize = 188);
23  RESULT prepareStreaming(bool descramble, bool includeecm);
24  RESULT start(bool simulate=false);
25  RESULT stop();
27  RESULT getError(int &error) { error = m_error; return 0; }
30  RESULT getFilenameExtension(std::string &ext) { ext = ".ts"; return 0; };
31 
32  // iStreamableService
34 
35  // iSubserviceList
37  RESULT getSubservice(eServiceReference &subservice, unsigned int n);
38 private:
39  enum { stateIdle, statePrepared, stateRecording };
40  bool m_simulate;
41  int m_state, m_want_record;
42  bool m_record_ecm;
43  bool m_descramble;
44  bool m_is_stream_client;
45  bool m_is_pvr;
46  int m_packet_size;
47  friend class eServiceFactoryDVB;
48  eDVBServiceRecord(const eServiceReferenceDVB &ref, bool isstreamclient = false);
49 
50  eDVBServiceEITHandler m_event_handler;
51 
53 
54  ePtr<iDVBTSRecorder> m_record;
55  ePtr<eConnection> m_con_record_event;
56 
57  int m_recording, m_tuned, m_error;
58  std::set<int> m_pids_active;
59  std::string m_filename;
60 
61  std::map<int,pts_t> m_event_timestamps;
62  int m_target_fd;
63  int m_streaming;
64  int m_last_event_id;
65 
66  int doPrepare();
67  int doRecord();
68 
69  /* events */
70  void serviceEvent(int event);
71  sigc::signal2<void,iRecordableService*,int> m_event;
72 
73  /* recorder events */
74  void recordEvent(int event);
75 
76  /* eit updates */
77  void gotNewEvent(int error);
78  void saveCutlist();
79 };
80 
81 #endif
static int ptr
Definition: bcm.cpp:17
Definition: servicedvb.h:71
Definition: eit.h:11
Definition: servicedvbrecord.h:18
RESULT prepareStreaming(bool descramble, bool includeecm)
Definition: servicedvbrecord.cpp:156
RESULT connectEvent(const sigc::slot2< void, iRecordableService *, int > &event, ePtr< eConnection > &connection)
Definition: servicedvbrecord.cpp:520
RESULT getFilenameExtension(std::string &ext)
Definition: servicedvbrecord.h:30
RESULT stop()
Definition: servicedvbrecord.cpp:176
RESULT stream(ePtr< iStreamableService > &ptr)
Definition: servicedvbrecord.cpp:526
ePtr< iStreamData > getStreamingData()
Definition: servicedvbrecord.cpp:532
RESULT start(bool simulate=false)
Definition: servicedvbrecord.cpp:167
RESULT subServices(ePtr< iSubserviceList > &ptr)
Definition: servicedvbrecord.cpp:629
RESULT getSubservice(eServiceReference &subservice, unsigned int n)
Definition: servicedvbrecord.cpp:643
RESULT getError(int &error)
Definition: servicedvbrecord.h:27
RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags, bool descramble, bool recordecm, int packetsize=188)
Definition: servicedvbrecord.cpp:89
int getNumberOfSubservices()
Definition: servicedvbrecord.cpp:635
RESULT frontendInfo(ePtr< iFrontendInformation > &ptr)
Definition: servicedvbrecord.cpp:514
Definition: servicedvb.h:17
Definition: idvb.h:192
Definition: iservice.h:15
Definition: iservice.h:1049
Definition: iservice.h:858
Definition: iservice.h:640
virtual unsigned int n
Definition: iservice.h:647
const char * filename
Definition: epng.h:36
name
Definition: newplugin.py:9
list ref
Definition: create_picon_e1_to_e2.py:17
int RESULT
Definition: object.h:12