LVGL Berry namespace ``lv.*`` added and removed ``lv_*`` constants

This commit is contained in:
Stephan Hadinger 2021-10-15 19:34:37 +02:00
parent 4529b6a5c9
commit 164d14496b
67 changed files with 4433 additions and 4863 deletions

View File

@ -20,6 +20,7 @@ All notable changes to this project will be documented in this file.
- Removed command ``EnergyReset`` as it is replaced by new commands
- Files starting with underscore in file system are no more hidden
- ESP32 Memory display to exclude IRAM (i.e. less by 40-50KB) (#13294)
- LVGL Berry namespace ``lv.*`` added and removed ``lv_*`` constants
### Fixed
- ESP32 restore GPIO16/17 if no PSRAM was found regression from v9.5.0.3

View File

@ -150,14 +150,14 @@ be_local_closure(init, /* name */
/* K15 */ be_const_int(3),
/* K16 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* K17 */ be_nested_string("set_style_bg_color", 1689513089, 18),
/* K18 */ be_nested_string("lv_color", 1419148319, 8),
/* K18 */ be_nested_string("color", 1031692888, 5),
/* K19 */ be_nested_string("COLOR_BLACK", 264427940, 11),
/* K20 */ be_nested_string("tasmota", 424643812, 7),
/* K21 */ be_nested_string("add_driver", 1654458371, 10),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[82]) { /* code */
( &(const binstruction[83]) { /* code */
0x600C0003, // 0000 GETGBL R3 G3
0x5C100000, // 0001 MOVE R4 R0
0x7C0C0200, // 0002 CALL R3 1
@ -182,7 +182,7 @@ be_local_closure(init, /* name */
0x7C100600, // 0015 CALL R4 3
0x4C100000, // 0016 LDNIL R4
0x20100204, // 0017 NE R4 R1 R4
0x78120033, // 0018 JMPF R4 #004D
0x78120034, // 0018 JMPF R4 #004E
0x8C100306, // 0019 GETMET R4 R1 K6
0x7C100200, // 001A CALL R4 1
0x8C140107, // 001B GETMET R5 R0 K7
@ -225,21 +225,22 @@ be_local_closure(init, /* name */
0x3028140B, // 0040 OR R10 R10 R11
0x7C1C0600, // 0041 CALL R7 3
0x8C1C0111, // 0042 GETMET R7 R0 K17
0xB8262400, // 0043 GETNGBL R9 K18
0xB82A0200, // 0044 GETNGBL R10 K1
0x88281513, // 0045 GETMBR R10 R10 K19
0x7C240200, // 0046 CALL R9 1
0xB82A0200, // 0047 GETNGBL R10 K1
0x88281504, // 0048 GETMBR R10 R10 K4
0xB82E0200, // 0049 GETNGBL R11 K1
0x882C1705, // 004A GETMBR R11 R11 K5
0x3028140B, // 004B OR R10 R10 R11
0x7C1C0600, // 004C CALL R7 3
0xB8122800, // 004D GETNGBL R4 K20
0x8C100915, // 004E GETMET R4 R4 K21
0x5C180000, // 004F MOVE R6 R0
0x7C100400, // 0050 CALL R4 2
0x80000000, // 0051 RET 0
0xB8260200, // 0043 GETNGBL R9 K1
0x8C241312, // 0044 GETMET R9 R9 K18
0xB82E0200, // 0045 GETNGBL R11 K1
0x882C1713, // 0046 GETMBR R11 R11 K19
0x7C240400, // 0047 CALL R9 2
0xB82A0200, // 0048 GETNGBL R10 K1
0x88281504, // 0049 GETMBR R10 R10 K4
0xB82E0200, // 004A GETNGBL R11 K1
0x882C1705, // 004B GETMBR R11 R11 K5
0x3028140B, // 004C OR R10 R10 R11
0x7C1C0600, // 004D CALL R7 3
0xB8122800, // 004E GETNGBL R4 K20
0x8C100915, // 004F GETMET R4 R4 K21
0x5C180000, // 0050 MOVE R6 R0
0x7C100400, // 0051 CALL R4 2
0x80000000, // 0052 RET 0
})
)
);

View File

@ -1,32 +0,0 @@
/********************************************************************
* Tasmota LVGL Font class
*******************************************************************/
#include "be_constobj.h"
#ifdef USE_LVGL
#include "lvgl.h"
extern int lco_init(bvm *vm); // generic function
extern int lco_tostring(bvm *vm); // generic function
extern int lco_toint(bvm *vm); // generic function
#include "../generate/be_fixed_be_class_lv_color.h"
void be_load_lvgl_color_lib(bvm *vm) {
be_pushntvclass(vm, &be_class_lv_color);
be_setglobal(vm, "lv_color");
be_pop(vm, 1);
}
/* @const_object_info_begin
class be_class_lv_color (scope: global, name: lv_color) {
_p, var
init, func(lco_init)
tostring, func(lco_tostring)
toint, func(lco_toint)
}
@const_object_info_end */
#endif // USE_LVGL

View File

@ -6,6 +6,7 @@
#ifdef USE_LVGL
#include "lvgl.h"
#include "be_lvgl.h"
/********************************************************************
* Generated code, don't edit
@ -494,6 +495,37 @@ void be_load_ctypes_lvgl_definitions_lib(bvm *vm) {
ctypes_register_class(vm, &be_class_lv_point, &be_lv_point);
ctypes_register_class(vm, &be_class_lv_sqrt_res, &be_lv_sqrt_res);
}
be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
{ "lv_area", &be_class_lv_area },
{ "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 },
{ "lv_draw_mask_angle_param_cfg", &be_class_lv_draw_mask_angle_param_cfg },
{ "lv_draw_mask_common_dsc", &be_class_lv_draw_mask_common_dsc },
{ "lv_draw_mask_fade_param", &be_class_lv_draw_mask_fade_param },
{ "lv_draw_mask_fade_param_cfg", &be_class_lv_draw_mask_fade_param_cfg },
{ "lv_draw_mask_line_param", &be_class_lv_draw_mask_line_param },
{ "lv_draw_mask_line_param_cfg", &be_class_lv_draw_mask_line_param_cfg },
{ "lv_draw_mask_map_param", &be_class_lv_draw_mask_map_param },
{ "lv_draw_mask_map_param_cfg", &be_class_lv_draw_mask_map_param_cfg },
{ "lv_draw_mask_radius_param", &be_class_lv_draw_mask_radius_param },
{ "lv_draw_mask_radius_param_cfg", &be_class_lv_draw_mask_radius_param_cfg },
{ "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_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 },
{ "lv_meter_indicator_needle_line", &be_class_lv_meter_indicator_needle_line },
{ "lv_meter_indicator_scale_lines", &be_class_lv_meter_indicator_scale_lines },
{ "lv_meter_scale", &be_class_lv_meter_scale },
{ "lv_obj_class", &be_class_lv_obj_class },
{ "lv_point", &be_class_lv_point },
{ "lv_sqrt_res", &be_class_lv_sqrt_res },
};
const size_t be_ctypes_lvgl_classes_size = sizeof(be_ctypes_lvgl_classes)/sizeof(be_ctypes_lvgl_classes[0]);
/********************************************************************/
#endif // USE_LVGL

View File

@ -1,34 +0,0 @@
/********************************************************************
* Tasmota LVGL Font class
*******************************************************************/
#include "be_constobj.h"
#ifdef USE_LVGL
#include "lvgl.h"
extern int lvx_tostring(bvm *vm); // generic function
extern int lvx_init_ctor(bvm *vm, void * func);
extern int be_call_c_func(bvm *vm, void * func, const char * return_type, const char * arg_type);
// create font either empty or from parameter on stack
int lvbe_font_create(bvm *vm) { return be_call_c_func(vm, NULL, "+lv_group", ""); }
#include "../generate/be_fixed_be_class_lv_font.h"
void be_load_lvgl_font_lib(bvm *vm) {
be_pushntvclass(vm, &be_class_lv_font);
be_setglobal(vm, "lv_font");
be_pop(vm, 1);
}
/* @const_object_info_begin
class be_class_lv_font (scope: global, name: lv_font) {
_p, var
init, func(lvbe_font_create)
tostring, func(lvx_tostring)
}
@const_object_info_end */
#endif // USE_LVGL

View File

@ -56,47 +56,50 @@ be_local_closure(widget_event_impl, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K2 */ be_nested_string("lv_event", -1860877328, 8),
/* K3 */ be_nested_string("target", 845187144, 6),
/* K4 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K5 */ be_nested_string("instance", 193386898, 8),
/* K6 */ be_nested_string("get", 1410115415, 3),
/* K7 */ be_nested_string("widget_event", 1951408186, 12),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("lv_event", -1860877328, 8),
/* K4 */ be_nested_string("target", 845187144, 6),
/* K5 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K6 */ be_nested_string("instance", 193386898, 8),
/* K7 */ be_nested_string("get", 1410115415, 3),
/* K8 */ be_nested_string("widget_event", 1951408186, 12),
}),
(be_nested_const_str("widget_event_impl", -2116536735, 17)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[28]) { /* code */
( &(const binstruction[30]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C100200, // 0003 CALL R4 1
0xB8160400, // 0004 GETNGBL R5 K2
0x5C180400, // 0005 MOVE R6 R2
0x7C140200, // 0006 CALL R5 1
0x88180B03, // 0007 GETMBR R6 R5 K3
0x8C1C0104, // 0008 GETMET R7 R0 K4
0x60240009, // 0009 GETGBL R9 G9
0x5C280C00, // 000A MOVE R10 R6
0x7C240200, // 000B CALL R9 1
0x7C1C0400, // 000C CALL R7 2
0x60200004, // 000D GETGBL R8 G4
0x5C240E00, // 000E MOVE R9 R7
0x7C200200, // 000F CALL R8 1
0x1C201105, // 0010 EQ R8 R8 K5
0x78220008, // 0011 JMPF R8 #001B
0x8C200706, // 0012 GETMET R8 R3 K6
0x5C280E00, // 0013 MOVE R10 R7
0x582C0007, // 0014 LDCONST R11 K7
0x7C200600, // 0015 CALL R8 3
0x78220003, // 0016 JMPF R8 #001B
0x8C200F07, // 0017 GETMET R8 R7 K7
0x5C280800, // 0018 MOVE R10 R4
0x5C2C0A00, // 0019 MOVE R11 R5
0x7C200600, // 001A CALL R8 3
0x80000000, // 001B RET 0
0x8C100902, // 0002 GETMET R4 R4 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0xB8160200, // 0005 GETNGBL R5 K1
0x8C140B03, // 0006 GETMET R5 R5 K3
0x5C1C0400, // 0007 MOVE R7 R2
0x7C140400, // 0008 CALL R5 2
0x88180B04, // 0009 GETMBR R6 R5 K4
0x8C1C0105, // 000A GETMET R7 R0 K5
0x60240009, // 000B GETGBL R9 G9
0x5C280C00, // 000C MOVE R10 R6
0x7C240200, // 000D CALL R9 1
0x7C1C0400, // 000E CALL R7 2
0x60200004, // 000F GETGBL R8 G4
0x5C240E00, // 0010 MOVE R9 R7
0x7C200200, // 0011 CALL R8 1
0x1C201106, // 0012 EQ R8 R8 K6
0x78220008, // 0013 JMPF R8 #001D
0x8C200707, // 0014 GETMET R8 R3 K7
0x5C280E00, // 0015 MOVE R10 R7
0x582C0008, // 0016 LDCONST R11 K8
0x7C200600, // 0017 CALL R8 3
0x78220003, // 0018 JMPF R8 #001D
0x8C200F08, // 0019 GETMET R8 R7 K8
0x5C280800, // 001A MOVE R10 R4
0x5C2C0A00, // 001B MOVE R11 R5
0x7C200600, // 001C CALL R8 3
0x80000000, // 001D RET 0
})
)
);
@ -116,34 +119,36 @@ be_local_closure(lvgl_event_dispatch, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_event", -1860877328, 8),
/* K2 */ be_nested_string("toptr", -915119842, 5),
/* K3 */ be_nested_string("target", 845187144, 6),
/* K4 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K5 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_event", -1860877328, 8),
/* K3 */ be_nested_string("toptr", -915119842, 5),
/* K4 */ be_nested_string("target", 845187144, 6),
/* K5 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K6 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
}),
(be_nested_const_str("lvgl_event_dispatch", 2104396622, 19)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[17]) { /* code */
( &(const binstruction[18]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C100502, // 0002 GETMET R4 R2 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0x7C0C0200, // 0005 CALL R3 1
0x88100703, // 0006 GETMBR R4 R3 K3
0x88140104, // 0007 GETMBR R5 R0 K4
0x94140A04, // 0008 GETIDX R5 R5 R4
0x8C180105, // 0009 GETMET R6 R0 K5
0x5C200800, // 000A MOVE R8 R4
0x7C180400, // 000B CALL R6 2
0x5C1C0A00, // 000C MOVE R7 R5
0x5C200C00, // 000D MOVE R8 R6
0x5C240600, // 000E MOVE R9 R3
0x7C1C0400, // 000F CALL R7 2
0x80000000, // 0010 RET 0
0x8C0C0702, // 0002 GETMET R3 R3 K2
0x8C140503, // 0003 GETMET R5 R2 K3
0x5C1C0200, // 0004 MOVE R7 R1
0x7C140400, // 0005 CALL R5 2
0x7C0C0400, // 0006 CALL R3 2
0x88100704, // 0007 GETMBR R4 R3 K4
0x88140105, // 0008 GETMBR R5 R0 K5
0x94140A04, // 0009 GETIDX R5 R5 R4
0x8C180106, // 000A GETMET R6 R0 K6
0x5C200800, // 000B MOVE R8 R4
0x7C180400, // 000C CALL R6 2
0x5C1C0A00, // 000D MOVE R7 R5
0x5C200C00, // 000E MOVE R8 R6
0x5C240600, // 000F MOVE R9 R3
0x7C1C0400, // 0010 CALL R7 2
0x80000000, // 0011 RET 0
})
)
);
@ -163,38 +168,40 @@ be_local_closure(widget_dtor_impl, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K2 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K3 */ be_nested_string("instance", 193386898, 8),
/* K4 */ be_nested_string("get", 1410115415, 3),
/* K5 */ be_nested_string("widget_destructor", -87578951, 17),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K4 */ be_nested_string("instance", 193386898, 8),
/* K5 */ be_nested_string("get", 1410115415, 3),
/* K6 */ be_nested_string("widget_destructor", -87578951, 17),
}),
(be_nested_const_str("widget_dtor_impl", 520430610, 16)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[21]) { /* code */
( &(const binstruction[22]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C100200, // 0003 CALL R4 1
0x8C140102, // 0004 GETMET R5 R0 K2
0x5C1C0400, // 0005 MOVE R7 R2
0x7C140400, // 0006 CALL R5 2
0x60180004, // 0007 GETGBL R6 G4
0x5C1C0A00, // 0008 MOVE R7 R5
0x7C180200, // 0009 CALL R6 1
0x1C180D03, // 000A EQ R6 R6 K3
0x781A0007, // 000B JMPF R6 #0014
0x8C180704, // 000C GETMET R6 R3 K4
0x5C200A00, // 000D MOVE R8 R5
0x58240005, // 000E LDCONST R9 K5
0x7C180600, // 000F CALL R6 3
0x781A0002, // 0010 JMPF R6 #0014
0x8C180B05, // 0011 GETMET R6 R5 K5
0x5C200800, // 0012 MOVE R8 R4
0x7C180400, // 0013 CALL R6 2
0x80000000, // 0014 RET 0
0x8C100902, // 0002 GETMET R4 R4 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0x8C140103, // 0005 GETMET R5 R0 K3
0x5C1C0400, // 0006 MOVE R7 R2
0x7C140400, // 0007 CALL R5 2
0x60180004, // 0008 GETGBL R6 G4
0x5C1C0A00, // 0009 MOVE R7 R5
0x7C180200, // 000A CALL R6 1
0x1C180D04, // 000B EQ R6 R6 K4
0x781A0007, // 000C JMPF R6 #0015
0x8C180705, // 000D GETMET R6 R3 K5
0x5C200A00, // 000E MOVE R8 R5
0x58240006, // 000F LDCONST R9 K6
0x7C180600, // 0010 CALL R6 3
0x781A0002, // 0011 JMPF R6 #0015
0x8C180B06, // 0012 GETMET R6 R5 K6
0x5C200800, // 0013 MOVE R8 R4
0x7C180400, // 0014 CALL R6 2
0x80000000, // 0015 RET 0
})
)
);
@ -471,25 +478,26 @@ be_local_closure(widget_cb, /* name */
),
}),
1, /* has constants */
( &(const bvalue[14]) { /* constants */
( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_string("widget_ctor_cb", 876007560, 14),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("gen_cb", -1049739745, 6),
/* K3 */ be_nested_string("widget_dtor_cb", -1143421451, 14),
/* K4 */ be_nested_string("widget_event_cb", 1508466754, 15),
/* K5 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K6 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K7 */ be_nested_string("lv_obj", -37134147, 6),
/* K8 */ be_nested_string("_class", -1562820946, 6),
/* K9 */ be_nested_string("copy", -446502332, 4),
/* K10 */ be_nested_string("base_class", 1107737279, 10),
/* K11 */ be_nested_string("constructor_cb", -1805861999, 14),
/* K12 */ be_nested_string("destructor_cb", 1930283190, 13),
/* K13 */ be_nested_string("event_cb", -1166269279, 8),
/* K6 */ be_nested_string("lv", 1529997255, 2),
/* K7 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K8 */ be_nested_string("lv_obj", -37134147, 6),
/* K9 */ be_nested_string("_class", -1562820946, 6),
/* K10 */ be_nested_string("copy", -446502332, 4),
/* K11 */ be_nested_string("base_class", 1107737279, 10),
/* K12 */ be_nested_string("constructor_cb", -1805861999, 14),
/* K13 */ be_nested_string("destructor_cb", 1930283190, 13),
/* K14 */ be_nested_string("event_cb", -1166269279, 8),
}),
(be_nested_const_str("widget_cb", -1531384241, 9)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[53]) { /* code */
( &(const binstruction[56]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2
@ -520,29 +528,32 @@ be_local_closure(widget_cb, /* name */
0x88040105, // 001B GETMBR R1 R0 K5
0x4C080000, // 001C LDNIL R2
0x1C040202, // 001D EQ R1 R1 R2
0x78060013, // 001E JMPF R1 #0033
0x78060016, // 001E JMPF R1 #0036
0xB8060C00, // 001F GETNGBL R1 K6
0xB80A0E00, // 0020 GETNGBL R2 K7
0x88080508, // 0021 GETMBR R2 R2 K8
0x7C040200, // 0022 CALL R1 1
0x8C040309, // 0023 GETMET R1 R1 K9
0x7C040200, // 0024 CALL R1 1
0x90020A01, // 0025 SETMBR R0 K5 R1
0x88040105, // 0026 GETMBR R1 R0 K5
0xB80A0E00, // 0027 GETNGBL R2 K7
0x88080508, // 0028 GETMBR R2 R2 K8
0x90061402, // 0029 SETMBR R1 K10 R2
0x88040105, // 002A GETMBR R1 R0 K5
0x88080100, // 002B GETMBR R2 R0 K0
0x8C040307, // 0020 GETMET R1 R1 K7
0xB80E0C00, // 0021 GETNGBL R3 K6
0x880C0708, // 0022 GETMBR R3 R3 K8
0x880C0709, // 0023 GETMBR R3 R3 K9
0x7C040400, // 0024 CALL R1 2
0x8C04030A, // 0025 GETMET R1 R1 K10
0x7C040200, // 0026 CALL R1 1
0x90020A01, // 0027 SETMBR R0 K5 R1
0x88040105, // 0028 GETMBR R1 R0 K5
0xB80A0C00, // 0029 GETNGBL R2 K6
0x88080508, // 002A GETMBR R2 R2 K8
0x88080509, // 002B GETMBR R2 R2 K9
0x90061602, // 002C SETMBR R1 K11 R2
0x88040105, // 002D GETMBR R1 R0 K5
0x88080103, // 002E GETMBR R2 R0 K3
0x88080100, // 002E GETMBR R2 R0 K0
0x90061802, // 002F SETMBR R1 K12 R2
0x88040105, // 0030 GETMBR R1 R0 K5
0x88080104, // 0031 GETMBR R2 R0 K4
0x88080103, // 0031 GETMBR R2 R0 K3
0x90061A02, // 0032 SETMBR R1 K13 R2
0xA0000000, // 0033 CLOSE R0
0x80000000, // 0034 RET 0
0x88040105, // 0033 GETMBR R1 R0 K5
0x88080104, // 0034 GETMBR R2 R0 K4
0x90061C02, // 0035 SETMBR R1 K14 R2
0xA0000000, // 0036 CLOSE R0
0x80000000, // 0037 RET 0
})
)
);
@ -550,9 +561,9 @@ be_local_closure(widget_cb, /* name */
/********************************************************************
** Solidified function: <anonymous>
** Solidified function: _anonymous_
********************************************************************/
be_local_closure(anonymous, /* name */
be_local_closure(_anonymous_, /* name */
be_nested_proto(
2, /* nstack */
0, /* argc */
@ -565,7 +576,7 @@ be_local_closure(anonymous, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("LVG: call to unsupported callback", 504176819, 33),
}),
(be_nested_const_str("<anonymous>", 1160973142, 11)),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[ 4]) { /* code */
0x60000001, // 0000 GETGBL R0 G1
@ -593,28 +604,28 @@ be_local_closure(create_custom_widget, /* name */
1, /* has constants */
( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj", -37134147, 6),
/* K2 */ be_nested_string("value_error", 773297791, 11),
/* K3 */ be_nested_string("arg must be a subclass of lv_obj", 1641882079, 32),
/* K4 */ be_nested_string("widget_struct_by_class", -488593454, 22),
/* K5 */ be_nested_string("find", -1108310694, 4),
/* K6 */ be_nested_string("widget_cb", -1531384241, 9),
/* K7 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K8 */ be_nested_string("copy", -446502332, 4),
/* K9 */ be_nested_string("base_class", 1107737279, 10),
/* K10 */ be_nested_string("_class", -1562820946, 6),
/* K11 */ be_nested_string("get", 1410115415, 3),
/* K12 */ be_nested_string("widget_width_def", -308888434, 16),
/* K13 */ be_nested_string("width_def", 1143717879, 9),
/* K14 */ be_nested_string("widget_height_def", -1163299483, 17),
/* K15 */ be_nested_string("height_def", -1946728458, 10),
/* K16 */ be_nested_string("widget_editable", -473174010, 15),
/* K17 */ be_nested_string("editable", 60532369, 8),
/* K18 */ be_nested_string("widget_group_def", 1246968785, 16),
/* K19 */ be_nested_string("group_def", 1524213328, 9),
/* K20 */ be_nested_string("widget_instance_size", 2055354779, 20),
/* K21 */ be_nested_string("instance_size", -14697778, 13),
/* K22 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj", -37134147, 6),
/* K3 */ be_nested_string("value_error", 773297791, 11),
/* K4 */ be_nested_string("arg must be a subclass of lv_obj", 1641882079, 32),
/* K5 */ be_nested_string("widget_struct_by_class", -488593454, 22),
/* K6 */ be_nested_string("find", -1108310694, 4),
/* K7 */ be_nested_string("widget_cb", -1531384241, 9),
/* K8 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K9 */ be_nested_string("copy", -446502332, 4),
/* K10 */ be_nested_string("base_class", 1107737279, 10),
/* K11 */ be_nested_string("_class", -1562820946, 6),
/* K12 */ be_nested_string("get", 1410115415, 3),
/* K13 */ be_nested_string("widget_width_def", -308888434, 16),
/* K14 */ be_nested_string("width_def", 1143717879, 9),
/* K15 */ be_nested_string("widget_height_def", -1163299483, 17),
/* K16 */ be_nested_string("height_def", -1946728458, 10),
/* K17 */ be_nested_string("widget_editable", -473174010, 15),
/* K18 */ be_nested_string("editable", 60532369, 8),
/* K19 */ be_nested_string("widget_group_def", 1246968785, 16),
/* K20 */ be_nested_string("group_def", 1524213328, 9),
/* K21 */ be_nested_string("widget_instance_size", 2055354779, 20),
/* K22 */ be_nested_string("instance_size", -14697778, 13),
/* K23 */ be_nested_string("obj_class_create_obj", -990576664, 20),
/* K24 */ be_nested_string("_p", 1594591802, 2),
/* K25 */ be_nested_string("register_obj", -312352526, 12),
@ -622,92 +633,93 @@ be_local_closure(create_custom_widget, /* name */
}),
(be_nested_const_str("create_custom_widget", 1140594778, 20)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[85]) { /* code */
( &(const binstruction[86]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0x6010000F, // 0001 GETGBL R4 G15
0x5C140200, // 0002 MOVE R5 R1
0xB81A0200, // 0003 GETNGBL R6 K1
0x7C100400, // 0004 CALL R4 2
0x74120000, // 0005 JMPT R4 #0007
0xB0060503, // 0006 RAISE 1 K2 K3
0x88100104, // 0007 GETMBR R4 R0 K4
0x4C140000, // 0008 LDNIL R5
0x1C100805, // 0009 EQ R4 R4 R5
0x78120002, // 000A JMPF R4 #000E
0x60100013, // 000B GETGBL R4 G19
0x7C100000, // 000C CALL R4 0
0x90020804, // 000D SETMBR R0 K4 R4
0x60100005, // 000E GETGBL R4 G5
0x5C140200, // 000F MOVE R5 R1
0x7C100200, // 0010 CALL R4 1
0x88140104, // 0011 GETMBR R5 R0 K4
0x8C140B05, // 0012 GETMET R5 R5 K5
0x5C1C0800, // 0013 MOVE R7 R4
0x7C140400, // 0014 CALL R5 2
0x4C180000, // 0015 LDNIL R6
0x1C180A06, // 0016 EQ R6 R5 R6
0x781A002F, // 0017 JMPF R6 #0048
0x8C180106, // 0018 GETMET R6 R0 K6
0x7C180200, // 0019 CALL R6 1
0x88180107, // 001A GETMBR R6 R0 K7
0x8C180D08, // 001B GETMET R6 R6 K8
0x7C180200, // 001C CALL R6 1
0x5C140C00, // 001D MOVE R5 R6
0x60180003, // 001E GETGBL R6 G3
0x5C1C0200, // 001F MOVE R7 R1
0x7C180200, // 0020 CALL R6 1
0x88180D0A, // 0021 GETMBR R6 R6 K10
0x90161206, // 0022 SETMBR R5 K9 R6
0x8C18070B, // 0023 GETMET R6 R3 K11
0x5C200200, // 0024 MOVE R8 R1
0x5824000C, // 0025 LDCONST R9 K12
0x7C180600, // 0026 CALL R6 3
0x781A0001, // 0027 JMPF R6 #002A
0x8818030C, // 0028 GETMBR R6 R1 K12
0x90161A06, // 0029 SETMBR R5 K13 R6
0x8C18070B, // 002A GETMET R6 R3 K11
0x5C200200, // 002B MOVE R8 R1
0x5824000E, // 002C LDCONST R9 K14
0x7C180600, // 002D CALL R6 3
0x781A0001, // 002E JMPF R6 #0031
0x8818030E, // 002F GETMBR R6 R1 K14
0x90161E06, // 0030 SETMBR R5 K15 R6
0x8C18070B, // 0031 GETMET R6 R3 K11
0x5C200200, // 0032 MOVE R8 R1
0x58240010, // 0033 LDCONST R9 K16
0x7C180600, // 0034 CALL R6 3
0x781A0001, // 0035 JMPF R6 #0038
0x88180310, // 0036 GETMBR R6 R1 K16
0x90162206, // 0037 SETMBR R5 K17 R6
0x8C18070B, // 0038 GETMET R6 R3 K11
0x5C200200, // 0039 MOVE R8 R1
0x58240012, // 003A LDCONST R9 K18
0x7C180600, // 003B CALL R6 3
0x781A0001, // 003C JMPF R6 #003F
0x88180312, // 003D GETMBR R6 R1 K18
0x90162606, // 003E SETMBR R5 K19 R6
0x8C18070B, // 003F GETMET R6 R3 K11
0x5C200200, // 0040 MOVE R8 R1
0x58240014, // 0041 LDCONST R9 K20
0x7C180600, // 0042 CALL R6 3
0x781A0001, // 0043 JMPF R6 #0046
0x88180314, // 0044 GETMBR R6 R1 K20
0x90162A06, // 0045 SETMBR R5 K21 R6
0x88180104, // 0046 GETMBR R6 R0 K4
0x98180805, // 0047 SETIDX R6 R4 R5
0xB81A2C00, // 0048 GETNGBL R6 K22
0x8C180D17, // 0049 GETMET R6 R6 K23
0x5C200A00, // 004A MOVE R8 R5
0x5C240400, // 004B MOVE R9 R2
0x7C180600, // 004C CALL R6 3
0x881C0D18, // 004D GETMBR R7 R6 K24
0x90063007, // 004E SETMBR R1 K24 R7
0x8C1C0119, // 004F GETMET R7 R0 K25
0x5C240200, // 0050 MOVE R9 R1
0x7C1C0400, // 0051 CALL R7 2
0x8C1C031A, // 0052 GETMET R7 R1 K26
0x7C1C0200, // 0053 CALL R7 1
0x80000000, // 0054 RET 0
0x88180D02, // 0004 GETMBR R6 R6 K2
0x7C100400, // 0005 CALL R4 2
0x74120000, // 0006 JMPT R4 #0008
0xB0060704, // 0007 RAISE 1 K3 K4
0x88100105, // 0008 GETMBR R4 R0 K5
0x4C140000, // 0009 LDNIL R5
0x1C100805, // 000A EQ R4 R4 R5
0x78120002, // 000B JMPF R4 #000F
0x60100013, // 000C GETGBL R4 G19
0x7C100000, // 000D CALL R4 0
0x90020A04, // 000E SETMBR R0 K5 R4
0x60100005, // 000F GETGBL R4 G5
0x5C140200, // 0010 MOVE R5 R1
0x7C100200, // 0011 CALL R4 1
0x88140105, // 0012 GETMBR R5 R0 K5
0x8C140B06, // 0013 GETMET R5 R5 K6
0x5C1C0800, // 0014 MOVE R7 R4
0x7C140400, // 0015 CALL R5 2
0x4C180000, // 0016 LDNIL R6
0x1C180A06, // 0017 EQ R6 R5 R6
0x781A002F, // 0018 JMPF R6 #0049
0x8C180107, // 0019 GETMET R6 R0 K7
0x7C180200, // 001A CALL R6 1
0x88180108, // 001B GETMBR R6 R0 K8
0x8C180D09, // 001C GETMET R6 R6 K9
0x7C180200, // 001D CALL R6 1
0x5C140C00, // 001E MOVE R5 R6
0x60180003, // 001F GETGBL R6 G3
0x5C1C0200, // 0020 MOVE R7 R1
0x7C180200, // 0021 CALL R6 1
0x88180D0B, // 0022 GETMBR R6 R6 K11
0x90161406, // 0023 SETMBR R5 K10 R6
0x8C18070C, // 0024 GETMET R6 R3 K12
0x5C200200, // 0025 MOVE R8 R1
0x5824000D, // 0026 LDCONST R9 K13
0x7C180600, // 0027 CALL R6 3
0x781A0001, // 0028 JMPF R6 #002B
0x8818030D, // 0029 GETMBR R6 R1 K13
0x90161C06, // 002A SETMBR R5 K14 R6
0x8C18070C, // 002B GETMET R6 R3 K12
0x5C200200, // 002C MOVE R8 R1
0x5824000F, // 002D LDCONST R9 K15
0x7C180600, // 002E CALL R6 3
0x781A0001, // 002F JMPF R6 #0032
0x8818030F, // 0030 GETMBR R6 R1 K15
0x90162006, // 0031 SETMBR R5 K16 R6
0x8C18070C, // 0032 GETMET R6 R3 K12
0x5C200200, // 0033 MOVE R8 R1
0x58240011, // 0034 LDCONST R9 K17
0x7C180600, // 0035 CALL R6 3
0x781A0001, // 0036 JMPF R6 #0039
0x88180311, // 0037 GETMBR R6 R1 K17
0x90162406, // 0038 SETMBR R5 K18 R6
0x8C18070C, // 0039 GETMET R6 R3 K12
0x5C200200, // 003A MOVE R8 R1
0x58240013, // 003B LDCONST R9 K19
0x7C180600, // 003C CALL R6 3
0x781A0001, // 003D JMPF R6 #0040
0x88180313, // 003E GETMBR R6 R1 K19
0x90162806, // 003F SETMBR R5 K20 R6
0x8C18070C, // 0040 GETMET R6 R3 K12
0x5C200200, // 0041 MOVE R8 R1
0x58240015, // 0042 LDCONST R9 K21
0x7C180600, // 0043 CALL R6 3
0x781A0001, // 0044 JMPF R6 #0047
0x88180315, // 0045 GETMBR R6 R1 K21
0x90162C06, // 0046 SETMBR R5 K22 R6
0x88180105, // 0047 GETMBR R6 R0 K5
0x98180805, // 0048 SETIDX R6 R4 R5
0xB81A0200, // 0049 GETNGBL R6 K1
0x8C180D17, // 004A GETMET R6 R6 K23
0x5C200A00, // 004B MOVE R8 R5
0x5C240400, // 004C MOVE R9 R2
0x7C180600, // 004D CALL R6 3
0x881C0D18, // 004E GETMBR R7 R6 K24
0x90063007, // 004F SETMBR R1 K24 R7
0x8C1C0119, // 0050 GETMET R7 R0 K25
0x5C240200, // 0051 MOVE R9 R1
0x7C1C0400, // 0052 CALL R7 2
0x8C1C031A, // 0053 GETMET R7 R1 K26
0x7C1C0200, // 0054 CALL R7 1
0x80000000, // 0055 RET 0
})
)
);
@ -727,47 +739,49 @@ be_local_closure(widget_ctor_impl, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K2 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K3 */ be_nested_string("cb_obj", 1195696482, 6),
/* K4 */ be_nested_string("find", -1108310694, 4),
/* K5 */ be_nested_string("instance", 193386898, 8),
/* K6 */ be_nested_string("get", 1410115415, 3),
/* K7 */ be_nested_string("widget_constructor", -1751181362, 18),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K4 */ be_nested_string("cb_obj", 1195696482, 6),
/* K5 */ be_nested_string("find", -1108310694, 4),
/* K6 */ be_nested_string("instance", 193386898, 8),
/* K7 */ be_nested_string("get", 1410115415, 3),
/* K8 */ be_nested_string("widget_constructor", -1751181362, 18),
}),
(be_nested_const_str("widget_ctor_impl", 194252479, 16)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[28]) { /* code */
( &(const binstruction[29]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C100200, // 0003 CALL R4 1
0x8C140102, // 0004 GETMET R5 R0 K2
0x5C1C0400, // 0005 MOVE R7 R2
0x7C140400, // 0006 CALL R5 2
0x88180103, // 0007 GETMBR R6 R0 K3
0x8C180D04, // 0008 GETMET R6 R6 K4
0x5C200A00, // 0009 MOVE R8 R5
0x7C180400, // 000A CALL R6 2
0x781A0001, // 000B JMPF R6 #000E
0x88180103, // 000C GETMBR R6 R0 K3
0x94140C05, // 000D GETIDX R5 R6 R5
0x60180004, // 000E GETGBL R6 G4
0x5C1C0A00, // 000F MOVE R7 R5
0x7C180200, // 0010 CALL R6 1
0x1C180D05, // 0011 EQ R6 R6 K5
0x781A0007, // 0012 JMPF R6 #001B
0x8C180706, // 0013 GETMET R6 R3 K6
0x5C200A00, // 0014 MOVE R8 R5
0x58240007, // 0015 LDCONST R9 K7
0x7C180600, // 0016 CALL R6 3
0x781A0002, // 0017 JMPF R6 #001B
0x8C180B07, // 0018 GETMET R6 R5 K7
0x5C200800, // 0019 MOVE R8 R4
0x7C180400, // 001A CALL R6 2
0x80000000, // 001B RET 0
0x8C100902, // 0002 GETMET R4 R4 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0x8C140103, // 0005 GETMET R5 R0 K3
0x5C1C0400, // 0006 MOVE R7 R2
0x7C140400, // 0007 CALL R5 2
0x88180104, // 0008 GETMBR R6 R0 K4
0x8C180D05, // 0009 GETMET R6 R6 K5
0x5C200A00, // 000A MOVE R8 R5
0x7C180400, // 000B CALL R6 2
0x781A0001, // 000C JMPF R6 #000F
0x88180104, // 000D GETMBR R6 R0 K4
0x94140C05, // 000E GETIDX R5 R6 R5
0x60180004, // 000F GETGBL R6 G4
0x5C1C0A00, // 0010 MOVE R7 R5
0x7C180200, // 0011 CALL R6 1
0x1C180D06, // 0012 EQ R6 R6 K6
0x781A0007, // 0013 JMPF R6 #001C
0x8C180707, // 0014 GETMET R6 R3 K7
0x5C200A00, // 0015 MOVE R8 R5
0x58240008, // 0016 LDCONST R9 K8
0x7C180600, // 0017 CALL R6 3
0x781A0002, // 0018 JMPF R6 #001C
0x8C180B08, // 0019 GETMET R6 R5 K8
0x5C200800, // 001A MOVE R8 R4
0x7C180400, // 001B CALL R6 2
0x80000000, // 001C RET 0
})
)
);
@ -798,7 +812,7 @@ be_local_class(LVGL_glob,
{ be_nested_key("deregister_obj", -385000303, 14, 12), be_const_closure(deregister_obj_closure) },
{ be_nested_key("widget_event_cb", 1508466754, 15, -1), be_const_var(6) },
{ be_nested_key("widget_cb", -1531384241, 9, -1), be_const_closure(widget_cb_closure) },
{ be_nested_key("cb_do_nothing", 1488730702, 13, 3), be_const_closure(anonymous_closure) },
{ be_nested_key("cb_do_nothing", 1488730702, 13, 3), be_const_closure(_anonymous__closure) },
{ be_nested_key("event_cb", -1166269279, 8, -1), be_const_var(2) },
{ be_nested_key("create_custom_widget", 1140594778, 20, -1), be_const_closure(create_custom_widget_closure) },
{ be_nested_key("widget_ctor_impl", 194252479, 16, -1), be_const_closure(widget_ctor_impl_closure) },

View File

@ -36,65 +36,65 @@ const lvbe_call_c_t lv_func[] = {
{ "clamp_height", (void*) &lv_clamp_height, "i", "iiii" },
{ "clamp_width", (void*) &lv_clamp_width, "i", "iiii" },
{ "color_mix", (void*) &lv_color_mix, "lv_color", "(lv_color)(lv_color)i" },
{ "color_mix", (void*) &lv_color_mix, "lv.lv_color", "(lv.lv_color)(lv.lv_color)i" },
{ "dpx", (void*) &lv_dpx, "i", "i" },
{ "draw_arc", (void*) &lv_draw_arc, "", "iiiii(lv_area)(lv_draw_arc_dsc)" },
{ "draw_arc_dsc_init", (void*) &lv_draw_arc_dsc_init, "", "(lv_draw_arc_dsc)" },
{ "draw_arc_get_area", (void*) &lv_draw_arc_get_area, "", "iiiiiib(lv_area)" },
{ "draw_img", (void*) &lv_draw_img, "", "(lv_area)(lv_area).(lv_draw_img_dsc)" },
{ "draw_img_dsc_init", (void*) &lv_draw_img_dsc_init, "", "(lv_draw_img_dsc)" },
{ "draw_label", (void*) &lv_draw_label, "", "(lv_area)(lv_area)(lv_draw_label_dsc)s(lv_draw_label_hint)" },
{ "draw_label_dsc_init", (void*) &lv_draw_label_dsc_init, "", "(lv_draw_label_dsc)" },
{ "draw_letter", (void*) &lv_draw_letter, "", "(lv_point)(lv_area)(lv_font)i(lv_color)ii" },
{ "draw_line", (void*) &lv_draw_line, "", "(lv_point)(lv_point)(lv_area)(lv_draw_line_dsc)" },
{ "draw_line_dsc_init", (void*) &lv_draw_line_dsc_init, "", "(lv_draw_line_dsc)" },
{ "draw_arc", (void*) &lv_draw_arc, "", "iiiii(lv.lv_area)(lv.lv_draw_arc_dsc)" },
{ "draw_arc_dsc_init", (void*) &lv_draw_arc_dsc_init, "", "(lv.lv_draw_arc_dsc)" },
{ "draw_arc_get_area", (void*) &lv_draw_arc_get_area, "", "iiiiiib(lv.lv_area)" },
{ "draw_img", (void*) &lv_draw_img, "", "(lv.lv_area)(lv.lv_area).(lv.lv_draw_img_dsc)" },
{ "draw_img_dsc_init", (void*) &lv_draw_img_dsc_init, "", "(lv.lv_draw_img_dsc)" },
{ "draw_label", (void*) &lv_draw_label, "", "(lv.lv_area)(lv.lv_area)(lv.lv_draw_label_dsc)s(lv.lv_draw_label_hint)" },
{ "draw_label_dsc_init", (void*) &lv_draw_label_dsc_init, "", "(lv.lv_draw_label_dsc)" },
{ "draw_letter", (void*) &lv_draw_letter, "", "(lv.lv_point)(lv.lv_area)(lv.lv_font)i(lv.lv_color)ii" },
{ "draw_line", (void*) &lv_draw_line, "", "(lv.lv_point)(lv.lv_point)(lv.lv_area)(lv.lv_draw_line_dsc)" },
{ "draw_line_dsc_init", (void*) &lv_draw_line_dsc_init, "", "(lv.lv_draw_line_dsc)" },
{ "draw_mask_add", (void*) &lv_draw_mask_add, "i", ".." },
{ "draw_mask_angle_init", (void*) &lv_draw_mask_angle_init, "", "(lv_draw_mask_angle_param)iiii" },
{ "draw_mask_fade_init", (void*) &lv_draw_mask_fade_init, "", "(lv_draw_mask_fade_param)(lv_area)iiii" },
{ "draw_mask_angle_init", (void*) &lv_draw_mask_angle_init, "", "(lv.lv_draw_mask_angle_param)iiii" },
{ "draw_mask_fade_init", (void*) &lv_draw_mask_fade_init, "", "(lv.lv_draw_mask_fade_param)(lv.lv_area)iiii" },
{ "draw_mask_get_cnt", (void*) &lv_draw_mask_get_cnt, "i", "" },
{ "draw_mask_line_angle_init", (void*) &lv_draw_mask_line_angle_init, "", "(lv_draw_mask_line_param)iiii" },
{ "draw_mask_line_points_init", (void*) &lv_draw_mask_line_points_init, "", "(lv_draw_mask_line_param)iiiii" },
{ "draw_mask_map_init", (void*) &lv_draw_mask_map_init, "", "(lv_draw_mask_map_param)(lv_area)(lv_opa)" },
{ "draw_mask_radius_init", (void*) &lv_draw_mask_radius_init, "", "(lv_draw_mask_radius_param)(lv_area)ib" },
{ "draw_mask_line_angle_init", (void*) &lv_draw_mask_line_angle_init, "", "(lv.lv_draw_mask_line_param)iiii" },
{ "draw_mask_line_points_init", (void*) &lv_draw_mask_line_points_init, "", "(lv.lv_draw_mask_line_param)iiiii" },
{ "draw_mask_map_init", (void*) &lv_draw_mask_map_init, "", "(lv.lv_draw_mask_map_param)(lv.lv_area)(lv.lv_opa)" },
{ "draw_mask_radius_init", (void*) &lv_draw_mask_radius_init, "", "(lv.lv_draw_mask_radius_param)(lv.lv_area)ib" },
{ "draw_mask_remove_custom", (void*) &lv_draw_mask_remove_custom, ".", "." },
{ "draw_mask_remove_id", (void*) &lv_draw_mask_remove_id, ".", "i" },
{ "draw_polygon", (void*) &lv_draw_polygon, "", "ii(lv_area)(lv_draw_rect_dsc)" },
{ "draw_rect", (void*) &lv_draw_rect, "", "(lv_area)(lv_area)(lv_draw_rect_dsc)" },
{ "draw_rect_dsc_init", (void*) &lv_draw_rect_dsc_init, "", "(lv_draw_rect_dsc)" },
{ "draw_triangle", (void*) &lv_draw_triangle, "", "i(lv_area)(lv_draw_rect_dsc)" },
{ "draw_polygon", (void*) &lv_draw_polygon, "", "ii(lv.lv_area)(lv.lv_draw_rect_dsc)" },
{ "draw_rect", (void*) &lv_draw_rect, "", "(lv.lv_area)(lv.lv_area)(lv.lv_draw_rect_dsc)" },
{ "draw_rect_dsc_init", (void*) &lv_draw_rect_dsc_init, "", "(lv.lv_draw_rect_dsc)" },
{ "draw_triangle", (void*) &lv_draw_triangle, "", "i(lv.lv_area)(lv.lv_draw_rect_dsc)" },
{ "event_register_id", (void*) &lv_event_register_id, "i", "" },
{ "event_send", (void*) &lv_event_send, "i", "(lv_obj)i." },
{ "event_set_cover_res", (void*) &lv_event_set_cover_res, "", "(lv_event)(lv_cover_res)" },
{ "event_set_ext_draw_size", (void*) &lv_event_set_ext_draw_size, "", "(lv_event)i" },
{ "event_send", (void*) &lv_event_send, "i", "(lv.lv_obj)i." },
{ "event_set_cover_res", (void*) &lv_event_set_cover_res, "", "(lv.lv_event)(lv.lv_cover_res)" },
{ "event_set_ext_draw_size", (void*) &lv_event_set_ext_draw_size, "", "(lv.lv_event)i" },
{ "get_hor_res", (void*) &lv_get_hor_res, "i", "" },
{ "get_ver_res", (void*) &lv_get_ver_res, "i", "" },
{ "group_get_default", (void*) &lv_group_get_default, "lv_group", "" },
{ "group_get_default", (void*) &lv_group_get_default, "lv.lv_group", "" },
{ "img_src_get_type", (void*) &lv_img_src_get_type, "i", "." },
{ "indev_get_obj_act", (void*) &lv_indev_get_obj_act, "lv_obj", "" },
{ "indev_read_timer_cb", (void*) &lv_indev_read_timer_cb, "", "(lv_timer)" },
{ "layer_sys", (void*) &lv_layer_sys, "lv_obj", "" },
{ "layer_top", (void*) &lv_layer_top, "lv_obj", "" },
{ "indev_get_obj_act", (void*) &lv_indev_get_obj_act, "lv.lv_obj", "" },
{ "indev_read_timer_cb", (void*) &lv_indev_read_timer_cb, "", "(lv.lv_timer)" },
{ "layer_sys", (void*) &lv_layer_sys, "lv.lv_obj", "" },
{ "layer_top", (void*) &lv_layer_top, "lv.lv_obj", "" },
{ "layout_register", (void*) &lv_layout_register, "i", "^lv_layout_update_cb^." },
{ "obj_class_create_obj", (void*) &lv_obj_class_create_obj, "lv_obj", "(_lv_obj_class)(lv_obj)" },
{ "obj_del_anim_ready_cb", (void*) &lv_obj_del_anim_ready_cb, "", "(lv_anim)" },
{ "obj_draw_dsc_init", (void*) &lv_obj_draw_dsc_init, "", "(lv_obj_draw_part_dsc)(lv_area)" },
{ "obj_class_create_obj", (void*) &lv_obj_class_create_obj, "lv.lv_obj", "(lv._lv_obj_class)(lv.lv_obj)" },
{ "obj_del_anim_ready_cb", (void*) &lv_obj_del_anim_ready_cb, "", "(lv.lv_anim)" },
{ "obj_draw_dsc_init", (void*) &lv_obj_draw_dsc_init, "", "(lv.lv_obj_draw_part_dsc)(lv.lv_area)" },
{ "obj_enable_style_refresh", (void*) &lv_obj_enable_style_refresh, "", "b" },
{ "obj_event_base", (void*) &lv_obj_event_base, "i", "(lv_obj_class)(lv_event)" },
{ "obj_report_style_change", (void*) &lv_obj_report_style_change, "", "(lv_style)" },
{ "obj_style_get_selector_part", (void*) &lv_obj_style_get_selector_part, "i", "(lv_style_selector)" },
{ "obj_style_get_selector_state", (void*) &lv_obj_style_get_selector_state, "i", "(lv_style_selector)" },
{ "refr_now", (void*) &lv_refr_now, "", "(lv_disp)" },
{ "scr_act", (void*) &lv_scr_act, "lv_obj", "" },
{ "scr_load", (void*) &lv_scr_load, "", "(lv_obj)" },
{ "scr_load_anim", (void*) &lv_scr_load_anim, "", "(lv_obj)iiib" },
{ "theme_apply", (void*) &lv_theme_apply, "", "(lv_obj)" },
{ "theme_get_color_primary", (void*) &lv_theme_get_color_primary, "lv_color", "(lv_obj)" },
{ "theme_get_color_secondary", (void*) &lv_theme_get_color_secondary, "lv_color", "(lv_obj)" },
{ "theme_get_font_large", (void*) &lv_theme_get_font_large, "lv_font", "(lv_obj)" },
{ "theme_get_font_normal", (void*) &lv_theme_get_font_normal, "lv_font", "(lv_obj)" },
{ "theme_get_font_small", (void*) &lv_theme_get_font_small, "lv_font", "(lv_obj)" },
{ "theme_set_apply_cb", (void*) &lv_theme_set_apply_cb, "", "(lv_theme)^lv_theme_apply_cb^" },
{ "theme_set_parent", (void*) &lv_theme_set_parent, "", "(lv_theme)(lv_theme)" },
{ "obj_event_base", (void*) &lv_obj_event_base, "i", "(lv.lv_obj_class)(lv.lv_event)" },
{ "obj_report_style_change", (void*) &lv_obj_report_style_change, "", "(lv.lv_style)" },
{ "obj_style_get_selector_part", (void*) &lv_obj_style_get_selector_part, "i", "(lv.lv_style_selector)" },
{ "obj_style_get_selector_state", (void*) &lv_obj_style_get_selector_state, "i", "(lv.lv_style_selector)" },
{ "refr_now", (void*) &lv_refr_now, "", "(lv.lv_disp)" },
{ "scr_act", (void*) &lv_scr_act, "lv.lv_obj", "" },
{ "scr_load", (void*) &lv_scr_load, "", "(lv.lv_obj)" },
{ "scr_load_anim", (void*) &lv_scr_load_anim, "", "(lv.lv_obj)iiib" },
{ "theme_apply", (void*) &lv_theme_apply, "", "(lv.lv_obj)" },
{ "theme_get_color_primary", (void*) &lv_theme_get_color_primary, "lv.lv_color", "(lv.lv_obj)" },
{ "theme_get_color_secondary", (void*) &lv_theme_get_color_secondary, "lv.lv_color", "(lv.lv_obj)" },
{ "theme_get_font_large", (void*) &lv_theme_get_font_large, "lv.lv_font", "(lv.lv_obj)" },
{ "theme_get_font_normal", (void*) &lv_theme_get_font_normal, "lv.lv_font", "(lv.lv_obj)" },
{ "theme_get_font_small", (void*) &lv_theme_get_font_small, "lv.lv_font", "(lv.lv_obj)" },
{ "theme_set_apply_cb", (void*) &lv_theme_set_apply_cb, "", "(lv.lv_theme)^lv_theme_apply_cb^" },
{ "theme_set_parent", (void*) &lv_theme_set_parent, "", "(lv.lv_theme)(lv.lv_theme)" },
};
const size_t lv_func_size = sizeof(lv_func) / sizeof(lv_func[0]);
@ -177,23 +177,23 @@ const be_constint_t lv0_constants[] = {
{ "COLORWHEEL_MODE_HUE", LV_COLORWHEEL_MODE_HUE },
{ "COLORWHEEL_MODE_SATURATION", LV_COLORWHEEL_MODE_SATURATION },
{ "COLORWHEEL_MODE_VALUE", LV_COLORWHEEL_MODE_VALUE },
{ "COLOR_AQUA", 65535 },
{ "COLOR_BLACK", 0 },
{ "COLOR_BLUE", 255 },
{ "COLOR_CYAN", 65535 },
{ "COLOR_GRAY", 8421504 },
{ "COLOR_GREEN", 32768 },
{ "COLOR_LIME", 65280 },
{ "COLOR_MAGENTA", 16711935 },
{ "COLOR_MAROON", 8388608 },
{ "COLOR_NAVY", 128 },
{ "COLOR_OLIVE", 8421376 },
{ "COLOR_PURPLE", 8388736 },
{ "COLOR_RED", 16711680 },
{ "COLOR_SILVER", 12632256 },
{ "COLOR_TEAL", 32896 },
{ "COLOR_WHITE", 16777215 },
{ "COLOR_YELLOW", 16776960 },
{ "COLOR_AQUA", (int32_t) 0x00FFFF },
{ "COLOR_BLACK", (int32_t) 0x000000 },
{ "COLOR_BLUE", (int32_t) 0x0000FF },
{ "COLOR_CYAN", (int32_t) 0x00FFFF },
{ "COLOR_GRAY", (int32_t) 0x808080 },
{ "COLOR_GREEN", (int32_t) 0x008000 },
{ "COLOR_LIME", (int32_t) 0x00FF00 },
{ "COLOR_MAGENTA", (int32_t) 0xFF00FF },
{ "COLOR_MAROON", (int32_t) 0x800000 },
{ "COLOR_NAVY", (int32_t) 0x000080 },
{ "COLOR_OLIVE", (int32_t) 0x808000 },
{ "COLOR_PURPLE", (int32_t) 0x800080 },
{ "COLOR_RED", (int32_t) 0xFF0000 },
{ "COLOR_SILVER", (int32_t) 0xC0C0C0 },
{ "COLOR_TEAL", (int32_t) 0x008080 },
{ "COLOR_WHITE", (int32_t) 0xFFFFFF },
{ "COLOR_YELLOW", (int32_t) 0xFFFF00 },
{ "COVER_RES_COVER", LV_COVER_RES_COVER },
{ "COVER_RES_MASKED", LV_COVER_RES_MASKED },
{ "COVER_RES_NOT_COVER", LV_COVER_RES_NOT_COVER },
@ -573,6 +573,65 @@ const be_constint_t lv0_constants[] = {
{ "STYLE_WIDTH", LV_STYLE_WIDTH },
{ "STYLE_X", LV_STYLE_X },
{ "STYLE_Y", LV_STYLE_Y },
{ "$SYMBOL_AUDIO", (int32_t) "\xef\x80\x81" },
{ "$SYMBOL_BACKSPACE", (int32_t) "\xef\x95\x9A" },
{ "$SYMBOL_BATTERY_1", (int32_t) "\xef\x89\x83" },
{ "$SYMBOL_BATTERY_2", (int32_t) "\xef\x89\x82" },
{ "$SYMBOL_BATTERY_3", (int32_t) "\xef\x89\x81" },
{ "$SYMBOL_BATTERY_EMPTY", (int32_t) "\xef\x89\x84" },
{ "$SYMBOL_BATTERY_FULL", (int32_t) "\xef\x89\x80" },
{ "$SYMBOL_BELL", (int32_t) "\xef\x83\xb3" },
{ "$SYMBOL_BLUETOOTH", (int32_t) "\xef\x8a\x93" },
{ "$SYMBOL_BULLET", (int32_t) "\xE2\x80\xA2" },
{ "$SYMBOL_CALL", (int32_t) "\xef\x82\x95" },
{ "$SYMBOL_CHARGE", (int32_t) "\xef\x83\xa7" },
{ "$SYMBOL_CLOSE", (int32_t) "\xef\x80\x8d" },
{ "$SYMBOL_COPY", (int32_t) "\xef\x83\x85" },
{ "$SYMBOL_CUT", (int32_t) "\xef\x83\x84" },
{ "$SYMBOL_DIRECTORY", (int32_t) "\xef\x81\xbb" },
{ "$SYMBOL_DOWN", (int32_t) "\xef\x81\xb8" },
{ "$SYMBOL_DOWNLOAD", (int32_t) "\xef\x80\x99" },
{ "$SYMBOL_DRIVE", (int32_t) "\xef\x80\x9c" },
{ "$SYMBOL_DUMMY", (int32_t) "\xEF\xA3\xBF" },
{ "$SYMBOL_EDIT", (int32_t) "\xef\x8C\x84" },
{ "$SYMBOL_EJECT", (int32_t) "\xef\x81\x92" },
{ "$SYMBOL_EYE_CLOSE", (int32_t) "\xef\x81\xb0" },
{ "$SYMBOL_EYE_OPEN", (int32_t) "\xef\x81\xae" },
{ "$SYMBOL_FILE", (int32_t) "\xef\x85\x9b" },
{ "$SYMBOL_GPS", (int32_t) "\xef\x84\xa4" },
{ "$SYMBOL_HOME", (int32_t) "\xef\x80\x95" },
{ "$SYMBOL_IMAGE", (int32_t) "\xef\x80\xbe" },
{ "$SYMBOL_KEYBOARD", (int32_t) "\xef\x84\x9c" },
{ "$SYMBOL_LEFT", (int32_t) "\xef\x81\x93" },
{ "$SYMBOL_LIST", (int32_t) "\xef\x80\x8b" },
{ "$SYMBOL_LOOP", (int32_t) "\xef\x81\xb9" },
{ "$SYMBOL_MINUS", (int32_t) "\xef\x81\xa8" },
{ "$SYMBOL_MUTE", (int32_t) "\xef\x80\xa6" },
{ "$SYMBOL_NEW_LINE", (int32_t) "\xef\xA2\xA2" },
{ "$SYMBOL_NEXT", (int32_t) "\xef\x81\x91" },
{ "$SYMBOL_OK", (int32_t) "\xef\x80\x8c" },
{ "$SYMBOL_PASTE", (int32_t) "\xef\x83\xAA" },
{ "$SYMBOL_PAUSE", (int32_t) "\xef\x81\x8c" },
{ "$SYMBOL_PLAY", (int32_t) "\xef\x81\x8b" },
{ "$SYMBOL_PLUS", (int32_t) "\xef\x81\xa7" },
{ "$SYMBOL_POWER", (int32_t) "\xef\x80\x91" },
{ "$SYMBOL_PREV", (int32_t) "\xef\x81\x88" },
{ "$SYMBOL_REFRESH", (int32_t) "\xef\x80\xa1" },
{ "$SYMBOL_RIGHT", (int32_t) "\xef\x81\x94" },
{ "$SYMBOL_SAVE", (int32_t) "\xef\x83\x87" },
{ "$SYMBOL_SD_CARD", (int32_t) "\xef\x9F\x82" },
{ "$SYMBOL_SETTINGS", (int32_t) "\xef\x80\x93" },
{ "$SYMBOL_SHUFFLE", (int32_t) "\xef\x81\xb4" },
{ "$SYMBOL_STOP", (int32_t) "\xef\x81\x8d" },
{ "$SYMBOL_TRASH", (int32_t) "\xef\x8B\xAD" },
{ "$SYMBOL_UP", (int32_t) "\xef\x81\xb7" },
{ "$SYMBOL_UPLOAD", (int32_t) "\xef\x82\x93" },
{ "$SYMBOL_USB", (int32_t) "\xef\x8a\x87" },
{ "$SYMBOL_VIDEO", (int32_t) "\xef\x80\x88" },
{ "$SYMBOL_VOLUME_MAX", (int32_t) "\xef\x80\xa8" },
{ "$SYMBOL_VOLUME_MID", (int32_t) "\xef\x80\xa7" },
{ "$SYMBOL_WARNING", (int32_t) "\xef\x81\xb1" },
{ "$SYMBOL_WIFI", (int32_t) "\xef\x87\xab" },
{ "TABLE_CELL_CTRL_CUSTOM_1", LV_TABLE_CELL_CTRL_CUSTOM_1 },
{ "TABLE_CELL_CTRL_CUSTOM_2", LV_TABLE_CELL_CTRL_CUSTOM_2 },
{ "TABLE_CELL_CTRL_CUSTOM_3", LV_TABLE_CELL_CTRL_CUSTOM_3 },
@ -594,153 +653,27 @@ const be_constint_t lv0_constants[] = {
{ "TEXT_FLAG_FIT", LV_TEXT_FLAG_FIT },
{ "TEXT_FLAG_NONE", LV_TEXT_FLAG_NONE },
{ "TEXT_FLAG_RECOLOR", LV_TEXT_FLAG_RECOLOR },
{ "&load_font", (int32_t) &lv0_load_font },
{ "&load_freetype_font", (int32_t) &lv0_load_freetype_font },
{ "&montserrat_font", (int32_t) &lv0_load_montserrat_font },
{ "&register_button_encoder", (int32_t) &lv0_register_button_encoder },
{ "&screenshot", (int32_t) &lv0_screenshot },
{ "&seg7_font", (int32_t) &lv0_load_seg7_font },
};
const size_t lv0_constants_size = sizeof(lv0_constants)/sizeof(lv0_constants[0]);
be_define_local_const_str(SYMBOL_AUDIO, "\xef\x80\x81", 0, 3);
be_define_local_const_str(SYMBOL_VIDEO, "\xef\x80\x88", 0, 3);
be_define_local_const_str(SYMBOL_LIST, "\xef\x80\x8b", 0, 3);
be_define_local_const_str(SYMBOL_OK, "\xef\x80\x8c", 0, 3);
be_define_local_const_str(SYMBOL_CLOSE, "\xef\x80\x8d", 0, 3);
be_define_local_const_str(SYMBOL_POWER, "\xef\x80\x91", 0, 3);
be_define_local_const_str(SYMBOL_SETTINGS, "\xef\x80\x93", 0, 3);
be_define_local_const_str(SYMBOL_HOME, "\xef\x80\x95", 0, 3);
be_define_local_const_str(SYMBOL_DOWNLOAD, "\xef\x80\x99", 0, 3);
be_define_local_const_str(SYMBOL_DRIVE, "\xef\x80\x9c", 0, 3);
be_define_local_const_str(SYMBOL_REFRESH, "\xef\x80\xa1", 0, 3);
be_define_local_const_str(SYMBOL_MUTE, "\xef\x80\xa6", 0, 3);
be_define_local_const_str(SYMBOL_VOLUME_MID, "\xef\x80\xa7", 0, 3);
be_define_local_const_str(SYMBOL_VOLUME_MAX, "\xef\x80\xa8", 0, 3);
be_define_local_const_str(SYMBOL_IMAGE, "\xef\x80\xbe", 0, 3);
be_define_local_const_str(SYMBOL_EDIT, "\xef\x8C\x84", 0, 3);
be_define_local_const_str(SYMBOL_PREV, "\xef\x81\x88", 0, 3);
be_define_local_const_str(SYMBOL_PLAY, "\xef\x81\x8b", 0, 3);
be_define_local_const_str(SYMBOL_PAUSE, "\xef\x81\x8c", 0, 3);
be_define_local_const_str(SYMBOL_STOP, "\xef\x81\x8d", 0, 3);
be_define_local_const_str(SYMBOL_NEXT, "\xef\x81\x91", 0, 3);
be_define_local_const_str(SYMBOL_EJECT, "\xef\x81\x92", 0, 3);
be_define_local_const_str(SYMBOL_LEFT, "\xef\x81\x93", 0, 3);
be_define_local_const_str(SYMBOL_RIGHT, "\xef\x81\x94", 0, 3);
be_define_local_const_str(SYMBOL_PLUS, "\xef\x81\xa7", 0, 3);
be_define_local_const_str(SYMBOL_MINUS, "\xef\x81\xa8", 0, 3);
be_define_local_const_str(SYMBOL_EYE_OPEN, "\xef\x81\xae", 0, 3);
be_define_local_const_str(SYMBOL_EYE_CLOSE, "\xef\x81\xb0", 0, 3);
be_define_local_const_str(SYMBOL_WARNING, "\xef\x81\xb1", 0, 3);
be_define_local_const_str(SYMBOL_SHUFFLE, "\xef\x81\xb4", 0, 3);
be_define_local_const_str(SYMBOL_UP, "\xef\x81\xb7", 0, 3);
be_define_local_const_str(SYMBOL_DOWN, "\xef\x81\xb8", 0, 3);
be_define_local_const_str(SYMBOL_LOOP, "\xef\x81\xb9", 0, 3);
be_define_local_const_str(SYMBOL_DIRECTORY, "\xef\x81\xbb", 0, 3);
be_define_local_const_str(SYMBOL_UPLOAD, "\xef\x82\x93", 0, 3);
be_define_local_const_str(SYMBOL_CALL, "\xef\x82\x95", 0, 3);
be_define_local_const_str(SYMBOL_CUT, "\xef\x83\x84", 0, 3);
be_define_local_const_str(SYMBOL_COPY, "\xef\x83\x85", 0, 3);
be_define_local_const_str(SYMBOL_SAVE, "\xef\x83\x87", 0, 3);
be_define_local_const_str(SYMBOL_CHARGE, "\xef\x83\xa7", 0, 3);
be_define_local_const_str(SYMBOL_PASTE, "\xef\x83\xAA", 0, 3);
be_define_local_const_str(SYMBOL_BELL, "\xef\x83\xb3", 0, 3);
be_define_local_const_str(SYMBOL_KEYBOARD, "\xef\x84\x9c", 0, 3);
be_define_local_const_str(SYMBOL_GPS, "\xef\x84\xa4", 0, 3);
be_define_local_const_str(SYMBOL_FILE, "\xef\x85\x9b", 0, 3);
be_define_local_const_str(SYMBOL_WIFI, "\xef\x87\xab", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_FULL, "\xef\x89\x80", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_3, "\xef\x89\x81", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_2, "\xef\x89\x82", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_1, "\xef\x89\x83", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_EMPTY, "\xef\x89\x84", 0, 3);
be_define_local_const_str(SYMBOL_USB, "\xef\x8a\x87", 0, 3);
be_define_local_const_str(SYMBOL_BLUETOOTH, "\xef\x8a\x93", 0, 3);
be_define_local_const_str(SYMBOL_TRASH, "\xef\x8B\xAD", 0, 3);
be_define_local_const_str(SYMBOL_BACKSPACE, "\xef\x95\x9A", 0, 3);
be_define_local_const_str(SYMBOL_SD_CARD, "\xef\x9F\x82", 0, 3);
be_define_local_const_str(SYMBOL_NEW_LINE, "\xef\xA2\xA2", 0, 3);
be_define_local_const_str(SYMBOL_DUMMY, "\xEF\xA3\xBF", 0, 3);
be_define_local_const_str(SYMBOL_BULLET, "\xE2\x80\xA2", 0, 3);
/* @const_object_info_begin
module lvgl (scope: global) {
SYMBOL_AUDIO, str(&be_local_const_str_SYMBOL_AUDIO)
SYMBOL_VIDEO, str(&be_local_const_str_SYMBOL_VIDEO)
SYMBOL_LIST, str(&be_local_const_str_SYMBOL_LIST)
SYMBOL_OK, str(&be_local_const_str_SYMBOL_OK)
SYMBOL_CLOSE, str(&be_local_const_str_SYMBOL_CLOSE)
SYMBOL_POWER, str(&be_local_const_str_SYMBOL_POWER)
SYMBOL_SETTINGS, str(&be_local_const_str_SYMBOL_SETTINGS)
SYMBOL_HOME, str(&be_local_const_str_SYMBOL_HOME)
SYMBOL_DOWNLOAD, str(&be_local_const_str_SYMBOL_DOWNLOAD)
SYMBOL_DRIVE, str(&be_local_const_str_SYMBOL_DRIVE)
SYMBOL_REFRESH, str(&be_local_const_str_SYMBOL_REFRESH)
SYMBOL_MUTE, str(&be_local_const_str_SYMBOL_MUTE)
SYMBOL_VOLUME_MID, str(&be_local_const_str_SYMBOL_VOLUME_MID)
SYMBOL_VOLUME_MAX, str(&be_local_const_str_SYMBOL_VOLUME_MAX)
SYMBOL_IMAGE, str(&be_local_const_str_SYMBOL_IMAGE)
SYMBOL_EDIT, str(&be_local_const_str_SYMBOL_EDIT)
SYMBOL_PREV, str(&be_local_const_str_SYMBOL_PREV)
SYMBOL_PLAY, str(&be_local_const_str_SYMBOL_PLAY)
SYMBOL_PAUSE, str(&be_local_const_str_SYMBOL_PAUSE)
SYMBOL_STOP, str(&be_local_const_str_SYMBOL_STOP)
SYMBOL_NEXT, str(&be_local_const_str_SYMBOL_NEXT)
SYMBOL_EJECT, str(&be_local_const_str_SYMBOL_EJECT)
SYMBOL_LEFT, str(&be_local_const_str_SYMBOL_LEFT)
SYMBOL_RIGHT, str(&be_local_const_str_SYMBOL_RIGHT)
SYMBOL_PLUS, str(&be_local_const_str_SYMBOL_PLUS)
SYMBOL_MINUS, str(&be_local_const_str_SYMBOL_MINUS)
SYMBOL_EYE_OPEN, str(&be_local_const_str_SYMBOL_EYE_OPEN)
SYMBOL_EYE_CLOSE, str(&be_local_const_str_SYMBOL_EYE_CLOSE)
SYMBOL_WARNING, str(&be_local_const_str_SYMBOL_WARNING)
SYMBOL_SHUFFLE, str(&be_local_const_str_SYMBOL_SHUFFLE)
SYMBOL_UP, str(&be_local_const_str_SYMBOL_UP)
SYMBOL_DOWN, str(&be_local_const_str_SYMBOL_DOWN)
SYMBOL_LOOP, str(&be_local_const_str_SYMBOL_LOOP)
SYMBOL_DIRECTORY, str(&be_local_const_str_SYMBOL_DIRECTORY)
SYMBOL_UPLOAD, str(&be_local_const_str_SYMBOL_UPLOAD)
SYMBOL_CALL, str(&be_local_const_str_SYMBOL_CALL)
SYMBOL_CUT, str(&be_local_const_str_SYMBOL_CUT)
SYMBOL_COPY, str(&be_local_const_str_SYMBOL_COPY)
SYMBOL_SAVE, str(&be_local_const_str_SYMBOL_SAVE)
SYMBOL_CHARGE, str(&be_local_const_str_SYMBOL_CHARGE)
SYMBOL_PASTE, str(&be_local_const_str_SYMBOL_PASTE)
SYMBOL_BELL, str(&be_local_const_str_SYMBOL_BELL)
SYMBOL_KEYBOARD, str(&be_local_const_str_SYMBOL_KEYBOARD)
SYMBOL_GPS, str(&be_local_const_str_SYMBOL_GPS)
SYMBOL_FILE, str(&be_local_const_str_SYMBOL_FILE)
SYMBOL_WIFI, str(&be_local_const_str_SYMBOL_WIFI)
SYMBOL_BATTERY_FULL, str(&be_local_const_str_SYMBOL_BATTERY_FULL)
SYMBOL_BATTERY_3, str(&be_local_const_str_SYMBOL_BATTERY_3)
SYMBOL_BATTERY_2, str(&be_local_const_str_SYMBOL_BATTERY_2)
SYMBOL_BATTERY_1, str(&be_local_const_str_SYMBOL_BATTERY_1)
SYMBOL_BATTERY_EMPTY, str(&be_local_const_str_SYMBOL_BATTERY_EMPTY)
SYMBOL_USB, str(&be_local_const_str_SYMBOL_USB)
SYMBOL_BLUETOOTH, str(&be_local_const_str_SYMBOL_BLUETOOTH)
SYMBOL_TRASH, str(&be_local_const_str_SYMBOL_TRASH)
SYMBOL_BACKSPACE, str(&be_local_const_str_SYMBOL_BACKSPACE)
SYMBOL_SD_CARD, str(&be_local_const_str_SYMBOL_SD_CARD)
SYMBOL_NEW_LINE, str(&be_local_const_str_SYMBOL_NEW_LINE)
SYMBOL_DUMMY, str(&be_local_const_str_SYMBOL_DUMMY)
SYMBOL_BULLET, str(&be_local_const_str_SYMBOL_BULLET)
member, func(lv0_member)
start, func(lv0_start)
register_button_encoder, func(lv0_register_button_encoder)
montserrat_font, func(lv0_load_montserrat_font)
seg7_font, func(lv0_load_seg7_font)
load_font, func(lv0_load_font)
load_freetype_font, func(lv0_load_freetype_font)
screenshot, func(lv0_screenshot)
}
@const_object_info_end */
#include "../generate/be_fixed_lvgl.h"
/* generated */
be_local_module(lv,
"lv",
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("member", 719708611, 6, -1), be_const_func(lv0_member) },
{ be_nested_key("start", 1697318111, 5, 0), be_const_func(lv0_start) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(lv, NULL);
#endif // USE_LVGL

View File

@ -70,16 +70,16 @@ be_local_closure(init, /* name */
/* K1 */ be_nested_string("create_custom_widget", 1140594778, 20),
/* K2 */ be_nested_string("percentage", -1756136011, 10),
/* K3 */ be_nested_string("p1", -1605446022, 2),
/* K4 */ be_nested_string("lv_point", -174745506, 8),
/* K5 */ be_nested_string("p2", -1622223641, 2),
/* K6 */ be_nested_string("area", -1693507260, 4),
/* K7 */ be_nested_string("lv_area", -1773816895, 7),
/* K4 */ be_nested_string("lv", 1529997255, 2),
/* K5 */ be_nested_string("point", 414084241, 5),
/* K6 */ be_nested_string("p2", -1622223641, 2),
/* K7 */ be_nested_string("area", -1693507260, 4),
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
/* K9 */ be_nested_string("lv_draw_line_dsc", -1872162060, 16),
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[20]) { /* code */
( &(const binstruction[24]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100000, // 0002 MOVE R4 R0
@ -88,18 +88,22 @@ be_local_closure(init, /* name */
0x540A0063, // 0005 LDINT R2 100
0x90020402, // 0006 SETMBR R0 K2 R2
0xB80A0800, // 0007 GETNGBL R2 K4
0x7C080000, // 0008 CALL R2 0
0x90020602, // 0009 SETMBR R0 K3 R2
0xB80A0800, // 000A GETNGBL R2 K4
0x7C080000, // 000B CALL R2 0
0x90020A02, // 000C SETMBR R0 K5 R2
0xB80A0E00, // 000D GETNGBL R2 K7
0x7C080000, // 000E CALL R2 0
0x90020C02, // 000F SETMBR R0 K6 R2
0xB80A1200, // 0010 GETNGBL R2 K9
0x7C080000, // 0011 CALL R2 0
0x90021002, // 0012 SETMBR R0 K8 R2
0x80000000, // 0013 RET 0
0x8C080505, // 0008 GETMET R2 R2 K5
0x7C080200, // 0009 CALL R2 1
0x90020602, // 000A SETMBR R0 K3 R2
0xB80A0800, // 000B GETNGBL R2 K4
0x8C080505, // 000C GETMET R2 R2 K5
0x7C080200, // 000D CALL R2 1
0x90020C02, // 000E SETMBR R0 K6 R2
0xB80A0800, // 000F GETNGBL R2 K4
0x8C080507, // 0010 GETMET R2 R2 K7
0x7C080200, // 0011 CALL R2 1
0x90020E02, // 0012 SETMBR R0 K7 R2
0xB80A0800, // 0013 GETNGBL R2 K4
0x8C080509, // 0014 GETMET R2 R2 K9
0x7C080200, // 0015 CALL R2 1
0x90021002, // 0016 SETMBR R0 K8 R2
0x80000000, // 0017 RET 0
})
)
);
@ -143,7 +147,7 @@ be_local_closure(widget_event, /* name */
),
}),
1, /* has constants */
( &(const bvalue[36]) { /* constants */
( &(const bvalue[35]) { /* constants */
/* K0 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("obj_event_base", 1624064363, 14),
/* K2 */ be_nested_string("RES_OK", 1233817284, 6),
@ -154,36 +158,35 @@ be_local_closure(widget_event, /* name */
/* K7 */ be_const_int(2),
/* K8 */ be_const_int(3),
/* K9 */ be_nested_string("EVENT_DRAW_MAIN", 1955620614, 15),
/* K10 */ be_nested_string("lv_area", -1773816895, 7),
/* K10 */ be_nested_string("area", -1693507260, 4),
/* K11 */ be_nested_string("param", 1309554226, 5),
/* K12 */ be_nested_string("get_coords", 1044089006, 10),
/* K13 */ be_nested_string("area", -1693507260, 4),
/* K14 */ be_nested_string("x1", 274927234, 2),
/* K15 */ be_nested_string("y1", -1939865569, 2),
/* K16 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K17 */ be_nested_string("line_dsc", -200476318, 8),
/* K18 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K19 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K20 */ be_nested_string("round_start", -1345482912, 11),
/* K21 */ be_const_int(1),
/* K22 */ be_nested_string("round_end", 985288225, 9),
/* K23 */ be_nested_string("width", -1786286561, 5),
/* K24 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K25 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K26 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K27 */ be_nested_string("deg", -967213025, 3),
/* K28 */ be_nested_string("acos", 1006755615, 4),
/* K29 */ be_nested_string("p1", -1605446022, 2),
/* K30 */ be_nested_string("x", -49524601, 1),
/* K31 */ be_nested_string("y", -66302220, 1),
/* K32 */ be_nested_string("color", 1031692888, 5),
/* K33 */ be_nested_string("percentage", -1756136011, 10),
/* K34 */ be_nested_string("draw_arc", 1828251676, 8),
/* K35 */ be_const_int(0),
/* K13 */ be_nested_string("x1", 274927234, 2),
/* K14 */ be_nested_string("y1", -1939865569, 2),
/* K15 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K16 */ be_nested_string("line_dsc", -200476318, 8),
/* K17 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K18 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K19 */ be_nested_string("round_start", -1345482912, 11),
/* K20 */ be_const_int(1),
/* K21 */ be_nested_string("round_end", 985288225, 9),
/* K22 */ be_nested_string("width", -1786286561, 5),
/* K23 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K24 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K25 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K26 */ be_nested_string("deg", -967213025, 3),
/* K27 */ be_nested_string("acos", 1006755615, 4),
/* K28 */ be_nested_string("p1", -1605446022, 2),
/* K29 */ be_nested_string("x", -49524601, 1),
/* K30 */ be_nested_string("y", -66302220, 1),
/* K31 */ be_nested_string("color", 1031692888, 5),
/* K32 */ be_nested_string("percentage", -1756136011, 10),
/* K33 */ be_nested_string("draw_arc", 1828251676, 8),
/* K34 */ be_const_int(0),
}),
(be_nested_const_str("widget_event", 1951408186, 12)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[181]) { /* code */
( &(const binstruction[182]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x5C140200, // 0002 MOVE R5 R1
@ -214,157 +217,158 @@ be_local_closure(widget_event, /* name */
0xB82E0000, // 001B GETNGBL R11 K0
0x882C1709, // 001C GETMBR R11 R11 K9
0x1C2C060B, // 001D EQ R11 R3 R11
0x782E0094, // 001E JMPF R11 #00B4
0xB82E1400, // 001F GETNGBL R11 K10
0x8830050B, // 0020 GETMBR R12 R2 K11
0x7C2C0200, // 0021 CALL R11 1
0x8C30010C, // 0022 GETMET R12 R0 K12
0x8838010D, // 0023 GETMBR R14 R0 K13
0x7C300400, // 0024 CALL R12 2
0x8830010D, // 0025 GETMBR R12 R0 K13
0x8830190E, // 0026 GETMBR R12 R12 K14
0x8834010D, // 0027 GETMBR R13 R0 K13
0x88341B0F, // 0028 GETMBR R13 R13 K15
0xB83A0000, // 0029 GETNGBL R14 K0
0x8C381D10, // 002A GETMET R14 R14 K16
0x88400111, // 002B GETMBR R16 R0 K17
0x7C380400, // 002C CALL R14 2
0x8C380112, // 002D GETMET R14 R0 K18
0xB8420000, // 002E GETNGBL R16 K0
0x88402113, // 002F GETMBR R16 R16 K19
0x88440111, // 0030 GETMBR R17 R0 K17
0x7C380600, // 0031 CALL R14 3
0x88380111, // 0032 GETMBR R14 R0 K17
0x903A2915, // 0033 SETMBR R14 K20 K21
0x88380111, // 0034 GETMBR R14 R0 K17
0x903A2D15, // 0035 SETMBR R14 K22 K21
0x88380111, // 0036 GETMBR R14 R0 K17
0x083C1308, // 0037 MUL R15 R9 K8
0x003C1F15, // 0038 ADD R15 R15 K21
0x54420003, // 0039 LDINT R16 4
0x0C3C1E10, // 003A DIV R15 R15 R16
0x903A2E0F, // 003B SETMBR R14 K23 R15
0x8C380118, // 003C GETMET R14 R0 K24
0xB8420000, // 003D GETNGBL R16 K0
0x88402113, // 003E GETMBR R16 R16 K19
0xB8460000, // 003F GETNGBL R17 K0
0x88442319, // 0040 GETMBR R17 R17 K25
0x30402011, // 0041 OR R16 R16 R17
0x7C380400, // 0042 CALL R14 2
0x8C3C011A, // 0043 GETMET R15 R0 K26
0xB8460000, // 0044 GETNGBL R17 K0
0x88442313, // 0045 GETMBR R17 R17 K19
0xB84A0000, // 0046 GETNGBL R18 K0
0x88482519, // 0047 GETMBR R18 R18 K25
0x30442212, // 0048 OR R17 R17 R18
0x7C3C0400, // 0049 CALL R15 2
0x04400C09, // 004A SUB R16 R6 R9
0x0C440F07, // 004B DIV R17 R7 K7
0x0444220A, // 004C SUB R17 R17 R10
0x60480009, // 004D GETGBL R18 G9
0x544E0059, // 004E LDINT R19 90
0x8C50091B, // 004F GETMET R20 R4 K27
0x8C58091C, // 0050 GETMET R22 R4 K28
0x6060000A, // 0051 GETGBL R24 G10
0x5C642200, // 0052 MOVE R25 R17
0x7C600200, // 0053 CALL R24 1
0x6064000A, // 0054 GETGBL R25 G10
0x5C682000, // 0055 MOVE R26 R16
0x7C640200, // 0056 CALL R25 1
0x0C603019, // 0057 DIV R24 R24 R25
0x7C580400, // 0058 CALL R22 2
0x7C500400, // 0059 CALL R20 2
0x044C2614, // 005A SUB R19 R19 R20
0x7C480200, // 005B CALL R18 1
0x544E002C, // 005C LDINT R19 45
0x244C2413, // 005D GT R19 R18 R19
0x784E0000, // 005E JMPF R19 #0060
0x544A002C, // 005F LDINT R18 45
0x884C011D, // 0060 GETMBR R19 R0 K29
0x0C500F07, // 0061 DIV R20 R7 K7
0x00501814, // 0062 ADD R20 R12 R20
0x904E3C14, // 0063 SETMBR R19 K30 R20
0x884C011D, // 0064 GETMBR R19 R0 K29
0x00501A06, // 0065 ADD R20 R13 R6
0x04502915, // 0066 SUB R20 R20 K21
0x0450280A, // 0067 SUB R20 R20 R10
0x904E3E14, // 0068 SETMBR R19 K31 R20
0x884C0111, // 0069 GETMBR R19 R0 K17
0x88500121, // 006A GETMBR R20 R0 K33
0x54560018, // 006B LDINT R21 25
0x28502815, // 006C GE R20 R20 R21
0x78520001, // 006D JMPF R20 #0070
0x5C501C00, // 006E MOVE R20 R14
0x70020000, // 006F JMP #0071
0x5C501E00, // 0070 MOVE R20 R15
0x904E4014, // 0071 SETMBR R19 K32 R20
0xB84E0000, // 0072 GETNGBL R19 K0
0x8C4C2722, // 0073 GETMET R19 R19 K34
0x8854011D, // 0074 GETMBR R21 R0 K29
0x88542B1E, // 0075 GETMBR R21 R21 K30
0x8858011D, // 0076 GETMBR R22 R0 K29
0x88582D1F, // 0077 GETMBR R22 R22 K31
0x005C1208, // 0078 ADD R23 R9 R8
0x085E4617, // 0079 MUL R23 K35 R23
0x005C2E0A, // 007A ADD R23 R23 R10
0x58600023, // 007B LDCONST R24 K35
0x54660167, // 007C LDINT R25 360
0x5C681600, // 007D MOVE R26 R11
0x886C0111, // 007E GETMBR R27 R0 K17
0x7C4C1000, // 007F CALL R19 8
0x884C0111, // 0080 GETMBR R19 R0 K17
0x88500121, // 0081 GETMBR R20 R0 K33
0x54560031, // 0082 LDINT R21 50
0x28502815, // 0083 GE R20 R20 R21
0x78520001, // 0084 JMPF R20 #0087
0x5C501C00, // 0085 MOVE R20 R14
0x70020000, // 0086 JMP #0088
0x5C501E00, // 0087 MOVE R20 R15
0x904E4014, // 0088 SETMBR R19 K32 R20
0xB84E0000, // 0089 GETNGBL R19 K0
0x8C4C2722, // 008A GETMET R19 R19 K34
0x8854011D, // 008B GETMBR R21 R0 K29
0x88542B1E, // 008C GETMBR R21 R21 K30
0x8858011D, // 008D GETMBR R22 R0 K29
0x88582D1F, // 008E GETMBR R22 R22 K31
0x005C1208, // 008F ADD R23 R9 R8
0x085E2A17, // 0090 MUL R23 K21 R23
0x005C2E0A, // 0091 ADD R23 R23 R10
0x045C2F15, // 0092 SUB R23 R23 K21
0x5462010D, // 0093 LDINT R24 270
0x04603012, // 0094 SUB R24 R24 R18
0x5466010D, // 0095 LDINT R25 270
0x00643212, // 0096 ADD R25 R25 R18
0x5C681600, // 0097 MOVE R26 R11
0x886C0111, // 0098 GETMBR R27 R0 K17
0x7C4C1000, // 0099 CALL R19 8
0x884C0111, // 009A GETMBR R19 R0 K17
0x88500121, // 009B GETMBR R20 R0 K33
0x5456004A, // 009C LDINT R21 75
0x28502815, // 009D GE R20 R20 R21
0x78520001, // 009E JMPF R20 #00A1
0x5C501C00, // 009F MOVE R20 R14
0x70020000, // 00A0 JMP #00A2
0x5C501E00, // 00A1 MOVE R20 R15
0x904E4014, // 00A2 SETMBR R19 K32 R20
0xB84E0000, // 00A3 GETNGBL R19 K0
0x8C4C2722, // 00A4 GETMET R19 R19 K34
0x8854011D, // 00A5 GETMBR R21 R0 K29
0x88542B1E, // 00A6 GETMBR R21 R21 K30
0x8858011D, // 00A7 GETMBR R22 R0 K29
0x88582D1F, // 00A8 GETMBR R22 R22 K31
0x005C1208, // 00A9 ADD R23 R9 R8
0x085E0E17, // 00AA MUL R23 K7 R23
0x005C2E0A, // 00AB ADD R23 R23 R10
0x045C2F07, // 00AC SUB R23 R23 K7
0x5462010D, // 00AD LDINT R24 270
0x04603012, // 00AE SUB R24 R24 R18
0x5466010D, // 00AF LDINT R25 270
0x00643212, // 00B0 ADD R25 R25 R18
0x5C681600, // 00B1 MOVE R26 R11
0x886C0111, // 00B2 GETMBR R27 R0 K17
0x7C4C1000, // 00B3 CALL R19 8
0x80000000, // 00B4 RET 0
0x782E0095, // 001E JMPF R11 #00B5
0xB82E0000, // 001F GETNGBL R11 K0
0x8C2C170A, // 0020 GETMET R11 R11 K10
0x8834050B, // 0021 GETMBR R13 R2 K11
0x7C2C0400, // 0022 CALL R11 2
0x8C30010C, // 0023 GETMET R12 R0 K12
0x8838010A, // 0024 GETMBR R14 R0 K10
0x7C300400, // 0025 CALL R12 2
0x8830010A, // 0026 GETMBR R12 R0 K10
0x8830190D, // 0027 GETMBR R12 R12 K13
0x8834010A, // 0028 GETMBR R13 R0 K10
0x88341B0E, // 0029 GETMBR R13 R13 K14
0xB83A0000, // 002A GETNGBL R14 K0
0x8C381D0F, // 002B GETMET R14 R14 K15
0x88400110, // 002C GETMBR R16 R0 K16
0x7C380400, // 002D CALL R14 2
0x8C380111, // 002E GETMET R14 R0 K17
0xB8420000, // 002F GETNGBL R16 K0
0x88402112, // 0030 GETMBR R16 R16 K18
0x88440110, // 0031 GETMBR R17 R0 K16
0x7C380600, // 0032 CALL R14 3
0x88380110, // 0033 GETMBR R14 R0 K16
0x903A2714, // 0034 SETMBR R14 K19 K20
0x88380110, // 0035 GETMBR R14 R0 K16
0x903A2B14, // 0036 SETMBR R14 K21 K20
0x88380110, // 0037 GETMBR R14 R0 K16
0x083C1308, // 0038 MUL R15 R9 K8
0x003C1F14, // 0039 ADD R15 R15 K20
0x54420003, // 003A LDINT R16 4
0x0C3C1E10, // 003B DIV R15 R15 R16
0x903A2C0F, // 003C SETMBR R14 K22 R15
0x8C380117, // 003D GETMET R14 R0 K23
0xB8420000, // 003E GETNGBL R16 K0
0x88402112, // 003F GETMBR R16 R16 K18
0xB8460000, // 0040 GETNGBL R17 K0
0x88442318, // 0041 GETMBR R17 R17 K24
0x30402011, // 0042 OR R16 R16 R17
0x7C380400, // 0043 CALL R14 2
0x8C3C0119, // 0044 GETMET R15 R0 K25
0xB8460000, // 0045 GETNGBL R17 K0
0x88442312, // 0046 GETMBR R17 R17 K18
0xB84A0000, // 0047 GETNGBL R18 K0
0x88482518, // 0048 GETMBR R18 R18 K24
0x30442212, // 0049 OR R17 R17 R18
0x7C3C0400, // 004A CALL R15 2
0x04400C09, // 004B SUB R16 R6 R9
0x0C440F07, // 004C DIV R17 R7 K7
0x0444220A, // 004D SUB R17 R17 R10
0x60480009, // 004E GETGBL R18 G9
0x544E0059, // 004F LDINT R19 90
0x8C50091A, // 0050 GETMET R20 R4 K26
0x8C58091B, // 0051 GETMET R22 R4 K27
0x6060000A, // 0052 GETGBL R24 G10
0x5C642200, // 0053 MOVE R25 R17
0x7C600200, // 0054 CALL R24 1
0x6064000A, // 0055 GETGBL R25 G10
0x5C682000, // 0056 MOVE R26 R16
0x7C640200, // 0057 CALL R25 1
0x0C603019, // 0058 DIV R24 R24 R25
0x7C580400, // 0059 CALL R22 2
0x7C500400, // 005A CALL R20 2
0x044C2614, // 005B SUB R19 R19 R20
0x7C480200, // 005C CALL R18 1
0x544E002C, // 005D LDINT R19 45
0x244C2413, // 005E GT R19 R18 R19
0x784E0000, // 005F JMPF R19 #0061
0x544A002C, // 0060 LDINT R18 45
0x884C011C, // 0061 GETMBR R19 R0 K28
0x0C500F07, // 0062 DIV R20 R7 K7
0x00501814, // 0063 ADD R20 R12 R20
0x904E3A14, // 0064 SETMBR R19 K29 R20
0x884C011C, // 0065 GETMBR R19 R0 K28
0x00501A06, // 0066 ADD R20 R13 R6
0x04502914, // 0067 SUB R20 R20 K20
0x0450280A, // 0068 SUB R20 R20 R10
0x904E3C14, // 0069 SETMBR R19 K30 R20
0x884C0110, // 006A GETMBR R19 R0 K16
0x88500120, // 006B GETMBR R20 R0 K32
0x54560018, // 006C LDINT R21 25
0x28502815, // 006D GE R20 R20 R21
0x78520001, // 006E JMPF R20 #0071
0x5C501C00, // 006F MOVE R20 R14
0x70020000, // 0070 JMP #0072
0x5C501E00, // 0071 MOVE R20 R15
0x904E3E14, // 0072 SETMBR R19 K31 R20
0xB84E0000, // 0073 GETNGBL R19 K0
0x8C4C2721, // 0074 GETMET R19 R19 K33
0x8854011C, // 0075 GETMBR R21 R0 K28
0x88542B1D, // 0076 GETMBR R21 R21 K29
0x8858011C, // 0077 GETMBR R22 R0 K28
0x88582D1E, // 0078 GETMBR R22 R22 K30
0x005C1208, // 0079 ADD R23 R9 R8
0x085E4417, // 007A MUL R23 K34 R23
0x005C2E0A, // 007B ADD R23 R23 R10
0x58600022, // 007C LDCONST R24 K34
0x54660167, // 007D LDINT R25 360
0x5C681600, // 007E MOVE R26 R11
0x886C0110, // 007F GETMBR R27 R0 K16
0x7C4C1000, // 0080 CALL R19 8
0x884C0110, // 0081 GETMBR R19 R0 K16
0x88500120, // 0082 GETMBR R20 R0 K32
0x54560031, // 0083 LDINT R21 50
0x28502815, // 0084 GE R20 R20 R21
0x78520001, // 0085 JMPF R20 #0088
0x5C501C00, // 0086 MOVE R20 R14
0x70020000, // 0087 JMP #0089
0x5C501E00, // 0088 MOVE R20 R15
0x904E3E14, // 0089 SETMBR R19 K31 R20
0xB84E0000, // 008A GETNGBL R19 K0
0x8C4C2721, // 008B GETMET R19 R19 K33
0x8854011C, // 008C GETMBR R21 R0 K28
0x88542B1D, // 008D GETMBR R21 R21 K29
0x8858011C, // 008E GETMBR R22 R0 K28
0x88582D1E, // 008F GETMBR R22 R22 K30
0x005C1208, // 0090 ADD R23 R9 R8
0x085E2817, // 0091 MUL R23 K20 R23
0x005C2E0A, // 0092 ADD R23 R23 R10
0x045C2F14, // 0093 SUB R23 R23 K20
0x5462010D, // 0094 LDINT R24 270
0x04603012, // 0095 SUB R24 R24 R18
0x5466010D, // 0096 LDINT R25 270
0x00643212, // 0097 ADD R25 R25 R18
0x5C681600, // 0098 MOVE R26 R11
0x886C0110, // 0099 GETMBR R27 R0 K16
0x7C4C1000, // 009A CALL R19 8
0x884C0110, // 009B GETMBR R19 R0 K16
0x88500120, // 009C GETMBR R20 R0 K32
0x5456004A, // 009D LDINT R21 75
0x28502815, // 009E GE R20 R20 R21
0x78520001, // 009F JMPF R20 #00A2
0x5C501C00, // 00A0 MOVE R20 R14
0x70020000, // 00A1 JMP #00A3
0x5C501E00, // 00A2 MOVE R20 R15
0x904E3E14, // 00A3 SETMBR R19 K31 R20
0xB84E0000, // 00A4 GETNGBL R19 K0
0x8C4C2721, // 00A5 GETMET R19 R19 K33
0x8854011C, // 00A6 GETMBR R21 R0 K28
0x88542B1D, // 00A7 GETMBR R21 R21 K29
0x8858011C, // 00A8 GETMBR R22 R0 K28
0x88582D1E, // 00A9 GETMBR R22 R22 K30
0x005C1208, // 00AA ADD R23 R9 R8
0x085E0E17, // 00AB MUL R23 K7 R23
0x005C2E0A, // 00AC ADD R23 R23 R10
0x045C2F07, // 00AD SUB R23 R23 K7
0x5462010D, // 00AE LDINT R24 270
0x04603012, // 00AF SUB R24 R24 R18
0x5466010D, // 00B0 LDINT R25 270
0x00643212, // 00B1 ADD R25 R25 R18
0x5C681600, // 00B2 MOVE R26 R11
0x886C0110, // 00B3 GETMBR R27 R0 K16
0x7C4C1000, // 00B4 CALL R19 8
0x80000000, // 00B5 RET 0
})
)
);

View File

@ -70,16 +70,16 @@ be_local_closure(init, /* name */
/* K1 */ be_nested_string("create_custom_widget", 1140594778, 20),
/* K2 */ be_nested_string("percentage", -1756136011, 10),
/* K3 */ be_nested_string("p1", -1605446022, 2),
/* K4 */ be_nested_string("lv_point", -174745506, 8),
/* K5 */ be_nested_string("p2", -1622223641, 2),
/* K6 */ be_nested_string("area", -1693507260, 4),
/* K7 */ be_nested_string("lv_area", -1773816895, 7),
/* K4 */ be_nested_string("lv", 1529997255, 2),
/* K5 */ be_nested_string("point", 414084241, 5),
/* K6 */ be_nested_string("p2", -1622223641, 2),
/* K7 */ be_nested_string("area", -1693507260, 4),
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
/* K9 */ be_nested_string("lv_draw_line_dsc", -1872162060, 16),
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[20]) { /* code */
( &(const binstruction[24]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100000, // 0002 MOVE R4 R0
@ -88,18 +88,22 @@ be_local_closure(init, /* name */
0x540A0063, // 0005 LDINT R2 100
0x90020402, // 0006 SETMBR R0 K2 R2
0xB80A0800, // 0007 GETNGBL R2 K4
0x7C080000, // 0008 CALL R2 0
0x90020602, // 0009 SETMBR R0 K3 R2
0xB80A0800, // 000A GETNGBL R2 K4
0x7C080000, // 000B CALL R2 0
0x90020A02, // 000C SETMBR R0 K5 R2
0xB80A0E00, // 000D GETNGBL R2 K7
0x7C080000, // 000E CALL R2 0
0x90020C02, // 000F SETMBR R0 K6 R2
0xB80A1200, // 0010 GETNGBL R2 K9
0x7C080000, // 0011 CALL R2 0
0x90021002, // 0012 SETMBR R0 K8 R2
0x80000000, // 0013 RET 0
0x8C080505, // 0008 GETMET R2 R2 K5
0x7C080200, // 0009 CALL R2 1
0x90020602, // 000A SETMBR R0 K3 R2
0xB80A0800, // 000B GETNGBL R2 K4
0x8C080505, // 000C GETMET R2 R2 K5
0x7C080200, // 000D CALL R2 1
0x90020C02, // 000E SETMBR R0 K6 R2
0xB80A0800, // 000F GETNGBL R2 K4
0x8C080507, // 0010 GETMET R2 R2 K7
0x7C080200, // 0011 CALL R2 1
0x90020E02, // 0012 SETMBR R0 K7 R2
0xB80A0800, // 0013 GETNGBL R2 K4
0x8C080509, // 0014 GETMET R2 R2 K9
0x7C080200, // 0015 CALL R2 1
0x90021002, // 0016 SETMBR R0 K8 R2
0x80000000, // 0017 RET 0
})
)
);
@ -143,7 +147,7 @@ be_local_closure(widget_event, /* name */
),
}),
1, /* has constants */
( &(const bvalue[38]) { /* constants */
( &(const bvalue[37]) { /* constants */
/* K0 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("obj_event_base", 1624064363, 14),
/* K2 */ be_nested_string("RES_OK", 1233817284, 6),
@ -153,39 +157,38 @@ be_local_closure(widget_event, /* name */
/* K6 */ be_const_int(3),
/* K7 */ be_const_int(2),
/* K8 */ be_nested_string("EVENT_DRAW_MAIN", 1955620614, 15),
/* K9 */ be_nested_string("lv_area", -1773816895, 7),
/* K9 */ be_nested_string("area", -1693507260, 4),
/* K10 */ be_nested_string("param", 1309554226, 5),
/* K11 */ be_nested_string("get_coords", 1044089006, 10),
/* K12 */ be_nested_string("area", -1693507260, 4),
/* K13 */ be_nested_string("x1", 274927234, 2),
/* K14 */ be_nested_string("y1", -1939865569, 2),
/* K15 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K16 */ be_nested_string("line_dsc", -200476318, 8),
/* K17 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K18 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K19 */ be_nested_string("round_start", -1345482912, 11),
/* K20 */ be_const_int(1),
/* K21 */ be_nested_string("round_end", 985288225, 9),
/* K22 */ be_nested_string("width", -1786286561, 5),
/* K23 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K24 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K25 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K26 */ be_nested_string("event_send", 598925582, 10),
/* K27 */ be_nested_string("EVENT_DRAW_PART_BEGIN", -903102272, 21),
/* K28 */ be_const_int(0),
/* K29 */ be_nested_string("color", 1031692888, 5),
/* K30 */ be_nested_string("percentage", -1756136011, 10),
/* K31 */ be_nested_string("p1", -1605446022, 2),
/* K32 */ be_nested_string("y", -66302220, 1),
/* K33 */ be_nested_string("x", -49524601, 1),
/* K34 */ be_nested_string("p2", -1622223641, 2),
/* K35 */ be_nested_string("draw_line", 1634465686, 9),
/* K36 */ be_nested_string("stop_iteration", -121173395, 14),
/* K37 */ be_nested_string("EVENT_DRAW_PART_END", -993342004, 19),
/* K12 */ be_nested_string("x1", 274927234, 2),
/* K13 */ be_nested_string("y1", -1939865569, 2),
/* K14 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K15 */ be_nested_string("line_dsc", -200476318, 8),
/* K16 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K17 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K18 */ be_nested_string("round_start", -1345482912, 11),
/* K19 */ be_const_int(1),
/* K20 */ be_nested_string("round_end", 985288225, 9),
/* K21 */ be_nested_string("width", -1786286561, 5),
/* K22 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K23 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K24 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K25 */ be_nested_string("event_send", 598925582, 10),
/* K26 */ be_nested_string("EVENT_DRAW_PART_BEGIN", -903102272, 21),
/* K27 */ be_const_int(0),
/* K28 */ be_nested_string("color", 1031692888, 5),
/* K29 */ be_nested_string("percentage", -1756136011, 10),
/* K30 */ be_nested_string("p1", -1605446022, 2),
/* K31 */ be_nested_string("y", -66302220, 1),
/* K32 */ be_nested_string("x", -49524601, 1),
/* K33 */ be_nested_string("p2", -1622223641, 2),
/* K34 */ be_nested_string("draw_line", 1634465686, 9),
/* K35 */ be_nested_string("stop_iteration", -121173395, 14),
/* K36 */ be_nested_string("EVENT_DRAW_PART_END", -993342004, 19),
}),
(be_nested_const_str("widget_event", 1951408186, 12)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[137]) { /* code */
( &(const binstruction[138]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x5C140200, // 0002 MOVE R5 R1
@ -216,113 +219,114 @@ be_local_closure(widget_event, /* name */
0xB82A0000, // 001B GETNGBL R10 K0
0x88281508, // 001C GETMBR R10 R10 K8
0x1C28060A, // 001D EQ R10 R3 R10
0x782A0068, // 001E JMPF R10 #0088
0xB82A1200, // 001F GETNGBL R10 K9
0x882C050A, // 0020 GETMBR R11 R2 K10
0x7C280200, // 0021 CALL R10 1
0x8C2C010B, // 0022 GETMET R11 R0 K11
0x8834010C, // 0023 GETMBR R13 R0 K12
0x7C2C0400, // 0024 CALL R11 2
0x882C010C, // 0025 GETMBR R11 R0 K12
0x882C170D, // 0026 GETMBR R11 R11 K13
0x8830010C, // 0027 GETMBR R12 R0 K12
0x8830190E, // 0028 GETMBR R12 R12 K14
0xB8360000, // 0029 GETNGBL R13 K0
0x8C341B0F, // 002A GETMET R13 R13 K15
0x883C0110, // 002B GETMBR R15 R0 K16
0x7C340400, // 002C CALL R13 2
0x8C340111, // 002D GETMET R13 R0 K17
0xB83E0000, // 002E GETNGBL R15 K0
0x883C1F12, // 002F GETMBR R15 R15 K18
0x88400110, // 0030 GETMBR R16 R0 K16
0x7C340600, // 0031 CALL R13 3
0x88340110, // 0032 GETMBR R13 R0 K16
0x90362714, // 0033 SETMBR R13 K19 K20
0x88340110, // 0034 GETMBR R13 R0 K16
0x90362B14, // 0035 SETMBR R13 K21 K20
0x88340110, // 0036 GETMBR R13 R0 K16
0x90362C08, // 0037 SETMBR R13 K22 R8
0x8C340117, // 0038 GETMET R13 R0 K23
0xB83E0000, // 0039 GETNGBL R15 K0
0x883C1F12, // 003A GETMBR R15 R15 K18
0xB8420000, // 003B GETNGBL R16 K0
0x88402118, // 003C GETMBR R16 R16 K24
0x303C1E10, // 003D OR R15 R15 R16
0x7C340400, // 003E CALL R13 2
0x8C380119, // 003F GETMET R14 R0 K25
0xB8420000, // 0040 GETNGBL R16 K0
0x88402112, // 0041 GETMBR R16 R16 K18
0xB8460000, // 0042 GETNGBL R17 K0
0x88442318, // 0043 GETMBR R17 R17 K24
0x30402011, // 0044 OR R16 R16 R17
0x7C380400, // 0045 CALL R14 2
0xB83E0000, // 0046 GETNGBL R15 K0
0x8C3C1F1A, // 0047 GETMET R15 R15 K26
0x5C440000, // 0048 MOVE R17 R0
0xB84A0000, // 0049 GETNGBL R18 K0
0x8848251B, // 004A GETMBR R18 R18 K27
0x884C0110, // 004B GETMBR R19 R0 K16
0x7C3C0800, // 004C CALL R15 4
0x603C0010, // 004D GETGBL R15 G16
0x40423906, // 004E CONNECT R16 K28 K6
0x7C3C0200, // 004F CALL R15 1
0xA802002C, // 0050 EXBLK 0 #007E
0x5C401E00, // 0051 MOVE R16 R15
0x7C400000, // 0052 CALL R16 0
0x88440110, // 0053 GETMBR R17 R0 K16
0x8848011E, // 0054 GETMBR R18 R0 K30
0x004C2114, // 0055 ADD R19 R16 K20
0x54520013, // 0056 LDINT R20 20
0x084C2614, // 0057 MUL R19 R19 R20
0x28482413, // 0058 GE R18 R18 R19
0x784A0001, // 0059 JMPF R18 #005C
0x5C481A00, // 005A MOVE R18 R13
0x70020000, // 005B JMP #005D
0x5C481C00, // 005C MOVE R18 R14
0x90463A12, // 005D SETMBR R17 K29 R18
0x8844011F, // 005E GETMBR R17 R0 K31
0x00481805, // 005F ADD R18 R12 R5
0x04482514, // 0060 SUB R18 R18 K20
0x04482409, // 0061 SUB R18 R18 R9
0x90464012, // 0062 SETMBR R17 K32 R18
0x8844011F, // 0063 GETMBR R17 R0 K31
0x00481007, // 0064 ADD R18 R8 R7
0x08482012, // 0065 MUL R18 R16 R18
0x00481612, // 0066 ADD R18 R11 R18
0x00482409, // 0067 ADD R18 R18 R9
0x90464212, // 0068 SETMBR R17 K33 R18
0x88440122, // 0069 GETMBR R17 R0 K34
0x044A0C10, // 006A SUB R18 K6 R16
0x044C0A08, // 006B SUB R19 R5 R8
0x08482413, // 006C MUL R18 R18 R19
0x544E0003, // 006D LDINT R19 4
0x0C482413, // 006E DIV R18 R18 R19
0x00481812, // 006F ADD R18 R12 R18
0x00482409, // 0070 ADD R18 R18 R9
0x90464012, // 0071 SETMBR R17 K32 R18
0x88440122, // 0072 GETMBR R17 R0 K34
0x8848011F, // 0073 GETMBR R18 R0 K31
0x88482521, // 0074 GETMBR R18 R18 K33
0x90464212, // 0075 SETMBR R17 K33 R18
0xB8460000, // 0076 GETNGBL R17 K0
0x8C442323, // 0077 GETMET R17 R17 K35
0x884C011F, // 0078 GETMBR R19 R0 K31
0x88500122, // 0079 GETMBR R20 R0 K34
0x5C541400, // 007A MOVE R21 R10
0x88580110, // 007B GETMBR R22 R0 K16
0x7C440A00, // 007C CALL R17 5
0x7001FFD2, // 007D JMP #0051
0x583C0024, // 007E LDCONST R15 K36
0xAC3C0200, // 007F CATCH R15 1 0
0xB0080000, // 0080 RAISE 2 R0 R0
0xB83E0000, // 0081 GETNGBL R15 K0
0x8C3C1F1A, // 0082 GETMET R15 R15 K26
0x5C440000, // 0083 MOVE R17 R0
0xB84A0000, // 0084 GETNGBL R18 K0
0x88482525, // 0085 GETMBR R18 R18 K37
0x884C0110, // 0086 GETMBR R19 R0 K16
0x7C3C0800, // 0087 CALL R15 4
0x80000000, // 0088 RET 0
0x782A0069, // 001E JMPF R10 #0089
0xB82A0000, // 001F GETNGBL R10 K0
0x8C281509, // 0020 GETMET R10 R10 K9
0x8830050A, // 0021 GETMBR R12 R2 K10
0x7C280400, // 0022 CALL R10 2
0x8C2C010B, // 0023 GETMET R11 R0 K11
0x88340109, // 0024 GETMBR R13 R0 K9
0x7C2C0400, // 0025 CALL R11 2
0x882C0109, // 0026 GETMBR R11 R0 K9
0x882C170C, // 0027 GETMBR R11 R11 K12
0x88300109, // 0028 GETMBR R12 R0 K9
0x8830190D, // 0029 GETMBR R12 R12 K13
0xB8360000, // 002A GETNGBL R13 K0
0x8C341B0E, // 002B GETMET R13 R13 K14
0x883C010F, // 002C GETMBR R15 R0 K15
0x7C340400, // 002D CALL R13 2
0x8C340110, // 002E GETMET R13 R0 K16
0xB83E0000, // 002F GETNGBL R15 K0
0x883C1F11, // 0030 GETMBR R15 R15 K17
0x8840010F, // 0031 GETMBR R16 R0 K15
0x7C340600, // 0032 CALL R13 3
0x8834010F, // 0033 GETMBR R13 R0 K15
0x90362513, // 0034 SETMBR R13 K18 K19
0x8834010F, // 0035 GETMBR R13 R0 K15
0x90362913, // 0036 SETMBR R13 K20 K19
0x8834010F, // 0037 GETMBR R13 R0 K15
0x90362A08, // 0038 SETMBR R13 K21 R8
0x8C340116, // 0039 GETMET R13 R0 K22
0xB83E0000, // 003A GETNGBL R15 K0
0x883C1F11, // 003B GETMBR R15 R15 K17
0xB8420000, // 003C GETNGBL R16 K0
0x88402117, // 003D GETMBR R16 R16 K23
0x303C1E10, // 003E OR R15 R15 R16
0x7C340400, // 003F CALL R13 2
0x8C380118, // 0040 GETMET R14 R0 K24
0xB8420000, // 0041 GETNGBL R16 K0
0x88402111, // 0042 GETMBR R16 R16 K17
0xB8460000, // 0043 GETNGBL R17 K0
0x88442317, // 0044 GETMBR R17 R17 K23
0x30402011, // 0045 OR R16 R16 R17
0x7C380400, // 0046 CALL R14 2
0xB83E0000, // 0047 GETNGBL R15 K0
0x8C3C1F19, // 0048 GETMET R15 R15 K25
0x5C440000, // 0049 MOVE R17 R0
0xB84A0000, // 004A GETNGBL R18 K0
0x8848251A, // 004B GETMBR R18 R18 K26
0x884C010F, // 004C GETMBR R19 R0 K15
0x7C3C0800, // 004D CALL R15 4
0x603C0010, // 004E GETGBL R15 G16
0x40423706, // 004F CONNECT R16 K27 K6
0x7C3C0200, // 0050 CALL R15 1
0xA802002C, // 0051 EXBLK 0 #007F
0x5C401E00, // 0052 MOVE R16 R15
0x7C400000, // 0053 CALL R16 0
0x8844010F, // 0054 GETMBR R17 R0 K15
0x8848011D, // 0055 GETMBR R18 R0 K29
0x004C2113, // 0056 ADD R19 R16 K19
0x54520013, // 0057 LDINT R20 20
0x084C2614, // 0058 MUL R19 R19 R20
0x28482413, // 0059 GE R18 R18 R19
0x784A0001, // 005A JMPF R18 #005D
0x5C481A00, // 005B MOVE R18 R13
0x70020000, // 005C JMP #005E
0x5C481C00, // 005D MOVE R18 R14
0x90463812, // 005E SETMBR R17 K28 R18
0x8844011E, // 005F GETMBR R17 R0 K30
0x00481805, // 0060 ADD R18 R12 R5
0x04482513, // 0061 SUB R18 R18 K19
0x04482409, // 0062 SUB R18 R18 R9
0x90463E12, // 0063 SETMBR R17 K31 R18
0x8844011E, // 0064 GETMBR R17 R0 K30
0x00481007, // 0065 ADD R18 R8 R7
0x08482012, // 0066 MUL R18 R16 R18
0x00481612, // 0067 ADD R18 R11 R18
0x00482409, // 0068 ADD R18 R18 R9
0x90464012, // 0069 SETMBR R17 K32 R18
0x88440121, // 006A GETMBR R17 R0 K33
0x044A0C10, // 006B SUB R18 K6 R16
0x044C0A08, // 006C SUB R19 R5 R8
0x08482413, // 006D MUL R18 R18 R19
0x544E0003, // 006E LDINT R19 4
0x0C482413, // 006F DIV R18 R18 R19
0x00481812, // 0070 ADD R18 R12 R18
0x00482409, // 0071 ADD R18 R18 R9
0x90463E12, // 0072 SETMBR R17 K31 R18
0x88440121, // 0073 GETMBR R17 R0 K33
0x8848011E, // 0074 GETMBR R18 R0 K30
0x88482520, // 0075 GETMBR R18 R18 K32
0x90464012, // 0076 SETMBR R17 K32 R18
0xB8460000, // 0077 GETNGBL R17 K0
0x8C442322, // 0078 GETMET R17 R17 K34
0x884C011E, // 0079 GETMBR R19 R0 K30
0x88500121, // 007A GETMBR R20 R0 K33
0x5C541400, // 007B MOVE R21 R10
0x8858010F, // 007C GETMBR R22 R0 K15
0x7C440A00, // 007D CALL R17 5
0x7001FFD2, // 007E JMP #0052
0x583C0023, // 007F LDCONST R15 K35
0xAC3C0200, // 0080 CATCH R15 1 0
0xB0080000, // 0081 RAISE 2 R0 R0
0xB83E0000, // 0082 GETNGBL R15 K0
0x8C3C1F19, // 0083 GETMET R15 R15 K25
0x5C440000, // 0084 MOVE R17 R0
0xB84A0000, // 0085 GETNGBL R18 K0
0x88482524, // 0086 GETMBR R18 R18 K36
0x884C010F, // 0087 GETMBR R19 R0 K15
0x7C3C0800, // 0088 CALL R15 4
0x80000000, // 0089 RET 0
})
)
);

File diff suppressed because it is too large Load Diff

View File

@ -23,8 +23,8 @@ be_local_closure(init, /* name */
( &(const bvalue[18]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("set_style_line_color", -629728320, 20),
/* K2 */ be_nested_string("lv_color", 1419148319, 8),
/* K3 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv", 1529997255, 2),
/* K3 */ be_nested_string("color", 1031692888, 5),
/* K4 */ be_nested_string("COLOR_WHITE", -1758096026, 11),
/* K5 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K6 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
@ -42,7 +42,7 @@ be_local_closure(init, /* name */
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[65]) { /* code */
( &(const binstruction[67]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
@ -51,63 +51,65 @@ be_local_closure(init, /* name */
0x7C080400, // 0005 CALL R2 2
0x8C080101, // 0006 GETMET R2 R0 K1
0xB8120400, // 0007 GETNGBL R4 K2
0xB8160600, // 0008 GETNGBL R5 K3
0x88140B04, // 0009 GETMBR R5 R5 K4
0x7C100200, // 000A CALL R4 1
0xB8160600, // 000B GETNGBL R5 K3
0x88140B05, // 000C GETMBR R5 R5 K5
0xB81A0600, // 000D GETNGBL R6 K3
0x88180D06, // 000E GETMBR R6 R6 K6
0x30140A06, // 000F OR R5 R5 R6
0x7C080600, // 0010 CALL R2 3
0x8C080107, // 0011 GETMET R2 R0 K7
0xB8120400, // 0012 GETNGBL R4 K2
0xB8160600, // 0013 GETNGBL R5 K3
0x88140B08, // 0014 GETMBR R5 R5 K8
0x7C100200, // 0015 CALL R4 1
0xB8160600, // 0016 GETNGBL R5 K3
0x88140B05, // 0017 GETMBR R5 R5 K5
0xB81A0600, // 0018 GETNGBL R6 K3
0x88180D06, // 0019 GETMBR R6 R6 K6
0x30140A06, // 001A OR R5 R5 R6
0x7C080600, // 001B CALL R2 3
0x4C080000, // 001C LDNIL R2
0x20080202, // 001D NE R2 R1 R2
0x780A0020, // 001E JMPF R2 #0040
0x8C080309, // 001F GETMET R2 R1 K9
0x7C080200, // 0020 CALL R2 1
0x8C0C030A, // 0021 GETMET R3 R1 K10
0xB8160600, // 0022 GETNGBL R5 K3
0x88140B05, // 0023 GETMBR R5 R5 K5
0xB81A0600, // 0024 GETNGBL R6 K3
0x88180D06, // 0025 GETMBR R6 R6 K6
0x30140A06, // 0026 OR R5 R5 R6
0x7C0C0400, // 0027 CALL R3 2
0x8C10010B, // 0028 GETMET R4 R0 K11
0x5C180400, // 0029 MOVE R6 R2
0x7C100400, // 002A CALL R4 2
0x54120003, // 002B LDINT R4 4
0x08100404, // 002C MUL R4 R2 R4
0x0C10090C, // 002D DIV R4 R4 K12
0x8C14010D, // 002E GETMET R5 R0 K13
0x5C1C0800, // 002F MOVE R7 R4
0x7C140400, // 0030 CALL R5 2
0x8C14010E, // 0031 GETMET R5 R0 K14
0x8C1C030F, // 0032 GETMET R7 R1 K15
0x7C1C0200, // 0033 CALL R7 1
0x041C0E04, // 0034 SUB R7 R7 R4
0x041C0E03, // 0035 SUB R7 R7 R3
0x7C140400, // 0036 CALL R5 2
0x8C140310, // 0037 GETMET R5 R1 K16
0x001C0604, // 0038 ADD R7 R3 R4
0x001C0F11, // 0039 ADD R7 R7 K17
0xB8220600, // 003A GETNGBL R8 K3
0x88201105, // 003B GETMBR R8 R8 K5
0xB8260600, // 003C GETNGBL R9 K3
0x88241306, // 003D GETMBR R9 R9 K6
0x30201009, // 003E OR R8 R8 R9
0x7C140600, // 003F CALL R5 3
0x80000000, // 0040 RET 0
0x8C100903, // 0008 GETMET R4 R4 K3
0xB81A0400, // 0009 GETNGBL R6 K2
0x88180D04, // 000A GETMBR R6 R6 K4
0x7C100400, // 000B CALL R4 2
0xB8160400, // 000C GETNGBL R5 K2
0x88140B05, // 000D GETMBR R5 R5 K5
0xB81A0400, // 000E GETNGBL R6 K2
0x88180D06, // 000F GETMBR R6 R6 K6
0x30140A06, // 0010 OR R5 R5 R6
0x7C080600, // 0011 CALL R2 3
0x8C080107, // 0012 GETMET R2 R0 K7
0xB8120400, // 0013 GETNGBL R4 K2
0x8C100903, // 0014 GETMET R4 R4 K3
0xB81A0400, // 0015 GETNGBL R6 K2
0x88180D08, // 0016 GETMBR R6 R6 K8
0x7C100400, // 0017 CALL R4 2
0xB8160400, // 0018 GETNGBL R5 K2
0x88140B05, // 0019 GETMBR R5 R5 K5
0xB81A0400, // 001A GETNGBL R6 K2
0x88180D06, // 001B GETMBR R6 R6 K6
0x30140A06, // 001C OR R5 R5 R6
0x7C080600, // 001D CALL R2 3
0x4C080000, // 001E LDNIL R2
0x20080202, // 001F NE R2 R1 R2
0x780A0020, // 0020 JMPF R2 #0042
0x8C080309, // 0021 GETMET R2 R1 K9
0x7C080200, // 0022 CALL R2 1
0x8C0C030A, // 0023 GETMET R3 R1 K10
0xB8160400, // 0024 GETNGBL R5 K2
0x88140B05, // 0025 GETMBR R5 R5 K5
0xB81A0400, // 0026 GETNGBL R6 K2
0x88180D06, // 0027 GETMBR R6 R6 K6
0x30140A06, // 0028 OR R5 R5 R6
0x7C0C0400, // 0029 CALL R3 2
0x8C10010B, // 002A GETMET R4 R0 K11
0x5C180400, // 002B MOVE R6 R2
0x7C100400, // 002C CALL R4 2
0x54120003, // 002D LDINT R4 4
0x08100404, // 002E MUL R4 R2 R4
0x0C10090C, // 002F DIV R4 R4 K12
0x8C14010D, // 0030 GETMET R5 R0 K13
0x5C1C0800, // 0031 MOVE R7 R4
0x7C140400, // 0032 CALL R5 2
0x8C14010E, // 0033 GETMET R5 R0 K14
0x8C1C030F, // 0034 GETMET R7 R1 K15
0x7C1C0200, // 0035 CALL R7 1
0x041C0E04, // 0036 SUB R7 R7 R4
0x041C0E03, // 0037 SUB R7 R7 R3
0x7C140400, // 0038 CALL R5 2
0x8C140310, // 0039 GETMET R5 R1 K16
0x001C0604, // 003A ADD R7 R3 R4
0x001C0F11, // 003B ADD R7 R7 K17
0xB8220400, // 003C GETNGBL R8 K2
0x88201105, // 003D GETMBR R8 R8 K5
0xB8260400, // 003E GETNGBL R9 K2
0x88241306, // 003F GETMBR R9 R9 K6
0x30201009, // 0040 OR R8 R8 R9
0x7C140600, // 0041 CALL R5 3
0x80000000, // 0042 RET 0
})
)
);

View File

@ -23,8 +23,8 @@ be_local_closure(init, /* name */
( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("set_style_line_color", -629728320, 20),
/* K2 */ be_nested_string("lv_color", 1419148319, 8),
/* K3 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv", 1529997255, 2),
/* K3 */ be_nested_string("color", 1031692888, 5),
/* K4 */ be_nested_string("COLOR_WHITE", -1758096026, 11),
/* K5 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K6 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
@ -41,7 +41,7 @@ be_local_closure(init, /* name */
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[62]) { /* code */
( &(const binstruction[64]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
@ -50,60 +50,62 @@ be_local_closure(init, /* name */
0x7C080400, // 0005 CALL R2 2
0x8C080101, // 0006 GETMET R2 R0 K1
0xB8120400, // 0007 GETNGBL R4 K2
0xB8160600, // 0008 GETNGBL R5 K3
0x88140B04, // 0009 GETMBR R5 R5 K4
0x7C100200, // 000A CALL R4 1
0xB8160600, // 000B GETNGBL R5 K3
0x88140B05, // 000C GETMBR R5 R5 K5
0xB81A0600, // 000D GETNGBL R6 K3
0x88180D06, // 000E GETMBR R6 R6 K6
0x30140A06, // 000F OR R5 R5 R6
0x7C080600, // 0010 CALL R2 3
0x8C080107, // 0011 GETMET R2 R0 K7
0xB8120400, // 0012 GETNGBL R4 K2
0xB8160600, // 0013 GETNGBL R5 K3
0x88140B08, // 0014 GETMBR R5 R5 K8
0x7C100200, // 0015 CALL R4 1
0xB8160600, // 0016 GETNGBL R5 K3
0x88140B05, // 0017 GETMBR R5 R5 K5
0xB81A0600, // 0018 GETNGBL R6 K3
0x88180D06, // 0019 GETMBR R6 R6 K6
0x30140A06, // 001A OR R5 R5 R6
0x7C080600, // 001B CALL R2 3
0x4C080000, // 001C LDNIL R2
0x20080202, // 001D NE R2 R1 R2
0x780A001D, // 001E JMPF R2 #003D
0x8C080309, // 001F GETMET R2 R1 K9
0x7C080200, // 0020 CALL R2 1
0x8C0C030A, // 0021 GETMET R3 R1 K10
0xB8160600, // 0022 GETNGBL R5 K3
0x88140B05, // 0023 GETMBR R5 R5 K5
0xB81A0600, // 0024 GETNGBL R6 K3
0x88180D06, // 0025 GETMBR R6 R6 K6
0x30140A06, // 0026 OR R5 R5 R6
0x7C0C0400, // 0027 CALL R3 2
0x8C10010B, // 0028 GETMET R4 R0 K11
0x5C180400, // 0029 MOVE R6 R2
0x7C100400, // 002A CALL R4 2
0x8C10010C, // 002B GETMET R4 R0 K12
0x5C180400, // 002C MOVE R6 R2
0x7C100400, // 002D CALL R4 2
0x8C10010D, // 002E GETMET R4 R0 K13
0x8C18030E, // 002F GETMET R6 R1 K14
0x7C180200, // 0030 CALL R6 1
0x04180C02, // 0031 SUB R6 R6 R2
0x04180C03, // 0032 SUB R6 R6 R3
0x7C100400, // 0033 CALL R4 2
0x8C10030F, // 0034 GETMET R4 R1 K15
0x00180602, // 0035 ADD R6 R3 R2
0x00180D10, // 0036 ADD R6 R6 K16
0xB81E0600, // 0037 GETNGBL R7 K3
0x881C0F05, // 0038 GETMBR R7 R7 K5
0xB8220600, // 0039 GETNGBL R8 K3
0x88201106, // 003A GETMBR R8 R8 K6
0x301C0E08, // 003B OR R7 R7 R8
0x7C100600, // 003C CALL R4 3
0x80000000, // 003D RET 0
0x8C100903, // 0008 GETMET R4 R4 K3
0xB81A0400, // 0009 GETNGBL R6 K2
0x88180D04, // 000A GETMBR R6 R6 K4
0x7C100400, // 000B CALL R4 2
0xB8160400, // 000C GETNGBL R5 K2
0x88140B05, // 000D GETMBR R5 R5 K5
0xB81A0400, // 000E GETNGBL R6 K2
0x88180D06, // 000F GETMBR R6 R6 K6
0x30140A06, // 0010 OR R5 R5 R6
0x7C080600, // 0011 CALL R2 3
0x8C080107, // 0012 GETMET R2 R0 K7
0xB8120400, // 0013 GETNGBL R4 K2
0x8C100903, // 0014 GETMET R4 R4 K3
0xB81A0400, // 0015 GETNGBL R6 K2
0x88180D08, // 0016 GETMBR R6 R6 K8
0x7C100400, // 0017 CALL R4 2
0xB8160400, // 0018 GETNGBL R5 K2
0x88140B05, // 0019 GETMBR R5 R5 K5
0xB81A0400, // 001A GETNGBL R6 K2
0x88180D06, // 001B GETMBR R6 R6 K6
0x30140A06, // 001C OR R5 R5 R6
0x7C080600, // 001D CALL R2 3
0x4C080000, // 001E LDNIL R2
0x20080202, // 001F NE R2 R1 R2
0x780A001D, // 0020 JMPF R2 #003F
0x8C080309, // 0021 GETMET R2 R1 K9
0x7C080200, // 0022 CALL R2 1
0x8C0C030A, // 0023 GETMET R3 R1 K10
0xB8160400, // 0024 GETNGBL R5 K2
0x88140B05, // 0025 GETMBR R5 R5 K5
0xB81A0400, // 0026 GETNGBL R6 K2
0x88180D06, // 0027 GETMBR R6 R6 K6
0x30140A06, // 0028 OR R5 R5 R6
0x7C0C0400, // 0029 CALL R3 2
0x8C10010B, // 002A GETMET R4 R0 K11
0x5C180400, // 002B MOVE R6 R2
0x7C100400, // 002C CALL R4 2
0x8C10010C, // 002D GETMET R4 R0 K12
0x5C180400, // 002E MOVE R6 R2
0x7C100400, // 002F CALL R4 2
0x8C10010D, // 0030 GETMET R4 R0 K13
0x8C18030E, // 0031 GETMET R6 R1 K14
0x7C180200, // 0032 CALL R6 1
0x04180C02, // 0033 SUB R6 R6 R2
0x04180C03, // 0034 SUB R6 R6 R3
0x7C100400, // 0035 CALL R4 2
0x8C10030F, // 0036 GETMET R4 R1 K15
0x00180602, // 0037 ADD R6 R3 R2
0x00180D10, // 0038 ADD R6 R6 K16
0xB81E0400, // 0039 GETNGBL R7 K2
0x881C0F05, // 003A GETMBR R7 R7 K5
0xB8220400, // 003B GETNGBL R8 K2
0x88201106, // 003C GETMBR R8 R8 K6
0x301C0E08, // 003D OR R7 R7 R8
0x7C100600, // 003E CALL R4 3
0x80000000, // 003F RET 0
})
)
);

View File

@ -32,7 +32,7 @@ be_extern_native_module(webserver);
be_extern_native_module(flash);
be_extern_native_module(path);
#ifdef USE_LVGL
be_extern_native_module(lvgl);
be_extern_native_module(lv);
#endif // USE_LVGL
/* user-defined modules declare start */
@ -88,7 +88,7 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = {
#endif
#ifdef USE_LVGL
&be_native_module(lvgl),
&be_native_module(lv),
#endif // USE_LVGL
#ifdef USE_ENERGY_SENSOR
&be_native_module(energy),
@ -124,8 +124,8 @@ extern void be_load_driver_audio_lib(bvm *vm);
#endif
#ifdef USE_LVGL
extern void be_load_lvgl_color_lib(bvm *vm);
extern void be_load_lvgl_font_lib(bvm *vm);
extern void be_load_lv_color_class(bvm *vm);
extern void be_load_lv_font_class(bvm *vm);
extern void be_load_lv_all_lib(bvm *vm);
extern void be_load_ctypes_lvgl_definitions_lib(bvm *vm);
extern void be_load_LVGL_glob_class(bvm *vm);
@ -176,8 +176,8 @@ BERRY_API void be_load_custom_libs(bvm *vm)
#endif
#ifdef USE_LVGL
// LVGL
be_load_lvgl_color_lib(vm);
be_load_lvgl_font_lib(vm);
be_load_lv_color_class(vm);
be_load_lv_font_class(vm);
be_load_lv_all_lib(vm);
be_load_ctypes_lvgl_definitions_lib(vm);

View File

@ -2,7 +2,7 @@
-
--#
class lv_clock_icon: lv_label
class lv_clock_icon: lv.label
var hour, minute, sec
def init(parent, copy)
@ -22,7 +22,7 @@ class lv_clock_icon: lv_label
self.set_x(parent.get_width() - w - pad_right - 3)
parent.set_style_pad_right(pad_right + w + 6, lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv_color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
end
tasmota.add_driver(self)

View File

@ -2,7 +2,7 @@
-
--#
class lv_signal_arcs : lv_obj
class lv_signal_arcs : lv.obj
var percentage # value to display, range 0..100
var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
@ -12,10 +12,10 @@ class lv_signal_arcs : lv_obj
# own values
self.percentage = 100
# pre-allocate buffers
self.p1 = lv_point()
self.p2 = lv_point()
self.area = lv_area()
self.line_dsc = lv_draw_line_dsc()
self.p1 = lv.point()
self.p2 = lv.point()
self.area = lv.area()
self.line_dsc = lv.draw_line_dsc()
end
def widget_event(cl, event)
@ -35,14 +35,14 @@ class lv_signal_arcs : lv_obj
#print("inter_bar", inter_bar, "bar", bar, "bar_offset", bar_offset)
if code == lv.EVENT_DRAW_MAIN
var clip_area = lv_area(event.param)
var clip_area = lv.area(event.param)
# get coordinates of object
self.get_coords(self.area)
var x_ofs = self.area.x1
var y_ofs = self.area.y1
lv.draw_line_dsc_init(self.line_dsc) # initialize lv_draw_line_dsc structure
lv.draw_line_dsc_init(self.line_dsc) # initialize lv.draw_line_dsc structure
self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc) # copy the current values
self.line_dsc.round_start = 1
@ -118,8 +118,8 @@ end
class lv_wifi_arcs_icon: lv_wifi_arcs
def init(parent)
super(self).init(parent)
self.set_style_line_color(lv_color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv_color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_line_color(lv.color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
if parent != nil
var parent_height = parent.get_height()
var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)

View File

@ -2,7 +2,7 @@
-
--#
class lv_signal_bars : lv_obj
class lv_signal_bars : lv.obj
var percentage # value to display, range 0..100
var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
@ -12,10 +12,10 @@ class lv_signal_bars : lv_obj
# own values
self.percentage = 100
# pre-allocate buffers
self.p1 = lv_point()
self.p2 = lv_point()
self.area = lv_area()
self.line_dsc = lv_draw_line_dsc()
self.p1 = lv.point()
self.p2 = lv.point()
self.area = lv.area()
self.line_dsc = lv.draw_line_dsc()
end
def widget_event(cl, event)
@ -33,7 +33,7 @@ class lv_signal_bars : lv_obj
var bar_offset = bar / 2
if code == lv.EVENT_DRAW_MAIN
var clip_area = lv_area(event.param)
var clip_area = lv.area(event.param)
# get coordinates of object
self.get_coords(self.area)
@ -104,8 +104,8 @@ end
class lv_wifi_bars_icon: lv_wifi_bars
def init(parent)
super(self).init(parent)
self.set_style_line_color(lv_color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv_color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_line_color(lv.color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
if parent != nil
var parent_height = parent.get_height()
var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)

View File

@ -4,9 +4,9 @@
#- this limits the globals to a single value '_lvgl' -#
class LVGL_glob
# all variables are lazily initialized to reduce the memory pressure. Until they are used, they consume zero memory
var cb_obj # map between a native C pointer (as int) and the corresponding lv_* berry object, also helps marking the objects as non-gc-able
var cb_obj # map between a native C pointer (as int) and the corresponding lv.lv_* berry object, also helps marking the objects as non-gc-able
var cb_event_closure # mapping for event closures per LVGL native pointer (int)
var event_cb # native callback for lv_event
var event_cb # native callback for lv.lv_event
#- below are native callbacks mapped to a closure to a method of this instance -#
var null_cb # cb called if type is not supported
@ -20,7 +20,7 @@ class LVGL_glob
#- this is the fallback callback, if the event is unknown or unsupported -#
static cb_do_nothing = def() print("LVG: call to unsupported callback") end
#- register an lv_* object in the mapping -#
#- register an lv.lv_* object in the mapping -#
def register_obj(obj)
if self.cb_obj == nil self.cb_obj = {} end
var native_ptr = int(obj._p)
@ -36,7 +36,7 @@ class LVGL_glob
def lvgl_event_dispatch(event_ptr)
import introspect
var event = lv_event(introspect.toptr(event_ptr))
var event = lv.lv_event(introspect.toptr(event_ptr))
var target = event.target
var f = self.cb_event_closure[target]
@ -65,7 +65,7 @@ class LVGL_glob
def widget_ctor_impl(cl_ptr, obj_ptr)
import introspect
var cl = lv_obj_class(cl_ptr)
var cl = lv.lv_obj_class(cl_ptr)
var obj = self.get_object_from_ptr(obj_ptr)
if self.cb_obj.find(obj) obj = self.cb_obj[obj] end
# print("widget_ctor_impl", cl, obj)
@ -75,7 +75,7 @@ class LVGL_glob
end
def widget_dtor_impl(cl_ptr, obj_ptr)
import introspect
var cl = lv_obj_class(cl_ptr)
var cl = lv.lv_obj_class(cl_ptr)
var obj = self.get_object_from_ptr(obj_ptr)
# print("widget_dtor_impl", cl, obj)
if type(obj) == 'instance' && introspect.get(obj, 'widget_destructor')
@ -84,8 +84,8 @@ class LVGL_glob
end
def widget_event_impl(cl_ptr, e_ptr)
import introspect
var cl = lv_obj_class(cl_ptr)
var event = lv_event(e_ptr)
var cl = lv.lv_obj_class(cl_ptr)
var event = lv.lv_event(e_ptr)
var obj_ptr = event.target
var obj = self.get_object_from_ptr(int(obj_ptr))
if type(obj) == 'instance' && introspect.get(obj, 'widget_event')
@ -101,8 +101,8 @@ class LVGL_glob
if self.widget_event_cb == nil self.widget_event_cb = tasmota.gen_cb(/ cl, e -> self.widget_event_impl(cl, e)) end
if self.widget_struct_default == nil
self.widget_struct_default = lv_obj_class(lv_obj._class).copy()
self.widget_struct_default.base_class = lv_obj._class # by default, inherit from base class `lv_obj`, this can be overriden
self.widget_struct_default = lv.lv_obj_class(lv.lv_obj._class).copy()
self.widget_struct_default.base_class = lv.lv_obj._class # by default, inherit from base class `lv_obj`, this can be overriden
self.widget_struct_default.constructor_cb = self.widget_ctor_cb # set the berry cb dispatchers
self.widget_struct_default.destructor_cb = self.widget_dtor_cb
self.widget_struct_default.event_cb = self.widget_event_cb
@ -116,11 +116,11 @@ class LVGL_glob
end
#- initialize a custom widget -#
#- arg must be a subclass of lv_obj -#
#- arg must be a subclass of lv.lv_obj -#
def create_custom_widget(obj, parent)
import introspect
if !isinstance(obj, lv_obj) raise "value_error", "arg must be a subclass of lv_obj" end
if !isinstance(obj, lv.lv_obj) raise "value_error", "arg must be a subclass of lv_obj" end
if self.widget_struct_by_class == nil self.widget_struct_by_class = {} end
var obj_classname = classname(obj)
@ -150,7 +150,7 @@ end
_lvgl = LVGL_glob()
# class lv_custom_widget : lv_obj
# class lv_custom_widget : lv.lv_obj
# # static widget_width_def
# # static widget_height_def
# # static widget_editable
@ -165,10 +165,10 @@ _lvgl = LVGL_glob()
# # own values
# self.percentage = 100
# # pre-allocate buffers
# self.p1 = lv_point()
# self.p2 = lv_point()
# self.area = lv_area()
# self.line_dsc = lv_draw_line_dsc()
# self.p1 = lv.lv_point()
# self.p2 = lv.lv_point()
# self.area = lv.lv_area()
# self.line_dsc = lv.lv_draw_line_dsc()
# end
# # def widget_constructor(cl)
@ -194,7 +194,7 @@ _lvgl = LVGL_glob()
# var code = event.code
# if code == lv.EVENT_DRAW_MAIN
# var clip_area = lv_area(event.param)
# var clip_area = lv.lv_area(event.param)
# print("widget_event DRAW", clip_area.tomap())
# # lv.event_send(self, lv.EVENT_DRAW_MAIN, clip_area)
@ -203,7 +203,7 @@ _lvgl = LVGL_glob()
# var x_ofs = self.area.x1
# var y_ofs = self.area.y1
# lv.draw_line_dsc_init(self.line_dsc) # initialize lv_draw_line_dsc structure
# lv.draw_line_dsc_init(self.line_dsc) # initialize lv.lv_draw_line_dsc structure
# self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc)
# self.line_dsc.round_start = 1
@ -252,6 +252,6 @@ _lvgl = LVGL_glob()
# scr = lv.scr_act() # default screean object
# f20 = lv.montserrat_font(20) # load embedded Montserrat 20
# scr.set_style_bg_color(lv_color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
# scr.set_style_bg_color(lv.lv_color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
# w = lv_custom_widget(scr)
# w = lv_custom_widget(scr)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_arc_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_arc_create) },
{ be_const_key(_class, -1), be_const_int(&lv_arc_class) },
};
static be_define_const_map(
be_class_lv_arc_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_arc,
1,
(bclass *)&be_class_lv_obj,
lv_arc
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_bar_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_bar_create) },
{ be_const_key(_class, -1), be_const_int(&lv_bar_class) },
};
static be_define_const_map(
be_class_lv_bar_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_bar,
1,
(bclass *)&be_class_lv_obj,
lv_bar
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_btn_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_btn_create) },
{ be_const_key(_class, -1), be_const_int(&lv_btn_class) },
};
static be_define_const_map(
be_class_lv_btn_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_btn,
1,
(bclass *)&be_class_lv_obj,
lv_btn
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_btnmatrix_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_btnmatrix_create) },
{ be_const_key(_class, -1), be_const_int(&lv_btnmatrix_class) },
};
static be_define_const_map(
be_class_lv_btnmatrix_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_btnmatrix,
1,
(bclass *)&be_class_lv_obj,
lv_btnmatrix
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_canvas_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_canvas_create) },
{ be_const_key(_class, -1), be_const_int(&lv_canvas_class) },
};
static be_define_const_map(
be_class_lv_canvas_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_canvas,
1,
(bclass *)&be_class_lv_obj,
lv_canvas
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_chart_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_chart_create) },
{ be_const_key(_class, -1), be_const_int(&lv_chart_class) },
};
static be_define_const_map(
be_class_lv_chart_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_chart,
1,
(bclass *)&be_class_lv_obj,
lv_chart
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_checkbox_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_checkbox_create) },
{ be_const_key(_class, -1), be_const_int(&lv_checkbox_class) },
};
static be_define_const_map(
be_class_lv_checkbox_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_checkbox,
1,
(bclass *)&be_class_lv_obj,
lv_checkbox
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_color_map) {
{ be_const_key(toint, -1), be_const_func(lco_toint) },
{ be_const_key(tostring, 0), be_const_func(lco_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, -1), be_const_func(lco_init) },
};
static be_define_const_map(
be_class_lv_color_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_color,
1,
NULL,
lv_color
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_colorwheel_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_colorwheel_create) },
{ be_const_key(_class, -1), be_const_int(&lv_colorwheel_class) },
};
static be_define_const_map(
be_class_lv_colorwheel_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_colorwheel,
1,
(bclass *)&be_class_lv_obj,
lv_colorwheel
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_dropdown_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_dropdown_create) },
{ be_const_key(_class, -1), be_const_int(&lv_dropdown_class) },
};
static be_define_const_map(
be_class_lv_dropdown_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_dropdown,
1,
(bclass *)&be_class_lv_obj,
lv_dropdown
);

View File

@ -1,19 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_font_map) {
{ be_const_key(init, -1), be_const_func(lvbe_font_create) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
};
static be_define_const_map(
be_class_lv_font_map,
3
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_font,
1,
NULL,
lv_font
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_group_map) {
{ be_const_key(init, -1), be_const_func(lvbe_group_create) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(member, 0), be_const_func(lvx_member) },
};
static be_define_const_map(
be_class_lv_group_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_group,
1,
NULL,
lv_group
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_img_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_img_create) },
{ be_const_key(_class, -1), be_const_int(&lv_img_class) },
};
static be_define_const_map(
be_class_lv_img_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_img,
1,
(bclass *)&be_class_lv_obj,
lv_img
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_imgbtn_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_imgbtn_create) },
{ be_const_key(_class, -1), be_const_int(&lv_imgbtn_class) },
};
static be_define_const_map(
be_class_lv_imgbtn_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_imgbtn,
1,
(bclass *)&be_class_lv_obj,
lv_imgbtn
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_indev_map) {
{ be_const_key(init, -1), be_const_func(lv0_init) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(member, 0), be_const_func(lvx_member) },
};
static be_define_const_map(
be_class_lv_indev_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_indev,
1,
NULL,
lv_indev
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_label_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_label_create) },
{ be_const_key(_class, -1), be_const_int(&lv_label_class) },
};
static be_define_const_map(
be_class_lv_label_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_label,
1,
(bclass *)&be_class_lv_obj,
lv_label
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_led_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_led_create) },
{ be_const_key(_class, -1), be_const_int(&lv_led_class) },
};
static be_define_const_map(
be_class_lv_led_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_led,
1,
(bclass *)&be_class_lv_obj,
lv_led
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_line_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_line_create) },
{ be_const_key(_class, -1), be_const_int(&lv_line_class) },
};
static be_define_const_map(
be_class_lv_line_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_line,
1,
(bclass *)&be_class_lv_obj,
lv_line
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_meter_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_meter_create) },
{ be_const_key(_class, -1), be_const_int(&lv_meter_class) },
};
static be_define_const_map(
be_class_lv_meter_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_meter,
1,
(bclass *)&be_class_lv_obj,
lv_meter
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_msgbox_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_msgbox_create) },
{ be_const_key(_class, -1), be_const_int(&lv_msgbox_class) },
};
static be_define_const_map(
be_class_lv_msgbox_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_msgbox,
1,
(bclass *)&be_class_lv_obj,
lv_msgbox
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_obj_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_obj_create) },
{ be_const_key(_class, -1), be_const_int(&lv_obj_class) },
};
static be_define_const_map(
be_class_lv_obj_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_obj,
1,
NULL,
lv_obj
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_roller_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_roller_create) },
{ be_const_key(_class, -1), be_const_int(&lv_roller_class) },
};
static be_define_const_map(
be_class_lv_roller_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_roller,
1,
(bclass *)&be_class_lv_obj,
lv_roller
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_slider_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_slider_create) },
{ be_const_key(_class, -1), be_const_int(&lv_slider_class) },
};
static be_define_const_map(
be_class_lv_slider_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_slider,
1,
(bclass *)&be_class_lv_obj,
lv_slider
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_spinbox_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_spinbox_create) },
{ be_const_key(_class, -1), be_const_int(&lv_spinbox_class) },
};
static be_define_const_map(
be_class_lv_spinbox_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_spinbox,
1,
(bclass *)&be_class_lv_obj,
lv_spinbox
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_style_map) {
{ be_const_key(init, -1), be_const_func(lvs_init) },
{ be_const_key(tostring, -1), be_const_func(lvs_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(member, 0), be_const_func(lvx_member) },
};
static be_define_const_map(
be_class_lv_style_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_style,
1,
NULL,
lv_style
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_switch_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_switch_create) },
{ be_const_key(_class, -1), be_const_int(&lv_switch_class) },
};
static be_define_const_map(
be_class_lv_switch_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_switch,
1,
(bclass *)&be_class_lv_obj,
lv_switch
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_table_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_table_create) },
{ be_const_key(_class, -1), be_const_int(&lv_table_class) },
};
static be_define_const_map(
be_class_lv_table_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_table,
1,
(bclass *)&be_class_lv_obj,
lv_table
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_textarea_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_textarea_create) },
{ be_const_key(_class, -1), be_const_int(&lv_textarea_class) },
};
static be_define_const_map(
be_class_lv_textarea_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_textarea,
1,
(bclass *)&be_class_lv_obj,
lv_textarea
);

View File

@ -1,83 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(m_liblvgl_map) {
{ be_const_key(SYMBOL_NEXT, -1), be_const_str(&be_local_const_str_SYMBOL_NEXT) },
{ be_const_key(SYMBOL_GPS, -1), be_const_str(&be_local_const_str_SYMBOL_GPS) },
{ be_const_key(SYMBOL_POWER, 29), be_const_str(&be_local_const_str_SYMBOL_POWER) },
{ be_const_key(SYMBOL_WARNING, -1), be_const_str(&be_local_const_str_SYMBOL_WARNING) },
{ be_const_key(SYMBOL_MUTE, 43), be_const_str(&be_local_const_str_SYMBOL_MUTE) },
{ be_const_key(SYMBOL_UP, -1), be_const_str(&be_local_const_str_SYMBOL_UP) },
{ be_const_key(SYMBOL_SHUFFLE, -1), be_const_str(&be_local_const_str_SYMBOL_SHUFFLE) },
{ be_const_key(SYMBOL_BATTERY_3, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_3) },
{ be_const_key(SYMBOL_VOLUME_MAX, -1), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MAX) },
{ be_const_key(SYMBOL_PLUS, 31), be_const_str(&be_local_const_str_SYMBOL_PLUS) },
{ be_const_key(SYMBOL_SETTINGS, -1), be_const_str(&be_local_const_str_SYMBOL_SETTINGS) },
{ be_const_key(SYMBOL_PLAY, 58), be_const_str(&be_local_const_str_SYMBOL_PLAY) },
{ be_const_key(screenshot, 59), be_const_func(lv0_screenshot) },
{ be_const_key(SYMBOL_UPLOAD, -1), be_const_str(&be_local_const_str_SYMBOL_UPLOAD) },
{ be_const_key(SYMBOL_LEFT, -1), be_const_str(&be_local_const_str_SYMBOL_LEFT) },
{ be_const_key(load_font, -1), be_const_func(lv0_load_font) },
{ be_const_key(SYMBOL_CALL, -1), be_const_str(&be_local_const_str_SYMBOL_CALL) },
{ be_const_key(SYMBOL_KEYBOARD, -1), be_const_str(&be_local_const_str_SYMBOL_KEYBOARD) },
{ be_const_key(SYMBOL_PAUSE, 40), be_const_str(&be_local_const_str_SYMBOL_PAUSE) },
{ be_const_key(SYMBOL_DOWN, -1), be_const_str(&be_local_const_str_SYMBOL_DOWN) },
{ be_const_key(SYMBOL_BATTERY_FULL, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_FULL) },
{ be_const_key(SYMBOL_BATTERY_EMPTY, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_EMPTY) },
{ be_const_key(SYMBOL_CLOSE, -1), be_const_str(&be_local_const_str_SYMBOL_CLOSE) },
{ be_const_key(SYMBOL_PASTE, 49), be_const_str(&be_local_const_str_SYMBOL_PASTE) },
{ be_const_key(SYMBOL_RIGHT, -1), be_const_str(&be_local_const_str_SYMBOL_RIGHT) },
{ be_const_key(SYMBOL_USB, 21), be_const_str(&be_local_const_str_SYMBOL_USB) },
{ be_const_key(SYMBOL_BULLET, -1), be_const_str(&be_local_const_str_SYMBOL_BULLET) },
{ be_const_key(SYMBOL_BELL, 7), be_const_str(&be_local_const_str_SYMBOL_BELL) },
{ be_const_key(SYMBOL_WIFI, -1), be_const_str(&be_local_const_str_SYMBOL_WIFI) },
{ be_const_key(SYMBOL_SAVE, -1), be_const_str(&be_local_const_str_SYMBOL_SAVE) },
{ be_const_key(SYMBOL_DOWNLOAD, -1), be_const_str(&be_local_const_str_SYMBOL_DOWNLOAD) },
{ be_const_key(start, -1), be_const_func(lv0_start) },
{ be_const_key(SYMBOL_DIRECTORY, 28), be_const_str(&be_local_const_str_SYMBOL_DIRECTORY) },
{ be_const_key(SYMBOL_TRASH, 35), be_const_str(&be_local_const_str_SYMBOL_TRASH) },
{ be_const_key(SYMBOL_IMAGE, -1), be_const_str(&be_local_const_str_SYMBOL_IMAGE) },
{ be_const_key(SYMBOL_VOLUME_MID, 54), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MID) },
{ be_const_key(SYMBOL_STOP, 10), be_const_str(&be_local_const_str_SYMBOL_STOP) },
{ be_const_key(SYMBOL_DUMMY, -1), be_const_str(&be_local_const_str_SYMBOL_DUMMY) },
{ be_const_key(member, -1), be_const_func(lv0_member) },
{ be_const_key(SYMBOL_EDIT, -1), be_const_str(&be_local_const_str_SYMBOL_EDIT) },
{ be_const_key(seg7_font, 41), be_const_func(lv0_load_seg7_font) },
{ be_const_key(SYMBOL_NEW_LINE, -1), be_const_str(&be_local_const_str_SYMBOL_NEW_LINE) },
{ be_const_key(register_button_encoder, -1), be_const_func(lv0_register_button_encoder) },
{ be_const_key(load_freetype_font, -1), be_const_func(lv0_load_freetype_font) },
{ be_const_key(SYMBOL_REFRESH, 16), be_const_str(&be_local_const_str_SYMBOL_REFRESH) },
{ be_const_key(SYMBOL_SD_CARD, -1), be_const_str(&be_local_const_str_SYMBOL_SD_CARD) },
{ be_const_key(SYMBOL_EJECT, 20), be_const_str(&be_local_const_str_SYMBOL_EJECT) },
{ be_const_key(SYMBOL_CUT, 5), be_const_str(&be_local_const_str_SYMBOL_CUT) },
{ be_const_key(SYMBOL_LIST, 13), be_const_str(&be_local_const_str_SYMBOL_LIST) },
{ be_const_key(SYMBOL_MINUS, -1), be_const_str(&be_local_const_str_SYMBOL_MINUS) },
{ be_const_key(SYMBOL_LOOP, 8), be_const_str(&be_local_const_str_SYMBOL_LOOP) },
{ be_const_key(SYMBOL_EYE_CLOSE, 66), be_const_str(&be_local_const_str_SYMBOL_EYE_CLOSE) },
{ be_const_key(SYMBOL_BACKSPACE, -1), be_const_str(&be_local_const_str_SYMBOL_BACKSPACE) },
{ be_const_key(SYMBOL_OK, -1), be_const_str(&be_local_const_str_SYMBOL_OK) },
{ be_const_key(SYMBOL_AUDIO, -1), be_const_str(&be_local_const_str_SYMBOL_AUDIO) },
{ be_const_key(SYMBOL_EYE_OPEN, -1), be_const_str(&be_local_const_str_SYMBOL_EYE_OPEN) },
{ be_const_key(SYMBOL_BLUETOOTH, -1), be_const_str(&be_local_const_str_SYMBOL_BLUETOOTH) },
{ be_const_key(SYMBOL_VIDEO, -1), be_const_str(&be_local_const_str_SYMBOL_VIDEO) },
{ be_const_key(SYMBOL_HOME, -1), be_const_str(&be_local_const_str_SYMBOL_HOME) },
{ be_const_key(SYMBOL_BATTERY_2, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_2) },
{ be_const_key(SYMBOL_COPY, -1), be_const_str(&be_local_const_str_SYMBOL_COPY) },
{ be_const_key(SYMBOL_DRIVE, -1), be_const_str(&be_local_const_str_SYMBOL_DRIVE) },
{ be_const_key(montserrat_font, 30), be_const_func(lv0_load_montserrat_font) },
{ be_const_key(SYMBOL_PREV, -1), be_const_str(&be_local_const_str_SYMBOL_PREV) },
{ be_const_key(SYMBOL_BATTERY_1, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_1) },
{ be_const_key(SYMBOL_FILE, -1), be_const_str(&be_local_const_str_SYMBOL_FILE) },
{ be_const_key(SYMBOL_CHARGE, -1), be_const_str(&be_local_const_str_SYMBOL_CHARGE) },
};
static be_define_const_map(
m_liblvgl_map,
67
);
static be_define_const_module(
m_liblvgl,
"lvgl"
);
BE_EXPORT_VARIABLE be_define_const_native_module(lvgl, NULL);

View File

@ -80,4 +80,10 @@ static void ctypes_register_class(bvm *vm, const bclass * ctypes_class, const be
(be_nested_const_str(_name, 0, sizeof(_name)-1)) \
)
// list of simple classes, sorted
typedef struct be_ctypes_class_by_name_t {
const char * name;
const bclass * cl;
} be_ctypes_class_by_name_t;
#endif // __BE_CONSTOBJ_H__

View File

@ -24,6 +24,7 @@ extern "C" {
// list of classes and function tables
typedef struct lvbe_call_c_classes_t {
const char * name;
const bclass * cl;
const lvbe_call_c_t * func_table;
size_t size;
} lvbe_call_c_classes_t;

View File

@ -157,6 +157,14 @@ const bntvmodule be_native_module(_module) = { \
.name = _cname \
}
/* defines needed for solidified modules */
#define be_local_module(_c_name, _module_name, _map) \
static const bmodule m_lib##_c_name = { \
be_const_header(BE_MODULE), \
.table = (bmap*)_map, \
.info.name = _module_name \
}
#define be_nested_map(_size, _slots) \
& (const bmap) { \
be_const_header(BE_MAP), \

View File

@ -178,11 +178,11 @@ static void sourceinfo(bproto *proto, binstruction *ip)
be_writestring(str(proto->source));
be_writestring(buf);
} else {
be_writestring("<unknonw source>:");
be_writestring("<unknown source>:");
}
#else
(void)proto; (void)ip;
be_writestring("<unknonw source>:");
be_writestring("<unknown source>:");
#endif
}

View File

@ -285,6 +285,12 @@ int be_module_load(bvm *vm, bstring *path)
return res;
}
BERRY_API bbool be_getmodule(bvm *vm, const char *k)
{
int res = be_module_load(vm, be_newstr(vm, k));
return res == BE_OK;
}
bmodule* be_module_new(bvm *vm)
{
bgcobject *gco = be_gcnew(vm, BE_MODULE, bmodule);

View File

@ -33,7 +33,8 @@
be_writestring(__lbuf); \
} while (0)
static void m_solidify_bvalue(bvm *vm, bvalue * value)
// pass key name in case of class, or NULL if none
static void m_solidify_bvalue(bvm *vm, bvalue * value, const char *classname, const char *key)
{
int type = var_type(value);
switch (type) {
@ -81,6 +82,12 @@ static void m_solidify_bvalue(bvm *vm, bvalue * value)
case BE_CLASS:
logfmt("be_const_class(be_class_%s)", str(((bclass*) var_toobj(value))->name));
break;
case BE_COMPTR:
logfmt("be_const_comptr(&be_ntv_%s_%s)", classname ? classname : "unknown", key ? key : "unknown");
break;
case BE_NTVFUNC:
logfmt("be_const_func(be_ntv_%s_%s)", classname ? classname : "unknown", key ? key : "unknown");
break;
default:
{
char error[64];
@ -150,7 +157,7 @@ static void m_solidify_proto(bvm *vm, bproto *pr, const char * func_name, int bu
logfmt("%*s( &(const bvalue[%2d]) { /* constants */\n", indent, "", pr->nconst);
for (int k = 0; k < pr->nconst; k++) {
logfmt("%*s/* K%-3d */ ", indent, "", k);
m_solidify_bvalue(vm, &pr->ktab[k]);
m_solidify_bvalue(vm, &pr->ktab[k], NULL, NULL);
logfmt(",\n");
}
logfmt("%*s}),\n", indent, "");
@ -262,7 +269,7 @@ static void m_solidify_subclass(bvm *vm, bclass *cl, int builtins)
key_next = -1; /* more readable */
}
logfmt(" { be_nested_key(\"%s\", %i, %zu, %i), ", str(node->key.v.s), be_strhash(node->key.v.s), len >= 255 ? 255 : len, key_next);
m_solidify_bvalue(vm, &node->value);
m_solidify_bvalue(vm, &node->value, class_name, str(node->key.v.s));
logfmt(" },\n");
}

View File

@ -514,6 +514,7 @@ BERRY_API bbool be_refcontains(bvm *vm, int index);
BERRY_API void be_refpush(bvm *vm, int index);
BERRY_API void be_refpop(bvm *vm);
BERRY_API void be_stack_require(bvm *vm, int count);
BERRY_API bbool be_getmodule(bvm *vm, const char *k);
/* relop operation APIs */
BERRY_API bbool be_iseq(bvm *vm);

View File

@ -11,13 +11,13 @@ lv.start()
scr = lv.scr_act()
scr.set_style_local_bg_color(lv.OBJ_PART_MAIN, lv.STATE_DEFAULT, lv_color(lv.COLOR_BLACK))
ren_back = lv_img(scr)
scr.set_style_local_bg_color(lv.OBJ_PART_MAIN, lv.STATE_DEFAULT, lv.color(lv.COLOR_BLACK))
ren_back = lv.img(scr)
ren_back.set_src("A:/watch_ren_back_240.png")
ren_back.align(0, lv.ALIGN_CENTER, 0, 0)
ren_day = lv_label(ren_back)
ren_day.set_style_local_text_color(lv.OBJ_PART_MAIN, lv.STATE_DEFAULT, lv_color(lv.COLOR_BLACK))
ren_day = lv.label(ren_back)
ren_day.set_style_local_text_color(lv.OBJ_PART_MAIN, lv.STATE_DEFAULT, lv.color(lv.COLOR_BLACK))
ren_day.set_long_mode(lv.LABEL_LONG_CROP)
ren_day.set_align(lv.LABEL_ALIGN_CENTER)
ren_day.set_text("")
@ -25,14 +25,14 @@ ren_day.set_width(18)
ren_day.set_height(16)
ren_day.set_pos(184,112)
ren_hour = lv_img(ren_back)
ren_hour = lv.img(ren_back)
ren_hour.set_src("A:/watch_ren_hour_240.png")
ren_hour.set_pos(110,45)
ren_min = lv_img(ren_back)
ren_min = lv.img(ren_back)
ren_min.set_src("A:/watch_ren_min_240.png")
ren_sec = lv_img(ren_back)
ren_sec = lv.img(ren_back)
ren_sec.set_src("A:/watch_ren_sec_240.png")
ren_sec.set_pos(110,10)

View File

@ -9,17 +9,17 @@ f20 = lv.montserrat_font(20) # load embedded Montserrat 20
f28 = lv.montserrat_font(28) # load embedded Montserrat 28
#- Backgroun -#
scr.set_style_bg_color(lv_color(0x000066), lv.PART_MAIN | lv.STATE_DEFAULT)
scr.set_style_bg_color(lv.color(0x000066), lv.PART_MAIN | lv.STATE_DEFAULT)
#- Upper state line -#
stat_line = lv_label(scr)
stat_line = lv.label(scr)
if f20 != nil stat_line.set_style_text_font(f20, lv.PART_MAIN | lv.STATE_DEFAULT) end
stat_line.set_long_mode(lv.LABEL_LONG_SCROLL) # auto scrolling if text does not fit
stat_line.set_width(hres)
stat_line.set_align(lv.TEXT_ALIGN_LEFT) # align text left
stat_line.set_style_bg_color(lv_color(0xD00000), lv.PART_MAIN | lv.STATE_DEFAULT) # background #000088
stat_line.set_style_bg_color(lv.color(0xD00000), lv.PART_MAIN | lv.STATE_DEFAULT) # background #000088
stat_line.set_style_bg_opa(lv.OPA_COVER, lv.PART_MAIN | lv.STATE_DEFAULT) # 100% background opacity
stat_line.set_style_text_color(lv_color(0xFFFFFF), lv.PART_MAIN | lv.STATE_DEFAULT) # text color #FFFFFF
stat_line.set_style_text_color(lv.color(0xFFFFFF), lv.PART_MAIN | lv.STATE_DEFAULT) # text color #FFFFFF
stat_line.set_text("Tasmota")
stat_line.refr_size() # new in LVGL8
stat_line.refr_pos() # new in LVGL8
@ -29,12 +29,12 @@ wifi_icon = lv_wifi_arcs_icon(stat_line) # the widget takes care of positioni
clock_icon = lv_clock_icon(stat_line)
#- create a style for the buttons -#
btn_style = lv_style()
btn_style = lv.style()
btn_style.set_radius(10) # radius of rounded corners
btn_style.set_bg_opa(lv.OPA_COVER) # 100% backgrond opacity
if f28 != nil btn_style.set_text_font(f28) end # set font to Montserrat 28
btn_style.set_text_color(lv_color(0x000000)) # text color black when not checked
btn_style.set_text_color(lv.color(0x000000)) # text color black when not checked
#- register buttons -#
var btns = [] # relay buttons are added to this list to match with Tasmota relays
@ -53,12 +53,12 @@ end
#- you still need to re-position the button -#
def create_btn_relay(label)
var btn, btn_label
btn = lv_btn(scr)
btn = lv.btn(scr)
btn.set_pos(30, 30)
btn.set_size(hres - 60, 60)
btn.add_style(btn_style, lv.PART_MAIN | lv.STATE_DEFAULT) # style of button
btn.add_flag(lv.OBJ_FLAG_CHECKABLE) # enable toggle mode
btn_label = lv_label(btn)
btn_label = lv.label(btn)
btn_label.center()
btn_label.set_text(label)
btn.add_event_cb(btn_clicked_cb, lv.EVENT_CLICKED, 0) # set callback to update Tasmota relays

View File

@ -8,19 +8,19 @@ scr = lv.scr_act() # default screean object
f20 = lv.montserrat_font(20) # load embedded Montserrat 20
#- Background with a gradient from black #000000 (bottom) to dark blue #0000A0 (top) -#
scr.set_style_bg_color(lv_color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
scr.set_style_bg_grad_color(lv_color(0x000000), lv.PART_MAIN | lv.STATE_DEFAULT)
scr.set_style_bg_color(lv.color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
scr.set_style_bg_grad_color(lv.color(0x000000), lv.PART_MAIN | lv.STATE_DEFAULT)
scr.set_style_bg_grad_dir(lv.GRAD_DIR_VER, lv.PART_MAIN | lv.STATE_DEFAULT)
#- Upper state line -#
stat_line = lv_label(scr)
stat_line = lv.label(scr)
if f20 != nil stat_line.set_style_text_font(f20, lv.PART_MAIN | lv.STATE_DEFAULT) end
stat_line.set_long_mode(lv.LABEL_LONG_SCROLL) # auto scrolling if text does not fit
stat_line.set_width(hres)
stat_line.set_align(lv.TEXT_ALIGN_LEFT) # align text left
stat_line.set_style_bg_color(lv_color(0xD00000), lv.PART_MAIN | lv.STATE_DEFAULT) # background #000088
stat_line.set_style_bg_color(lv.color(0xD00000), lv.PART_MAIN | lv.STATE_DEFAULT) # background #000088
stat_line.set_style_bg_opa(lv.OPA_COVER, lv.PART_MAIN | lv.STATE_DEFAULT) # 100% background opacity
stat_line.set_style_text_color(lv_color(0xFFFFFF), lv.PART_MAIN | lv.STATE_DEFAULT) # text color #FFFFFF
stat_line.set_style_text_color(lv.color(0xFFFFFF), lv.PART_MAIN | lv.STATE_DEFAULT) # text color #FFFFFF
stat_line.set_text("Tasmota")
stat_line.refr_size() # new in LVGL8
stat_line.refr_pos() # new in LVGL8
@ -30,36 +30,36 @@ wifi_icon = lv_wifi_arcs_icon(stat_line) # the widget takes care of positioni
clock_icon = lv_clock_icon(stat_line)
#- create a style for the buttons -#
btn_style = lv_style()
btn_style = lv.style()
btn_style.set_radius(10) # radius of rounded corners
btn_style.set_bg_opa(lv.OPA_COVER) # 100% backgrond opacity
if f20 != nil btn_style.set_text_font(f20) end # set font to Montserrat 20
btn_style.set_bg_color(lv_color(0x1fa3ec)) # background color #1FA3EC (Tasmota Blue)
btn_style.set_border_color(lv_color(0x0000FF)) # border color #0000FF
btn_style.set_text_color(lv_color(0xFFFFFF)) # text color white #FFFFFF
btn_style.set_bg_color(lv.color(0x1fa3ec)) # background color #1FA3EC (Tasmota Blue)
btn_style.set_border_color(lv.color(0x0000FF)) # border color #0000FF
btn_style.set_text_color(lv.color(0xFFFFFF)) # text color white #FFFFFF
#- create buttons -#
prev_btn = lv_btn(scr) # create button with main screen as parent
prev_btn = lv.btn(scr) # create button with main screen as parent
prev_btn.set_pos(20,vres-40) # position of button
prev_btn.set_size(80, 30) # size of button
prev_btn.add_style(btn_style, lv.PART_MAIN | lv.STATE_DEFAULT) # style of button
prev_label = lv_label(prev_btn) # create a label as sub-object
prev_label = lv.label(prev_btn) # create a label as sub-object
prev_label.set_text("<") # set label text
prev_label.center()
next_btn = lv_btn(scr) # right button
next_btn = lv.btn(scr) # right button
next_btn.set_pos(220,vres-40)
next_btn.set_size(80, 30)
next_btn.add_style(btn_style, lv.PART_MAIN | lv.STATE_DEFAULT)
next_label = lv_label(next_btn)
next_label = lv.label(next_btn)
next_label.set_text(">")
next_label.center()
home_btn = lv_btn(scr) # center button
home_btn = lv.btn(scr) # center button
home_btn.set_pos(120,vres-40)
home_btn.set_size(80, 30)
home_btn.add_style(btn_style, lv.PART_MAIN | lv.STATE_DEFAULT)
home_label = lv_label(home_btn)
home_label = lv.label(home_btn)
home_label.set_text(lv.SYMBOL_OK) # set text as Home icon
home_label.center()

View File

@ -234,6 +234,14 @@ ctypes.print_classes = def (module_name)
print(string.format(" ctypes_register_class(vm, &be_class_%s, &be_%s);", elt, elt))
end
print("}")
print()
print("be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {")
for elt:global_classes
print(string.format(" { \"%s\", &be_class_%s },", elt, elt))
end
print("};")
print("const size_t be_ctypes_lvgl_classes_size = sizeof(be_ctypes_lvgl_classes)/sizeof(be_ctypes_lvgl_classes[0]);")
print()
print("/********************************************************************/")
print()

File diff suppressed because it is too large Load Diff

View File

@ -179,6 +179,37 @@ extern "C" {
be_pop(vm, 3); // stack = instance
}
extern void berry_log_C(const char * berry_buf, ...);
// Create a class given a global name or a name within a module
// Case 1: (no dot in name) `lv_wifi_bars` will look for a global variable `lv_wifi_bars`
// Case 2: (dot in name) `lvgl.lv_obj` will import `lvgl` and look for `lv_obj` within this module
// returns true if successful and result is top of stack, or false if not found and `nil` is at top of stack
bbool be_find_class(bvm *vm, const char * cl_name);
bbool be_find_class(bvm *vm, const char * cl_name) {
char *saveptr;
bbool ret = false;
if (cl_name == NULL) {
be_pushnil(vm);
return ret;
}
// berry_log_C(">> be_find_class %s", cl_name);
char cl_name_buf[strlen(cl_name)+1];
strcpy(cl_name_buf, cl_name);
char * prefix = strtok_r(cl_name_buf, ".", &saveptr);
char * suffix = strtok_r(NULL, ".", &saveptr);
if (suffix) {
// berry_log_C(">> be_find_class %s - %s", prefix, suffix);
be_getmodule(vm, prefix);
ret = be_getmember(vm, -1, suffix);
// berry_log_C(">> be_find_class ret=%i", ret);
be_remove(vm, -2);
} else {
ret = be_getglobal(vm, prefix);
}
return ret;
}
}
/*********************************************************************************************\
@ -189,6 +220,9 @@ extern "C" {
// binary search within an array of sorted strings
// the first 4 bytes are a pointer to a string
// returns 0..total_elements-1 or -1 if not found
//
// This version skips the first character of the string if it's not a letter,
// the first character is used to indicate the type of the value associated to the key
extern "C" {
int32_t bin_search(const char * needle, const void * table, size_t elt_size, size_t total_elements);
int32_t bin_search(const char * needle, const void * table, size_t elt_size, size_t total_elements) {
@ -198,6 +232,10 @@ extern "C" {
// start a dissect
while (low <= high) {
const char * elt = *(const char **) ( ((uint8_t*)table) + mid * elt_size );
char first_char = elt[0];
if ( !(first_char >= 'a' && first_char <='z') && !(first_char >= 'A' && first_char <='Z') ) {
elt++; // skip first char
}
int32_t comp = strcmp(needle, elt);
if (comp < 0) {
high = mid - 1;
@ -315,6 +353,7 @@ extern "C" {
#define LV_OBJ_CLASS "lv_obj"
#define LV_MODULE "lvgl" // name of the lvgl module
/*********************************************************************************************\
* Automatically parse Berry stack and call the C function accordingly
@ -430,7 +469,7 @@ int32_t be_convert_single_elt(bvm *vm, int32_t idx, const char * arg_type = null
if (arg_type_len > 1) {
// Check type
be_classof(vm, idx);
bool class_found = be_getglobal(vm, arg_type);
bool class_found = be_find_class(vm, arg_type);
// Stack: class_of_idx, class_of_target (or nil)
if (class_found) {
if (!be_isderived(vm, -2)) {

View File

@ -24,6 +24,7 @@
#include <berry.h>
#include "lvgl.h"
#include "be_lvgl.h"
#include "be_ctypes.h"
#include "Adafruit_LvGL_Glue.h"
#ifdef USE_LVGL_FREETYPE
@ -298,8 +299,8 @@ extern "C" {
}
be_return(vm);
} else { // class name
// AddLog(LOG_LEVEL_INFO, ">> be_call_c_func, create_obj", ret);
be_getglobal(vm, return_type); // stack = class
// AddLog(LOG_LEVEL_INFO, ">> be_call_c_func, create_obj ret=%i return_type=%s", ret, return_type);
be_find_class(vm, return_type);
be_pushcomptr(vm, (void*) ret); // stack = class, ptr
be_pushcomptr(vm, (void*) -1); // stack = class, ptr, -1
be_call(vm, 2); // instanciate with 2 arguments, stack = instance, -1, ptr
@ -401,7 +402,7 @@ extern "C" {
typedef lv_obj_t* (*fn_lvobj__void)(void); // f() -> newly created lv_obj()
int lv0_lvobj__void_call(bvm *vm, fn_lvobj__void func) {
lv_obj_t * obj = (*func)();
be_getglobal(vm, LV_OBJ_CLASS); // stack = class
be_find_class(vm, "lv.lv_obj");
be_pushcomptr(vm, (void*) -1); // stack = class, -1
be_pushcomptr(vm, (void*) obj); // stack = class, -1, ptr
be_call(vm, 2); // instanciate, stack = instance (don't call init() )
@ -414,7 +415,7 @@ extern "C" {
if (argc == 1 && be_isstring(vm, 1)) {
lv_font_t * font = lv_font_load(be_tostring(vm, 1));
if (font != nullptr) {
be_getglobal(vm, "lv_font");
be_find_class(vm, "lv.lv_font");
be_pushcomptr(vm, font);
be_call(vm, 1);
be_pop(vm, 1);
@ -438,7 +439,7 @@ extern "C" {
lv_font_t * font = info.font;
if (font != nullptr) {
be_getglobal(vm, "lv_font");
be_find_class(vm, "lv.lv_font");
be_pushcomptr(vm, font);
be_call(vm, 1);
be_pop(vm, 1);
@ -598,7 +599,7 @@ extern "C" {
}
if (font != nullptr) {
be_getglobal(vm, "lv_font");
be_find_class(vm, "lv.lv_font");
be_pushcomptr(vm, (void*)font);
be_call(vm, 1);
be_pop(vm, 1);
@ -632,7 +633,7 @@ extern "C" {
}
if (font != nullptr) {
be_getglobal(vm, "lv_font");
be_find_class(vm, "lv.lv_font");
be_pushcomptr(vm, (void*)font);
be_call(vm, 1);
be_pop(vm, 1);
@ -662,43 +663,79 @@ extern "C" {
extern const be_constint_t lv0_constants[];
extern const size_t lv0_constants_size;
extern const be_ctypes_class_by_name_t be_ctypes_lvgl_classes[];
extern const size_t be_ctypes_lvgl_classes_size;
int lv0_member(bvm *vm);
int lv0_member(bvm *vm) {
int32_t argc = be_top(vm); // Get the number of arguments
if (argc == 1 && be_isstring(vm, 1)) {
const char * needle = be_tostring(vm, 1);
int32_t idx;
int32_t constant_idx = bin_search(needle, &lv0_constants[0].name, sizeof(lv0_constants[0]), lv0_constants_size);
if (constant_idx >= 0) {
// we did have a match, low == high
be_pushint(vm, lv0_constants[constant_idx].value);
be_return(vm);
} else {
// search for a method with this name
int32_t method_idx = bin_search(needle, &lv_func[0].name, sizeof(lv_func[0]), lv_func_size);
if (method_idx >= 0) {
const lvbe_call_c_t * method = &lv_func[method_idx];
// push native closure
be_pushntvclosure(vm, &lvx_call_c, 3); // 3 upvals
be_pushcomptr(vm, method->func);
be_setupval(vm, -2, 0);
be_pop(vm, 1);
be_pushstring(vm, method->return_type);
be_setupval(vm, -2, 1);
be_pop(vm, 1);
be_pushstring(vm, method->arg_type);
be_setupval(vm, -2, 2);
be_pop(vm, 1);
// all good
be_return(vm);
idx = bin_search(needle, &lv0_constants[0].name, sizeof(lv0_constants[0]), lv0_constants_size);
if (idx >= 0) {
// we did have a match
const char * key = lv0_constants[idx].name;
switch (key[0]) {
// switch depending on the first char of the key, indicating the type
case '$': // string
be_pushstring(vm, (const char*) lv0_constants[idx].value);
break;
case '&': // native function
be_pushntvfunction(vm, (bntvfunc) lv0_constants[idx].value);
break;
default: // int
be_pushint(vm, lv0_constants[idx].value);
break;
}
be_return(vm);
}
// search for a class with this name
char cl_prefixed[32];
snprintf(cl_prefixed, sizeof(cl_prefixed), "lv_%s", needle); // we try both actual name and prefixed with `lv_` so both `lv.obj` and `lv.lv_obj` work
idx = bin_search(cl_prefixed, &lv_classes[0].name, sizeof(lv_classes[0]), lv_classes_size);
if (idx < 0) {
idx = bin_search(needle, &lv_classes[0].name, sizeof(lv_classes[0]), lv_classes_size);
}
if (idx >= 0) {
// we did have a match
be_pushntvclass(vm, lv_classes[idx].cl);
be_return(vm);
}
// same search for ctypes
idx = bin_search(cl_prefixed, &be_ctypes_lvgl_classes[0].name, sizeof(be_ctypes_lvgl_classes[0]), be_ctypes_lvgl_classes_size);
if (idx < 0) {
idx = bin_search(needle, &be_ctypes_lvgl_classes[0].name, sizeof(be_ctypes_lvgl_classes[0]), be_ctypes_lvgl_classes_size);
}
if (idx >= 0) {
// we did have a match
be_pushntvclass(vm, be_ctypes_lvgl_classes[idx].cl);
be_return(vm);
}
// search for a method with this name
idx = bin_search(needle, &lv_func[0].name, sizeof(lv_func[0]), lv_func_size);
if (idx >= 0) {
const lvbe_call_c_t * method = &lv_func[idx];
// push native closure
be_pushntvclosure(vm, &lvx_call_c, 3); // 3 upvals
be_pushcomptr(vm, method->func);
be_setupval(vm, -2, 0);
be_pop(vm, 1);
be_pushstring(vm, method->return_type);
be_setupval(vm, -2, 1);
be_pop(vm, 1);
be_pushstring(vm, method->arg_type);
be_setupval(vm, -2, 2);
be_pop(vm, 1);
// all good
be_return(vm);
}
}
be_return_nil(vm);
@ -763,7 +800,7 @@ extern "C" {
lv_indev_t * indev = lv_indev_drv_register(&lvbe.indev_drv);
lvbe.indev_list.addHead(indev); // keep track of indevs
be_getglobal(vm, "lv_indev"); // create an object of class lv_indev with the pointer
be_find_class(vm, "lv.lv_indev");
be_pushint(vm, (int32_t) indev);
be_call(vm, 1);
be_pop(vm, 1);

View File

@ -91,7 +91,7 @@ const char berry_prog[] =
"def load(f) return tasmota.load(f) end "
#ifdef USE_LVGL
"import lvgl as lv "
"import lv "
// create the '_lvgl' global singleton
"_lvgl = LVGL_glob() "

View File

@ -137,8 +137,10 @@ lv_cb_types = ['lv_group_focus_cb', 'lv_event_cb',
]
# list of callback types that will need each a separate C callback
# For LVGL8, need to add synthetic lv_style
# For LVGL8, need to add synthetic lv_style, lv_font, lv_color
lv['style'] = []
lv['font'] = []
lv['color'] = []
# standard widgets
lv_widgets = ['arc', 'bar', 'btn', 'btnmatrix', 'canvas', 'checkbox',
@ -222,7 +224,7 @@ with open(lv_widgets_file) as f:
c_args += "^" + ga_type + "^"
else:
# we have a high-level type that we treat as a class name, enclose in parenthesis
c_args += "(" + ga_type + ")"
c_args += "(" + "lv." + ga_type + ")"
# analyze function name and determine if it needs to be assigned to a specific class
func_name = g.group(2)
@ -241,8 +243,8 @@ with open(lv_widgets_file) as f:
be_name = re.sub("^lv_" + subtype + "_", '', func_name)
c_func_name = "lvbe_" + subtype + "_" + be_name
if subtype not in lv: lv[subtype] = [] # add entry
is_right_type = c_args.startswith(f"(lv_{subtype})") # check if first arg matches class
is_obj_arg1 = c_args.startswith(f"(lv_obj)") # or first arg is lv_obj
is_right_type = c_args.startswith(f"(lv.lv_{subtype})") # check if first arg matches class
is_obj_arg1 = c_args.startswith(f"(lv.lv_obj)") # or first arg is lv_obj
is_group_create = (subtype == 'group') and (func_name == 'lv_group_create')
if is_right_type or is_obj_arg1 or is_group_create:
lv[subtype].append( [ c_func_name, c_ret, c_args, func_name, be_name ] )
@ -277,34 +279,16 @@ with open(lv_module_file) as f:
if k.startswith("_"):
continue # skip any label starting with '_'
k = re.sub('^LV_', '', k) # remove remove any LV_ prefix
v = None
if len(k_v) == 2: # value is included
v = k_v[1]
if k is None or v is None: continue
v_num = try_int(eval(v))
else: # no value, we use the C value instead
v_num = None
v = None
if k is None or v is None: continue # we skip if key is void or value is void
if not k.isidentifier():
print(f"Error: {k} is not an identifier")
continue
if v_num is not None:
lv_module.append( [k, v_num] )
else:
lv_module.append( [k, v] ) # keep as string or None
# recursively try to match value
# TODO
# print(lv)
#print(f"orig {func_name} berry {c_func_name}")
#print(g.group(1))
#print(g.group(2))
#print(g.group(3))
lv_module.append( [k, v] ) # keep as string or None
sys.stdout = open(out_prefix + be_lv_c_mapping, 'w')
@ -317,7 +301,7 @@ print("""
extern "C" {
#endif
#include "be_ctypes.h"
""")
for subtype, flv in lv.items():
@ -334,6 +318,9 @@ for subtype, flv in lv.items():
if c_argc is not None: c_argc = "\"" + c_argc + "\""
orig_func_name = f[3]
be_name = f[4]
# if c_ret_type is an object, prefix with `lv.`
if len(c_ret_type) > 1: c_ret_type = "lv." + c_ret_type
if c_func_name.endswith("_create"):
pass
# c_ret_type = f"+lv_{subtype}"
@ -348,6 +335,11 @@ for subtype, flv in lv.items():
print(f"#endif // BE_LV_WIDGET_{subtype.upper()}")
print(f"")
# extern classes
for subtype in sorted(lv):
print(f"extern const bclass be_class_lv_{subtype};");
print()
# print the global map of classes
print(f"""
// map of clases
@ -357,7 +349,7 @@ for subtype in sorted(lv):
# for subtype, flv in lv.items():
if subtype in lv_widgets:
print(f"#ifdef BE_LV_WIDGET_{subtype.upper()}")
print(f" {{ \"lv_{subtype}\", lv_{subtype}_func, sizeof(lv_{subtype}_func) / sizeof(lv_{subtype}_func[0]) }},")
print(f" {{ \"lv_{subtype}\", &be_class_lv_{subtype}, lv_{subtype}_func, sizeof(lv_{subtype}_func) / sizeof(lv_{subtype}_func[0]) }},")
if subtype in lv_widgets:
print(f"#endif // BE_LV_WIDGET_{subtype.upper()}")
@ -376,18 +368,28 @@ for subtype, flv in lv.items():
c_argc = f[2]
if c_argc is not None: c_argc = "\"" + c_argc + "\""
orig_func_name = f[3]
# if c_ret_type is an object, prefix with `lv.`
if len(c_ret_type) > 1: c_ret_type = "lv." + c_ret_type
if c_func_name.endswith("_create"):
c_ret_type = f"+lv_{subtype}"
c_ret_type = f"+lv.lv_{subtype}"
if subtype in lv_widgets:
print(f"#ifdef BE_LV_WIDGET_{subtype.upper()}")
print(f" int {c_func_name}(bvm *vm) {{ return be_call_c_func(vm, (void*) &{orig_func_name}, \"{c_ret_type}\", { c_argc if c_argc else 'nullptr'}); }}")
if subtype in lv_widgets:
print(f" int be_ntv_lv_{subtype}_init(bvm *vm) {{ return be_call_c_func(vm, (void*) &{orig_func_name}, \"{c_ret_type}\", { c_argc if c_argc else 'nullptr'}); }}")
print(f"#endif // BE_LV_WIDGET_{subtype.upper()}")
print()
else:
print(f" int be_ntv_lv_{subtype}_init(bvm *vm) {{ return be_call_c_func(vm, (void*) &{orig_func_name}, \"{c_ret_type}\", { c_argc if c_argc else 'nullptr'}); }}")
print("""
// create font either empty or from parameter on stack
int lvbe_font_create(bvm *vm) { return be_call_c_func(vm, NULL, "+lv_group", ""); }
""")
print()
for subtype in lv:
print(f" extern void be_load_lv_{subtype}_lib(bvm *vm);")
print(f" extern void be_load_lv_{subtype}_class(bvm *vm);")
print()
print(f" void be_load_lv_all_lib(bvm *vm) {{")
@ -395,7 +397,7 @@ for subtype in lv:
define = f"BE_LV_WIDGET_" + subtype.upper()
if subtype in lv_widgets:
print(f"#ifdef {define}")
print(f" be_load_lv_{subtype}_lib(vm);")
print(f" be_load_lv_{subtype}_class(vm);")
if subtype in lv_widgets:
print(f"#endif")
@ -422,13 +424,14 @@ print("""
#ifdef USE_LVGL
#include "lvgl.h"
#include "be_lvgl.h"
extern int lv0_init(bvm *vm);
extern int lco_init(bvm *vm);
extern int lco_tostring(bvm *vm);
extern int lco_init(bvm *vm); // generic function
extern int lco_tostring(bvm *vm); // generic function
extern int lco_toint(bvm *vm); // generic function
extern int lvx_init_ctor(bvm *vm, void * func);
extern int lvx_member(bvm *vm);
extern int lvx_tostring(bvm *vm); // generic function
@ -436,8 +439,19 @@ extern int lvs_init(bvm *vm);
extern int lvs_tostring(bvm *vm);
BE_EXPORT_VARIABLE extern const bclass be_class_lv_obj;
extern int lvbe_font_create(bvm *vm);
""")
# expose all extern definitions:
# Ex:
#
# /* `lv_canvas` external functions definitions */
# extern int lvbe_canvas_create(bvm *vm);
# extern int lvbe_canvas_set_buffer(bvm *vm);
# ...
#
for subtype, flv in lv.items():
print(f"/* `lv_{subtype}` external functions definitions */")
for f in flv:
@ -447,49 +461,143 @@ for subtype, flv in lv.items():
print()
for subtype, flv in lv.items():
print(f"#include \"../generate/be_fixed_be_class_lv_{subtype}.h\"")
print(f"""extern int be_ntv_lv_{subtype}_init(bvm *vm);""")
print()
# Define specific classes for lv_obj
#
print("""
/********************************************************************
** Solidified class: lv_style
********************************************************************/
be_local_class(lv_style,
1,
NULL,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_func(lvs_init) },
{ be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvs_tostring) },
{ be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
{ be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
})),
(be_nested_const_str("lv_style", -143355747, 8))
);
/*******************************************************************/
/********************************************************************
** Solidified class: lv_obj
********************************************************************/
be_local_class(lv_obj,
1,
NULL,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("tostring", -1995258651, 8, 3), be_const_func(lvx_tostring) },
{ be_nested_key("member", 719708611, 6, -1), be_const_func(lvx_member) },
{ be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
{ be_nested_key("init", 380752755, 4, 4), be_const_func(be_ntv_lv_obj_init) },
{ be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_obj_class) },
})),
(be_nested_const_str("lv_obj", -37134147, 6))
);
/*******************************************************************/
/********************************************************************
** Solidified class: lv_group
********************************************************************/
be_local_class(lv_group,
1,
NULL,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_group_init) },
{ be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
{ be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
{ be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
})),
(be_nested_const_str("lv_group", -442928277, 8))
);
/*******************************************************************/
/********************************************************************
** Solidified class: lv_indev
********************************************************************/
be_local_class(lv_indev,
1,
NULL,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_func(lv0_init) },
{ be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
{ be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
{ be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
})),
(be_nested_const_str("lv_indev", 225602374, 8))
);
/*******************************************************************/
/********************************************************************
** Solidified class: lv_font
********************************************************************/
be_local_class(lv_font,
1,
NULL,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_func(lvbe_font_create) },
{ be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
{ be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
})),
(be_nested_const_str("lv_font", 1550958453, 7))
);
/*******************************************************************/
/********************************************************************
** Solidified class: lv_color
********************************************************************/
be_local_class(lv_color,
1,
NULL,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("toint", -681784387, 5, -1), be_const_func(lco_toint) },
{ be_nested_key("tostring", -1995258651, 8, 0), be_const_func(lco_tostring) },
{ be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
{ be_nested_key("init", 380752755, 4, -1), be_const_func(lco_init) },
})),
(be_nested_const_str("lv_color", 1419148319, 8))
);
/*******************************************************************/
""")
for subtype, flv in lv.items():
# special version for widgets
if subtype in lv_widgets:
print(f"""/********************************************************************
** Solidified class: lv_{subtype}
********************************************************************/
extern const bclass be_class_lv_obj;
be_local_class(lv_{subtype},
0,
&be_class_lv_obj,
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {{
{{ be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_{subtype}_class) }},
{{ be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_{subtype}_init) }},
}})),
(be_nested_const_str("lv_{subtype}", 1612829968, 6))
);
/*******************************************************************/
""")
# class definitions
print(f"void be_load_lv_{subtype}_lib(bvm *vm) {{")
print(f" be_pushntvclass(vm, &be_class_lv_{subtype});")
print(f" be_setglobal(vm, \"lv_{subtype}\");")
print(f" be_pop(vm, 1);")
print(f"}};")
print()
print(f"/* @const_object_info_begin")
if subtype in lv_widgets: # only for subclasses of lv_obj
print(f"class be_class_lv_{subtype} (scope: global, name: lv_{subtype}, super: be_class_lv_obj) {{")
else:
print(f"class be_class_lv_{subtype} (scope: global, name: lv_{subtype}) {{")
print(f" _p, var")
if subtype == "style":
print(f" init, func(lvs_init)")
print(f" tostring, func(lvs_tostring)")
else:
if subtype != 'indev': # indev has no create
if (subtype in lv_widgets) or (subtype == "obj"):
print(f" _class, int(&lv_{subtype}_class)")
print(f" init, func(lvbe_{subtype}_create)")
else:
print(f" init, func(lv0_init)")
print(f" tostring, func(lvx_tostring)")
print(f" member, func(lvx_member)")
print()
# for f in flv:
# c_func_name = f[0]
# be_name = f[4]
# print(f" {be_name}, func({c_func_name})")
print(f"}}")
print(f"@const_object_info_end */")
print()
print(f"""void be_load_lv_{subtype}_class(bvm *vm) {{
be_pushntvclass(vm, &be_class_lv_{subtype});
be_setglobal(vm, \"lv_{subtype}\");
be_pop(vm, 1);
}}
""")
print("""
#endif // USE_LVGL
@ -544,6 +652,10 @@ for f in lv0:
if c_argc is not None: c_argc = "\"" + c_argc + "\""
orig_func_name = f[3]
be_name = f[4]
# if c_ret_type is an object, prefix with `lv.`
if len(c_ret_type) > 1: c_ret_type = "lv." + c_ret_type
func_out[be_name] = f" {{ \"{be_name}\", (void*) &{orig_func_name}, \"{c_ret_type}\", { c_argc if c_argc else 'nullptr'} }},"
for be_name in sorted(func_out):
@ -586,10 +698,28 @@ for k_v in lv_module:
if k is not None:
lv_module2[k] = v
# print the enums, symbols and functions
# Ex: { "ALIGN_BOTTOM_LEFT", LV_ALIGN_BOTTOM_LEFT },
#
# Encoding:
# 1. `COLOR_WHITE=0xFFFFFF` enum with explicit value
# 2. `LV_EVENT_ALL` enum with implicit value with same name resolved by C compiler
# 3. `$SYMBOL_OK="\xef\x80\x8c"` if starts with `$` then it's a string
# 4. `&seg7_font=lv0_load_seg7_font` if starts with `&` then it's a native function
#
# We need to sort ignoring the first char if it's not a letter
for k in sorted(lv_module2):
v = lv_module2[k]
# check the type of the value
# if first char is '"' then it's a string and prefix with '$'
# if first char is '&' then it's a function and prefix with '&'
# if no value, then it's an enum, prefix with `LV_`
# otherwise it's an int, leave if unchanged
if v is not None:
print(f" {{ \"{k}\", {v} }},")
v_prefix = ""
if v[0] == '"': v_prefix = "$"
if v[0] == '&': v_prefix = "&"
print(f" {{ \"{v_prefix}{k}\", (int32_t) {v} }},")
else:
print(f" {{ \"{k}\", LV_{k} }},")
@ -598,157 +728,16 @@ print("""
const size_t lv0_constants_size = sizeof(lv0_constants)/sizeof(lv0_constants[0]);
be_define_local_const_str(SYMBOL_AUDIO, "\\xef\\x80\\x81", 0, 3);
be_define_local_const_str(SYMBOL_VIDEO, "\\xef\\x80\\x88", 0, 3);
be_define_local_const_str(SYMBOL_LIST, "\\xef\\x80\\x8b", 0, 3);
be_define_local_const_str(SYMBOL_OK, "\\xef\\x80\\x8c", 0, 3);
be_define_local_const_str(SYMBOL_CLOSE, "\\xef\\x80\\x8d", 0, 3);
be_define_local_const_str(SYMBOL_POWER, "\\xef\\x80\\x91", 0, 3);
be_define_local_const_str(SYMBOL_SETTINGS, "\\xef\\x80\\x93", 0, 3);
be_define_local_const_str(SYMBOL_HOME, "\\xef\\x80\\x95", 0, 3);
be_define_local_const_str(SYMBOL_DOWNLOAD, "\\xef\\x80\\x99", 0, 3);
be_define_local_const_str(SYMBOL_DRIVE, "\\xef\\x80\\x9c", 0, 3);
be_define_local_const_str(SYMBOL_REFRESH, "\\xef\\x80\\xa1", 0, 3);
be_define_local_const_str(SYMBOL_MUTE, "\\xef\\x80\\xa6", 0, 3);
be_define_local_const_str(SYMBOL_VOLUME_MID, "\\xef\\x80\\xa7", 0, 3);
be_define_local_const_str(SYMBOL_VOLUME_MAX, "\\xef\\x80\\xa8", 0, 3);
be_define_local_const_str(SYMBOL_IMAGE, "\\xef\\x80\\xbe", 0, 3);
be_define_local_const_str(SYMBOL_EDIT, "\\xef\\x8C\\x84", 0, 3);
be_define_local_const_str(SYMBOL_PREV, "\\xef\\x81\\x88", 0, 3);
be_define_local_const_str(SYMBOL_PLAY, "\\xef\\x81\\x8b", 0, 3);
be_define_local_const_str(SYMBOL_PAUSE, "\\xef\\x81\\x8c", 0, 3);
be_define_local_const_str(SYMBOL_STOP, "\\xef\\x81\\x8d", 0, 3);
be_define_local_const_str(SYMBOL_NEXT, "\\xef\\x81\\x91", 0, 3);
be_define_local_const_str(SYMBOL_EJECT, "\\xef\\x81\\x92", 0, 3);
be_define_local_const_str(SYMBOL_LEFT, "\\xef\\x81\\x93", 0, 3);
be_define_local_const_str(SYMBOL_RIGHT, "\\xef\\x81\\x94", 0, 3);
be_define_local_const_str(SYMBOL_PLUS, "\\xef\\x81\\xa7", 0, 3);
be_define_local_const_str(SYMBOL_MINUS, "\\xef\\x81\\xa8", 0, 3);
be_define_local_const_str(SYMBOL_EYE_OPEN, "\\xef\\x81\\xae", 0, 3);
be_define_local_const_str(SYMBOL_EYE_CLOSE, "\\xef\\x81\\xb0", 0, 3);
be_define_local_const_str(SYMBOL_WARNING, "\\xef\\x81\\xb1", 0, 3);
be_define_local_const_str(SYMBOL_SHUFFLE, "\\xef\\x81\\xb4", 0, 3);
be_define_local_const_str(SYMBOL_UP, "\\xef\\x81\\xb7", 0, 3);
be_define_local_const_str(SYMBOL_DOWN, "\\xef\\x81\\xb8", 0, 3);
be_define_local_const_str(SYMBOL_LOOP, "\\xef\\x81\\xb9", 0, 3);
be_define_local_const_str(SYMBOL_DIRECTORY, "\\xef\\x81\\xbb", 0, 3);
be_define_local_const_str(SYMBOL_UPLOAD, "\\xef\\x82\\x93", 0, 3);
be_define_local_const_str(SYMBOL_CALL, "\\xef\\x82\\x95", 0, 3);
be_define_local_const_str(SYMBOL_CUT, "\\xef\\x83\\x84", 0, 3);
be_define_local_const_str(SYMBOL_COPY, "\\xef\\x83\\x85", 0, 3);
be_define_local_const_str(SYMBOL_SAVE, "\\xef\\x83\\x87", 0, 3);
be_define_local_const_str(SYMBOL_CHARGE, "\\xef\\x83\\xa7", 0, 3);
be_define_local_const_str(SYMBOL_PASTE, "\\xef\\x83\\xAA", 0, 3);
be_define_local_const_str(SYMBOL_BELL, "\\xef\\x83\\xb3", 0, 3);
be_define_local_const_str(SYMBOL_KEYBOARD, "\\xef\\x84\\x9c", 0, 3);
be_define_local_const_str(SYMBOL_GPS, "\\xef\\x84\\xa4", 0, 3);
be_define_local_const_str(SYMBOL_FILE, "\\xef\\x85\\x9b", 0, 3);
be_define_local_const_str(SYMBOL_WIFI, "\\xef\\x87\\xab", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_FULL, "\\xef\\x89\\x80", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_3, "\\xef\\x89\\x81", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_2, "\\xef\\x89\\x82", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_1, "\\xef\\x89\\x83", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_EMPTY, "\\xef\\x89\\x84", 0, 3);
be_define_local_const_str(SYMBOL_USB, "\\xef\\x8a\\x87", 0, 3);
be_define_local_const_str(SYMBOL_BLUETOOTH, "\\xef\\x8a\\x93", 0, 3);
be_define_local_const_str(SYMBOL_TRASH, "\\xef\\x8B\\xAD", 0, 3);
be_define_local_const_str(SYMBOL_BACKSPACE, "\\xef\\x95\\x9A", 0, 3);
be_define_local_const_str(SYMBOL_SD_CARD, "\\xef\\x9F\\x82", 0, 3);
be_define_local_const_str(SYMBOL_NEW_LINE, "\\xef\\xA2\\xA2", 0, 3);
be_define_local_const_str(SYMBOL_DUMMY, "\\xEF\\xA3\\xBF", 0, 3);
be_define_local_const_str(SYMBOL_BULLET, "\\xE2\\x80\\xA2", 0, 3);
/* @const_object_info_begin
module lvgl (scope: global) {
SYMBOL_AUDIO, str(&be_local_const_str_SYMBOL_AUDIO)
SYMBOL_VIDEO, str(&be_local_const_str_SYMBOL_VIDEO)
SYMBOL_LIST, str(&be_local_const_str_SYMBOL_LIST)
SYMBOL_OK, str(&be_local_const_str_SYMBOL_OK)
SYMBOL_CLOSE, str(&be_local_const_str_SYMBOL_CLOSE)
SYMBOL_POWER, str(&be_local_const_str_SYMBOL_POWER)
SYMBOL_SETTINGS, str(&be_local_const_str_SYMBOL_SETTINGS)
SYMBOL_HOME, str(&be_local_const_str_SYMBOL_HOME)
SYMBOL_DOWNLOAD, str(&be_local_const_str_SYMBOL_DOWNLOAD)
SYMBOL_DRIVE, str(&be_local_const_str_SYMBOL_DRIVE)
SYMBOL_REFRESH, str(&be_local_const_str_SYMBOL_REFRESH)
SYMBOL_MUTE, str(&be_local_const_str_SYMBOL_MUTE)
SYMBOL_VOLUME_MID, str(&be_local_const_str_SYMBOL_VOLUME_MID)
SYMBOL_VOLUME_MAX, str(&be_local_const_str_SYMBOL_VOLUME_MAX)
SYMBOL_IMAGE, str(&be_local_const_str_SYMBOL_IMAGE)
SYMBOL_EDIT, str(&be_local_const_str_SYMBOL_EDIT)
SYMBOL_PREV, str(&be_local_const_str_SYMBOL_PREV)
SYMBOL_PLAY, str(&be_local_const_str_SYMBOL_PLAY)
SYMBOL_PAUSE, str(&be_local_const_str_SYMBOL_PAUSE)
SYMBOL_STOP, str(&be_local_const_str_SYMBOL_STOP)
SYMBOL_NEXT, str(&be_local_const_str_SYMBOL_NEXT)
SYMBOL_EJECT, str(&be_local_const_str_SYMBOL_EJECT)
SYMBOL_LEFT, str(&be_local_const_str_SYMBOL_LEFT)
SYMBOL_RIGHT, str(&be_local_const_str_SYMBOL_RIGHT)
SYMBOL_PLUS, str(&be_local_const_str_SYMBOL_PLUS)
SYMBOL_MINUS, str(&be_local_const_str_SYMBOL_MINUS)
SYMBOL_EYE_OPEN, str(&be_local_const_str_SYMBOL_EYE_OPEN)
SYMBOL_EYE_CLOSE, str(&be_local_const_str_SYMBOL_EYE_CLOSE)
SYMBOL_WARNING, str(&be_local_const_str_SYMBOL_WARNING)
SYMBOL_SHUFFLE, str(&be_local_const_str_SYMBOL_SHUFFLE)
SYMBOL_UP, str(&be_local_const_str_SYMBOL_UP)
SYMBOL_DOWN, str(&be_local_const_str_SYMBOL_DOWN)
SYMBOL_LOOP, str(&be_local_const_str_SYMBOL_LOOP)
SYMBOL_DIRECTORY, str(&be_local_const_str_SYMBOL_DIRECTORY)
SYMBOL_UPLOAD, str(&be_local_const_str_SYMBOL_UPLOAD)
SYMBOL_CALL, str(&be_local_const_str_SYMBOL_CALL)
SYMBOL_CUT, str(&be_local_const_str_SYMBOL_CUT)
SYMBOL_COPY, str(&be_local_const_str_SYMBOL_COPY)
SYMBOL_SAVE, str(&be_local_const_str_SYMBOL_SAVE)
SYMBOL_CHARGE, str(&be_local_const_str_SYMBOL_CHARGE)
SYMBOL_PASTE, str(&be_local_const_str_SYMBOL_PASTE)
SYMBOL_BELL, str(&be_local_const_str_SYMBOL_BELL)
SYMBOL_KEYBOARD, str(&be_local_const_str_SYMBOL_KEYBOARD)
SYMBOL_GPS, str(&be_local_const_str_SYMBOL_GPS)
SYMBOL_FILE, str(&be_local_const_str_SYMBOL_FILE)
SYMBOL_WIFI, str(&be_local_const_str_SYMBOL_WIFI)
SYMBOL_BATTERY_FULL, str(&be_local_const_str_SYMBOL_BATTERY_FULL)
SYMBOL_BATTERY_3, str(&be_local_const_str_SYMBOL_BATTERY_3)
SYMBOL_BATTERY_2, str(&be_local_const_str_SYMBOL_BATTERY_2)
SYMBOL_BATTERY_1, str(&be_local_const_str_SYMBOL_BATTERY_1)
SYMBOL_BATTERY_EMPTY, str(&be_local_const_str_SYMBOL_BATTERY_EMPTY)
SYMBOL_USB, str(&be_local_const_str_SYMBOL_USB)
SYMBOL_BLUETOOTH, str(&be_local_const_str_SYMBOL_BLUETOOTH)
SYMBOL_TRASH, str(&be_local_const_str_SYMBOL_TRASH)
SYMBOL_BACKSPACE, str(&be_local_const_str_SYMBOL_BACKSPACE)
SYMBOL_SD_CARD, str(&be_local_const_str_SYMBOL_SD_CARD)
SYMBOL_NEW_LINE, str(&be_local_const_str_SYMBOL_NEW_LINE)
SYMBOL_DUMMY, str(&be_local_const_str_SYMBOL_DUMMY)
SYMBOL_BULLET, str(&be_local_const_str_SYMBOL_BULLET)
""")
# for k_v in lv_module:
# (k,v) = k_v
# if k is None:
# continue
# print(f" {k}, int({v})")
print("""
member, func(lv0_member)
start, func(lv0_start)
register_button_encoder, func(lv0_register_button_encoder)
montserrat_font, func(lv0_load_montserrat_font)
seg7_font, func(lv0_load_seg7_font)
load_font, func(lv0_load_font)
load_freetype_font, func(lv0_load_freetype_font)
screenshot, func(lv0_screenshot)
}
@const_object_info_end */
#include "../generate/be_fixed_lvgl.h"
/* generated */
be_local_module(lv,
"lv",
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("member", 719708611, 6, -1), be_const_func(lv0_member) },
{ be_nested_key("start", 1697318111, 5, 0), be_const_func(lv0_start) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(lv, NULL);
#endif // USE_LVGL
""")

View File

@ -1,4 +1,19 @@
// ======================================================================
// Functions
// ======================================================================
register_button_encoder=&lv0_register_button_encoder
montserrat_font=&lv0_load_montserrat_font
seg7_font=&lv0_load_seg7_font
load_font=&lv0_load_font
load_freetype_font=&lv0_load_freetype_font
screenshot=&lv0_screenshot
// ======================================================================
// Colors
// ======================================================================
// LV Colors - we store in 24 bits format and will convert at runtime
// This is specific treatment because we keep colors in 24 bits format
COLOR_WHITE=0xFFFFFF
@ -26,6 +41,76 @@ LV_STYLE_PROP_ANY
LV_SIZE_CONTENT
// ======================================================================
// Symbols
// ======================================================================
SYMBOL_AUDIO="\xef\x80\x81"
SYMBOL_VIDEO="\xef\x80\x88"
SYMBOL_LIST="\xef\x80\x8b"
SYMBOL_OK="\xef\x80\x8c"
SYMBOL_CLOSE="\xef\x80\x8d"
SYMBOL_POWER="\xef\x80\x91"
SYMBOL_SETTINGS="\xef\x80\x93"
SYMBOL_HOME="\xef\x80\x95"
SYMBOL_DOWNLOAD="\xef\x80\x99"
SYMBOL_DRIVE="\xef\x80\x9c"
SYMBOL_REFRESH="\xef\x80\xa1"
SYMBOL_MUTE="\xef\x80\xa6"
SYMBOL_VOLUME_MID="\xef\x80\xa7"
SYMBOL_VOLUME_MAX="\xef\x80\xa8"
SYMBOL_IMAGE="\xef\x80\xbe"
SYMBOL_EDIT="\xef\x8C\x84"
SYMBOL_PREV="\xef\x81\x88"
SYMBOL_PLAY="\xef\x81\x8b"
SYMBOL_PAUSE="\xef\x81\x8c"
SYMBOL_STOP="\xef\x81\x8d"
SYMBOL_NEXT="\xef\x81\x91"
SYMBOL_EJECT="\xef\x81\x92"
SYMBOL_LEFT="\xef\x81\x93"
SYMBOL_RIGHT="\xef\x81\x94"
SYMBOL_PLUS="\xef\x81\xa7"
SYMBOL_MINUS="\xef\x81\xa8"
SYMBOL_EYE_OPEN="\xef\x81\xae"
SYMBOL_EYE_CLOSE="\xef\x81\xb0"
SYMBOL_WARNING="\xef\x81\xb1"
SYMBOL_SHUFFLE="\xef\x81\xb4"
SYMBOL_UP="\xef\x81\xb7"
SYMBOL_DOWN="\xef\x81\xb8"
SYMBOL_LOOP="\xef\x81\xb9"
SYMBOL_DIRECTORY="\xef\x81\xbb"
SYMBOL_UPLOAD="\xef\x82\x93"
SYMBOL_CALL="\xef\x82\x95"
SYMBOL_CUT="\xef\x83\x84"
SYMBOL_COPY="\xef\x83\x85"
SYMBOL_SAVE="\xef\x83\x87"
SYMBOL_CHARGE="\xef\x83\xa7"
SYMBOL_PASTE="\xef\x83\xAA"
SYMBOL_BELL="\xef\x83\xb3"
SYMBOL_KEYBOARD="\xef\x84\x9c"
SYMBOL_GPS="\xef\x84\xa4"
SYMBOL_FILE="\xef\x85\x9b"
SYMBOL_WIFI="\xef\x87\xab"
SYMBOL_BATTERY_FULL="\xef\x89\x80"
SYMBOL_BATTERY_3="\xef\x89\x81"
SYMBOL_BATTERY_2="\xef\x89\x82"
SYMBOL_BATTERY_1="\xef\x89\x83"
SYMBOL_BATTERY_EMPTY="\xef\x89\x84"
SYMBOL_USB="\xef\x8a\x87"
SYMBOL_BLUETOOTH="\xef\x8a\x93"
SYMBOL_TRASH="\xef\x8B\xAD"
SYMBOL_BACKSPACE="\xef\x95\x9A"
SYMBOL_SD_CARD="\xef\x9F\x82"
SYMBOL_NEW_LINE="\xef\xA2\xA2"
SYMBOL_DUMMY="\xEF\xA3\xBF"
SYMBOL_BULLET="\xE2\x80\xA2"
// ======================================================================
// Generated from headers
// ======================================================================
LV_SCR_LOAD_ANIM_NONE
LV_SCR_LOAD_ANIM_OVER_LEFT
LV_SCR_LOAD_ANIM_OVER_RIGHT

View File

@ -0,0 +1,62 @@
SYMBOL_AUDIO="\xef\x80\x81"
SYMBOL_VIDEO="\xef\x80\x88"
SYMBOL_LIST="\xef\x80\x8b"
SYMBOL_OK="\xef\x80\x8c"
SYMBOL_CLOSE="\xef\x80\x8d"
SYMBOL_POWER="\xef\x80\x91"
SYMBOL_SETTINGS="\xef\x80\x93"
SYMBOL_HOME="\xef\x80\x95"
SYMBOL_DOWNLOAD="\xef\x80\x99"
SYMBOL_DRIVE="\xef\x80\x9c"
SYMBOL_REFRESH="\xef\x80\xa1"
SYMBOL_MUTE="\xef\x80\xa6"
SYMBOL_VOLUME_MID="\xef\x80\xa7"
SYMBOL_VOLUME_MAX="\xef\x80\xa8"
SYMBOL_IMAGE="\xef\x80\xbe"
SYMBOL_EDIT="\xef\x8C\x84"
SYMBOL_PREV="\xef\x81\x88"
SYMBOL_PLAY="\xef\x81\x8b"
SYMBOL_PAUSE="\xef\x81\x8c"
SYMBOL_STOP="\xef\x81\x8d"
SYMBOL_NEXT="\xef\x81\x91"
SYMBOL_EJECT="\xef\x81\x92"
SYMBOL_LEFT="\xef\x81\x93"
SYMBOL_RIGHT="\xef\x81\x94"
SYMBOL_PLUS="\xef\x81\xa7"
SYMBOL_MINUS="\xef\x81\xa8"
SYMBOL_EYE_OPEN="\xef\x81\xae"
SYMBOL_EYE_CLOSE="\xef\x81\xb0"
SYMBOL_WARNING="\xef\x81\xb1"
SYMBOL_SHUFFLE="\xef\x81\xb4"
SYMBOL_UP="\xef\x81\xb7"
SYMBOL_DOWN="\xef\x81\xb8"
SYMBOL_LOOP="\xef\x81\xb9"
SYMBOL_DIRECTORY="\xef\x81\xbb"
SYMBOL_UPLOAD="\xef\x82\x93"
SYMBOL_CALL="\xef\x82\x95"
SYMBOL_CUT="\xef\x83\x84"
SYMBOL_COPY="\xef\x83\x85"
SYMBOL_SAVE="\xef\x83\x87"
SYMBOL_CHARGE="\xef\x83\xa7"
SYMBOL_PASTE="\xef\x83\xAA"
SYMBOL_BELL="\xef\x83\xb3"
SYMBOL_KEYBOARD="\xef\x84\x9c"
SYMBOL_GPS="\xef\x84\xa4"
SYMBOL_FILE="\xef\x85\x9b"
SYMBOL_WIFI="\xef\x87\xab"
SYMBOL_BATTERY_FULL="\xef\x89\x80"
SYMBOL_BATTERY_3="\xef\x89\x81"
SYMBOL_BATTERY_2="\xef\x89\x82"
SYMBOL_BATTERY_1="\xef\x89\x83"
SYMBOL_BATTERY_EMPTY="\xef\x89\x84"
SYMBOL_USB="\xef\x8a\x87"
SYMBOL_BLUETOOTH="\xef\x8a\x93"
SYMBOL_TRASH="\xef\x8B\xAD"
SYMBOL_BACKSPACE="\xef\x95\x9A"
SYMBOL_SD_CARD="\xef\x9F\x82"
SYMBOL_NEW_LINE="\xef\xA2\xA2"
SYMBOL_DUMMY="\xEF\xA3\xBF"
SYMBOL_BULLET="\xE2\x80\xA2"

View File

@ -171,7 +171,22 @@ headers_names = list_files(lv_src_prefix, lv_fun_globs)
output_filename = "lv_enum.h"
sys.stdout = open(output_filename, 'w')
print("""
print("""// ======================================================================
// Functions
// ======================================================================
register_button_encoder=&lv0_register_button_encoder
montserrat_font=&lv0_load_montserrat_font
seg7_font=&lv0_load_seg7_font
load_font=&lv0_load_font
load_freetype_font=&lv0_load_freetype_font
screenshot=&lv0_screenshot
// ======================================================================
// Colors
// ======================================================================
// LV Colors - we store in 24 bits format and will convert at runtime
// This is specific treatment because we keep colors in 24 bits format
COLOR_WHITE=0xFFFFFF
@ -198,6 +213,76 @@ LV_TEXTAREA_CURSOR_LAST
LV_STYLE_PROP_ANY
LV_SIZE_CONTENT
// ======================================================================
// Symbols
// ======================================================================
SYMBOL_AUDIO="\\xef\\x80\\x81"
SYMBOL_VIDEO="\\xef\\x80\\x88"
SYMBOL_LIST="\\xef\\x80\\x8b"
SYMBOL_OK="\\xef\\x80\\x8c"
SYMBOL_CLOSE="\\xef\\x80\\x8d"
SYMBOL_POWER="\\xef\\x80\\x91"
SYMBOL_SETTINGS="\\xef\\x80\\x93"
SYMBOL_HOME="\\xef\\x80\\x95"
SYMBOL_DOWNLOAD="\\xef\\x80\\x99"
SYMBOL_DRIVE="\\xef\\x80\\x9c"
SYMBOL_REFRESH="\\xef\\x80\\xa1"
SYMBOL_MUTE="\\xef\\x80\\xa6"
SYMBOL_VOLUME_MID="\\xef\\x80\\xa7"
SYMBOL_VOLUME_MAX="\\xef\\x80\\xa8"
SYMBOL_IMAGE="\\xef\\x80\\xbe"
SYMBOL_EDIT="\\xef\\x8C\\x84"
SYMBOL_PREV="\\xef\\x81\\x88"
SYMBOL_PLAY="\\xef\\x81\\x8b"
SYMBOL_PAUSE="\\xef\\x81\\x8c"
SYMBOL_STOP="\\xef\\x81\\x8d"
SYMBOL_NEXT="\\xef\\x81\\x91"
SYMBOL_EJECT="\\xef\\x81\\x92"
SYMBOL_LEFT="\\xef\\x81\\x93"
SYMBOL_RIGHT="\\xef\\x81\\x94"
SYMBOL_PLUS="\\xef\\x81\\xa7"
SYMBOL_MINUS="\\xef\\x81\\xa8"
SYMBOL_EYE_OPEN="\\xef\\x81\\xae"
SYMBOL_EYE_CLOSE="\\xef\\x81\\xb0"
SYMBOL_WARNING="\\xef\\x81\\xb1"
SYMBOL_SHUFFLE="\\xef\\x81\\xb4"
SYMBOL_UP="\\xef\\x81\\xb7"
SYMBOL_DOWN="\\xef\\x81\\xb8"
SYMBOL_LOOP="\\xef\\x81\\xb9"
SYMBOL_DIRECTORY="\\xef\\x81\\xbb"
SYMBOL_UPLOAD="\\xef\\x82\\x93"
SYMBOL_CALL="\\xef\\x82\\x95"
SYMBOL_CUT="\\xef\\x83\\x84"
SYMBOL_COPY="\\xef\\x83\\x85"
SYMBOL_SAVE="\\xef\\x83\\x87"
SYMBOL_CHARGE="\\xef\\x83\\xa7"
SYMBOL_PASTE="\\xef\\x83\\xAA"
SYMBOL_BELL="\\xef\\x83\\xb3"
SYMBOL_KEYBOARD="\\xef\\x84\\x9c"
SYMBOL_GPS="\\xef\\x84\\xa4"
SYMBOL_FILE="\\xef\\x85\\x9b"
SYMBOL_WIFI="\\xef\\x87\\xab"
SYMBOL_BATTERY_FULL="\\xef\\x89\\x80"
SYMBOL_BATTERY_3="\\xef\\x89\\x81"
SYMBOL_BATTERY_2="\\xef\\x89\\x82"
SYMBOL_BATTERY_1="\\xef\\x89\\x83"
SYMBOL_BATTERY_EMPTY="\\xef\\x89\\x84"
SYMBOL_USB="\\xef\\x8a\\x87"
SYMBOL_BLUETOOTH="\\xef\\x8a\\x93"
SYMBOL_TRASH="\\xef\\x8B\\xAD"
SYMBOL_BACKSPACE="\\xef\\x95\\x9A"
SYMBOL_SD_CARD="\\xef\\x9F\\x82"
SYMBOL_NEW_LINE="\\xef\\xA2\\xA2"
SYMBOL_DUMMY="\\xEF\\xA3\\xBF"
SYMBOL_BULLET="\\xE2\\x80\\xA2"
// ======================================================================
// Generated from headers
// ======================================================================
""")