jsuya pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=93551ca58e8c5676b116d98eba07a8061c4ec8fd

commit 93551ca58e8c5676b116d98eba07a8061c4ec8fd
Author: JunsuChoi <[email protected]>
Date:   Tue Nov 12 14:29:50 2019 +0900

    evas_cache_vg : Implements sector_get/set internal APIs
    
    Summary:
    These APIs to get and set frames for a specific section in vg animation.
    get API looks for a sector by name in the markerlist of VG_File_Data.
    Then return start and end frames.
    
    Depends on D10504
    
    Test Plan: N/A
    
    Reviewers: Hermet, smohanty, kimcinoo
    
    Reviewed By: Hermet
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D10505
---
 src/lib/evas/canvas/evas_vg_private.h |  2 ++
 src/lib/evas/vg/evas_vg_cache.c       | 52 +++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/src/lib/evas/canvas/evas_vg_private.h 
b/src/lib/evas/canvas/evas_vg_private.h
index 036604b6ad..f5600f9757 100644
--- a/src/lib/evas/canvas/evas_vg_private.h
+++ b/src/lib/evas/canvas/evas_vg_private.h
@@ -151,6 +151,8 @@ Vg_File_Data *              evas_cache_vg_file_open(const 
Eina_File *file, const
 Eina_Bool                   evas_cache_vg_file_save(Efl_VG *root, int w, int 
h, const char *file, const char *key, const Efl_File_Save_Info *info);
 Eina_Bool                   evas_cache_vg_entry_file_save(Vg_Cache_Entry 
*vg_entry, const char *file, const char *key, const Efl_File_Save_Info *info);
 double                      evas_cache_vg_anim_duration_get(const 
Vg_Cache_Entry *vg_entry);
+Eina_Bool                   evas_cache_vg_anim_sector_set(const 
Vg_Cache_Entry* vg_entry, const char *name, int startframe, int endframe);
+Eina_Bool                   evas_cache_vg_anim_sector_get(const 
Vg_Cache_Entry* vg_entry, const char *name, int* startframe, int* endframe);
 unsigned int                evas_cache_vg_anim_frame_count_get(const 
Vg_Cache_Entry *vg_entry);
 Eina_Size2D                 evas_cache_vg_entry_default_size_get(const 
Vg_Cache_Entry *vg_entry);
 void                        efl_canvas_vg_node_vg_obj_set(Efl_VG *node, Efl_VG 
*vg_obj, Efl_Canvas_Vg_Object_Data *vd);
diff --git a/src/lib/evas/vg/evas_vg_cache.c b/src/lib/evas/vg/evas_vg_cache.c
index 391d3cb2a9..8ffdfab3f8 100644
--- a/src/lib/evas/vg/evas_vg_cache.c
+++ b/src/lib/evas/vg/evas_vg_cache.c
@@ -433,6 +433,58 @@ evas_cache_vg_anim_frame_count_get(const Vg_Cache_Entry* 
vg_entry)
    return vfd->anim_data->frame_cnt;
 }
 
+Eina_Bool
+evas_cache_vg_anim_sector_set(const Vg_Cache_Entry* vg_entry, const char 
*name, int startframe, int endframe)
+{
+   if (!vg_entry) return EINA_FALSE;
+   if (!vg_entry->vfd->anim_data) return EINA_FALSE;
+   if (!vg_entry->vfd->anim_data->markers) return EINA_FALSE;
+   if (!name) return EINA_FALSE;
+
+   Vg_File_Anim_Data_Marker *marker;
+   Vg_File_Anim_Data_Marker new_marker;
+   int i = 0;
+
+   EINA_INARRAY_FOREACH(vg_entry->vfd->anim_data->markers, marker)
+     {
+        if (!strcmp(marker->name, name))
+          {
+             marker->startframe = startframe;
+             marker->endframe = endframe;
+             return EINA_TRUE;
+          }
+        i++;
+     }
+
+   new_marker.name = eina_stringshare_add(name);
+   new_marker.startframe = startframe;
+   new_marker.endframe = endframe;
+   eina_inarray_push(vg_entry->vfd->anim_data->markers, &new_marker);
+
+   return EINA_TRUE;
+}
+
+Eina_Bool
+evas_cache_vg_anim_sector_get(const Vg_Cache_Entry* vg_entry, const char 
*name, int* startframe, int* endframe)
+{
+   if (!vg_entry) return EINA_FALSE;
+   if (!vg_entry->vfd->anim_data) return EINA_FALSE;
+   if (!vg_entry->vfd->anim_data->markers) return EINA_FALSE;
+   if (!name) return EINA_FALSE;
+
+   Vg_File_Anim_Data_Marker *marker;
+   EINA_INARRAY_FOREACH(vg_entry->vfd->anim_data->markers, marker)
+     {
+        if (!strcmp(marker->name, name))
+          {
+             if (startframe) *startframe = marker->startframe;
+             if (endframe) *endframe = marker->endframe;
+             return EINA_TRUE;
+          }
+     }
+   return EINA_FALSE;
+}
+
 Efl_VG*
 evas_cache_vg_tree_get(Vg_Cache_Entry *vg_entry, unsigned int frame_num)
 {

-- 


Reply via email to