openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
servicehdmi.h
Go to the documentation of this file.
1 #ifndef __servicehdmi_h
2 #define __servicehdmi_h
3 
4 #include <lib/base/message.h>
5 #include <lib/service/iservice.h>
7 
9 
11 {
12  DECLARE_REF(eServiceFactoryHDMI);
13 public:
15  virtual ~eServiceFactoryHDMI();
17 
23 private:
24  ePtr<eStaticServiceHDMIInfo> m_service_info;
25 };
26 
28 {
29  DECLARE_REF(eStaticServiceHDMIInfo);
30  friend class eServiceFactoryHDMI;
32 public:
33  RESULT getName(const eServiceReference &ref, std::string &name);
34  int getLength(const eServiceReference &ref);
35  int getInfo(const eServiceReference &ref, int w);
36  int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) { return 1; }
37  long long getFileSize(const eServiceReference &ref);
38 };
39 
40 class eServiceHDMI: public iPlayableService, public iServiceInformation, public sigc::trackable
41 {
42  DECLARE_REF(eServiceHDMI);
43 public:
44  virtual ~eServiceHDMI();
45 
46  RESULT connectEvent(const sigc::slot2<void, iPlayableService*, int> &event, ePtr<eConnection> &connection);
47  RESULT start();
48  RESULT stop();
49  RESULT setTarget(int target, bool noaudio);
50 
51  RESULT pause(ePtr<iPauseableService> &ptr) { ptr = 0; return -1; }
52  RESULT seek(ePtr<iSeekableService> &ptr) { ptr = 0; return -1; }
56  RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; }
57 
61  RESULT tap(ePtr<iTapService> &ptr) { ptr = 0; return -1; };
62  RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; }
63 
64  RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; }
65  RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; }
68 
70 
71  RESULT getName(std::string &name);
72  int getInfo(int w);
73  std::string getInfoString(int w);
75 
76  void setQpipMode(bool value, bool audio) { }
77 
78 private:
79  friend class eServiceFactoryHDMI;
81  sigc::signal2<void,iPlayableService*, int> m_event;
82  eServiceReference m_ref;
83  int m_decoder_index;
84  bool m_noaudio;
85  ePtr<iTSMPEGDecoder> m_decoder;
86 };
87 
88 class eServiceHDMIRecord: public eDVBServiceBase, public iRecordableService, public sigc::trackable
89 {
90  DECLARE_REF(eServiceHDMIRecord);
91 public:
93  RESULT connectEvent(const sigc::slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection);
94  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);
95  RESULT prepareStreaming(bool descramble = true, bool includeecm = false);
96  RESULT start(bool simulate=false);
97  RESULT stop();
98  RESULT getError(int &error) { error = m_error; return 0; }
102  RESULT getFilenameExtension(std::string &ext) { ext = ".ts"; return 0; };
103 
104 private:
105  enum { stateIdle, statePrepared, stateRecording };
106  bool m_simulate;
107  int m_state;
108  eDVBRecordFileThread *m_thread;
109  eServiceReference m_ref;
110 
111  int m_recording, m_error;
112  std::string m_filename;
113 
114  int m_target_fd;
115  int m_encoder_fd;
116  int m_buffersize;
117 
118  int doPrepare();
119  int doRecord();
120 
121  /* events */
122  sigc::signal2<void,iRecordableService*,int> m_event;
123 
124  /* recorder events */
125  void recordEvent(int event);
126 };
127 
128 #endif
static int ptr
Definition: bcm.cpp:17
Definition: demux.h:99
Definition: servicedvb.h:71
Definition: servicehdmi.h:11
virtual ~eServiceFactoryHDMI()
Definition: servicehdmi.cpp:28
eServiceFactoryHDMI()
Definition: servicehdmi.cpp:14
RESULT play(const eServiceReference &, ePtr< iPlayableService > &ptr)
Definition: servicehdmi.cpp:41
RESULT record(const eServiceReference &, ePtr< iRecordableService > &ptr)
Definition: servicehdmi.cpp:47
RESULT info(const eServiceReference &, ePtr< iStaticServiceInformation > &ptr)
Definition: servicehdmi.cpp:59
RESULT list(const eServiceReference &, ePtr< iListableService > &ptr)
Definition: servicehdmi.cpp:53
RESULT offlineOperations(const eServiceReference &, ePtr< iServiceOfflineOperations > &ptr)
Definition: servicehdmi.cpp:65
Definition: servicehdmi.h:41
RESULT getName(std::string &name)
Definition: servicehdmi.cpp:154
RESULT connectEvent(const sigc::slot2< void, iPlayableService *, int > &event, ePtr< eConnection > &connection)
Definition: servicehdmi.cpp:117
void setQpipMode(bool value, bool audio)
Definition: servicehdmi.h:76
RESULT info(ePtr< iServiceInformation > &)
Definition: servicehdmi.cpp:148
RESULT subServices(ePtr< iSubserviceList > &ptr)
Definition: servicehdmi.h:59
int getInfo(int w)
Definition: servicehdmi.cpp:167
RESULT keys(ePtr< iServiceKeys > &ptr)
Definition: servicehdmi.h:65
RESULT audioDelay(ePtr< iAudioDelay > &ptr)
Definition: servicehdmi.h:56
RESULT stream(ePtr< iStreamableService > &ptr)
Definition: servicehdmi.h:66
RESULT audioTracks(ePtr< iAudioTrackSelection > &ptr)
Definition: servicehdmi.h:53
RESULT frontendInfo(ePtr< iFrontendInformation > &ptr)
Definition: servicehdmi.h:58
RESULT subtitle(ePtr< iSubtitleOutput > &ptr)
Definition: servicehdmi.h:55
RESULT seek(ePtr< iSeekableService > &ptr)
Definition: servicehdmi.h:52
std::string getInfoString(int w)
Definition: servicehdmi.cpp:172
RESULT cueSheet(ePtr< iCueSheet > &ptr)
Definition: servicehdmi.h:62
ePtr< iServiceInfoContainer > getInfoObject(int w)
Definition: servicehdmi.cpp:184
virtual ~eServiceHDMI()
Definition: servicehdmi.cpp:111
RESULT start()
Definition: servicehdmi.cpp:123
RESULT setTarget(int target, bool noaudio)
Definition: servicehdmi.cpp:141
RESULT tap(ePtr< iTapService > &ptr)
Definition: servicehdmi.h:61
RESULT rdsDecoder(ePtr< iRdsDecoder > &ptr)
Definition: servicehdmi.h:64
RESULT pause(ePtr< iPauseableService > &ptr)
Definition: servicehdmi.h:51
RESULT stop()
Definition: servicehdmi.cpp:134
RESULT timeshift(ePtr< iTimeshiftService > &ptr)
Definition: servicehdmi.h:60
RESULT streamed(ePtr< iStreamedService > &ptr)
Definition: servicehdmi.h:67
RESULT audioChannel(ePtr< iAudioChannelSelection > &ptr)
Definition: servicehdmi.h:54
Definition: servicehdmi.h:89
RESULT getError(int &error)
Definition: servicehdmi.h:98
RESULT stop()
Definition: servicehdmi.cpp:225
RESULT frontendInfo(ePtr< iFrontendInformation > &ptr)
Definition: servicehdmi.cpp:334
RESULT start(bool simulate=false)
Definition: servicehdmi.cpp:218
RESULT connectEvent(const sigc::slot2< void, iRecordableService *, int > &event, ePtr< eConnection > &connection)
Definition: servicehdmi.cpp:340
RESULT stream(ePtr< iStreamableService > &ptr)
Definition: servicehdmi.cpp:322
RESULT getFilenameExtension(std::string &ext)
Definition: servicehdmi.h:102
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)
Definition: servicehdmi.cpp:202
RESULT subServices(ePtr< iSubserviceList > &ptr)
Definition: servicehdmi.cpp:328
RESULT prepareStreaming(bool descramble=true, bool includeecm=false)
Definition: servicehdmi.cpp:213
eServiceHDMIRecord(const eServiceReference &ref)
Definition: servicehdmi.cpp:191
Definition: iservice.h:15
@ idServiceHDMIIn
Definition: iservice.h:32
Definition: servicehdmi.h:28
RESULT getName(const eServiceReference &ref, std::string &name)
Definition: servicehdmi.cpp:77
int getLength(const eServiceReference &ref)
Definition: servicehdmi.cpp:90
long long getFileSize(const eServiceReference &ref)
Definition: servicehdmi.cpp:100
int getInfo(const eServiceReference &ref, int w)
Definition: servicehdmi.cpp:95
int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate)
Definition: servicehdmi.h:36
Definition: iservice.h:978
Definition: iservice.h:1049
Definition: iservice.h:1095
Definition: iservice.h:433
Definition: iservice.h:269
const char * filename
Definition: epng.h:36
name
Definition: newplugin.py:9
target
Definition: newplugin.py:59
value
Definition: Profile.py:29
list ref
Definition: create_picon_e1_to_e2.py:17
int RESULT
Definition: object.h:12