EAPI Eina_Bool elm_animator_auto_reverse_get(Elm_Animator *animator);
EAPI Eina_Bool elm_animator_operating_get(Elm_Animator *animator);
EAPI unsigned int elm_animator_repeat_get(Elm_Animator *animator);
- EAPI void elm_animator_frame_pos_set(Elm_Animator *animator, double pos);
- EAPI double elm_animator_frame_pos_get(Elm_Animator *animator);
EAPI void elm_animator_pause(Elm_Animator *animator);
EAPI void elm_animator_resume(Elm_Animator *animator);
EAPI Eina_Bool elm_transit_event_block_disabled_get(Elm_Transit *transit);
EAPI void elm_transit_pause(Elm_Transit *transit);
EAPI void elm_transit_resume(Elm_Transit *transit);
- EAPI void elm_transit_frame_pos_set(Elm_Transit *transit, double pos);
- EAPI double elm_transit_frame_pos_get(Elm_Transit *transit);
/* Translation FX */
EAPI Elm_Effect *elm_fx_translation_add(Evas_Object *obj, Evas_Coord from_x, Evas_Coord from_y, Evas_Coord to_x, Evas_Coord to_y);
Ecore_Animator *animator;
double begin_time;
double cur_time;
- double prev_time;
double duration;
unsigned int repeat_cnt;
unsigned int cur_repeat_cnt;
Elm_Animator *animator = (Elm_Animator *) data;
double elapsed_time, frame, cur_time;
- cur_time = ecore_loop_time_get();
-
- animator->cur_time += (cur_time - animator->prev_time);
- animator->prev_time = cur_time;
-
- if(animator->cur_time > (animator->begin_time+animator->duration) ) {
- animator->cur_time = animator->begin_time+animator->duration;
- }
+ animator->cur_time = ecore_loop_time_get();
elapsed_time = animator->cur_time - animator->begin_time;
+ if(elapsed_time > animator->duration)
+ elapsed_time = animator->duration;
+
frame = animator->curve_op(elapsed_time / animator->duration);
//Reverse?
}
/**
- * Set the frame position
- *
- * @param animator Animator object
- * @param frame_pos frame position (range:0 ~ 1)
- *
- * @ingroup Animator
- */
-EAPI void
-elm_animator_frame_pos_set(Elm_Animator *animator, double pos)
-{
- double cur_time;
-
- if(!animator)
- return;
-
- if(!animator->on_animating)
- return ;
-
- cur_time = animator->begin_time + (pos * animator->duration);
-
- if(cur_time < animator->begin_time)
- cur_time = animator->begin_time;
-
- animator->prev_time = animator->cur_time = cur_time;
- _animator_animate_cb(animator);
-}
-
-/**
- * Get the current frame position
- *
- * @param animator Animator object
- * @return current frame position
- *
- * @ingroup Animator
- */
-EAPI double
-elm_animator_frame_pos_get(Elm_Animator* animator)
-{
- if(!animator)
- return 0;
-
- return ((animator->cur_time - animator->begin_time) / animator->duration);
-}
-
-/**
* Stop animator.
*
* @param animator Animator object
return;
if (!animator->animator_op)
return;
- animator->prev_time = animator->cur_time = animator->begin_time = ecore_loop_time_get();
+ animator->begin_time = ecore_loop_time_get();
animator->cur_repeat_cnt = animator->repeat_cnt;
if (!animator->animator) {
animator->animator = ecore_animator_add(_animator_animate_cb, animator);
elm_animator_resume(transit->animator);
}
-/**
- * Get the current frame position
- *
- * @param transit Transit
- * @return current frame position (range: 0~1)
- *
- * @ingroup Transit
- */
-EAPI void
-elm_transit_frame_pos_set(Elm_Transit *transit, double pos)
-{
- if(!transit)
- return;
-
- elm_animator_frame_pos_set(transit->animator, pos);
-}
-
-/**
- * Get the current frame position
- *
- * @param transit Transit
- * @return current frame position
- *
- * @ingroup Transit
- */
-EAPI double
-elm_transit_frame_pos_get(Elm_Transit *transit )
-{
- if(!transit)
- return 0;
-
- return elm_animator_frame_pos_get(transit->animator);
-}
-
-
/////////////////////////////////////////////////////////////////////////////////////