diff --git a/src/lv_misc/lv_task.c b/src/lv_misc/lv_task.c index 1779a1272..c051d9faa 100644 --- a/src/lv_misc/lv_task.c +++ b/src/lv_misc/lv_task.c @@ -378,6 +378,17 @@ uint8_t lv_task_get_idle(void) return idle_last; } +/** + * Iterate through the tasks + * @param task NULL to start iteration or the previous return value to get the next task + * @return the next task or NULL if there is no more task + */ +lv_task_t * lv_task_get_next(lv_task_t * task) +{ + if(task == NULL) return _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); + else return _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), task); +} + /********************** * STATIC FUNCTIONS **********************/ diff --git a/src/lv_misc/lv_task.h b/src/lv_misc/lv_task.h index bfd428369..d3dfc4adb 100644 --- a/src/lv_misc/lv_task.h +++ b/src/lv_misc/lv_task.h @@ -165,6 +165,13 @@ void lv_task_enable(bool en); */ uint8_t lv_task_get_idle(void); +/** + * Iterate through the tasks + * @param task NULL to start iteration or the previous return value to get the next task + * @return the next task or NULL if there is no more task + */ +lv_task_t * lv_task_get_next(lv_task_t * task); + /********************** * MACROS **********************/