From b6b0e4779b7e793bd31b34ff0200c3decc569a52 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sun, 16 Jan 2022 13:11:49 +0100 Subject: [PATCH] LVGL add support for `lv_color_filter_dsc` --- .../lv_berry/generate/be_lv_c_mapping.h | 1 + .../lv_berry/generate/be_lvgl_widgets_lib.c | 1 + .../lv_berry/src/be_lvgl_ctypes_definitions.c | 12 ++++++++++++ .../lv_berry/src/embedded/lvgl_ctypes.be | 15 +++++++++++++++ lib/libesp32_lvgl/lv_berry/tools/convert.py | 2 ++ 5 files changed, 31 insertions(+) diff --git a/lib/libesp32_lvgl/lv_berry/generate/be_lv_c_mapping.h b/lib/libesp32_lvgl/lv_berry/generate/be_lv_c_mapping.h index 77a5f2069..f596f8b5c 100644 --- a/lib/libesp32_lvgl/lv_berry/generate/be_lv_c_mapping.h +++ b/lib/libesp32_lvgl/lv_berry/generate/be_lv_c_mapping.h @@ -258,6 +258,7 @@ const be_ntv_func_def_t lv_obj_func[] = { { "get_style_border_side", (void*) &lv_obj_get_style_border_side, "i", "(lv.lv_obj)i" }, { "get_style_border_width", (void*) &lv_obj_get_style_border_width, "i", "(lv.lv_obj)i" }, { "get_style_clip_corner", (void*) &lv_obj_get_style_clip_corner, "b", "(lv.lv_obj)i" }, + { "get_style_color_filter_dsc", (void*) &lv_obj_get_style_color_filter_dsc, "lv.lv_color_filter_dsc", "(lv.lv_obj)i" }, { "get_style_color_filter_opa", (void*) &lv_obj_get_style_color_filter_opa, "i", "(lv.lv_obj)i" }, { "get_style_flex_cross_place", (void*) &lv_obj_get_style_flex_cross_place, "i", "(lv.lv_obj)i" }, { "get_style_flex_flow", (void*) &lv_obj_get_style_flex_flow, "i", "(lv.lv_obj)i" }, diff --git a/lib/libesp32_lvgl/lv_berry/generate/be_lvgl_widgets_lib.c b/lib/libesp32_lvgl/lv_berry/generate/be_lvgl_widgets_lib.c index 182e14f0c..30fc9446c 100644 --- a/lib/libesp32_lvgl/lv_berry/generate/be_lvgl_widgets_lib.c +++ b/lib/libesp32_lvgl/lv_berry/generate/be_lvgl_widgets_lib.c @@ -317,6 +317,7 @@ extern int lvbe_obj_get_style_pad_column(bvm *vm); extern int lvbe_obj_get_style_radius(bvm *vm); extern int lvbe_obj_get_style_clip_corner(bvm *vm); extern int lvbe_obj_get_style_opa(bvm *vm); +extern int lvbe_obj_get_style_color_filter_dsc(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); diff --git a/lib/libesp32_lvgl/lv_berry/src/be_lvgl_ctypes_definitions.c b/lib/libesp32_lvgl/lv_berry/src/be_lvgl_ctypes_definitions.c index 180166828..8289518bd 100644 --- a/lib/libesp32_lvgl/lv_berry/src/be_lvgl_ctypes_definitions.c +++ b/lib/libesp32_lvgl/lv_berry/src/be_lvgl_ctypes_definitions.c @@ -502,6 +502,15 @@ const be_ctypes_structure_t be_lv_style_transition_dsc = { { "user_data", 4, 0, 0, ctypes_ptr32, 0 }, }}; +const be_ctypes_structure_t be_lv_color_filter_dsc = { + 8, /* size in bytes */ + 2, /* number of elements */ + be_ctypes_instance_mappings, + (const be_ctypes_structure_item_t[2]) { + { "filter_cb", 0, 0, 0, ctypes_ptr32, 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 */ @@ -522,6 +531,7 @@ static const char * be_ctypes_instance_mappings[] = { static be_define_ctypes_class(lv_area, &be_lv_area, &be_class_ctypes, "lv_area"); static be_define_ctypes_class(lv_chart_cursor, &be_lv_chart_cursor, &be_class_ctypes, "lv_chart_cursor"); static be_define_ctypes_class(lv_chart_series, &be_lv_chart_series, &be_class_ctypes, "lv_chart_series"); +static be_define_ctypes_class(lv_color_filter_dsc, &be_lv_color_filter_dsc, &be_class_ctypes, "lv_color_filter_dsc"); static be_define_ctypes_class(lv_draw_img_dsc, &be_lv_draw_img_dsc, &be_class_ctypes, "lv_draw_img_dsc"); static be_define_ctypes_class(lv_draw_line_dsc, &be_lv_draw_line_dsc, &be_class_ctypes, "lv_draw_line_dsc"); static be_define_ctypes_class(lv_draw_mask_angle_param, &be_lv_draw_mask_angle_param, &be_class_ctypes, "lv_draw_mask_angle_param"); @@ -556,6 +566,7 @@ void be_load_ctypes_lvgl_definitions_lib(bvm *vm) { ctypes_register_class(vm, &be_class_lv_area, &be_lv_area); ctypes_register_class(vm, &be_class_lv_chart_cursor, &be_lv_chart_cursor); ctypes_register_class(vm, &be_class_lv_chart_series, &be_lv_chart_series); + ctypes_register_class(vm, &be_class_lv_color_filter_dsc, &be_lv_color_filter_dsc); ctypes_register_class(vm, &be_class_lv_draw_img_dsc, &be_lv_draw_img_dsc); ctypes_register_class(vm, &be_class_lv_draw_line_dsc, &be_lv_draw_line_dsc); ctypes_register_class(vm, &be_class_lv_draw_mask_angle_param, &be_lv_draw_mask_angle_param); @@ -591,6 +602,7 @@ be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = { { "lv_area", &be_class_lv_area }, { "lv_chart_cursor", &be_class_lv_chart_cursor }, { "lv_chart_series", &be_class_lv_chart_series }, + { "lv_color_filter_dsc", &be_class_lv_color_filter_dsc }, { "lv_draw_img_dsc", &be_class_lv_draw_img_dsc }, { "lv_draw_line_dsc", &be_class_lv_draw_line_dsc }, { "lv_draw_mask_angle_param", &be_class_lv_draw_mask_angle_param }, diff --git a/lib/libesp32_lvgl/lv_berry/src/embedded/lvgl_ctypes.be b/lib/libesp32_lvgl/lv_berry/src/embedded/lvgl_ctypes.be index 2b08450d1..5db3c47fd 100644 --- a/lib/libesp32_lvgl/lv_berry/src/embedded/lvgl_ctypes.be +++ b/lib/libesp32_lvgl/lv_berry/src/embedded/lvgl_ctypes.be @@ -424,6 +424,21 @@ lv_style_transition_dsc = [ # valid LVGL8 ] lv_style_transition_dsc = ctypes.structure(lv_style_transition_dsc, "lv_style_transition_dsc") +####################################################################### +# lv_color +# lv_color_hsv = [ # valid LVGL8 +# [uint16_t, "h"], +# [uint8_t, "s"], +# [uint8_t, "v"], +# ] +# lv_color_hsv = ctypes.structure(lv_color_hsv, "lv_color_hsv") + +lv_color_filter_dsc = [ # valid LVGL8 + [ptr, "filter_cb"], + [ptr, "user_data"], +] +lv_color_filter_dsc = ctypes.structure(lv_color_filter_dsc, "lv_color_filter_dsc") + ####################################################################### # Special structure used to calibrate resistive touchscreens ####################################################################### diff --git a/lib/libesp32_lvgl/lv_berry/tools/convert.py b/lib/libesp32_lvgl/lv_berry/tools/convert.py index 0614812a4..7b05fb9d3 100644 --- a/lib/libesp32_lvgl/lv_berry/tools/convert.py +++ b/lib/libesp32_lvgl/lv_berry/tools/convert.py @@ -139,6 +139,8 @@ return_types = { "lv_img_dsc_t *": "lv_img_dsc", "lv_ts_calibration_t *": "lv_ts_calibration", "lv_style_transition_dsc_t *": "lv_style_transition_dsc", + # "lv_color_hsv_t *": "lv_color_hsv", + "lv_color_filter_dsc_t *": "lv_color_filter_dsc", #"lv_disp_t*": "lv_disp", #"lv_style_list_t*": "",