fix(anim_timeline): run animations which do not have an exec cb (#7043)
This commit is contained in:
@@ -206,10 +206,6 @@ static void anim_timeline_set_act_time(lv_anim_timeline_t * at, uint32_t act_tim
|
|||||||
lv_anim_timeline_dsc_t * anim_dsc = &(at->anim_dsc[i]);
|
lv_anim_timeline_dsc_t * anim_dsc = &(at->anim_dsc[i]);
|
||||||
lv_anim_t * a = &(anim_dsc->anim);
|
lv_anim_t * a = &(anim_dsc->anim);
|
||||||
|
|
||||||
if(a->exec_cb == NULL && a->custom_exec_cb == NULL) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t start_time = anim_dsc->start_time;
|
uint32_t start_time = anim_dsc->start_time;
|
||||||
int32_t value = 0;
|
int32_t value = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -568,4 +568,43 @@ void test_anim_timeline_with_anim_start_cb_and_completed_cb(void)
|
|||||||
TEST_ASSERT_EQUAL(1, anim2_completed_called);
|
TEST_ASSERT_EQUAL(1, anim2_completed_called);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_anim_timeline_without_exec_cb_but_anim_start_cb_and_completed_cb(void)
|
||||||
|
{
|
||||||
|
lv_anim_t anim1;
|
||||||
|
|
||||||
|
lv_anim_init(&anim1);
|
||||||
|
lv_anim_set_values(&anim1, 0, 1024);
|
||||||
|
lv_anim_set_duration(&anim1, 300);
|
||||||
|
lv_anim_set_exec_cb(&anim1, anim1_exec_cb);
|
||||||
|
lv_anim_set_start_cb(&anim1, anim1_start);
|
||||||
|
lv_anim_set_completed_cb(&anim1, anim1_completed);
|
||||||
|
anim1_start_called = 0;
|
||||||
|
anim1_completed_called = 0;
|
||||||
|
|
||||||
|
anim_timeline = lv_anim_timeline_create();
|
||||||
|
lv_anim_timeline_add(anim_timeline, 200, &anim1);
|
||||||
|
lv_anim_timeline_set_progress(anim_timeline, 0);
|
||||||
|
lv_anim_timeline_start(anim_timeline);
|
||||||
|
|
||||||
|
lv_refr_now(NULL);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* |----anim1----|
|
||||||
|
*
|
||||||
|
* 0 200 300 500
|
||||||
|
*/
|
||||||
|
|
||||||
|
lv_test_wait(20); /*Wait 20 ms*/
|
||||||
|
TEST_ASSERT_EQUAL(0, anim1_start_called);
|
||||||
|
TEST_ASSERT_EQUAL(0, anim1_completed_called);
|
||||||
|
|
||||||
|
lv_test_wait(200); /*Now we are at 220ms */
|
||||||
|
TEST_ASSERT_EQUAL(1, anim1_start_called);
|
||||||
|
TEST_ASSERT_EQUAL(0, anim1_completed_called);
|
||||||
|
|
||||||
|
lv_test_wait(300); /*Now we are at 520ms */
|
||||||
|
TEST_ASSERT_EQUAL(1, anim1_start_called);
|
||||||
|
TEST_ASSERT_EQUAL(1, anim1_completed_called);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user