lottieplayer: polishing getFrameDuration(), getFrameRate() 30/187330/4
authorHermet Park <hermetpark@gmail.com>
Wed, 22 Aug 2018 05:25:56 +0000 (14:25 +0900)
committerSubhransu Mohanty <sub.mohanty@samsung.com>
Thu, 23 Aug 2018 00:38:29 +0000 (00:38 +0000)
Change-Id: I4344a6689c7ee8890e33978bfc5ca6a2c401da36

src/lottie/lottiemodel.h
src/lottie/lottieplayer.cpp

index 2c484b1..bc1d373 100644 (file)
@@ -355,11 +355,11 @@ class LOTCompositionData : public LOTData
 {
 public:
     LOTCompositionData():LOTData(LOTData::Type::Composition){}
-    long frameDuration()const{return mEndFrame - mStartFrame -1;}
-    long frameRate()const{return mFrameRate;}
+    long frameDuration() const {return mEndFrame - mStartFrame -1;}
+    float frameRate() const {return mFrameRate;}
     long startFrame() const {return mStartFrame;}
     long endFrame() const {return mEndFrame;}
-    VSize size() const { return mSize;}
+    VSize size() const {return mSize;}
     void processRepeaterObjects();
     void accept(LOTDataVisitor *visitor) override
     {visitor->visit(this); mRootLayer->accept(visitor);}
index c1215ab..733d464 100644 (file)
@@ -19,8 +19,8 @@ public:
     VSize                         size() const;
     float                         playTime() const;
     float                         pos();
-    float                         getFrameRate() const { return mFrameRate; }
-    long                          getTotalFrame() const { return mTotalFrame; }
+    float                         getFrameRate() const;
+    long                          getTotalFrame() const;
     const std::vector<LOTNode *> &renderList(float pos);
     bool                          render(float pos, const LOTBuffer &buffer, bool forceRender);
 
@@ -31,10 +31,28 @@ private:
     VSize                        mSize;
     std::atomic<bool>            mRenderInProgress;
     float                        mPos = 0.0;
-    float                        mFrameRate;
-    long                         mTotalFrame;
 };
 
+float LOTPlayerPrivate::getFrameRate() const
+{
+   if (!mModel) {
+        vWarning << "Model Data is not existed yet, please setFilePath() first.";
+        return 0.0f;
+   }
+
+   return mModel->frameRate();
+}
+
+long LOTPlayerPrivate::getTotalFrame() const
+{
+   if (!mModel) {
+        vWarning << "Model Data is not existed yet, please setFilePath() first.";
+        return 0.0f;
+   }
+
+   return mModel->frameDuration();
+}
+
 void LOTPlayerPrivate::setSize(const VSize &sz)
 {
      mSize = sz;
@@ -128,8 +146,6 @@ 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;