Ginga  0.13.6.1771-df200
The iTV middleware.
Player.h
Go to the documentation of this file.
1 /* Copyright (C) 2006-2017 PUC-Rio/Laboratorio TeleMidia
2 
3 This file is part of Ginga (Ginga-NCL).
4 
5 Ginga is free software: you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9 
10 Ginga is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
13 License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with Ginga. If not, see <http://www.gnu.org/licenses/>. */
17 
18 #ifndef PLAYER_H
19 #define PLAYER_H
20 
21 #include "Formatter.h"
22 #include "PlayerAnimator.h"
23 
25 
26 class Formatter;
27 class Player
28 {
29 public:
31  {
32  SLEEPING = 1, // stopped
33  OCCURRING, // playing
34  PAUSED, // paused
35  };
36 
37  enum PlayerProperty // known properties
38  {
72  };
73 
74  Player (Formatter *, const string &, const string &);
75  virtual ~Player ();
76 
78  bool isFocused ();
79 
80  Time getTime ();
81  void incTime (Time);
82 
83  Time getDuration ();
84  void setDuration (Time);
85 
86  bool getEOS ();
87  void setEOS (bool);
88 
89  void getZ (int *, int *);
90  void setZ (int, int);
91 
92  virtual void start ();
93  virtual void stop ();
94  virtual void pause ();
95  virtual void resume ();
96 
97  virtual string getProperty (const string &);
98  virtual void setProperty (const string &, const string &);
99  void resetProperties ();
100  void resetProperties (set<string> *);
101  void schedulePropertyAnimation (const string &, const string &,
102  const string &, Time);
103  virtual void reload ();
104  virtual void redraw (cairo_t *);
105 
106  virtual void sendKeyEvent (const string &, bool);
107 
108  // Static.
109  static string getCurrentFocus ();
110  static void setCurrentFocus (const string &);
111  static PlayerProperty getPlayerProperty (const string &, string *);
112  static Player *createPlayer (Formatter *, const string &,
113  const string &, const string &);
114 protected:
115  Formatter *_formatter; // formatter handle
116  bool _opengl; // true if OpenGL is used
117  string _id; // associated object id
118  string _uri; // source uri
119  PlayerState _state; // current state
120  Time _time; // playback time
121  bool _eos; // true if content was exhausted
122  cairo_surface_t *_surface; // player surface
123  guint _gltexture; // OpenGL texture (if OpenGL is used)
124  bool _dirty; // true if surface should be reloaded
125  PlayerAnimator *_animator; // associated animator
126 
127  map<string, string> _properties; // property table
128  struct
129  {
130  bool debug; // true if debugging mode is on
131  string focusIndex; // focus index
132  Rect rect; // x, y, w, h in pixels
133  int z; // z-index
134  int zorder; // z-order
135  guint8 alpha; // alpha
136  Color bgColor; // background color
137  bool visible; // true if visible
138  Time duration; // explicit duration
139  } _prop;
140 
141 protected:
142  virtual bool doSetProperty (PlayerProperty, const string &,
143  const string &);
144 private:
145  void redrawDebuggingInfo (cairo_t *);
146 
147  // Static.
148  static string _currentFocus; // current (global) focus index
149 };
150 
152 
153 #endif // PLAYER_H
string _id
Definition: Player.h:117
GdkRGBA Color
Definition: aux-ginga.h:113
void resetProperties()
Definition: Player.cpp:265
int zorder
Definition: Player.h:134
Definition: Player.h:57
Definition: Player.h:49
Definition: Player.h:32
string focusIndex
Definition: Player.h:131
PlayerAnimator * _animator
Definition: Player.h:125
Definition: Player.h:62
Definition: Player.h:34
virtual string getProperty(const string &)
Definition: Player.cpp:224
Definition: Player.h:47
void redrawDebuggingInfo(cairo_t *)
Definition: Player.cpp:622
Definition: Player.h:55
Definition: Player.h:33
PlayerState getState()
Definition: Player.cpp:122
Definition: Player.h:50
Definition: Player.h:48
void incTime(Time)
Definition: Player.cpp:140
Definition: PlayerAnimator.h:54
virtual void pause()
Definition: Player.cpp:206
map< string, string > _properties
Definition: Player.h:127
string _uri
Definition: Player.h:118
Definition: Player.h:56
bool _dirty
Definition: Player.h:124
Definition: Player.h:39
#define GINGA_NAMESPACE_END
Definition: aux-ginga.h:62
static void setCurrentFocus(const string &)
Definition: Player.cpp:411
Definition: Player.h:42
virtual bool doSetProperty(PlayerProperty, const string &, const string &)
Definition: Player.cpp:497
Definition: Player.h:58
Definition: Player.h:70
Definition: Player.h:63
virtual void resume()
Definition: Player.cpp:215
Definition: Formatter.h:35
void setZ(int, int)
Definition: Player.cpp:177
Definition: Player.h:68
Definition: Player.h:54
virtual void sendKeyEvent(const string &, bool)
Definition: Player.cpp:394
Definition: Player.h:52
Definition: Player.h:40
static string _currentFocus
Definition: Player.h:148
virtual void redraw(cairo_t *)
Definition: Player.cpp:298
Player(Formatter *, const string &, const string &)
Definition: Player.cpp:94
static string getCurrentFocus()
Definition: Player.cpp:405
Definition: Player.h:69
void setEOS(bool)
Definition: Player.cpp:164
Rect rect
Definition: Player.h:132
Time getDuration()
Definition: Player.cpp:146
guint _gltexture
Definition: Player.h:123
Definition: Player.h:51
Time getTime()
Definition: Player.cpp:134
Definition: Player.h:60
Definition: Player.h:41
Definition: Player.h:59
Definition: Player.h:53
Time duration
Definition: Player.h:138
bool _eos
Definition: Player.h:121
#define GINGA_NAMESPACE_BEGIN
Definition: aux-ginga.h:61
void setDuration(Time)
Definition: Player.cpp:152
static Player * createPlayer(Formatter *, const string &, const string &, const string &)
Definition: Player.cpp:443
Formatter * _formatter
Definition: Player.h:115
virtual void reload()
Definition: Player.cpp:291
guint8 alpha
Definition: Player.h:135
static PlayerProperty getPlayerProperty(const string &, string *)
Definition: Player.cpp:418
bool visible
Definition: Player.h:137
bool getEOS()
Definition: Player.cpp:158
virtual void setProperty(const string &, const string &)
Definition: Player.cpp:230
Definition: Player.h:64
void schedulePropertyAnimation(const string &, const string &, const string &, Time)
Definition: Player.cpp:281
PlayerState
Definition: Player.h:30
cairo_surface_t * _surface
Definition: Player.h:122
bool _opengl
Definition: Player.h:116
Definition: Player.h:71
Definition: Player.h:66
Definition: Player.h:44
Definition: Player.h:46
Definition: Player.h:45
virtual void start()
Definition: Player.cpp:184
virtual ~Player()
Definition: Player.cpp:111
Definition: Player.h:61
Definition: Player.h:65
bool isFocused()
Definition: Player.cpp:128
Definition: Player.h:43
struct Player::@0 _prop
Time _time
Definition: Player.h:120
Definition: Player.h:67
Definition: Player.h:27
bool debug
Definition: Player.h:130
PlayerProperty
Definition: Player.h:37
virtual void stop()
Definition: Player.cpp:196
int z
Definition: Player.h:133
void getZ(int *, int *)
Definition: Player.cpp:170
GdkRectangle Rect
Definition: aux-ginga.h:114
GstClockTime Time
Definition: aux-ginga.h:115
PlayerState _state
Definition: Player.h:119
Color bgColor
Definition: Player.h:136