fix(animimg) fix flickering and build error

This commit is contained in:
Gabor Kiss-Vamosi
2021-05-07 15:27:55 +02:00
parent 99177baf3f
commit 3b7bbddb09
2 changed files with 14 additions and 67 deletions
+2 -48
View File
@@ -54,24 +54,12 @@ const lv_obj_class_t lv_animimg_class = {
* GLOBAL FUNCTIONS * GLOBAL FUNCTIONS
**********************/ **********************/
/**
* Create an animation image objects
* @param par pointer to an object, it will be the parent of the new animation image
* @param copy pointer to a image object, if not NULL then the new object will be copied from it
* @return pointer to the created animation image
*/
lv_obj_t * lv_animimg_create(lv_obj_t * parent) lv_obj_t * lv_animimg_create(lv_obj_t * parent)
{ {
LV_LOG_INFO("begin") LV_LOG_INFO("begin")
return lv_obj_create_from_class(&lv_animimg_class, parent); return lv_obj_class_create_obj(&lv_animimg_class, parent, NULL);
} }
/**
* Set the animation images source.
* @param img pointer to an animation image object
* @param dsc pointer to a series images
* @param num images' number
*/
void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num) void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num)
{ {
lv_animimg_t * animimg = (lv_animimg_t *)obj; lv_animimg_t * animimg = (lv_animimg_t *)obj;
@@ -80,10 +68,6 @@ void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num)
lv_anim_set_values(&animimg->anim, 0 , num); lv_anim_set_values(&animimg->anim, 0 , num);
} }
/**
* Startup the image animation.
* @param img pointer to an animation image object
*/
void lv_animimg_start(lv_obj_t * obj) void lv_animimg_start(lv_obj_t * obj)
{ {
lv_animimg_t * animimg = (lv_animimg_t *)obj; lv_animimg_t * animimg = (lv_animimg_t *)obj;
@@ -94,31 +78,13 @@ void lv_animimg_start(lv_obj_t * obj)
* Setter functions * Setter functions
*====================*/ *====================*/
/**
* Set the image animation wait before repeat. unit:ms
* @param img pointer to an animation image object
*/
void lv_animimg_set_repeat_delay(lv_obj_t * obj, uint32_t delay)
{
lv_animimg_t * animimg = (lv_animimg_t *)obj;
animimg->anim.repeat_delay = delay;
}
/**
* Set the image animation duration time. unit:ms
* @param img pointer to an animation image object
*/
void lv_animimg_set_duration(lv_obj_t * obj, uint32_t duration) void lv_animimg_set_duration(lv_obj_t * obj, uint32_t duration)
{ {
lv_animimg_t * animimg = (lv_animimg_t *)obj; lv_animimg_t * animimg = (lv_animimg_t *)obj;
lv_anim_set_time(&animimg->anim, duration); lv_anim_set_time(&animimg->anim, duration);
lv_anim_set_playback_time(&animimg->anim, duration); lv_anim_set_playback_delay(&animimg->anim, duration);
} }
/**
* Set the image animation reapeatly play times.
* @param img pointer to an animation image object
*/
void lv_animimg_set_repeat_count(lv_obj_t * obj, uint16_t count) void lv_animimg_set_repeat_count(lv_obj_t * obj, uint16_t count)
{ {
lv_animimg_t * animimg = (lv_animimg_t *)obj; lv_animimg_t * animimg = (lv_animimg_t *)obj;
@@ -148,21 +114,9 @@ static void lv_animimg_constructor(const lv_obj_class_t * class_p, lv_obj_t * ob
lv_anim_set_time(&animimg->anim, 30); lv_anim_set_time(&animimg->anim, 30);
lv_anim_set_exec_cb(&animimg->anim, (lv_anim_exec_xcb_t)index_change); lv_anim_set_exec_cb(&animimg->anim, (lv_anim_exec_xcb_t)index_change);
lv_anim_set_values(&animimg->anim, 0 , 1); lv_anim_set_values(&animimg->anim, 0 , 1);
lv_anim_set_playback_time(&animimg->anim, 100);
lv_anim_set_repeat_count(&animimg->anim, LV_ANIM_REPEAT_INFINITE); lv_anim_set_repeat_count(&animimg->anim, LV_ANIM_REPEAT_INFINITE);
} }
/**
* Handle the drawing related tasks of the images
* @param img pointer to an image animationobject
* @param clip_area the object will be drawn only in this area
* @param mode LV_DESIGN_COVER_CHK: only check if the object fully covers the 'mask_p' area
* (return 'true' if yes)
* LV_DESIGN_DRAW: draw the object (always return 'true')
* LV_DESIGN_DRAW_POST: drawing after every children are drawn
* @param return an element of `lv_design_res_t`
*/
static void index_change(lv_obj_t * obj, int32_t index) static void index_change(lv_obj_t * obj, int32_t index)
{ {
lv_coord_t idx; lv_coord_t idx;
+12 -19
View File
@@ -54,29 +54,10 @@ typedef uint8_t lv_animimg_part_t;
*/ */
lv_obj_t * lv_animimg_create(lv_obj_t * parent); lv_obj_t * lv_animimg_create(lv_obj_t * parent);
/**
* Startup the image animation.
* @param img pointer to an animation image object
*/
void lv_animimg_start(lv_obj_t * obj);
/*===================== /*=====================
* Setter functions * Setter functions
*====================*/ *====================*/
/**
* Set the image animation duration time. unit:ms
* @param img pointer to an animation image object
*/
void lv_animimg_set_duration(lv_obj_t * img, uint32_t duration);
/**
* Set the image animation wait before repeat. unit:ms
* @param img pointer to an animation image object
*/
void lv_animimg_set_repeat_delay(lv_obj_t * img, uint32_t delay);
/** /**
* Set the image animation images source. * Set the image animation images source.
* @param img pointer to an animation image object * @param img pointer to an animation image object
@@ -85,6 +66,18 @@ void lv_animimg_set_repeat_delay(lv_obj_t * img, uint32_t delay);
*/ */
void lv_animimg_set_src(lv_obj_t * img, lv_img_dsc_t ** dsc, uint8_t num); void lv_animimg_set_src(lv_obj_t * img, lv_img_dsc_t ** dsc, uint8_t num);
/**
* Startup the image animation.
* @param img pointer to an animation image object
*/
void lv_animimg_start(lv_obj_t * obj);
/**
* Set the image animation duration time. unit:ms
* @param img pointer to an animation image object
*/
void lv_animimg_set_duration(lv_obj_t * img, uint32_t duration);
/** /**
* Set the image animation reapeatly play times. * Set the image animation reapeatly play times.
* @param img pointer to an animation image object * @param img pointer to an animation image object