Skip to content

Commit

Permalink
LVGL fix descriptors Berry mapping (#20946)
Browse files Browse the repository at this point in the history
  • Loading branch information
s-hadinger committed Mar 13, 2024
1 parent 26a3eac commit 5e8b116
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 47 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -993,6 +993,7 @@ All notable changes to this project will be documented in this file.
- DNS lookup for .local domains (#16273)
- Button response delay regression from v12.0.2.4 (#16319)
- Lost module name in GUI regression from v12.0.2.4 - 20220803 (#16324)
- LVGL fix descriptors Berry mapping

## [12.1.0.1] 20220825
### Added
Expand Down
88 changes: 44 additions & 44 deletions lib/libesp32_lvgl/lv_binding_berry/src/be_lvgl_ctypes_definitions.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,18 @@ const be_ctypes_structure_t be_lv_gradient_stop = {
}};

const be_ctypes_structure_t be_lv_grad_dsc = {
16, /* size in bytes */
12, /* size in bytes */
8, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[8]) {
{ "dir", 14, 0, 3, ctypes_bf, 0 },
{ "dir", 11, 0, 3, ctypes_bf, 0 },
{ "stops_0_color", 0, 0, 0, ctypes_u24, 1 },
{ "stops_0_frac", 4, 0, 0, ctypes_u8, 0 },
{ "stops_0_opa", 3, 0, 0, ctypes_u8, 0 },
{ "stops_1_color", 8, 0, 0, ctypes_u24, 1 },
{ "stops_1_frac", 12, 0, 0, ctypes_u8, 0 },
{ "stops_1_opa", 11, 0, 0, ctypes_u8, 0 },
{ "stops_count", 13, 0, 0, ctypes_u8, 0 },
{ "stops_1_color", 5, 0, 0, ctypes_u24, 1 },
{ "stops_1_frac", 9, 0, 0, ctypes_u8, 0 },
{ "stops_1_opa", 8, 0, 0, ctypes_u8, 0 },
{ "stops_count", 10, 0, 0, ctypes_u8, 0 },
}};

const be_ctypes_structure_t be_lv_draw_dsc_base = {
Expand All @@ -81,7 +81,7 @@ const be_ctypes_structure_t be_lv_draw_dsc_base = {
}};

const be_ctypes_structure_t be_lv_draw_rect_dsc = {
124, /* size in bytes */
112, /* size in bytes */
39, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[39]) {
Expand All @@ -92,38 +92,38 @@ const be_ctypes_structure_t be_lv_draw_rect_dsc = {
{ "base_obj", 0, 0, 0, ctypes_ptr32, 0 },
{ "base_part", 4, 0, 0, ctypes_u32, 0 },
{ "base_user_data", 24, 0, 0, ctypes_ptr32, 0 },
{ "bg_color", 36, 0, 0, ctypes_u24, 1 },
{ "bg_grad_dir", 54, 0, 3, ctypes_bf, 0 },
{ "bg_grad_stops_0_color", 40, 0, 0, ctypes_u24, 1 },
{ "bg_grad_stops_0_frac", 44, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_0_opa", 43, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_1_color", 48, 0, 0, ctypes_u24, 1 },
{ "bg_grad_stops_1_frac", 52, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_1_opa", 51, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_count", 53, 0, 0, ctypes_u8, 0 },
{ "bg_img_opa", 67, 0, 0, ctypes_u8, 0 },
{ "bg_img_recolor", 64, 0, 0, ctypes_u24, 1 },
{ "bg_img_recolor_opa", 68, 0, 0, ctypes_u8, 0 },
{ "bg_img_src", 56, 0, 0, ctypes_ptr32, 0 },
{ "bg_img_symbol_font", 60, 0, 0, ctypes_ptr32, 0 },
{ "bg_img_tiled", 69, 0, 0, ctypes_u8, 0 },
{ "bg_color", 33, 0, 0, ctypes_u24, 1 },
{ "bg_grad_dir", 47, 0, 3, ctypes_bf, 0 },
{ "bg_grad_stops_0_color", 36, 0, 0, ctypes_u24, 1 },
{ "bg_grad_stops_0_frac", 40, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_0_opa", 39, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_1_color", 41, 0, 0, ctypes_u24, 1 },
{ "bg_grad_stops_1_frac", 45, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_1_opa", 44, 0, 0, ctypes_u8, 0 },
{ "bg_grad_stops_count", 46, 0, 0, ctypes_u8, 0 },
{ "bg_img_opa", 59, 0, 0, ctypes_u8, 0 },
{ "bg_img_recolor", 56, 0, 0, ctypes_u24, 1 },
{ "bg_img_recolor_opa", 60, 0, 0, ctypes_u8, 0 },
{ "bg_img_src", 48, 0, 0, ctypes_ptr32, 0 },
{ "bg_img_symbol_font", 52, 0, 0, ctypes_ptr32, 0 },
{ "bg_img_tiled", 61, 0, 0, ctypes_u8, 0 },
{ "bg_opa", 32, 0, 0, ctypes_u8, 0 },
{ "border_color", 72, 0, 0, ctypes_u24, 1 },
{ "border_opa", 80, 0, 0, ctypes_u8, 0 },
{ "border_post", 81, 0, 1, ctypes_bf, 0 },
{ "border_side", 81, 1, 5, ctypes_bf, 0 },
{ "border_width", 76, 0, 0, ctypes_i32, 0 },
{ "outline_color", 84, 0, 0, ctypes_u24, 1 },
{ "outline_opa", 96, 0, 0, ctypes_u8, 0 },
{ "outline_pad", 92, 0, 0, ctypes_i32, 0 },
{ "outline_width", 88, 0, 0, ctypes_i32, 0 },
{ "border_color", 62, 0, 0, ctypes_u24, 1 },
{ "border_opa", 72, 0, 0, ctypes_u8, 0 },
{ "border_post", 73, 0, 1, ctypes_bf, 0 },
{ "border_side", 73, 1, 5, ctypes_bf, 0 },
{ "border_width", 68, 0, 0, ctypes_i32, 0 },
{ "outline_color", 74, 0, 0, ctypes_u24, 1 },
{ "outline_opa", 88, 0, 0, ctypes_u8, 0 },
{ "outline_pad", 84, 0, 0, ctypes_i32, 0 },
{ "outline_width", 80, 0, 0, ctypes_i32, 0 },
{ "radius", 28, 0, 0, ctypes_i32, 0 },
{ "shadow_color", 100, 0, 0, ctypes_u24, 1 },
{ "shadow_ofs_x", 108, 0, 0, ctypes_i32, 0 },
{ "shadow_ofs_y", 112, 0, 0, ctypes_i32, 0 },
{ "shadow_opa", 120, 0, 0, ctypes_u8, 0 },
{ "shadow_spread", 116, 0, 0, ctypes_i32, 0 },
{ "shadow_width", 104, 0, 0, ctypes_i32, 0 },
{ "shadow_color", 89, 0, 0, ctypes_u24, 1 },
{ "shadow_ofs_x", 96, 0, 0, ctypes_i32, 0 },
{ "shadow_ofs_y", 100, 0, 0, ctypes_i32, 0 },
{ "shadow_opa", 108, 0, 0, ctypes_u8, 0 },
{ "shadow_spread", 104, 0, 0, ctypes_i32, 0 },
{ "shadow_width", 92, 0, 0, ctypes_i32, 0 },
}};

const be_ctypes_structure_t be_lv_draw_line_dsc = {
Expand Down Expand Up @@ -252,8 +252,8 @@ const be_ctypes_structure_t be_lv_draw_label_dsc = {
{ "ofs_x", 64, 0, 0, ctypes_i32, 0 },
{ "ofs_y", 68, 0, 0, ctypes_i32, 0 },
{ "opa", 72, 0, 0, ctypes_u8, 0 },
{ "sel_bg_color", 52, 0, 0, ctypes_u24, 1 },
{ "sel_color", 48, 0, 0, ctypes_u24, 1 },
{ "sel_bg_color", 50, 0, 0, ctypes_u24, 1 },
{ "sel_color", 47, 0, 0, ctypes_u24, 1 },
{ "sel_end", 40, 0, 0, ctypes_u32, 0 },
{ "sel_start", 36, 0, 0, ctypes_u32, 0 },
{ "text", 28, 0, 0, ctypes_ptr32, 0 },
Expand All @@ -266,18 +266,18 @@ const be_ctypes_structure_t be_lv_meter_scale = {
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[14]) {
{ "angle_range", 34, 0, 0, ctypes_u16, 0 },
{ "label_gap", 22, 0, 0, ctypes_i16, 0 },
{ "label_gap", 20, 0, 0, ctypes_i16, 0 },
{ "max", 28, 0, 0, ctypes_i32, 0 },
{ "min", 24, 0, 0, ctypes_i32, 0 },
{ "r_mod", 32, 0, 0, ctypes_i16, 0 },
{ "rotation", 36, 0, 0, ctypes_i16, 0 },
{ "tick_cnt", 4, 0, 0, ctypes_u16, 0 },
{ "tick_color", 0, 0, 0, ctypes_u24, 1 },
{ "tick_length", 6, 0, 0, ctypes_u16, 0 },
{ "tick_major_color", 12, 0, 0, ctypes_u24, 1 },
{ "tick_major_length", 18, 0, 0, ctypes_u16, 0 },
{ "tick_major_nth", 16, 0, 0, ctypes_u16, 0 },
{ "tick_major_width", 20, 0, 0, ctypes_u16, 0 },
{ "tick_major_color", 10, 0, 0, ctypes_u24, 1 },
{ "tick_major_length", 16, 0, 0, ctypes_u16, 0 },
{ "tick_major_nth", 14, 0, 0, ctypes_u16, 0 },
{ "tick_major_width", 18, 0, 0, ctypes_u16, 0 },
{ "tick_width", 8, 0, 0, ctypes_u16, 0 },
}};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ def parse_line(self, map_line):

#- ensure alignment to 1/2/4 bytes -#
def align(self, n):
if n == 3: n = 4 # 3 bytes are aligned to 4 byest boundaries
if n == 3: n = 1 # 3 bytes are aligned to 4 byest boundaries
if n != 1 and n != 2 and n != 4:
raise Exception(f"acceptable values are 1/2/3/4 {n=}")

Expand Down
12 changes: 10 additions & 2 deletions lib/libesp32_lvgl/lv_binding_berry/src/embedded/lvgl_ctypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,16 @@
# * Any of LV_GRAD_DIR_HOR, LV_GRAD_DIR_VER, LV_GRAD_DIR_NONE */
# } lv_grad_dsc_t;
lv_grad_dsc = [ # valid LVGL9
[lv_gradient_stop, "stops_0"],
[lv_gradient_stop, "stops_1"],
# since it's an array and not two structures, we need to explicitly unroll it here or the alignment is wrong
# [lv_gradient_stop, "stops_0"],
[lv_color, "stops_0_color"],
[lv_opa, "stops_0_opa"],
[uint8_t, "stops_0_frac"],
# [lv_gradient_stop, "stops_1"],
[lv_color, "stops_1_color"],
[lv_opa, "stops_1_opa"],
[uint8_t, "stops_1_frac"],

[uint8_t, "stops_count"],
[uint8_t_3, "dir"],
]
Expand Down

0 comments on commit 5e8b116

Please sign in to comment.