openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
servicexine.h
Go to the documentation of this file.
1 #ifndef __servicemp3_h
2 #define __servicemp3_h
3 
4 #define HAVE_XINE
5 #ifdef HAVE_XINE
6 #include <lib/base/message.h>
7 #include <lib/service/iservice.h>
8 
9 #include <xine.h>
10 #include <xine/xineutils.h>
11 
13 
15 {
16  DECLARE_REF(eServiceFactoryXine);
17 public:
19  virtual ~eServiceFactoryXine();
21 
22  // iServiceHandler
28 private:
29  ePtr<eStaticServiceXineInfo> m_service_info;
30 };
31 
33 {
34  DECLARE_REF(eStaticServiceXineInfo);
35  friend class eServiceFactoryXine;
37 public:
38  RESULT getName(const eServiceReference &ref, std::string &name);
39  int getLength(const eServiceReference &ref);
40 };
41 
42 typedef struct _GstElement GstElement;
43 
45  public iServiceInformation, public iSeekableService, public sigc::trackable
46 {
47  DECLARE_REF(eServiceXine);
48 public:
49  virtual ~eServiceXine();
50 
51  // iPlayableService
52  RESULT connectEvent(const sigc::slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection);
53  RESULT start();
54  RESULT stop();
55 
57  RESULT setSlowMotion(int ratio);
58  RESULT setFastForward(int ratio);
59 
61 
62  // not implemented (yet)
63  RESULT setTarget(int target, bool noaudio = false) { return -1; }
69  RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; }
71  RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; }
72  RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; }
73  RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; }
74  RESULT tap(ePtr<iTapService> &ptr) { ptr = 0; return -1; };
75 
76  // iPausableService
77  RESULT pause();
78  RESULT unpause();
79 
81 
82  // iSeekableService
84  RESULT seekTo(pts_t to);
85  RESULT seekRelative(int direction, pts_t to);
87  RESULT setTrickmode(int trick);
89 
90  // iServiceInformation
91  RESULT getName(std::string &name);
92  int getInfo(int w);
93  std::string getInfoString(int w);
94 private:
95  friend class eServiceFactoryXine;
96  std::string m_filename;
97  eServiceXine(const char *filename);
98  sigc::signal2<void,iPlayableService*,int> m_event;
99 
100  xine_stream_t *stream;
101  xine_video_port_t *vo_port;
102  xine_audio_port_t *ao_port;
103  xine_event_queue_t *event_queue;
104 
105  enum
106  {
107  stError, stIdle, stRunning, stStopped,
108  };
109  int m_state;
110 
111  static void eventListenerWrap(void *user_data, const xine_event_t *event);
112  void eventListener(const xine_event_t *event);
113 
114 
115  eFixedMessagePump<int> m_pump;
116 };
117 #endif
118 
119 #endif
static int ptr
Definition: bcm.cpp:17
long long pts_t
Definition: cfile.h:7
Definition: servicexine.h:15
RESULT list(const eServiceReference &, ePtr< iListableService > &ptr)
Definition: servicexine.cpp:55
RESULT info(const eServiceReference &, ePtr< iStaticServiceInformation > &ptr)
Definition: servicexine.cpp:61
RESULT offlineOperations(const eServiceReference &, ePtr< iServiceOfflineOperations > &ptr)
Definition: servicexine.cpp:67
RESULT record(const eServiceReference &, ePtr< iRecordableService > &ptr)
Definition: servicexine.cpp:49
eServiceFactoryXine()
Definition: servicexine.cpp:19
RESULT play(const eServiceReference &, ePtr< iPlayableService > &ptr)
Definition: servicexine.cpp:42
virtual ~eServiceFactoryXine()
Definition: servicexine.cpp:30
Definition: iservice.h:15
@ idServiceXINE
Definition: iservice.h:29
Definition: servicexine.h:46
RESULT info(ePtr< iServiceInformation > &)
Definition: servicexine.cpp:316
RESULT subtitle(ePtr< iSubtitleOutput > &ptr)
Definition: servicexine.h:70
RESULT audioDelay(ePtr< iAudioDelay > &ptr)
Definition: servicexine.h:71
RESULT timeshift(ePtr< iTimeshiftService > &ptr)
Definition: servicexine.h:68
RESULT subServices(ePtr< iSubserviceList > &ptr)
Definition: servicexine.h:67
RESULT tap(ePtr< iTapService > &ptr)
Definition: servicexine.h:74
RESULT setFastForward(int ratio)
Definition: servicexine.cpp:226
RESULT getPlayPosition(pts_t &SWIG_OUTPUT)
Definition: servicexine.cpp:286
RESULT rdsDecoder(ePtr< iRdsDecoder > &ptr)
Definition: servicexine.h:72
RESULT seekTo(pts_t to)
Definition: servicexine.cpp:274
RESULT audioTracks(ePtr< iAudioTrackSelection > &ptr)
Definition: servicexine.h:65
RESULT getLength(pts_t &SWIG_OUTPUT)
Definition: servicexine.cpp:252
RESULT isCurrentlySeekable()
Definition: servicexine.cpp:311
RESULT setSlowMotion(int ratio)
Definition: servicexine.cpp:221
RESULT keys(ePtr< iServiceKeys > &ptr)
Definition: servicexine.h:73
RESULT seekRelative(int direction, pts_t to)
Definition: servicexine.cpp:280
RESULT audioChannel(ePtr< iAudioChannelSelection > &ptr)
Definition: servicexine.h:64
RESULT setTrickmode(int trick)
Definition: servicexine.cpp:305
RESULT connectEvent(const sigc::slot2< void, iPlayableService *, int > &event, ePtr< eConnection > &connection)
Definition: servicexine.cpp:167
RESULT setTarget(int target, bool noaudio=false)
Definition: servicexine.h:63
RESULT pause()
Definition: servicexine.cpp:232
int getInfo(int w)
Definition: servicexine.cpp:328
std::string getInfoString(int w)
Definition: servicexine.cpp:345
RESULT frontendInfo(ePtr< iFrontendInformation > &ptr)
Definition: servicexine.h:66
RESULT getName(std::string &name)
Definition: servicexine.cpp:322
virtual ~eServiceXine()
Definition: servicexine.cpp:127
RESULT stop()
Definition: servicexine.cpp:199
RESULT seek(ePtr< iSeekableService > &ptr)
Definition: servicexine.cpp:246
RESULT unpause()
Definition: servicexine.cpp:238
RESULT start()
Definition: servicexine.cpp:173
RESULT cueSheet(ePtr< iCueSheet > &ptr)
Definition: servicexine.h:69
Definition: servicexine.h:33
RESULT getName(const eServiceReference &ref, std::string &name)
Definition: servicexine.cpp:83
int getLength(const eServiceReference &ref)
Definition: servicexine.cpp:93
Definition: iservice.h:499
Definition: iservice.h:978
Definition: iservice.h:528
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
list ref
Definition: create_picon_e1_to_e2.py:17
int RESULT
Definition: object.h:12
struct _GstElement GstElement
Definition: servicemp3.h:118
#define SWIG_OUTPUT
Definition: swig.h:20