lottie: add APIs in lottieplayer to get frame rate and total frame number 86/187286/2
authorJaeun Choi <jaeun12.choi@samsung.com>
Tue, 21 Aug 2018 12:43:22 +0000 (21:43 +0900)
committerHermet Park <chuneon.park@samsung.com>
Wed, 22 Aug 2018 05:14:27 +0000 (05:14 +0000)
Change-Id: Ib81eed03adf520927b3b434b67425168b07f13b1

inc/lotplayer.h
src/lottie/lottieplayer.cpp

index 66fabf89a153cf1766ff2fa04f022db4b6992711..144d74c02bec9dd6a8580221e9d46580066a14af 100644 (file)
@@ -24,6 +24,10 @@ public:
 
     float pos() const;
 
+    float getFrameRate() const;
+
+    long getTotalFrame() const;
+
     const std::vector<LOTNode *> &renderList(float pos) const;
 
     // TODO: Consider correct position...
index da907422975054be8d54c14785cafac2d8082fd7..c1215abf22b6157a1147120f0c2896cb152a0f52 100644 (file)
@@ -19,6 +19,8 @@ public:
     VSize                         size() const;
     float                         playTime() const;
     float                         pos();
+    float                         getFrameRate() const { return mFrameRate; }
+    long                          getTotalFrame() const { return mTotalFrame; }
     const std::vector<LOTNode *> &renderList(float pos);
     bool                          render(float pos, const LOTBuffer &buffer, bool forceRender);
 
@@ -29,6 +31,8 @@ private:
     VSize                        mSize;
     std::atomic<bool>            mRenderInProgress;
     float                        mPos = 0.0;
+    float                        mFrameRate;
+    long                         mTotalFrame;
 };
 
 void LOTPlayerPrivate::setSize(const VSize &sz)
@@ -124,6 +128,8 @@ bool LOTPlayerPrivate::setFilePath(std::string path)
     if (loader.load(path)) {
         mModel = loader.model();
         mCompItem = std::make_unique<LOTCompItem>(mModel.get());
+        mTotalFrame = mModel->frameDuration();
+        mFrameRate = mModel->frameRate();
         return true;
     }
     return false;
@@ -256,6 +262,17 @@ float LOTPlayer::pos() const
     return d->pos();
 }
 
+float LOTPlayer::getFrameRate() const
+{
+    return d->getFrameRate();
+}
+
+long LOTPlayer::getTotalFrame() const
+{
+    return d->getTotalFrame();
+}
+
+
 const std::vector<LOTNode *> &LOTPlayer::renderList(float pos) const
 {
     return d->renderList(pos);