(AnimatedVector) Make API to get marker information
[platform/core/uifw/dali-adaptor.git] / dali / internal / vector-animation / common / vector-animation-renderer-plugin-proxy.cpp
index bee8d9a..6e18261 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,8 +32,6 @@ namespace
 {
 // The default plugin name
 const char* DEFAULT_OBJECT_NAME("libdali2-vector-animation-renderer-plugin.so");
-// The rive animation plugin name
-const char* RIVE_OBJECT_NAME("libdali2-rive-animation-renderer-plugin.so");
 
 } // namespace
 
@@ -52,6 +50,8 @@ VectorAnimationRendererPluginProxy::VectorAnimationRendererPluginProxy(const std
   {
     mSharedObjectName = DEFAULT_OBJECT_NAME;
   }
+
+  Initialize();
 }
 
 VectorAnimationRendererPluginProxy::~VectorAnimationRendererPluginProxy()
@@ -68,25 +68,8 @@ VectorAnimationRendererPluginProxy::~VectorAnimationRendererPluginProxy()
   }
 }
 
-void VectorAnimationRendererPluginProxy::Initialize(AnimationFormat format)
+void VectorAnimationRendererPluginProxy::Initialize()
 {
-  // initialization should be once
-  if(mPlugin)
-  {
-    return;
-  }
-
-  if(format == AnimationFormat::RIVE)
-  {
-    // for Rive
-    mSharedObjectName = RIVE_OBJECT_NAME;
-  }
-  else
-  {
-    // for Json
-    mSharedObjectName = DEFAULT_OBJECT_NAME;
-  }
-
   mLibHandle = dlopen(mSharedObjectName.c_str(), RTLD_LAZY);
 
   char* error = dlerror();
@@ -124,19 +107,6 @@ void VectorAnimationRendererPluginProxy::Finalize()
 
 bool VectorAnimationRendererPluginProxy::Load(const std::string& url)
 {
-  AnimationFormat format;
-  std::string     extensionName = url.substr(url.find_last_of(".") + 1);
-  if(extensionName == "riv")
-  {
-    format = AnimationFormat::RIVE;
-  }
-  else
-  {
-    format = AnimationFormat::JSON;
-  }
-
-  Initialize(format);
-
   if(mPlugin)
   {
     return mPlugin->Load(url);
@@ -169,6 +139,14 @@ bool VectorAnimationRendererPluginProxy::Render(uint32_t frameNumber)
   return false;
 }
 
+void VectorAnimationRendererPluginProxy::RenderStopped()
+{
+  if(mPlugin)
+  {
+    mPlugin->RenderStopped();
+  }
+}
+
 uint32_t VectorAnimationRendererPluginProxy::GetTotalFrameNumber() const
 {
   if(mPlugin)
@@ -193,6 +171,11 @@ void VectorAnimationRendererPluginProxy::GetDefaultSize(uint32_t& width, uint32_
   {
     mPlugin->GetDefaultSize(width, height);
   }
+  else
+  {
+    width  = 0;
+    height = 0;
+  }
 }
 
 void VectorAnimationRendererPluginProxy::GetLayerInfo(Property::Map& map) const
@@ -212,11 +195,35 @@ bool VectorAnimationRendererPluginProxy::GetMarkerInfo(const std::string& marker
   return false;
 }
 
-void VectorAnimationRendererPluginProxy::IgnoreRenderedFrame()
+void VectorAnimationRendererPluginProxy::GetMarkerInfo(Property::Map& map) const
+{
+  if(mPlugin)
+  {
+    mPlugin->GetMarkerInfo(map);
+  }
+}
+
+void VectorAnimationRendererPluginProxy::InvalidateBuffer()
+{
+  if(mPlugin)
+  {
+    mPlugin->InvalidateBuffer();
+  }
+}
+
+void VectorAnimationRendererPluginProxy::AddPropertyValueCallback(const std::string& keyPath, Dali::VectorAnimationRenderer::VectorProperty property, CallbackBase* callback, int32_t id)
+{
+  if(mPlugin)
+  {
+    mPlugin->AddPropertyValueCallback(keyPath, property, callback, id);
+  }
+}
+
+void VectorAnimationRendererPluginProxy::KeepRasterizedBuffer()
 {
   if(mPlugin)
   {
-    mPlugin->IgnoreRenderedFrame();
+    mPlugin->KeepRasterizedBuffer();
   }
 }