You.i Engine
YiTimelineBackingStore.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_TIMELINE_BACKING_STORE_H_
3 #define _YI_TIMELINE_BACKING_STORE_H_
4 
7 
12 class CYISceneNode;
13 class CYITimeline;
14 class CYITimelineBackingStorePriv;
15 
30 class CYITimelineBackingStore : public std::enable_shared_from_this<CYITimelineBackingStore>
31 {
33 
34 public:
35 
37  virtual ~CYITimelineBackingStore();
38 
45  CYITimelineTrack *AddTrack(uint32_t nTrackID, CYITimelineTrack::ATTRIBUTE_TYPE attribute, const CYIString &targetName);
51  void AddMarker(const CYIString &name, uint32_t uStartTime, uint32_t uDuration, const std::list<CYITimelineTrack::TRACK_IDENTIFIER> &rTracksSelection, const std::map<CYIString, CYIString> &rMarkerProperties);
57  void AddMarker(CYIMarkerData::MARKER_ID eMarkerID, uint32_t uStartTime, uint32_t uDuration, const std::list<CYITimelineTrack::TRACK_IDENTIFIER> &rTracksSelection, const std::map<CYIString, CYIString> &rMarkerProperties);
58 
65  std::unique_ptr<CYITimeline> CreateTimeline(CYISceneNode *pRootNode = nullptr);
73  std::unique_ptr<CYITimeline> CreateTimeline(const CYIString &markerName, CYISceneNode *pRootNode = nullptr);
81  std::unique_ptr<CYITimeline> CreateTimeline(CYIMarkerData::MARKER_ID eMarkerID, CYISceneNode *pRootNode = nullptr);
89  std::unique_ptr<CYITimeline> CreateTimelineFromMarkerIndex(uint32_t uMarkerIndex, CYISceneNode *pRootNode = nullptr);
97  std::unique_ptr<CYITimeline> CreateTimeline(uint32_t uStartTime, uint32_t uDuration, CYISceneNode *pRootNode = nullptr);
98 
104  void Finalize();
105 
109  virtual uint32_t GetTotalTime() const;
114  const CYITimelineTrack *GetTrack(uint32_t uTrackID) const;
119  const CYITimelineTrack *GetTrack(CYITimelineTrack::ATTRIBUTE_TYPE eAttribute, const CYIString &name) const;
123  uint32_t GetTrackCount() const;
127  uint32_t GetMarkerCount() const;
128 
133  const CYIMarkerData *GetMarkerData(const CYIString &rMarkerName) const;
138  const CYIString &GetMarkerNameFromMarkerIndex(uint32_t uMarkerIndex) const;
139 
143  int32_t GetApproximateSize() const;
144 
145 private:
146 
148  const CYITimelineBackingStore &operator =(const CYITimelineBackingStore &);
150 };
151 
154 #endif /* _YI_TIMELINE_BACKING_STORE_H_ */
const CYIString & GetMarkerNameFromMarkerIndex(uint32_t uMarkerIndex) const
std::unique_ptr< CYITimeline > CreateTimelineFromMarkerIndex(uint32_t uMarkerIndex, CYISceneNode *pRootNode=nullptr)
void AddMarker(const CYIString &name, uint32_t uStartTime, uint32_t uDuration, const std::list< CYITimelineTrack::TRACK_IDENTIFIER > &rTracksSelection, const std::map< CYIString, CYIString > &rMarkerProperties)
const CYIMarkerData * GetMarkerData(const CYIString &rMarkerName) const
A class containing timeline marker and track data required to create a CYITimeline.
Definition: YiTimelineBackingStore.h:30
A timeline which sources its data from a backing store.
Definition: YiTimeline.h:54
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
A representation of a single track of a CYITimeline.
Definition: YiTimelineTrack.h:26
std::unique_ptr< CYITimeline > CreateTimeline(CYISceneNode *pRootNode=nullptr)
MARKER_ID
Definition: YiMarkerData.h:36
uint32_t GetMarkerCount() const
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
uint32_t GetTrackCount() const
int32_t GetApproximateSize() const
virtual ~CYITimelineBackingStore()
virtual uint32_t GetTotalTime() const
friend class CYITimelineBackingStorePriv
Definition: YiTimelineBackingStore.h:32
CYITimelineTrack * AddTrack(uint32_t nTrackID, CYITimelineTrack::ATTRIBUTE_TYPE attribute, const CYIString &targetName)
Contains information on an exported marker from After Effects.
Definition: YiMarkerData.h:32
const CYITimelineTrack * GetTrack(uint32_t uTrackID) const
ATTRIBUTE_TYPE
Definition: YiTimelineTrack.h:33