xartigas pushed a commit to branch master.

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

commit b179e397d66c29712a7c38254b8c67daa6a77dc0
Author: Xavi Artigas <[email protected]>
Date:   Wed Dec 4 17:25:45 2019 +0100

    Efl.Canvas.Animation: Rename repeat_count to play_count
    
    Summary:
    play_count is a tad simpler to understand, since it means the TOTAL number 
of
    times the animation will play.
    The default value is now 1, and 0 means INFINITE (instead of -1). This 
allows
    removing yet another constant from header files.
    
    Depends on D10799
    
    Test Plan: Everything builds and passes tests. Elm_test Animation.Repeat 
has been adjusted accordingly.
    
    Reviewers: bu5hm4n
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D10800
---
 src/bin/elementary/test_efl_anim_repeat.c          | 38 +++++++++++-----------
 src/examples/evas/efl-canvas-animation.c           |  8 ++---
 src/lib/evas/Evas_Common.h                         |  2 --
 src/lib/evas/Evas_Eo.h                             |  2 --
 src/lib/evas/canvas/efl_canvas_animation.c         | 15 +++++----
 src/lib/evas/canvas/efl_canvas_animation.eo        | 14 ++++----
 src/lib/evas/canvas/efl_canvas_animation_private.h |  4 +--
 src/lib/evas/canvas/efl_canvas_animation_types.eot |  8 +++--
 src/lib/evas/canvas/efl_canvas_object_animation.c  |  4 +--
 9 files changed, 48 insertions(+), 47 deletions(-)

diff --git a/src/bin/elementary/test_efl_anim_repeat.c 
b/src/bin/elementary/test_efl_anim_repeat.c
index 0f72882207..b3dddcd0e3 100644
--- a/src/bin/elementary/test_efl_anim_repeat.c
+++ b/src/bin/elementary/test_efl_anim_repeat.c
@@ -10,7 +10,7 @@ typedef struct _App_Data
    Elm_Button                  *button;
 
    Evas_Object          *start_btn;
-   Evas_Object          *repeat_count_spin;
+   Evas_Object          *play_count_spin;
    Evas_Object          *repeat_mode_spin;
 
    Eina_Bool             is_btn_visible;
@@ -44,8 +44,8 @@ _anim_changed_cb(void *data, const Efl_Event *event 
EINA_UNUSED)
         Efl_Canvas_Animation_Repeat_Mode repeat_mode = 
_anim_repeat_mode_get(ad->repeat_mode_spin);
         if (repeat_mode == EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE)
           {
-             int repeat_count = elm_spinner_value_get(ad->repeat_count_spin);
-             if (repeat_count % 2 == 1)
+             int play_count = elm_spinner_value_get(ad->play_count_spin);
+             if (play_count % 2 == 0)
                {
                   ad->is_btn_visible = !(ad->is_btn_visible);
                   if (ad->is_btn_visible)
@@ -54,7 +54,7 @@ _anim_changed_cb(void *data, const Efl_Event *event 
EINA_UNUSED)
                     elm_object_text_set(ad->start_btn, "Start Alpha Animation 
from 0.0 to 1.0");
                }
           }
-        elm_object_disabled_set(ad->repeat_count_spin, EINA_FALSE);
+        elm_object_disabled_set(ad->play_count_spin, EINA_FALSE);
         elm_object_disabled_set(ad->repeat_mode_spin, EINA_FALSE);
      }
 }
@@ -78,16 +78,16 @@ _start_btn_clicked_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED
 
    ad->is_btn_visible = !(ad->is_btn_visible);
 
-   int repeat_count = elm_spinner_value_get(ad->repeat_count_spin);
-   elm_object_disabled_set(ad->repeat_count_spin, EINA_TRUE);
+   int play_count = elm_spinner_value_get(ad->play_count_spin);
+   elm_object_disabled_set(ad->play_count_spin, EINA_TRUE);
 
    Efl_Canvas_Animation_Repeat_Mode repeat_mode = 
_anim_repeat_mode_get(ad->repeat_mode_spin);
    elm_object_disabled_set(ad->repeat_mode_spin, EINA_TRUE);
 
    if (ad->is_btn_visible)
      {
-        //Set animation repeat count
-        efl_animation_repeat_count_set(ad->show_anim, repeat_count);
+        //Set animation play count
+        efl_animation_play_count_set(ad->show_anim, play_count);
 
         //Set animation repeat mode
         efl_animation_repeat_mode_set(ad->show_anim, repeat_mode);
@@ -99,7 +99,7 @@ _start_btn_clicked_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED
    else
      {
         //Set animation repeat count
-        efl_animation_repeat_count_set(ad->hide_anim, repeat_count);
+        efl_animation_play_count_set(ad->hide_anim, play_count);
 
         //Set animation repeat mode
         efl_animation_repeat_mode_set(ad->hide_anim, repeat_mode);
@@ -158,15 +158,15 @@ test_efl_anim_repeat(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void
    evas_object_move(start_btn, 100, 300);
    evas_object_show(start_btn);
 
-   //Spinner to set animation repeat count
-   Evas_Object *repeat_count_spin = elm_spinner_add(win);
-   elm_spinner_label_format_set(repeat_count_spin, "Repeat Count: %d");
-   elm_spinner_editable_set(repeat_count_spin, EINA_FALSE);
-   elm_spinner_min_max_set(repeat_count_spin, 0, 3);
-   elm_spinner_value_set(repeat_count_spin, 0);
-   evas_object_resize(repeat_count_spin, 200, 50);
-   evas_object_move(repeat_count_spin, 100, 350);
-   evas_object_show(repeat_count_spin);
+   //Spinner to set animation play count
+   Evas_Object *play_count_spin = elm_spinner_add(win);
+   elm_spinner_label_format_set(play_count_spin, "Play Count (0 is infinite): 
%d");
+   elm_spinner_editable_set(play_count_spin, EINA_FALSE);
+   elm_spinner_min_max_set(play_count_spin, 0, 3);
+   elm_spinner_value_set(play_count_spin, 1);
+   evas_object_resize(play_count_spin, 200, 50);
+   evas_object_move(play_count_spin, 100, 350);
+   evas_object_show(play_count_spin);
 
    //Spinner to set animation repeat mode
    Evas_Object *repeat_mode_spin = elm_spinner_add(win);
@@ -184,7 +184,7 @@ test_efl_anim_repeat(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void
    ad->show_anim = show_anim;
    ad->hide_anim = hide_anim;
    ad->start_btn = start_btn;
-   ad->repeat_count_spin = repeat_count_spin;
+   ad->play_count_spin = play_count_spin;
    ad->repeat_mode_spin = repeat_mode_spin;
    ad->is_btn_visible = EINA_TRUE;
    ad->button = btn;
diff --git a/src/examples/evas/efl-canvas-animation.c 
b/src/examples/evas/efl-canvas-animation.c
index 2cc2355956..cc24550dea 100644
--- a/src/examples/evas/efl-canvas-animation.c
+++ b/src/examples/evas/efl-canvas-animation.c
@@ -118,7 +118,7 @@ main(void)
       efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), 
EINA_VECTOR2(3.0, 3.0), scale_rect, EINA_VECTOR2(0.5, 0.5)),
       efl_animation_start_delay_set(efl_added, 5.0),
       efl_animation_duration_set(efl_added, 2.0),
-      efl_animation_repeat_count_set(efl_added, EFL_ANIMATION_REPEAT_INFINITE)
+      efl_animation_play_count_set(efl_added, 0)
     ),
    1.0, 0.0);
 
@@ -128,7 +128,7 @@ main(void)
     efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS,
       efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), 
EINA_VECTOR2(3.0, 3.0), scale_rect2, EINA_VECTOR2(0.5, 0.5)),
       efl_animation_duration_set(efl_added, 2.0),
-      efl_animation_repeat_count_set(efl_added, EFL_ANIMATION_REPEAT_INFINITE),
+      efl_animation_play_count_set(efl_added, 0),
       efl_animation_repeat_mode_set(efl_added, 
EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE)
     ),
    1.0, 0.0);
@@ -139,7 +139,7 @@ main(void)
     efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS,
       efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), 
EINA_VECTOR2(3.0, 3.0), scale_rect3, EINA_VECTOR2(0.5, 0.5)),
       efl_animation_duration_set(efl_added, 2.0),
-      efl_animation_repeat_count_set(efl_added, 3),
+      efl_animation_play_count_set(efl_added, 4),
       efl_animation_repeat_mode_set(efl_added, 
EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE)
     ),
    1.0, 0.0);
@@ -162,7 +162,7 @@ main(void)
     efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS,
       efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), 
EINA_VECTOR2(5.0, 5.0), scale_rect5, EINA_VECTOR2(0.5, 0.5)),
       efl_animation_duration_set(efl_added, 5.0),
-      efl_animation_repeat_count_set(efl_added, EFL_ANIMATION_REPEAT_INFINITE)
+      efl_animation_play_count_set(efl_added, 0)
     ),
    1.0, 0.0);
    d.current_speed = 1.0;
diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h
index d7fa681094..d75cc1a6aa 100644
--- a/src/lib/evas/Evas_Common.h
+++ b/src/lib/evas/Evas_Common.h
@@ -3482,8 +3482,6 @@ typedef Eo Efl_Animation_Group_Sequential;
 
 #endif
 
-#define EFL_ANIMATION_REPEAT_INFINITE -1
-
 // The below type are necessary for legacy API and need to be manually kept in 
sync with .eo file.
 #ifndef _EFL_INPUT_DEVICE_EO_CLASS_TYPE
 #define _EFL_INPUT_DEVICE_EO_CLASS_TYPE
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index f156ec50a8..9d873d565d 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -122,8 +122,6 @@ typedef Eo Efl_Canvas_Animation_Group_Sequential;
 
 #endif
 
-#define EFL_ANIMATION_REPEAT_INFINITE -1
-
 struct _Efl_Canvas_Animation_Player_Event_Running
 {
    double progress;
diff --git a/src/lib/evas/canvas/efl_canvas_animation.c 
b/src/lib/evas/canvas/efl_canvas_animation.c
index 001dca7892..53d006fd20 100644
--- a/src/lib/evas/canvas/efl_canvas_animation.c
+++ b/src/lib/evas/canvas/efl_canvas_animation.c
@@ -52,19 +52,19 @@ _efl_canvas_animation_repeat_mode_get(const Eo *eo_obj 
EINA_UNUSED, Efl_Canvas_A
 }
 
 EOLIAN static void
-_efl_canvas_animation_repeat_count_set(Eo *eo_obj EINA_UNUSED,
+_efl_canvas_animation_play_count_set(Eo *eo_obj EINA_UNUSED,
                                 Efl_Canvas_Animation_Data *pd,
                                 int count)
 {
-   EINA_SAFETY_ON_FALSE_RETURN(count >= EFL_ANIMATION_REPEAT_INFINITE);
+   EINA_SAFETY_ON_FALSE_RETURN(count >= 0);
 
-   pd->repeat_count = count;
+   pd->play_count = count;
 }
 
 EOLIAN static int
-_efl_canvas_animation_repeat_count_get(const Eo *eo_obj EINA_UNUSED, 
Efl_Canvas_Animation_Data *pd)
+_efl_canvas_animation_play_count_get(const Eo *eo_obj EINA_UNUSED, 
Efl_Canvas_Animation_Data *pd)
 {
-   return pd->repeat_count;
+   return pd->play_count;
 }
 
 EOLIAN static void
@@ -115,12 +115,12 @@ _efl_canvas_animation_animation_apply(Eo *eo_obj,
 EOLIAN static double
 _efl_canvas_animation_efl_playable_length_get(const Eo *eo_obj, 
Efl_Canvas_Animation_Data *pd EINA_UNUSED)
 {
-   if (efl_animation_repeat_count_get(eo_obj) == EFL_ANIMATION_REPEAT_INFINITE)
+   if (efl_animation_play_count_get(eo_obj) == 0)
      {
         return INFINITY;
      }
 
-   return (efl_animation_duration_get(eo_obj) * 
(efl_animation_repeat_count_get(eo_obj) + 1));
+   return (efl_animation_duration_get(eo_obj) * 
efl_animation_play_count_get(eo_obj));
 }
 
 EOLIAN static Eina_Bool
@@ -139,6 +139,7 @@ EOLIAN static Efl_Object*
 _efl_canvas_animation_efl_object_constructor(Eo *obj, 
Efl_Canvas_Animation_Data *pd)
 {
    pd->duration = _default_animation_time;
+   pd->play_count = 1;
    return efl_constructor(efl_super(obj, MY_CLASS));
 }
 
diff --git a/src/lib/evas/canvas/efl_canvas_animation.eo 
b/src/lib/evas/canvas/efl_canvas_animation.eo
index a55cf73bbd..49bd1cb9b4 100644
--- a/src/lib/evas/canvas/efl_canvas_animation.eo
+++ b/src/lib/evas/canvas/efl_canvas_animation.eo
@@ -40,7 +40,7 @@ class @beta Efl.Canvas.Animation extends Efl.Object 
implements Efl.Playable
       @property duration {
          [[The duration of a single animation "run".
            The @Efl.Playable.length implementation will return this duration 
adjusted by @.repeat_mode and
-           @.repeat_count.
+           @.play_count.
          ]]
          set {
          }
@@ -61,13 +61,15 @@ class @beta Efl.Canvas.Animation extends Efl.Object 
implements Efl.Playable
             mode: 
Efl.Canvas.Animation_Repeat_Mode(Efl.Canvas.Animation_Repeat_Mode.restart); 
[[Repeat mode.]]
          }
       }
-      @property repeat_count {
-         [[How many times to repeat an animation once it finishes.
-           $[0] means that the animation only plays once (it is not repeated) 
and is the default value.
-           $[-1] means that the animation is repeated forever.
+      @property play_count {
+         [[How many times to play an animation.
+           $[1] means that the animation only plays once (it is not repeated), 
whereas $[2] will play it
+           again once it finishes the first time and then stop.
+           $[0] means that the animation is repeated forever.
+           @.repeat_mode controls the direction in which subsequent playbacks 
will run.
          ]]
          values {
-            count: int(0); [[Repeat count.]]
+            count: int(1); [[Play count.]]
          }
       }
       @property start_delay {
diff --git a/src/lib/evas/canvas/efl_canvas_animation_private.h 
b/src/lib/evas/canvas/efl_canvas_animation_private.h
index c8f0609103..9995d23589 100644
--- a/src/lib/evas/canvas/efl_canvas_animation_private.h
+++ b/src/lib/evas/canvas/efl_canvas_animation_private.h
@@ -10,7 +10,7 @@ typedef struct _Efl_Canvas_Animation_Data
    double                    start_delay_time;
 
    Efl_Canvas_Animation_Repeat_Mode repeat_mode;
-   int                       repeat_count;
+   int                       play_count;
 
    Efl_Interpolator         *interpolator;
 
@@ -25,4 +25,4 @@ typedef struct _Efl_Canvas_Animation_Data
 
 #define FINAL_STATE_IS_REVERSE(anim) \
    ((efl_animation_repeat_mode_get(anim) == 
EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE) && \
-    (efl_animation_repeat_count_get(anim) & 1))
+    (efl_animation_play_count_get(anim) & 1))
diff --git a/src/lib/evas/canvas/efl_canvas_animation_types.eot 
b/src/lib/evas/canvas/efl_canvas_animation_types.eot
index cfdda2d490..bb44fe4dd1 100644
--- a/src/lib/evas/canvas/efl_canvas_animation_types.eot
+++ b/src/lib/evas/canvas/efl_canvas_animation_types.eot
@@ -5,9 +5,11 @@ struct @beta Efl.Canvas.Animation_Player_Event_Running; 
[[Information of event r
 
 enum @beta Efl.Canvas.Animation_Repeat_Mode
 {
-   [[Animation repeat mode]]
+   [[Animation repeat mode.]]
 
-   restart = 0, [[Restart animation when the animation ends.]]
-   reverse = 1, [[Reverse animation when the animation ends.]]
+   restart = 0, [[Restart animation when the animation ends: The animation 
will play again from the beginning to the
+                  end.]]
+   reverse = 1, [[Reverse animation when the animation ends: The animation 
will continue playing from the end to the
+                  beginning.]]
    last
 }
diff --git a/src/lib/evas/canvas/efl_canvas_object_animation.c 
b/src/lib/evas/canvas/efl_canvas_object_animation.c
index 5663833a26..3fbc0e94f4 100644
--- a/src/lib/evas/canvas/efl_canvas_object_animation.c
+++ b/src/lib/evas/canvas/efl_canvas_object_animation.c
@@ -70,7 +70,7 @@ _animator_cb(void *data, const Efl_Event *ev EINA_UNUSED)
        (pd->in->speed > 0 && EINA_DBL_EQ(pd->in->progress, 1.0)))
      {
         //Repeat animation
-        if ((efl_animation_repeat_count_get(pd->in->animation) == 
EFL_ANIMATION_REPEAT_INFINITE) ||
+        if ((efl_animation_play_count_get(pd->in->animation) == 0) ||
             (pd->in->remaining_repeats > 0))
           {
              pd->in->remaining_repeats--;
@@ -167,7 +167,7 @@ _efl_canvas_object_animation_animation_start(Eo *obj, 
Efl_Canvas_Object_Animatio
 
    in->pause_state = EINA_FALSE;
    in->animation = efl_ref(animation);
-   in->remaining_repeats = efl_animation_repeat_count_get(animation); // -1 
because one run is already going on
+   in->remaining_repeats = efl_animation_play_count_get(animation) - 1; // -1 
because one run is already going on
    in->speed = speed;
    in->start_pos = start_pos;
    efl_event_callback_call(obj, 
EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, in->animation);

-- 


Reply via email to