Ginga  0.13.6.1771-df200
The iTV middleware.
Object.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 OBJECT_H
19 #define OBJECT_H
20 
21 #include "Event.h"
22 
24 
25 class Document;
26 class Composition;
27 class MediaSettings;
28 
29 class Object
30 {
31 public:
32  Object (const string &);
33  virtual ~Object ();
34 
35  string getId ();
36 
38  void initDocument (Document *);
39 
41  void initParent (Composition *);
42 
43  virtual string getObjectTypeAsString () = 0;
44  virtual string toString ();
45 
46  const list<string> *getAliases ();
47  bool hasAlias (const string &);
48  void addAlias (const string &);
49 
50  const set<Event *> *getEvents ();
51  Event *getEvent (Event::Type, const string &);
52  Event *getAttributionEvent (const string &);
53  void addAttributionEvent (const string &);
54  Event *getPresentationEvent (const string &);
55  void addPresentationEvent (const string &, Time, Time);
56  Event *getSelectionEvent (const string &);
57  void addSelectionEvent (const string &);
58 
59  Event *getLambda ();
60  bool isOccurring ();
61  bool isPaused ();
62  bool isSleeping ();
63 
64  virtual string getProperty (const string &);
65  virtual void setProperty (const string &, const string &, Time dur=0);
66 
67  list<pair<Action, Time>> *getDelayedActions ();
69  const string &value="", Time delay=0);
70 
71  virtual void sendKeyEvent (const string &, bool);
72  virtual void sendTickEvent (Time, Time, Time);
73 
74  virtual bool startTransition (Event *, Event::Transition) = 0;
75  virtual void endTransition (Event *, Event::Transition) = 0;
76 
77  bool getData (const string &, void **);
78  bool setData (const string &, void *, UserDataCleanFunc fn=nullptr);
79 
80 protected:
81  string _id; // id
82  Document *_doc; // parent document
83  Composition *_parent; // parent object
84  list<string> _aliases; // aliases
85  Time _time; // playback time
86  map<string, string> _properties; // property map
87  Event *_lambda; // lambda event
88  set<Event *> _events; // all events
89  list<pair<Action, Time>> _delayed; // delayed actions
90  UserData _udata; // user data
91 
92  virtual void doStart ();
93  virtual void doStop ();
94 };
95 
97 
98 #endif // OBJECT_H
Definition: Object.h:29
bool isSleeping()
Definition: Object.cpp:279
Event * getSelectionEvent(const string &)
Definition: Object.cpp:240
const list< string > * getAliases()
Definition: Object.cpp:167
Time _time
Definition: Object.h:85
bool isOccurring()
Definition: Object.cpp:265
virtual void doStop()
Definition: Object.cpp:379
virtual void doStart()
Definition: Object.cpp:373
list< pair< Action, Time > > _delayed
Definition: Object.h:89
void addPresentationEvent(const string &, Time, Time)
Definition: Object.cpp:227
void initParent(Composition *)
Definition: Object.cpp:79
set< Event * > _events
Definition: Object.h:88
Document * getDocument()
Definition: Object.cpp:59
list< string > _aliases
Definition: Object.h:84
Definition: Composition.h:25
Composition * _parent
Definition: Object.h:83
Composition * getParent()
Definition: Object.cpp:73
bool setData(const string &, void *, UserDataCleanFunc fn=nullptr)
Definition: Object.cpp:364
map< string, string > _properties
Definition: Object.h:86
const set< Event * > * getEvents()
Definition: Object.cpp:188
Event * getPresentationEvent(const string &)
Definition: Object.cpp:221
list< pair< Action, Time > > * getDelayedActions()
Definition: Object.cpp:302
#define GINGA_NAMESPACE_END
Definition: aux-ginga.h:62
virtual bool startTransition(Event *, Event::Transition)=0
string getId()
Definition: Object.cpp:53
Event * getAttributionEvent(const string &)
Definition: Object.cpp:203
virtual void setProperty(const string &, const string &, Time dur=0)
Definition: Object.cpp:295
virtual void endTransition(Event *, Event::Transition)=0
Event * getLambda()
Definition: Object.cpp:258
bool hasAlias(const string &)
Definition: Object.cpp:173
void addSelectionEvent(const string &)
Definition: Object.cpp:246
Definition: aux-ginga.h:185
void addAttributionEvent(const string &)
Definition: Object.cpp:209
Definition: MediaSettings.h:25
void initDocument(Document *)
Definition: Object.cpp:65
virtual void sendTickEvent(Time, Time, Time)
Definition: Object.cpp:325
void addDelayedAction(Event *, Event::Transition, const string &value="", Time delay=0)
Definition: Object.cpp:308
virtual string getObjectTypeAsString()=0
#define GINGA_NAMESPACE_BEGIN
Definition: aux-ginga.h:61
bool getData(const string &, void **)
Definition: Object.cpp:358
Transition
Definition: Event.h:44
Event * _lambda
Definition: Object.h:87
virtual void sendKeyEvent(const string &, bool)
Definition: Object.cpp:320
virtual string getProperty(const string &)
Definition: Object.cpp:286
Definition: Document.h:29
virtual ~Object()
Definition: Object.cpp:45
Document * _doc
Definition: Object.h:82
void(* UserDataCleanFunc)(void *)
Definition: aux-ginga.h:184
void addAlias(const string &)
Definition: Object.cpp:182
string _id
Definition: Object.h:81
Definition: Event.h:27
bool isPaused()
Definition: Object.cpp:272
virtual string toString()
Definition: Object.cpp:87
UserData _udata
Definition: Object.h:90
Type
Definition: Event.h:30
Event * getEvent(Event::Type, const string &)
Definition: Object.cpp:194
GstClockTime Time
Definition: aux-ginga.h:115
Object(const string &)
Definition: Object.cpp:33