Lines Matching refs:list
31 static void cleanup_event_list(lv_event_list_t * list);
34 static void event_mark_deleting(lv_event_list_t * list, lv_event_dsc_t * dsc);
36 static uint32_t event_array_size(lv_event_list_t * list);
37 static lv_event_dsc_t ** event_array_at(lv_event_list_t * list, uint32_t index);
72 lv_result_t lv_event_send(lv_event_list_t * list, lv_event_t * e, bool preprocess) in lv_event_send() argument
74 if(list == NULL) return LV_RESULT_OK; in lv_event_send()
81 lv_array_t back_array_head = list->array; in lv_event_send()
84 const bool is_traversing = list->is_traversing; in lv_event_send()
85 list->is_traversing = true; in lv_event_send()
88 const uint32_t size = event_array_size(list); in lv_event_send()
90 lv_event_dsc_t * dsc = *event_array_at(list, i); in lv_event_send()
113 list->is_traversing = false; in lv_event_send()
114 cleanup_event_list(list); in lv_event_send()
120 lv_event_dsc_t * lv_event_add(lv_event_list_t * list, lv_event_cb_t cb, lv_event_code_t filter, in lv_event_add() argument
130 if(event_array_size(list) == 0) { in lv_event_add()
132 lv_array_init(&list->array, 1, sizeof(lv_event_dsc_t *)); in lv_event_add()
135 lv_array_push_back(&list->array, &dsc); in lv_event_add()
139 bool lv_event_remove_dsc(lv_event_list_t * list, lv_event_dsc_t * dsc) in lv_event_remove_dsc() argument
141 LV_ASSERT_NULL(list); in lv_event_remove_dsc()
144 const uint32_t size = event_array_size(list); in lv_event_remove_dsc()
146 lv_event_dsc_t * event = *event_array_at(list, i); in lv_event_remove_dsc()
148 event_mark_deleting(list, event); in lv_event_remove_dsc()
149 cleanup_event_list(list); in lv_event_remove_dsc()
157 uint32_t lv_event_get_count(lv_event_list_t * list) in lv_event_get_count() argument
159 LV_ASSERT_NULL(list); in lv_event_get_count()
160 return event_array_size(list); in lv_event_get_count()
163 lv_event_dsc_t * lv_event_get_dsc(lv_event_list_t * list, uint32_t index) in lv_event_get_dsc() argument
165 LV_ASSERT_NULL(list); in lv_event_get_dsc()
166 lv_event_dsc_t ** dsc = event_array_at(list, index); in lv_event_get_dsc()
183 bool lv_event_remove(lv_event_list_t * list, uint32_t index) in lv_event_remove() argument
185 LV_ASSERT_NULL(list); in lv_event_remove()
186 lv_event_dsc_t * dsc = lv_event_get_dsc(list, index); in lv_event_remove()
188 event_mark_deleting(list, dsc); in lv_event_remove()
189 cleanup_event_list(list); in lv_event_remove()
193 void lv_event_remove_all(lv_event_list_t * list) in lv_event_remove_all() argument
195 LV_ASSERT_NULL(list); in lv_event_remove_all()
196 const uint32_t size = event_array_size(list); in lv_event_remove_all()
198 event_mark_deleting(list, *event_array_at(list, i)); in lv_event_remove_all()
199 cleanup_event_list(list); in lv_event_remove_all()
377 static void cleanup_event_list(lv_event_list_t * list) in cleanup_event_list() argument
379 if(list->is_traversing) return; in cleanup_event_list()
380 if(list->has_marked_deleting == false) return; in cleanup_event_list()
382 cleanup_event_list_core(&list->array); in cleanup_event_list()
384 list->has_marked_deleting = false; in cleanup_event_list()
387 static void event_mark_deleting(lv_event_list_t * list, lv_event_dsc_t * dsc) in event_mark_deleting() argument
389 list->has_marked_deleting = true; in event_mark_deleting()
396 static uint32_t event_array_size(lv_event_list_t * list) in event_array_size() argument
398 return lv_array_size(&list->array); in event_array_size()
400 static lv_event_dsc_t ** event_array_at(lv_event_list_t * list, uint32_t index) in event_array_at() argument
402 return lv_array_at(&list->array, index); in event_array_at()