Merge pull request #14463 from s-hadinger/lvgl_more_structs

LVGL more structs
This commit is contained in:
s-hadinger 2022-01-16 11:59:32 +01:00 committed by GitHub
commit f4dc554b17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 86 additions and 0 deletions

View File

@ -322,6 +322,7 @@ const be_ntv_func_def_t lv_obj_func[] = {
{ "get_style_transform_height", (void*) &lv_obj_get_style_transform_height, "i", "(lv.lv_obj)i" },
{ "get_style_transform_width", (void*) &lv_obj_get_style_transform_width, "i", "(lv.lv_obj)i" },
{ "get_style_transform_zoom", (void*) &lv_obj_get_style_transform_zoom, "i", "(lv.lv_obj)i" },
{ "get_style_transition", (void*) &lv_obj_get_style_transition, "lv.lv_style_transition_dsc", "(lv.lv_obj)i" },
{ "get_style_translate_x", (void*) &lv_obj_get_style_translate_x, "i", "(lv.lv_obj)i" },
{ "get_style_translate_y", (void*) &lv_obj_get_style_translate_y, "i", "(lv.lv_obj)i" },
{ "get_style_width", (void*) &lv_obj_get_style_width, "i", "(lv.lv_obj)i" },
@ -769,6 +770,7 @@ const be_ntv_func_def_t lv_canvas_func[] = {
{ "draw_rect", (void*) &lv_canvas_draw_rect, "", "(lv.lv_obj)iiii(lv.lv_draw_rect_dsc)" },
{ "draw_text", (void*) &lv_canvas_draw_text, "", "(lv.lv_obj)iii(lv.lv_draw_label_dsc)s" },
{ "fill_bg", (void*) &lv_canvas_fill_bg, "", "(lv.lv_obj)(lv.lv_color)i" },
{ "get_img", (void*) &lv_canvas_get_img, "lv.lv_img_dsc", "(lv.lv_obj)" },
{ "get_px", (void*) &lv_canvas_get_px, "lv.lv_color", "(lv.lv_obj)ii" },
{ "set_buffer", (void*) &lv_canvas_set_buffer, "", "(lv.lv_obj).iii" },
{ "set_palette", (void*) &lv_canvas_set_palette, "", "(lv.lv_obj)i(lv.lv_color)" },

View File

@ -320,6 +320,7 @@ extern int lvbe_obj_get_style_opa(bvm *vm);
extern int lvbe_obj_get_style_color_filter_opa(bvm *vm);
extern int lvbe_obj_get_style_anim_time(bvm *vm);
extern int lvbe_obj_get_style_anim_speed(bvm *vm);
extern int lvbe_obj_get_style_transition(bvm *vm);
extern int lvbe_obj_get_style_blend_mode(bvm *vm);
extern int lvbe_obj_get_style_layout(bvm *vm);
extern int lvbe_obj_get_style_base_dir(bvm *vm);
@ -729,6 +730,7 @@ extern int lvbe_canvas_set_px(bvm *vm);
extern int lvbe_canvas_set_px_opa(bvm *vm);
extern int lvbe_canvas_set_palette(bvm *vm);
extern int lvbe_canvas_get_px(bvm *vm);
extern int lvbe_canvas_get_img(bvm *vm);
extern int lvbe_canvas_copy_buf(bvm *vm);
extern int lvbe_canvas_transform(bvm *vm);
extern int lvbe_canvas_blur_hor(bvm *vm);

View File

@ -463,6 +463,45 @@ const be_ctypes_structure_t be_lv_event = {
{ "user_data", 12, 0, 0, ctypes_ptr32, 0 },
}};
const be_ctypes_structure_t be_lv_img_header = {
4, /* size in bytes */
5, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[5]) {
{ "always_zero", 0, 5, 3, ctypes_bf, 0 },
{ "cf", 0, 0, 5, ctypes_bf, 0 },
{ "h", 2, 5, 11, ctypes_bf, 0 },
{ "reserved", 1, 0, 2, ctypes_bf, 0 },
{ "w", 1, 2, 11, ctypes_bf, 0 },
}};
const be_ctypes_structure_t be_lv_img_dsc = {
16, /* size in bytes */
8, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[8]) {
{ "cf", 4, 0, 5, ctypes_bf, 0 },
{ "data", 12, 0, 0, ctypes_ptr32, 0 },
{ "data_size", 8, 0, 0, ctypes_u32, 0 },
{ "header_always_zero", 0, 5, 3, ctypes_bf, 0 },
{ "header_cf", 0, 0, 5, ctypes_bf, 0 },
{ "header_h", 2, 5, 11, ctypes_bf, 0 },
{ "header_reserved", 1, 0, 2, ctypes_bf, 0 },
{ "header_w", 1, 2, 11, ctypes_bf, 0 },
}};
const be_ctypes_structure_t be_lv_style_transition_dsc = {
20, /* size in bytes */
5, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[5]) {
{ "delay", 16, 0, 0, ctypes_u32, 0 },
{ "path_xcb", 8, 0, 0, ctypes_ptr32, 0 },
{ "props", 0, 0, 0, ctypes_ptr32, 0 },
{ "time", 12, 0, 0, ctypes_u32, 0 },
{ "user_data", 4, 0, 0, ctypes_ptr32, 0 },
}};
const be_ctypes_structure_t be_lv_ts_calibration = {
12, /* size in bytes */
5, /* number of elements */
@ -499,6 +538,8 @@ static be_define_ctypes_class(lv_draw_mask_radius_param_cfg, &be_lv_draw_mask_ra
static be_define_ctypes_class(lv_draw_mask_saved, &be_lv_draw_mask_saved, &be_class_ctypes, "lv_draw_mask_saved");
static be_define_ctypes_class(lv_draw_rect_dsc, &be_lv_draw_rect_dsc, &be_class_ctypes, "lv_draw_rect_dsc");
static be_define_ctypes_class(lv_event, &be_lv_event, &be_class_ctypes, "lv_event");
static be_define_ctypes_class(lv_img_dsc, &be_lv_img_dsc, &be_class_ctypes, "lv_img_dsc");
static be_define_ctypes_class(lv_img_header, &be_lv_img_header, &be_class_ctypes, "lv_img_header");
static be_define_ctypes_class(lv_meter_indicator, &be_lv_meter_indicator, &be_class_ctypes, "lv_meter_indicator");
static be_define_ctypes_class(lv_meter_indicator_arc, &be_lv_meter_indicator_arc, &be_class_ctypes, "lv_meter_indicator_arc");
static be_define_ctypes_class(lv_meter_indicator_needle_img, &be_lv_meter_indicator_needle_img, &be_class_ctypes, "lv_meter_indicator_needle_img");
@ -508,6 +549,7 @@ static be_define_ctypes_class(lv_meter_scale, &be_lv_meter_scale, &be_class_ctyp
static be_define_ctypes_class(lv_obj_class, &be_lv_obj_class, &be_class_ctypes, "lv_obj_class");
static be_define_ctypes_class(lv_point, &be_lv_point, &be_class_ctypes, "lv_point");
static be_define_ctypes_class(lv_sqrt_res, &be_lv_sqrt_res, &be_class_ctypes, "lv_sqrt_res");
static be_define_ctypes_class(lv_style_transition_dsc, &be_lv_style_transition_dsc, &be_class_ctypes, "lv_style_transition_dsc");
static be_define_ctypes_class(lv_ts_calibration, &be_lv_ts_calibration, &be_class_ctypes, "lv_ts_calibration");
void be_load_ctypes_lvgl_definitions_lib(bvm *vm) {
@ -530,6 +572,8 @@ void be_load_ctypes_lvgl_definitions_lib(bvm *vm) {
ctypes_register_class(vm, &be_class_lv_draw_mask_saved, &be_lv_draw_mask_saved);
ctypes_register_class(vm, &be_class_lv_draw_rect_dsc, &be_lv_draw_rect_dsc);
ctypes_register_class(vm, &be_class_lv_event, &be_lv_event);
ctypes_register_class(vm, &be_class_lv_img_dsc, &be_lv_img_dsc);
ctypes_register_class(vm, &be_class_lv_img_header, &be_lv_img_header);
ctypes_register_class(vm, &be_class_lv_meter_indicator, &be_lv_meter_indicator);
ctypes_register_class(vm, &be_class_lv_meter_indicator_arc, &be_lv_meter_indicator_arc);
ctypes_register_class(vm, &be_class_lv_meter_indicator_needle_img, &be_lv_meter_indicator_needle_img);
@ -539,6 +583,7 @@ void be_load_ctypes_lvgl_definitions_lib(bvm *vm) {
ctypes_register_class(vm, &be_class_lv_obj_class, &be_lv_obj_class);
ctypes_register_class(vm, &be_class_lv_point, &be_lv_point);
ctypes_register_class(vm, &be_class_lv_sqrt_res, &be_lv_sqrt_res);
ctypes_register_class(vm, &be_class_lv_style_transition_dsc, &be_lv_style_transition_dsc);
ctypes_register_class(vm, &be_class_lv_ts_calibration, &be_lv_ts_calibration);
}
@ -562,6 +607,8 @@ be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
{ "lv_draw_mask_saved", &be_class_lv_draw_mask_saved },
{ "lv_draw_rect_dsc", &be_class_lv_draw_rect_dsc },
{ "lv_event", &be_class_lv_event },
{ "lv_img_dsc", &be_class_lv_img_dsc },
{ "lv_img_header", &be_class_lv_img_header },
{ "lv_meter_indicator", &be_class_lv_meter_indicator },
{ "lv_meter_indicator_arc", &be_class_lv_meter_indicator_arc },
{ "lv_meter_indicator_needle_img", &be_class_lv_meter_indicator_needle_img },
@ -571,6 +618,7 @@ be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
{ "lv_obj_class", &be_class_lv_obj_class },
{ "lv_point", &be_class_lv_point },
{ "lv_sqrt_res", &be_class_lv_sqrt_res },
{ "lv_style_transition_dsc", &be_class_lv_style_transition_dsc },
{ "lv_ts_calibration", &be_class_lv_ts_calibration },
};
const size_t be_ctypes_lvgl_classes_size = sizeof(be_ctypes_lvgl_classes)/sizeof(be_ctypes_lvgl_classes[0]);

View File

@ -30,6 +30,7 @@ uint8_t_2 = ctypes.bf_2
uint8_t_3 = ctypes.bf_3
uint8_t_4 = ctypes.bf_4
uint8_t_5 = ctypes.bf_5
uint8_t_11 = ctypes.bf_11
uint8_t = ctypes.u8
int16_t = ctypes.i16
uint16_t = ctypes.u16
@ -393,6 +394,36 @@ lv_event = [ # valid LVGL8
]
lv_event = ctypes.structure(lv_event, "lv_event")
#######################################################################
# lv_img structures
lv_img_header = [ # valid LVGL8
[uint8_t_5, "cf"],
[uint8_t_3, "always_zero"],
[uint8_t_2, "reserved"],
[uint8_t_11, "w"],
[uint8_t_11, "h"],
]
lv_img_header = ctypes.structure(lv_img_header, "lv_img_header")
lv_img_dsc = [ # valid LVGL8
[lv_img_header, "header"],
[uint8_t_5, "cf"],
[uint32_t, "data_size"],
[ptr, "data"],
]
lv_img_dsc = ctypes.structure(lv_img_dsc, "lv_img_dsc")
#######################################################################
# lv_style
lv_style_transition_dsc = [ # valid LVGL8
[ptr, "props"],
[ptr, "user_data"],
[ptr, "path_xcb"],
[uint32_t, "time"],
[uint32_t, "delay"],
]
lv_style_transition_dsc = ctypes.structure(lv_style_transition_dsc, "lv_style_transition_dsc")
#######################################################################
# Special structure used to calibrate resistive touchscreens
#######################################################################

View File

@ -135,7 +135,10 @@ return_types = {
"lv_theme_t *": "lv_theme",
"lv_disp_t *": "lv_disp",
"lv_indev_t *": "lv_indev",
"lv_img_header_t *": "lv_img_header",
"lv_img_dsc_t *": "lv_img_dsc",
"lv_ts_calibration_t *": "lv_ts_calibration",
"lv_style_transition_dsc_t *": "lv_style_transition_dsc",
#"lv_disp_t*": "lv_disp",
#"lv_style_list_t*": "",