1 /**
2  * @file lv_async.h
3  *
4  */
5 
6 #ifndef LV_ASYNC_H
7 #define LV_ASYNC_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 
17 #include "lv_task.h"
18 #include "lv_types.h"
19 
20 /*********************
21  *      DEFINES
22  *********************/
23 
24 /**********************
25  *      TYPEDEFS
26  **********************/
27 
28 /**
29  * Type for async callback.
30  */
31 typedef void (*lv_async_cb_t)(void *);
32 
33 typedef struct _lv_async_info_t {
34     lv_async_cb_t cb;
35     void * user_data;
36 } lv_async_info_t;
37 
38 struct _lv_obj_t;
39 
40 /**********************
41  * GLOBAL PROTOTYPES
42  **********************/
43 
44 /**
45  * Call an asynchronous function the next time lv_task_handler() is run. This function is likely to return
46  * **before** the call actually happens!
47  * @param async_xcb a callback which is the task itself.
48  *                 (the 'x' in the argument name indicates that its not a fully generic function because it not follows
49  *                  the `func_name(object, callback, ...)` convention)
50  * @param user_data custom parameter
51  */
52 lv_res_t lv_async_call(lv_async_cb_t async_xcb, void * user_data);
53 
54 /**********************
55  *      MACROS
56  **********************/
57 
58 #ifdef __cplusplus
59 } /* extern "C" */
60 #endif
61 
62 #endif /*LV_TEMPL_H*/
63