Add CURRENT_FRAME_NUMBER and TOTAL_FRAME_NUMBER properties to the AnimatedImageVisual
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / animated-image / rolling-image-cache.cpp
index 21f81b7..dee6149 100644 (file)
@@ -134,25 +134,42 @@ TextureSet RollingImageCache::FirstFrame()
 TextureSet RollingImageCache::NextFrame()
 {
   TextureSet textureSet;
-
-  ImageFrame imageFrame = mQueue.PopFront();
-  mTextureManager.Remove( mImageUrls[ imageFrame.mUrlIndex ].mTextureId, this );
-  mImageUrls[ imageFrame.mUrlIndex ].mTextureId = TextureManager::INVALID_TEXTURE_ID;
-
-  LoadBatch();
-
-  if( IsFrontReady() == true )
+  if(!mQueue.IsEmpty())
   {
-    textureSet = GetFrontTextureSet();
+    uint32_t frameIndex = mQueue.Front().mUrlIndex;
+    if(IsFrontReady())
+    {
+      frameIndex = (frameIndex + 1) % mImageUrls.size();
+    }
+    textureSet = Frame(frameIndex);
   }
   else
   {
-    mWaitingForReadyFrame = true;
+    DALI_LOG_ERROR("Cache is empty.");
   }
 
   return textureSet;
 }
 
+uint32_t RollingImageCache::GetFrameInterval( uint32_t frameIndex ) const
+{
+  return 0u;
+}
+
+int32_t RollingImageCache::GetCurrentFrameIndex() const
+{
+  if(mQueue.IsEmpty())
+  {
+    return -1;
+  }
+  return mQueue.Front().mUrlIndex;
+}
+
+int32_t RollingImageCache::GetTotalFrameCount() const
+{
+  return mImageUrls.size();
+}
+
 bool RollingImageCache::IsFrontReady() const
 {
   return ( !mQueue.IsEmpty() && mQueue.Front().mReady );