Merge pull request #12035 from s-hadinger/lvgl_button_rotary

LVGL Support for 3 buttons as rotary encoder
This commit is contained in:
s-hadinger 2021-05-07 13:42:15 +02:00 committed by GitHub
commit 55e4c9720d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 5044 additions and 4692 deletions

View File

@ -11,6 +11,9 @@
#include "lvgl.h"
extern int lv0_start(bvm *vm);
extern int lv0_add_button_encoder(bvm *vm); // add buttons with encoder logic
extern int lv0_load_montserrat_font(bvm *vm);
extern int lv0_load_seg7_font(bvm *vm);
extern int lv0_load_font(bvm *vm);
@ -122,6 +125,16 @@ be_native_module_attr_table(lvgl) {
be_native_module_int("ALIGN_OUT_RIGHT_TOP", 18),
be_native_module_int("ALIGN_OUT_RIGHT_MID", 19),
be_native_module_int("ALIGN_OUT_RIGHT_BOTTOM", 20),
be_native_module_int("INDEV_STATE_REL", 0),
be_native_module_int("INDEV_STATE_PR", 1),
be_native_module_int("DRAG_DIR_HOR", 1),
be_native_module_int("DRAG_DIR_VER", 2),
be_native_module_int("DRAG_DIR_BOTH", 3),
be_native_module_int("DRAG_DIR_ONE", 4),
be_native_module_int("GESTURE_DIR_TOP", 5),
be_native_module_int("GESTURE_DIR_BOTTOM", 6),
be_native_module_int("GESTURE_DIR_LEFT", 7),
be_native_module_int("GESTURE_DIR_RIGHT", 8),
be_native_module_int("DISP_ROT_NONE", 0),
be_native_module_int("DISP_ROT_90", 1),
be_native_module_int("DISP_ROT_180", 2),
@ -611,6 +624,7 @@ be_native_module_attr_table(lvgl) {
be_native_module_function("start", lv0_start),
be_native_module_function("add_button_encoder", lv0_add_button_encoder),
be_native_module_function("montserrat_font", lv0_load_montserrat_font),
be_native_module_function("seg7_font", lv0_load_seg7_font),
be_native_module_function("load_font", lv0_load_font),
@ -785,6 +799,16 @@ module lvgl (scope: global) {
ALIGN_OUT_RIGHT_TOP, int(18)
ALIGN_OUT_RIGHT_MID, int(19)
ALIGN_OUT_RIGHT_BOTTOM, int(20)
INDEV_STATE_REL, int(0)
INDEV_STATE_PR, int(1)
DRAG_DIR_HOR, int(1)
DRAG_DIR_VER, int(2)
DRAG_DIR_BOTH, int(3)
DRAG_DIR_ONE, int(4)
GESTURE_DIR_TOP, int(5)
GESTURE_DIR_BOTTOM, int(6)
GESTURE_DIR_LEFT, int(7)
GESTURE_DIR_RIGHT, int(8)
DISP_ROT_NONE, int(0)
DISP_ROT_90, int(1)
DISP_ROT_180, int(2)
@ -1151,6 +1175,7 @@ module lvgl (scope: global) {
TEXTAREA_CURSOR_LAST, int(32767)
start, func(lv0_start)
add_button_encoder, func(lv0_add_button_encoder)
montserrat_font, func(lv0_load_montserrat_font)
seg7_font, func(lv0_load_seg7_font)
load_font, func(lv0_load_font)

View File

@ -14,6 +14,10 @@
extern int lv0_start(bvm *vm);
extern int lv0_init(bvm *vm);
extern int lv0_add_button_encoder(bvm *vm); // add buttons with encoder logic
extern int lv0_scr_act(bvm *vm);
extern int lv0_layer_top(bvm *vm);
extern int lv0_layer_sys(bvm *vm);
@ -176,6 +180,13 @@ extern int lvbe_group_get_editing(bvm *vm);
extern int lvbe_group_get_click_focus(bvm *vm);
extern int lvbe_group_get_wrap(bvm *vm);
/* `lv_indev` external functions definitions */
extern int lvbe_indev_get_type(bvm *vm);
extern int lvbe_indev_enable(bvm *vm);
extern int lvbe_indev_set_group(bvm *vm);
extern int lvbe_indev_get_obj_act(bvm *vm);
extern int lvbe_indev_search_obj(bvm *vm);
/* `lv_obj` external functions definitions */
extern int lvbe_obj_create(bvm *vm);
extern int lvbe_obj_del(bvm *vm);
@ -1069,6 +1080,7 @@ extern int lvbe_win_scroll_ver(bvm *vm);
#include "../generate/be_fixed_be_class_lv_img.h"
#include "../generate/be_fixed_be_class_lv_style.h"
#include "../generate/be_fixed_be_class_lv_group.h"
#include "../generate/be_fixed_be_class_lv_indev.h"
#include "../generate/be_fixed_be_class_lv_obj.h"
#include "../generate/be_fixed_be_class_lv_arc.h"
#include "../generate/be_fixed_be_class_lv_bar.h"
@ -1476,6 +1488,49 @@ class be_class_lv_group (scope: global, name: lv_group) {
}
@const_object_info_end */
void be_load_lv_indev_lib(bvm *vm) {
#if !BE_USE_PRECOMPILED_OBJECT
static const bnfuncinfo members[] = {
{ ".p", NULL },
{ "init", lv0_init },
{ "tostring", lvx_tostring },
{ "get_type", lvbe_indev_get_type },
{ "enable", lvbe_indev_enable },
{ "set_group", lvbe_indev_set_group },
{ "get_obj_act", lvbe_indev_get_obj_act },
{ "search_obj", lvbe_indev_search_obj },
// { NULL, (bntvfunc) BE_CLOSURE }, /* mark section for berry closures */
{ NULL, NULL }
};
be_regclass(vm, "lv_indev", members);
be_getglobal(vm, "lv_indev");
be_getglobal(vm, "lv_obj");
be_setsuper(vm, -2);
be_pop(vm, 2);
#else
be_pushntvclass(vm, &be_class_lv_indev);
be_setglobal(vm, "lv_indev");
be_pop(vm, 1);
#endif
};
/* @const_object_info_begin
class be_class_lv_indev (scope: global, name: lv_indev, super: be_class_lv_obj) {
.p, var
init, func(lv0_init)
tostring, func(lvx_tostring)
get_type, func(lvbe_indev_get_type)
enable, func(lvbe_indev_enable)
set_group, func(lvbe_indev_set_group)
get_obj_act, func(lvbe_indev_get_obj_act)
search_obj, func(lvbe_indev_search_obj)
}
@const_object_info_end */
void be_load_lv_obj_lib(bvm *vm) {
#if !BE_USE_PRECOMPILED_OBJECT
static const bnfuncinfo members[] = {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_indev_map) {
{ be_const_key(get_type, -1), be_const_func(lvbe_indev_get_type) },
{ be_const_key(search_obj, -1), be_const_func(lvbe_indev_search_obj) },
{ be_const_key(get_obj_act, -1), be_const_func(lvbe_indev_get_obj_act) },
{ be_const_key(init, 4), be_const_func(lv0_init) },
{ be_const_key(dot_p, -1), be_const_int(0) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(enable, -1), be_const_func(lvbe_indev_enable) },
{ be_const_key(set_group, 1), be_const_func(lvbe_indev_set_group) },
};
static be_define_const_map(
be_class_lv_indev_map,
8
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_indev,
1,
(bclass *)&be_class_lv_obj,
lv_indev
);

View File

@ -1,470 +1,473 @@
#include "be_constobj.h"
static be_define_const_map_slots(m_liblvgl_map) {
{ be_const_key(STYLE_VALUE_OFS_X, 424), be_const_int(115) },
{ be_const_key(DISP_ROT_180, -1), be_const_int(2) },
{ be_const_key(SYMBOL_PLUS, 152), be_const_str(&be_local_const_str_SYMBOL_PLUS) },
{ be_const_key(TABVIEW_TAB_POS_BOTTOM, 143), be_const_int(2) },
{ be_const_key(KEYBOARD_MODE_NUM, 228), be_const_int(3) },
{ be_const_key(PROTECT_CLICK_FOCUS, -1), be_const_int(32) },
{ be_const_key(STYLE_VALUE_STR, -1), be_const_int(127) },
{ be_const_key(SYMBOL_SETTINGS, -1), be_const_str(&be_local_const_str_SYMBOL_SETTINGS) },
{ be_const_key(FS_RES_BUSY, -1), be_const_int(7) },
{ be_const_key(BLACK, 303), be_const_int(0) },
{ be_const_key(CHART_TYPE_LINE, -1), be_const_int(1) },
{ be_const_key(LAYOUT_GRID, 267), be_const_int(11) },
{ be_const_key(STYLE_VALUE_FONT, -1), be_const_int(126) },
{ be_const_key(OPA_40, -1), be_const_int(102) },
{ be_const_key(STYLE_TRANSITION_PROP_6, -1), be_const_int(183) },
{ be_const_key(STYLE_BORDER_BLEND_MODE, 370), be_const_int(50) },
{ be_const_key(CALENDAR_PART_DAY_NAMES, 158), be_const_int(2) },
{ be_const_key(FS_RES_TOUT, -1), be_const_int(8) },
{ be_const_key(LABEL_ALIGN_LEFT, 198), be_const_int(0) },
{ be_const_key(BORDER_SIDE_RIGHT, -1), be_const_int(8) },
{ be_const_key(DISP_SIZE_MEDIUM, -1), be_const_int(1) },
{ be_const_key(SYMBOL_HOME, 350), be_const_str(&be_local_const_str_SYMBOL_HOME) },
{ be_const_key(CALENDAR_PART_BG, -1), be_const_int(0) },
{ be_const_key(SILVER, 274), be_const_int(12632256) },
{ be_const_key(STYLE_TEXT_LINE_SPACE, -1), be_const_int(32897) },
{ be_const_key(STYLE_BG_COLOR, -1), be_const_int(41) },
{ be_const_key(RED, -1), be_const_int(16711680) },
{ be_const_key(STYLE_BG_OPA, 442), be_const_int(44) },
{ be_const_key(OPA_10, -1), be_const_int(25) },
{ be_const_key(STYLE_VALUE_OFS_Y, 56), be_const_int(116) },
{ be_const_key(LAYOUT_OFF, 164), be_const_int(0) },
{ be_const_key(ARC_TYPE_REVERSE, -1), be_const_int(2) },
{ be_const_key(ALIGN_OUT_TOP_MID, 297), be_const_int(10) },
{ be_const_key(KEYBOARD_MODE_SPECIAL, 367), be_const_int(2) },
{ be_const_key(BORDER_SIDE_BOTTOM, 394), be_const_int(1) },
{ be_const_key(CHART_CURSOR_RIGHT, 412), be_const_int(1) },
{ be_const_key(STATE_FOCUSED, -1), be_const_int(2) },
{ be_const_key(OBJ_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(STYLE_TRANSFORM_ZOOM, 290), be_const_int(7) },
{ be_const_key(STYLE_BG_MAIN_STOP, -1), be_const_int(33) },
{ be_const_key(SYMBOL_AUDIO, -1), be_const_str(&be_local_const_str_SYMBOL_AUDIO) },
{ be_const_key(EVENT_APPLY, 183), be_const_int(19) },
{ be_const_key(CHART_CURSOR_DOWN, -1), be_const_int(8) },
{ be_const_key(KEYBOARD_PART_BG, -1), be_const_int(0) },
{ be_const_key(DROPDOWN_PART_MAIN, 157), be_const_int(0) },
{ be_const_key(TXT_FLAG_RECOLOR, 178), be_const_int(1) },
{ be_const_key(SYMBOL_TRASH, 37), be_const_str(&be_local_const_str_SYMBOL_TRASH) },
{ be_const_key(scr_act, 364), be_const_func(lv0_scr_act) },
{ be_const_key(I2C, 382), be_const_int(1) },
{ be_const_key(CALENDAR_PART_DATE, 141), be_const_int(3) },
{ be_const_key(STYLE_SHADOW_OFS_X, -1), be_const_int(81) },
{ be_const_key(OBJ_PART_ALL, 295), be_const_int(255) },
{ be_const_key(screenshot, 201), be_const_func(lv0_screenshot) },
{ be_const_key(SYMBOL_LOOP, 94), be_const_str(&be_local_const_str_SYMBOL_LOOP) },
{ be_const_key(EVENT_DEFOCUSED, -1), be_const_int(14) },
{ be_const_key(PAGE_EDGE_BOTTOM, 105), be_const_int(8) },
{ be_const_key(ALIGN_OUT_TOP_RIGHT, -1), be_const_int(11) },
{ be_const_key(SYMBOL_COPY, 250), be_const_str(&be_local_const_str_SYMBOL_COPY) },
{ be_const_key(KEY_PREV, -1), be_const_int(11) },
{ be_const_key(STYLE_LINE_COLOR, -1), be_const_int(153) },
{ be_const_key(STYLE_MARGIN_LEFT, -1), be_const_int(23) },
{ be_const_key(STYLE_TRANSITION_PROP_2, 387), be_const_int(179) },
{ be_const_key(OPA_60, -1), be_const_int(153) },
{ be_const_key(KEYBOARD_MODE_TEXT_UPPER, -1), be_const_int(1) },
{ be_const_key(LABEL_LONG_SROLL, 249), be_const_int(3) },
{ be_const_key(FS_RES_NOT_IMP, 63), be_const_int(9) },
{ be_const_key(STYLE_PAD_RIGHT, -1), be_const_int(19) },
{ be_const_key(CHART_CURSOR_NONE, 293), be_const_int(0) },
{ be_const_key(FS_MODE_RD, -1), be_const_int(2) },
{ be_const_key(LIST_PART_EDGE_FLASH, 438), be_const_int(2) },
{ be_const_key(SYMBOL_BELL, 78), be_const_str(&be_local_const_str_SYMBOL_BELL) },
{ be_const_key(LABEL_LONG_CROP, -1), be_const_int(5) },
{ be_const_key(SYMBOL_POWER, -1), be_const_str(&be_local_const_str_SYMBOL_POWER) },
{ be_const_key(SYMBOL_UP, 57), be_const_str(&be_local_const_str_SYMBOL_UP) },
{ be_const_key(SYMBOL_MINUS, -1), be_const_str(&be_local_const_str_SYMBOL_MINUS) },
{ be_const_key(STYLE_MARGIN_BOTTOM, -1), be_const_int(22) },
{ be_const_key(SCROLLBAR_MODE_AUTO, 439), be_const_int(3) },
{ be_const_key(STYLE_IMAGE_OPA, -1), be_const_int(32940) },
{ be_const_key(CHART_AXIS_PRIMARY_Y, 292), be_const_int(0) },
{ be_const_key(SCROLLBAR_MODE_HIDE, 209), be_const_int(4) },
{ be_const_key(EVENT_DRAG_BEGIN, 211), be_const_int(8) },
{ be_const_key(FS_RES_OUT_OF_MEM, 434), be_const_int(10) },
{ be_const_key(SYMBOL_VOLUME_MAX, -1), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MAX) },
{ be_const_key(SLIDER_TYPE_NORMAL, -1), be_const_int(0) },
{ be_const_key(BTN_STATE_RELEASED, -1), be_const_int(0) },
{ be_const_key(CPICKER_COLOR_MODE_VALUE, -1), be_const_int(2) },
{ be_const_key(PAGE_EDGE_RIGHT, -1), be_const_int(4) },
{ be_const_key(FS_RES_HW_ERR, -1), be_const_int(1) },
{ be_const_key(DISP_SIZE_EXTRA_LARGE, -1), be_const_int(3) },
{ be_const_key(SYMBOL_SAVE, 191), be_const_str(&be_local_const_str_SYMBOL_SAVE) },
{ be_const_key(STYLE_TEXT_BLEND_MODE, -1), be_const_int(32899) },
{ be_const_key(OBJMASK_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(SYMBOL_USB, 389), be_const_str(&be_local_const_str_SYMBOL_USB) },
{ be_const_key(STYLE_BORDER_POST, -1), be_const_int(51) },
{ be_const_key(FS_RES_INV_PARAM, -1), be_const_int(11) },
{ be_const_key(TEAL, 264), be_const_int(32896) },
{ be_const_key(LAYOUT_COLUMN_MID, -1), be_const_int(3) },
{ be_const_key(LAYOUT_COLUMN_LEFT, -1), be_const_int(2) },
{ be_const_key(ALIGN_IN_BOTTOM_RIGHT, -1), be_const_int(6) },
{ be_const_key(STYLE_BORDER_COLOR, -1), be_const_int(57) },
{ be_const_key(SCROLLBAR_MODE_OFF, -1), be_const_int(0) },
{ be_const_key(ALIGN_OUT_RIGHT_MID, 188), be_const_int(19) },
{ be_const_key(TXT_CMD_STATE_WAIT, -1), be_const_int(0) },
{ be_const_key(STYLE_BG_GRAD_STOP, 377), be_const_int(34) },
{ be_const_key(STYLE_PAD_TOP, 163), be_const_int(16) },
{ be_const_key(GESTURE_DIR_BOTTOM, -1), be_const_int(1) },
{ be_const_key(CHART_CURSOR_LEFT, 423), be_const_int(4) },
{ be_const_key(DISP_SIZE_SMALL, -1), be_const_int(0) },
{ be_const_key(BTN_STATE_CHECKED_PRESSED, -1), be_const_int(4) },
{ be_const_key(EVENT_GESTURE, -1), be_const_int(11) },
{ be_const_key(BTN_STATE_DISABLED, 396), be_const_int(2) },
{ be_const_key(KEY_ENTER, 222), be_const_int(10) },
{ be_const_key(EVENT_RELEASED, -1), be_const_int(7) },
{ be_const_key(GRAD_DIR_HOR, -1), be_const_int(2) },
{ be_const_key(ALIGN_OUT_LEFT_BOTTOM, -1), be_const_int(17) },
{ be_const_key(SYMBOL_BLUETOOTH, -1), be_const_str(&be_local_const_str_SYMBOL_BLUETOOTH) },
{ be_const_key(CHECKBOX_PART_BULLET, 41), be_const_int(64) },
{ be_const_key(KEY_DEL, -1), be_const_int(127) },
{ be_const_key(LIST_PART_BG, -1), be_const_int(0) },
{ be_const_key(PROTECT_CHILD_CHG, -1), be_const_int(1) },
{ be_const_key(KEYBOARD_MODE_TEXT_LOWER, -1), be_const_int(0) },
{ be_const_key(CPICKER_COLOR_MODE_SATURATION, 190), be_const_int(1) },
{ be_const_key(LAYOUT_PRETTY_BOTTOM, -1), be_const_int(10) },
{ be_const_key(EVENT_CLICKED, -1), be_const_int(6) },
{ be_const_key(OPA_0, -1), be_const_int(0) },
{ be_const_key(OLIVE, 400), be_const_int(8421376) },
{ be_const_key(ALIGN_OUT_RIGHT_BOTTOM, -1), be_const_int(20) },
{ be_const_key(TEXT_DECOR_NONE, 360), be_const_int(0) },
{ be_const_key(SYMBOL_BATTERY_EMPTY, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_EMPTY) },
{ be_const_key(PROTECT_FOLLOW, 416), be_const_int(8) },
{ be_const_key(STYLE_SHADOW_BLEND_MODE, -1), be_const_int(84) },
{ be_const_key(STYLE_PATTERN_IMAGE, 234), be_const_int(110) },
{ be_const_key(STATE_EDITED, 75), be_const_int(4) },
{ be_const_key(DROPDOWN_PART_SCROLLBAR, 217), be_const_int(65) },
{ be_const_key(SPINNER_DIR_BACKWARD, -1), be_const_int(1) },
{ be_const_key(GRAD_DIR_VER, -1), be_const_int(1) },
{ be_const_key(TXT_FLAG_RIGHT, 330), be_const_int(8) },
{ be_const_key(BTNMATRIX_CTRL_CLICK_TRIG, 398), be_const_int(256) },
{ be_const_key(OPA_COVER, 345), be_const_int(255) },
{ be_const_key(KEY_END, 32), be_const_int(3) },
{ be_const_key(DISP_SIZE_LARGE, -1), be_const_int(2) },
{ be_const_key(layer_sys, -1), be_const_func(lv0_layer_sys) },
{ be_const_key(DISP_ROT_NONE, 13), be_const_int(0) },
{ be_const_key(CALENDAR_PART_HEADER, -1), be_const_int(1) },
{ be_const_key(ALIGN_OUT_BOTTOM_LEFT, -1), be_const_int(12) },
{ be_const_key(TXT_CMD_STATE_IN, 385), be_const_int(2) },
{ be_const_key(EVENT_FOCUSED, -1), be_const_int(13) },
{ be_const_key(EVENT_DELETE, 14), be_const_int(21) },
{ be_const_key(PAGE_EDGE_LEFT, -1), be_const_int(1) },
{ be_const_key(STYLE_CLIP_CORNER, -1), be_const_int(2) },
{ be_const_key(FIT_PARENT, -1), be_const_int(2) },
{ be_const_key(STYLE_LINE_ROUNDED, 64), be_const_int(148) },
{ be_const_key(GRAY, -1), be_const_int(8421504) },
{ be_const_key(BORDER_SIDE_FULL, -1), be_const_int(15) },
{ be_const_key(SYMBOL_CALL, -1), be_const_str(&be_local_const_str_SYMBOL_CALL) },
{ be_const_key(SYMBOL_MUTE, 131), be_const_str(&be_local_const_str_SYMBOL_MUTE) },
{ be_const_key(PAGE_EDGE_TOP, -1), be_const_int(2) },
{ be_const_key(BAR_TYPE_CUSTOM, 54), be_const_int(2) },
{ be_const_key(STYLE_SCALE_END_BORDER_WIDTH, -1), be_const_int(194) },
{ be_const_key(FS_MODE_WR, -1), be_const_int(1) },
{ be_const_key(CPICKER_PART_KNOB, 399), be_const_int(1) },
{ be_const_key(EVENT_SHORT_CLICKED, -1), be_const_int(3) },
{ be_const_key(LIST_PART_SCROLLBAR, -1), be_const_int(1) },
{ be_const_key(STYLE_LINE_BLEND_MODE, 427), be_const_int(145) },
{ be_const_key(CPICKER_TYPE_DISC, 440), be_const_int(1) },
{ be_const_key(OPA_90, -1), be_const_int(229) },
{ be_const_key(ALIGN_IN_LEFT_MID, -1), be_const_int(7) },
{ be_const_key(SYMBOL_OK, -1), be_const_str(&be_local_const_str_SYMBOL_OK) },
{ be_const_key(STYLE_TRANSITION_PATH, 159), be_const_int(190) },
{ be_const_key(TEMPL_STYLE_X, 35), be_const_int(0) },
{ be_const_key(KEY_HOME, -1), be_const_int(2) },
{ be_const_key(SYMBOL_LEFT, 58), be_const_str(&be_local_const_str_SYMBOL_LEFT) },
{ be_const_key(STYLE_SIZE, -1), be_const_int(3) },
{ be_const_key(STYLE_SCALE_GRAD_COLOR, -1), be_const_int(201) },
{ be_const_key(DROPDOWN_DIR_DOWN, -1), be_const_int(0) },
{ be_const_key(LABEL_ALIGN_RIGHT, -1), be_const_int(2) },
{ be_const_key(DROPDOWN_DIR_UP, -1), be_const_int(1) },
{ be_const_key(CHART_UPDATE_MODE_CIRCULAR, -1), be_const_int(1) },
{ be_const_key(BTNMATRIX_CTRL_DISABLED, -1), be_const_int(32) },
{ be_const_key(ARC_PART_INDIC, -1), be_const_int(1) },
{ be_const_key(LAYOUT_COLUMN_RIGHT, 112), be_const_int(4) },
{ be_const_key(DISP_SIZE_MEDIUM, 32), be_const_int(1) },
{ be_const_key(EVENT_DRAG_THROW_BEGIN, -1), be_const_int(10) },
{ be_const_key(BTNMATRIX_CTRL_CHECKABLE, 296), be_const_int(64) },
{ be_const_key(SYMBOL_EYE_OPEN, -1), be_const_str(&be_local_const_str_SYMBOL_EYE_OPEN) },
{ be_const_key(STATE_CHECKED, -1), be_const_int(1) },
{ be_const_key(DRAG_DIR_BOTH, 392), be_const_int(3) },
{ be_const_key(SPINNER_TYPE_SPINNING_ARC, -1), be_const_int(0) },
{ be_const_key(CHART_AXIS_DRAW_LAST_TICK, -1), be_const_int(1) },
{ be_const_key(PROTECT_PARENT, 315), be_const_int(2) },
{ be_const_key(ALIGN_OUT_BOTTOM_MID, 235), be_const_int(13) },
{ be_const_key(CHART_PART_SERIES, 284), be_const_int(2) },
{ be_const_key(FS_RES_UNKNOWN, -1), be_const_int(12) },
{ be_const_key(MAROON, -1), be_const_int(8388608) },
{ be_const_key(STYLE_SHADOW_OPA, -1), be_const_int(92) },
{ be_const_key(GREEN, -1), be_const_int(32768) },
{ be_const_key(STYLE_OUTLINE_COLOR, -1), be_const_int(73) },
{ be_const_key(load_font, -1), be_const_func(lv0_load_font) },
{ be_const_key(STYLE_LINE_OPA, 132), be_const_int(156) },
{ be_const_key(STYLE_TEXT_FONT, -1), be_const_int(32910) },
{ be_const_key(TEXT_DECOR_STRIKETHROUGH, -1), be_const_int(2) },
{ be_const_key(EVENT_PRESSING, -1), be_const_int(1) },
{ be_const_key(DISP_ROT_90, -1), be_const_int(1) },
{ be_const_key(STYLE_LINE_DASH_GAP, -1), be_const_int(147) },
{ be_const_key(ARC_PART_KNOB, -1), be_const_int(2) },
{ be_const_key(STYLE_IMAGE_BLEND_MODE, 99), be_const_int(32928) },
{ be_const_key(STATE_HOVERED, -1), be_const_int(8) },
{ be_const_key(STYLE_LINE_DASH_WIDTH, -1), be_const_int(146) },
{ be_const_key(KEY_UP, -1), be_const_int(17) },
{ be_const_key(SLIDER_TYPE_RANGE, -1), be_const_int(2) },
{ be_const_key(ANIM_OFF, -1), be_const_int(0) },
{ be_const_key(CHART_PART_CURSOR, -1), be_const_int(3) },
{ be_const_key(LAYOUT_ROW_MID, 354), be_const_int(6) },
{ be_const_key(STYLE_VALUE_ALIGN, 448), be_const_int(117) },
{ be_const_key(ALIGN_OUT_LEFT_TOP, -1), be_const_int(15) },
{ be_const_key(SCROLLBAR_MODE_ON, 97), be_const_int(1) },
{ be_const_key(SYMBOL_PREV, -1), be_const_str(&be_local_const_str_SYMBOL_PREV) },
{ be_const_key(DROPDOWN_PART_SELECTED, 337), be_const_int(66) },
{ be_const_key(LIME, 39), be_const_int(65280) },
{ be_const_key(STYLE_BORDER_OPA, -1), be_const_int(60) },
{ be_const_key(SYMBOL_DRIVE, 127), be_const_str(&be_local_const_str_SYMBOL_DRIVE) },
{ be_const_key(montserrat_font, 280), be_const_func(lv0_load_montserrat_font) },
{ be_const_key(DROPDOWN_DIR_LEFT, -1), be_const_int(2) },
{ be_const_key(EVENT_CANCEL, 288), be_const_int(20) },
{ be_const_key(SYMBOL_BATTERY_2, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_2) },
{ be_const_key(DROPDOWN_DIR_RIGHT, 84), be_const_int(3) },
{ be_const_key(TXT_CMD_STATE_PAR, -1), be_const_int(1) },
{ be_const_key(STYLE_TRANSITION_PROP_1, 91), be_const_int(178) },
{ be_const_key(OPA_100, -1), be_const_int(255) },
{ be_const_key(ALIGN_OUT_TOP_LEFT, -1), be_const_int(9) },
{ be_const_key(SPINNER_DIR_FORWARD, -1), be_const_int(0) },
{ be_const_key(STYLE_BORDER_WIDTH, -1), be_const_int(48) },
{ be_const_key(SYMBOL_REFRESH, -1), be_const_str(&be_local_const_str_SYMBOL_REFRESH) },
{ be_const_key(FS_RES_NOT_EX, 363), be_const_int(3) },
{ be_const_key(TXT_FLAG_CENTER, 247), be_const_int(4) },
{ be_const_key(FS_RES_LOCKED, 130), be_const_int(5) },
{ be_const_key(STATE_DEFAULT, 338), be_const_int(0) },
{ be_const_key(DROPDOWN_PART_LIST, -1), be_const_int(64) },
{ be_const_key(SCROLLBAR_MODE_UNHIDE, 283), be_const_int(8) },
{ be_const_key(STYLE_BG_GRAD_DIR, -1), be_const_int(35) },
{ be_const_key(SSPI, -1), be_const_int(2) },
{ be_const_key(SYMBOL_RIGHT, -1), be_const_str(&be_local_const_str_SYMBOL_RIGHT) },
{ be_const_key(SYMBOL_PLAY, -1), be_const_str(&be_local_const_str_SYMBOL_PLAY) },
{ be_const_key(LAYOUT_PRETTY_MID, -1), be_const_int(9) },
{ be_const_key(STYLE_OUTLINE_OPA, -1), be_const_int(76) },
{ be_const_key(LAYOUT_CENTER, -1), be_const_int(1) },
{ be_const_key(KEYBOARD_PART_BTN, 286), be_const_int(1) },
{ be_const_key(LED_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(EVENT_VALUE_CHANGED, -1), be_const_int(16) },
{ be_const_key(OPA_20, 239), be_const_int(51) },
{ be_const_key(CHART_UPDATE_MODE_SHIFT, -1), be_const_int(0) },
{ be_const_key(STATE_PRESSED, -1), be_const_int(16) },
{ be_const_key(BTN_STATE_CHECKED_DISABLED, -1), be_const_int(5) },
{ be_const_key(OPA_TRANSP, 137), be_const_int(0) },
{ be_const_key(STYLE_TRANSFORM_HEIGHT, -1), be_const_int(5) },
{ be_const_key(STYLE_LINE_WIDTH, -1), be_const_int(144) },
{ be_const_key(STYLE_TEXT_OPA, -1), be_const_int(32908) },
{ be_const_key(STYLE_TEXT_LETTER_SPACE, -1), be_const_int(32896) },
{ be_const_key(OPA_70, -1), be_const_int(178) },
{ be_const_key(STYLE_SHADOW_OFS_Y, -1), be_const_int(82) },
{ be_const_key(STYLE_VALUE_COLOR, 413), be_const_int(121) },
{ be_const_key(TABVIEW_TAB_POS_TOP, -1), be_const_int(1) },
{ be_const_key(LAYOUT_ROW_BOTTOM, 318), be_const_int(7) },
{ be_const_key(ALIGN_CENTER, 144), be_const_int(0) },
{ be_const_key(OPA_50, 278), be_const_int(127) },
{ be_const_key(SYMBOL_CHARGE, -1), be_const_str(&be_local_const_str_SYMBOL_CHARGE) },
{ be_const_key(CHART_AXIS_SECONDARY_Y, -1), be_const_int(1) },
{ be_const_key(STYLE_IMAGE_RECOLOR, -1), be_const_int(32937) },
{ be_const_key(SYMBOL_BACKSPACE, -1), be_const_str(&be_local_const_str_SYMBOL_BACKSPACE) },
{ be_const_key(STYLE_TEXT_DECOR, 435), be_const_int(32898) },
{ be_const_key(STYLE_TRANSITION_PROP_3, 212), be_const_int(180) },
{ be_const_key(GAUGE_PART_MAIN, 428), be_const_int(0) },
{ be_const_key(SYMBOL_DOWNLOAD, -1), be_const_str(&be_local_const_str_SYMBOL_DOWNLOAD) },
{ be_const_key(ALIGN_OUT_BOTTOM_RIGHT, -1), be_const_int(14) },
{ be_const_key(SYMBOL_DOWN, -1), be_const_str(&be_local_const_str_SYMBOL_DOWN) },
{ be_const_key(EVENT_PRESSED, -1), be_const_int(0) },
{ be_const_key(STYLE_VALUE_LETTER_SPACE, 18), be_const_int(112) },
{ be_const_key(BTN_STATE_CHECKED_RELEASED, -1), be_const_int(3) },
{ be_const_key(STYLE_OUTLINE_WIDTH, 304), be_const_int(64) },
{ be_const_key(STYLE_PAD_INNER, -1), be_const_int(20) },
{ be_const_key(STYLE_PATTERN_BLEND_MODE, -1), be_const_int(96) },
{ be_const_key(LINEMETER_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(STYLE_SCALE_END_COLOR, -1), be_const_int(202) },
{ be_const_key(LABEL_LONG_DOT, -1), be_const_int(2) },
{ be_const_key(STYLE_TEXT_COLOR, 0), be_const_int(32905) },
{ be_const_key(STYLE_PATTERN_RECOLOR_OPA, -1), be_const_int(109) },
{ be_const_key(SYMBOL_FILE, -1), be_const_str(&be_local_const_str_SYMBOL_FILE) },
{ be_const_key(STYLE_SCALE_BORDER_WIDTH, -1), be_const_int(193) },
{ be_const_key(HSPI, -1), be_const_int(0) },
{ be_const_key(OBJ_PART_VIRTUAL_FIRST, 341), be_const_int(1) },
{ be_const_key(SYMBOL_WIFI, 179), be_const_str(&be_local_const_str_SYMBOL_WIFI) },
{ be_const_key(LABEL_ALIGN_CENTER, -1), be_const_int(1) },
{ be_const_key(ALIGN_OUT_LEFT_MID, -1), be_const_int(16) },
{ be_const_key(STYLE_SCALE_END_LINE_WIDTH, -1), be_const_int(195) },
{ be_const_key(ROLLER_MODE_NORMAL, 409), be_const_int(0) },
{ be_const_key(SYMBOL_EDIT, 271), be_const_str(&be_local_const_str_SYMBOL_EDIT) },
{ be_const_key(STYLE_SCALE_WIDTH, -1), be_const_int(192) },
{ be_const_key(BORDER_SIDE_INTERNAL, -1), be_const_int(16) },
{ be_const_key(CHECKBOX_PART_BG, -1), be_const_int(0) },
{ be_const_key(CHART_TYPE_NONE, 355), be_const_int(0) },
{ be_const_key(SYMBOL_UPLOAD, 401), be_const_str(&be_local_const_str_SYMBOL_UPLOAD) },
{ be_const_key(ALIGN_OUT_RIGHT_TOP, -1), be_const_int(18) },
{ be_const_key(DRAG_DIR_VER, -1), be_const_int(2) },
{ be_const_key(CHART_PART_BG, 160), be_const_int(0) },
{ be_const_key(EVENT_INSERT, -1), be_const_int(17) },
{ be_const_key(BORDER_SIDE_TOP, -1), be_const_int(2) },
{ be_const_key(STYLE_TEXT_SEL_COLOR, -1), be_const_int(32906) },
{ be_const_key(STYLE_IMAGE_RECOLOR_OPA, -1), be_const_int(32941) },
{ be_const_key(BTNMATRIX_CTRL_HIDDEN, 192), be_const_int(8) },
{ be_const_key(FIT_TIGHT, -1), be_const_int(1) },
{ be_const_key(STYLE_VALUE_BLEND_MODE, 347), be_const_int(114) },
{ be_const_key(FS_RES_FS_ERR, 74), be_const_int(2) },
{ be_const_key(SLIDER_TYPE_SYMMETRICAL, 373), be_const_int(1) },
{ be_const_key(STYLE_TRANSITION_PROP_5, -1), be_const_int(182) },
{ be_const_key(FS_RES_DENIED, 213), be_const_int(6) },
{ be_const_key(DRAG_DIR_HOR, 349), be_const_int(1) },
{ be_const_key(GAUGE_PART_MAJOR, 418), be_const_int(1) },
{ be_const_key(PROTECT_EVENT_TO_DISABLED, 73), be_const_int(64) },
{ be_const_key(STYLE_VALUE_OPA, -1), be_const_int(124) },
{ be_const_key(EVENT_LEAVE, 282), be_const_int(15) },
{ be_const_key(PROTECT_NONE, 81), be_const_int(0) },
{ be_const_key(PROTECT_PRESS_LOST, -1), be_const_int(16) },
{ be_const_key(YELLOW, 71), be_const_int(16776960) },
{ be_const_key(GESTURE_DIR_RIGHT, -1), be_const_int(3) },
{ be_const_key(VSPI, -1), be_const_int(1) },
{ be_const_key(STYLE_PATTERN_RECOLOR, -1), be_const_int(105) },
{ be_const_key(STYLE_SHADOW_COLOR, -1), be_const_int(89) },
{ be_const_key(KEY_BACKSPACE, -1), be_const_int(8) },
{ be_const_key(STYLE_OUTLINE_PAD, -1), be_const_int(65) },
{ be_const_key(AQUA, 322), be_const_int(65535) },
{ be_const_key(CHART_PART_SERIES_BG, 51), be_const_int(1) },
{ be_const_key(SPINNER_TYPE_CONSTANT_ARC, 452), be_const_int(2) },
{ be_const_key(ANIM_ON, 189), be_const_int(1) },
{ be_const_key(STYLE_TRANSFORM_ANGLE, -1), be_const_int(6) },
{ be_const_key(TEXTAREA_CURSOR_LAST, 23), be_const_int(32767) },
{ be_const_key(STYLE_VALUE_LINE_SPACE, -1), be_const_int(113) },
{ be_const_key(FIT_NONE, -1), be_const_int(0) },
{ be_const_key(STYLE_TEXT_SEL_BG_COLOR, 153), be_const_int(32907) },
{ be_const_key(STYLE_TRANSFORM_WIDTH, -1), be_const_int(4) },
{ be_const_key(CPICKER_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(get_hor_res, -1), be_const_func(lv0_get_hor_res) },
{ be_const_key(GRAD_DIR_NONE, -1), be_const_int(0) },
{ be_const_key(STYLE_TRANSITION_TIME, -1), be_const_int(176) },
{ be_const_key(STYLE_OUTLINE_BLEND_MODE, -1), be_const_int(66) },
{ be_const_key(BAR_TYPE_SYMMETRICAL, -1), be_const_int(1) },
{ be_const_key(ALIGN_IN_BOTTOM_LEFT, 277), be_const_int(4) },
{ be_const_key(PROTECT_POS, 165), be_const_int(4) },
{ be_const_key(DISP_ROT_270, -1), be_const_int(3) },
{ be_const_key(EVENT_LONG_PRESSED, -1), be_const_int(4) },
{ be_const_key(ALIGN_IN_TOP_LEFT, -1), be_const_int(1) },
{ be_const_key(CYAN, -1), be_const_int(65535) },
{ be_const_key(LABEL_LONG_EXPAND, -1), be_const_int(0) },
{ be_const_key(STYLE_RADIUS, 79), be_const_int(1) },
{ be_const_key(TXT_FLAG_FIT, -1), be_const_int(16) },
{ be_const_key(SYMBOL_IMAGE, -1), be_const_str(&be_local_const_str_SYMBOL_IMAGE) },
{ be_const_key(GREEN, 194), be_const_int(32768) },
{ be_const_key(LAYOUT_ROW_MID, -1), be_const_int(6) },
{ be_const_key(TEMPL_STYLE_X, -1), be_const_int(0) },
{ be_const_key(BLEND_MODE_ADDITIVE, -1), be_const_int(1) },
{ be_const_key(TXT_FLAG_EXPAND, 301), be_const_int(2) },
{ be_const_key(KEY_NEXT, -1), be_const_int(9) },
{ be_const_key(KEY_RIGHT, 391), be_const_int(19) },
{ be_const_key(OPA_80, -1), be_const_int(204) },
{ be_const_key(LAYOUT_ROW_TOP, -1), be_const_int(5) },
{ be_const_key(ROLLER_MODE_INFINITE, -1), be_const_int(1) },
{ be_const_key(FS_RES_FULL, 403), be_const_int(4) },
{ be_const_key(SPI, -1), be_const_int(0) },
{ be_const_key(SCROLLBAR_MODE_DRAG, -1), be_const_int(2) },
{ be_const_key(get_ver_res, 108), be_const_func(lv0_get_ver_res) },
{ be_const_key(EVENT_REFRESH, -1), be_const_int(18) },
{ be_const_key(BTNMATRIX_CTRL_NO_REPEAT, -1), be_const_int(16) },
{ be_const_key(SYMBOL_SHUFFLE, -1), be_const_str(&be_local_const_str_SYMBOL_SHUFFLE) },
{ be_const_key(STYLE_OPA_SCALE, -1), be_const_int(32780) },
{ be_const_key(CHART_CURSOR_UP, -1), be_const_int(2) },
{ be_const_key(STYLE_MARGIN_TOP, -1), be_const_int(21) },
{ be_const_key(ARC_TYPE_SYMMETRIC, 272), be_const_int(1) },
{ be_const_key(SYMBOL_BATTERY_3, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_3) },
{ be_const_key(start, 425), be_const_func(lv0_start) },
{ be_const_key(SYMBOL_WARNING, 62), be_const_str(&be_local_const_str_SYMBOL_WARNING) },
{ be_const_key(ALIGN_IN_BOTTOM_MID, -1), be_const_int(5) },
{ be_const_key(STATE_DISABLED, -1), be_const_int(32) },
{ be_const_key(KEY_ESC, -1), be_const_int(27) },
{ be_const_key(CPICKER_TYPE_RECT, -1), be_const_int(0) },
{ be_const_key(SYMBOL_KEYBOARD, -1), be_const_str(&be_local_const_str_SYMBOL_KEYBOARD) },
{ be_const_key(SYMBOL_EYE_CLOSE, 174), be_const_str(&be_local_const_str_SYMBOL_EYE_CLOSE) },
{ be_const_key(SYMBOL_IMAGE, 332), be_const_str(&be_local_const_str_SYMBOL_IMAGE) },
{ be_const_key(SYMBOL_PAUSE, 229), be_const_str(&be_local_const_str_SYMBOL_PAUSE) },
{ be_const_key(NAVY, 263), be_const_int(128) },
{ be_const_key(EVENT_KEY, -1), be_const_int(12) },
{ be_const_key(ALIGN_IN_TOP_MID, -1), be_const_int(2) },
{ be_const_key(STYLE_BG_BLEND_MODE, -1), be_const_int(32) },
{ be_const_key(SYMBOL_BULLET, -1), be_const_str(&be_local_const_str_SYMBOL_BULLET) },
{ be_const_key(EVENT_DRAG_END, 450), be_const_int(9) },
{ be_const_key(STYLE_SHADOW_WIDTH, -1), be_const_int(80) },
{ be_const_key(TABVIEW_TAB_POS_RIGHT, -1), be_const_int(4) },
{ be_const_key(STYLE_BORDER_SIDE, -1), be_const_int(49) },
{ be_const_key(BLEND_MODE_NORMAL, -1), be_const_int(0) },
{ be_const_key(SYMBOL_CLOSE, 455), be_const_str(&be_local_const_str_SYMBOL_CLOSE) },
{ be_const_key(SYMBOL_DIRECTORY, -1), be_const_str(&be_local_const_str_SYMBOL_DIRECTORY) },
{ be_const_key(GESTURE_DIR_LEFT, -1), be_const_int(2) },
{ be_const_key(EVENT_PRESS_LOST, -1), be_const_int(2) },
{ be_const_key(MAGENTA, 268), be_const_int(16711935) },
{ be_const_key(BAR_TYPE_NORMAL, -1), be_const_int(0) },
{ be_const_key(BLUE, 314), be_const_int(255) },
{ be_const_key(FS_RES_TOUT, -1), be_const_int(8) },
{ be_const_key(LABEL_LONG_EXPAND, 349), be_const_int(0) },
{ be_const_key(montserrat_font, 309), be_const_func(lv0_load_montserrat_font) },
{ be_const_key(BORDER_SIDE_INTERNAL, -1), be_const_int(16) },
{ be_const_key(ALIGN_IN_BOTTOM_LEFT, -1), be_const_int(4) },
{ be_const_key(screenshot, -1), be_const_func(lv0_screenshot) },
{ be_const_key(TXT_FLAG_CENTER, 430), be_const_int(4) },
{ be_const_key(TABVIEW_TAB_POS_NONE, -1), be_const_int(0) },
{ be_const_key(LABEL_ALIGN_LEFT, 196), be_const_int(0) },
{ be_const_key(ALIGN_IN_TOP_MID, 93), be_const_int(2) },
{ be_const_key(ALIGN_OUT_TOP_MID, 347), be_const_int(10) },
{ be_const_key(STATE_PRESSED, 454), be_const_int(16) },
{ be_const_key(CHART_CURSOR_RIGHT, -1), be_const_int(1) },
{ be_const_key(STYLE_BG_OPA, -1), be_const_int(44) },
{ be_const_key(STYLE_PAD_BOTTOM, -1), be_const_int(17) },
{ be_const_key(STYLE_SCALE_BORDER_WIDTH, -1), be_const_int(193) },
{ be_const_key(SYMBOL_DUMMY, -1), be_const_str(&be_local_const_str_SYMBOL_DUMMY) },
{ be_const_key(SYMBOL_BELL, -1), be_const_str(&be_local_const_str_SYMBOL_BELL) },
{ be_const_key(SYMBOL_PLUS, 134), be_const_str(&be_local_const_str_SYMBOL_PLUS) },
{ be_const_key(SYMBOL_REFRESH, -1), be_const_str(&be_local_const_str_SYMBOL_REFRESH) },
{ be_const_key(CALENDAR_PART_DATE, 383), be_const_int(3) },
{ be_const_key(ALIGN_OUT_BOTTOM_MID, -1), be_const_int(13) },
{ be_const_key(DRAG_DIR_ONE, -1), be_const_int(4) },
{ be_const_key(SCROLLBAR_MODE_ON, -1), be_const_int(1) },
{ be_const_key(OPA_70, 167), be_const_int(178) },
{ be_const_key(YELLOW, -1), be_const_int(16776960) },
{ be_const_key(CPICKER_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(CHART_PART_BG, -1), be_const_int(0) },
{ be_const_key(STYLE_PAD_LEFT, -1), be_const_int(18) },
{ be_const_key(FS_RES_OK, -1), be_const_int(0) },
{ be_const_key(SYMBOL_LIST, -1), be_const_str(&be_local_const_str_SYMBOL_LIST) },
{ be_const_key(LAYOUT_PRETTY_TOP, -1), be_const_int(8) },
{ be_const_key(SYMBOL_VOLUME_MID, 343), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MID) },
{ be_const_key(CPICKER_COLOR_MODE_HUE, -1), be_const_int(0) },
{ be_const_key(PURPLE, -1), be_const_int(8388736) },
{ be_const_key(BTN_STATE_PRESSED, 86), be_const_int(1) },
{ be_const_key(SYMBOL_TRASH, -1), be_const_str(&be_local_const_str_SYMBOL_TRASH) },
{ be_const_key(get_ver_res, -1), be_const_func(lv0_get_ver_res) },
{ be_const_key(OPA_50, -1), be_const_int(127) },
{ be_const_key(OLIVE, 330), be_const_int(8421376) },
{ be_const_key(STYLE_IMAGE_RECOLOR, 111), be_const_int(32937) },
{ be_const_key(SYMBOL_WARNING, -1), be_const_str(&be_local_const_str_SYMBOL_WARNING) },
{ be_const_key(OBJ_PART_ALL, -1), be_const_int(255) },
{ be_const_key(DROPDOWN_DIR_LEFT, -1), be_const_int(2) },
{ be_const_key(TEXT_DECOR_UNDERLINE, 105), be_const_int(1) },
{ be_const_key(ARC_PART_INDIC, -1), be_const_int(1) },
{ be_const_key(ALIGN_OUT_TOP_RIGHT, 319), be_const_int(11) },
{ be_const_key(CHART_CURSOR_DOWN, 59), be_const_int(8) },
{ be_const_key(STYLE_PATTERN_REPEAT, -1), be_const_int(97) },
{ be_const_key(TABVIEW_TAB_POS_LEFT, -1), be_const_int(3) },
{ be_const_key(FS_RES_HW_ERR, -1), be_const_int(1) },
{ be_const_key(ALIGN_CENTER, 18), be_const_int(0) },
{ be_const_key(LAYOUT_COLUMN_LEFT, 209), be_const_int(2) },
{ be_const_key(TABVIEW_TAB_POS_BOTTOM, -1), be_const_int(2) },
{ be_const_key(EVENT_REFRESH, 341), be_const_int(18) },
{ be_const_key(DROPDOWN_DIR_UP, -1), be_const_int(1) },
{ be_const_key(EVENT_DELETE, 65), be_const_int(21) },
{ be_const_key(OPA_10, 146), be_const_int(25) },
{ be_const_key(EVENT_KEY, -1), be_const_int(12) },
{ be_const_key(LIST_PART_EDGE_FLASH, 219), be_const_int(2) },
{ be_const_key(KEYBOARD_MODE_TEXT_UPPER, -1), be_const_int(1) },
{ be_const_key(GAUGE_PART_NEEDLE, -1), be_const_int(2) },
{ be_const_key(LABEL_LONG_CROP, -1), be_const_int(5) },
{ be_const_key(STYLE_SHADOW_OPA, 327), be_const_int(92) },
{ be_const_key(BTNMATRIX_CTRL_DISABLED, -1), be_const_int(32) },
{ be_const_key(TXT_CMD_STATE_WAIT, -1), be_const_int(0) },
{ be_const_key(SPINNER_TYPE_CONSTANT_ARC, -1), be_const_int(2) },
{ be_const_key(OPA_20, 414), be_const_int(51) },
{ be_const_key(LABEL_LONG_SROLL_CIRC, 218), be_const_int(4) },
{ be_const_key(DISP_ROT_NONE, -1), be_const_int(0) },
{ be_const_key(ALIGN_OUT_RIGHT_MID, 308), be_const_int(19) },
{ be_const_key(KEYBOARD_MODE_TEXT_LOWER, -1), be_const_int(0) },
{ be_const_key(SYMBOL_UP, -1), be_const_str(&be_local_const_str_SYMBOL_UP) },
{ be_const_key(STYLE_BG_BLEND_MODE, 282), be_const_int(32) },
{ be_const_key(BORDER_SIDE_FULL, -1), be_const_int(15) },
{ be_const_key(ARC_TYPE_NORMAL, 445), be_const_int(0) },
{ be_const_key(SYMBOL_BATTERY_EMPTY, 243), be_const_str(&be_local_const_str_SYMBOL_BATTERY_EMPTY) },
{ be_const_key(GESTURE_DIR_TOP, 351), be_const_int(0) },
{ be_const_key(ALIGN_OUT_TOP_LEFT, -1), be_const_int(9) },
{ be_const_key(LABEL_LONG_SROLL, -1), be_const_int(3) },
{ be_const_key(SYMBOL_LEFT, 63), be_const_str(&be_local_const_str_SYMBOL_LEFT) },
{ be_const_key(SYMBOL_BATTERY_2, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_2) },
{ be_const_key(LABEL_ALIGN_CENTER, -1), be_const_int(1) },
{ be_const_key(STYLE_IMAGE_RECOLOR_OPA, -1), be_const_int(32941) },
{ be_const_key(LAYOUT_CENTER, -1), be_const_int(1) },
{ be_const_key(KEY_NEXT, -1), be_const_int(9) },
{ be_const_key(CALENDAR_PART_HEADER, -1), be_const_int(1) },
{ be_const_key(GRAY, -1), be_const_int(8421504) },
{ be_const_key(DISP_SIZE_SMALL, -1), be_const_int(0) },
{ be_const_key(SYMBOL_EYE_CLOSE, -1), be_const_str(&be_local_const_str_SYMBOL_EYE_CLOSE) },
{ be_const_key(FIT_TIGHT, -1), be_const_int(1) },
{ be_const_key(scr_act, -1), be_const_func(lv0_scr_act) },
{ be_const_key(BORDER_SIDE_LEFT, -1), be_const_int(4) },
{ be_const_key(STYLE_TEXT_BLEND_MODE, 259), be_const_int(32899) },
{ be_const_key(BTNMATRIX_CTRL_CHECKABLE, 440), be_const_int(64) },
{ be_const_key(SYMBOL_DRIVE, -1), be_const_str(&be_local_const_str_SYMBOL_DRIVE) },
{ be_const_key(SYMBOL_NEXT, 7), be_const_str(&be_local_const_str_SYMBOL_NEXT) },
{ be_const_key(SPINNER_DIR_BACKWARD, -1), be_const_int(1) },
{ be_const_key(TEMPL_STYLE_Y, 406), be_const_int(1) },
{ be_const_key(STYLE_BG_GRAD_STOP, 429), be_const_int(34) },
{ be_const_key(FS_RES_OUT_OF_MEM, -1), be_const_int(10) },
{ be_const_key(PAGE_EDGE_TOP, -1), be_const_int(2) },
{ be_const_key(PROTECT_NONE, 331), be_const_int(0) },
{ be_const_key(STYLE_OUTLINE_WIDTH, -1), be_const_int(64) },
{ be_const_key(GRAD_DIR_VER, 117), be_const_int(1) },
{ be_const_key(KEY_END, -1), be_const_int(3) },
{ be_const_key(PROTECT_PRESS_LOST, -1), be_const_int(16) },
{ be_const_key(FS_RES_INV_PARAM, -1), be_const_int(11) },
{ be_const_key(TXT_FLAG_RIGHT, 339), be_const_int(8) },
{ be_const_key(STYLE_SCALE_WIDTH, -1), be_const_int(192) },
{ be_const_key(EVENT_PRESSING, -1), be_const_int(1) },
{ be_const_key(ROLLER_MODE_INFINITE, 29), be_const_int(1) },
{ be_const_key(SYMBOL_SHUFFLE, -1), be_const_str(&be_local_const_str_SYMBOL_SHUFFLE) },
{ be_const_key(STYLE_SHADOW_OFS_Y, -1), be_const_int(82) },
{ be_const_key(DRAG_DIR_HOR, -1), be_const_int(1) },
{ be_const_key(BAR_TYPE_SYMMETRICAL, -1), be_const_int(1) },
{ be_const_key(ALIGN_OUT_LEFT_BOTTOM, 328), be_const_int(17) },
{ be_const_key(SYMBOL_CUT, 247), be_const_str(&be_local_const_str_SYMBOL_CUT) },
{ be_const_key(ARC_PART_KNOB, 362), be_const_int(2) },
{ be_const_key(OPA_80, -1), be_const_int(204) },
{ be_const_key(STYLE_TRANSFORM_ANGLE, 58), be_const_int(6) },
{ be_const_key(TEXT_DECOR_NONE, 179), be_const_int(0) },
{ be_const_key(SYMBOL_PASTE, 288), be_const_str(&be_local_const_str_SYMBOL_PASTE) },
{ be_const_key(CPICKER_COLOR_MODE_VALUE, -1), be_const_int(2) },
{ be_const_key(STYLE_PATTERN_IMAGE, 210), be_const_int(110) },
{ be_const_key(STYLE_IMAGE_BLEND_MODE, -1), be_const_int(32928) },
{ be_const_key(CHART_TYPE_NONE, -1), be_const_int(0) },
{ be_const_key(BTNMATRIX_CTRL_NO_REPEAT, 88), be_const_int(16) },
{ be_const_key(EVENT_LEAVE, 138), be_const_int(15) },
{ be_const_key(CHECKBOX_PART_BG, 252), be_const_int(0) },
{ be_const_key(STATE_DISABLED, 107), be_const_int(32) },
{ be_const_key(STYLE_PATTERN_RECOLOR, 238), be_const_int(105) },
{ be_const_key(INDEV_STATE_REL, -1), be_const_int(0) },
{ be_const_key(BTN_STATE_CHECKED_DISABLED, -1), be_const_int(5) },
{ be_const_key(EVENT_INSERT, -1), be_const_int(17) },
{ be_const_key(LINEMETER_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(start, -1), be_const_func(lv0_start) },
{ be_const_key(OPA_90, -1), be_const_int(229) },
{ be_const_key(STYLE_SHADOW_SPREAD, -1), be_const_int(83) },
{ be_const_key(ALIGN_IN_RIGHT_MID, -1), be_const_int(8) },
{ be_const_key(ARC_PART_BG, 361), be_const_int(0) },
{ be_const_key(ARC_TYPE_NORMAL, -1), be_const_int(0) },
{ be_const_key(GAUGE_PART_NEEDLE, -1), be_const_int(2) },
{ be_const_key(SYMBOL_STOP, -1), be_const_str(&be_local_const_str_SYMBOL_STOP) },
{ be_const_key(STYLE_PATTERN_REPEAT, -1), be_const_int(97) },
{ be_const_key(ALIGN_IN_TOP_RIGHT, -1), be_const_int(3) },
{ be_const_key(CHART_AXIS_INVERSE_LABELS_ORDER, -1), be_const_int(2) },
{ be_const_key(STYLE_PATTERN_OPA, 123), be_const_int(108) },
{ be_const_key(BLEND_MODE_SUBTRACTIVE, -1), be_const_int(2) },
{ be_const_key(SYMBOL_PASTE, 185), be_const_str(&be_local_const_str_SYMBOL_PASTE) },
{ be_const_key(BORDER_SIDE_NONE, -1), be_const_int(0) },
{ be_const_key(SYMBOL_BATTERY_FULL, 90), be_const_str(&be_local_const_str_SYMBOL_BATTERY_FULL) },
{ be_const_key(TEMPL_STYLE_Y, 48), be_const_int(1) },
{ be_const_key(STYLE_PAD_BOTTOM, -1), be_const_int(17) },
{ be_const_key(SYMBOL_NEW_LINE, -1), be_const_str(&be_local_const_str_SYMBOL_NEW_LINE) },
{ be_const_key(SYMBOL_NEXT, -1), be_const_str(&be_local_const_str_SYMBOL_NEXT) },
{ be_const_key(KEY_LEFT, 436), be_const_int(20) },
{ be_const_key(FIT_MAX, -1), be_const_int(3) },
{ be_const_key(LABEL_LONG_BREAK, -1), be_const_int(1) },
{ be_const_key(STYLE_TRANSITION_PROP_4, -1), be_const_int(181) },
{ be_const_key(SYMBOL_SD_CARD, -1), be_const_str(&be_local_const_str_SYMBOL_SD_CARD) },
{ be_const_key(STYLE_MARGIN_RIGHT, -1), be_const_int(24) },
{ be_const_key(SYMBOL_VIDEO, -1), be_const_str(&be_local_const_str_SYMBOL_VIDEO) },
{ be_const_key(SYMBOL_BATTERY_1, 342), be_const_str(&be_local_const_str_SYMBOL_BATTERY_1) },
{ be_const_key(DRAG_DIR_ONE, -1), be_const_int(4) },
{ be_const_key(BTNMATRIX_CTRL_CHECK_STATE, -1), be_const_int(128) },
{ be_const_key(STYLE_TRANSITION_DELAY, -1), be_const_int(177) },
{ be_const_key(EVENT_LONG_PRESSED_REPEAT, -1), be_const_int(5) },
{ be_const_key(LABEL_LONG_SROLL_CIRC, -1), be_const_int(4) },
{ be_const_key(WHITE, 429), be_const_int(16777215) },
{ be_const_key(LABEL_ALIGN_AUTO, -1), be_const_int(3) },
{ be_const_key(TXT_FLAG_FIT, -1), be_const_int(16) },
{ be_const_key(OPA_30, -1), be_const_int(76) },
{ be_const_key(SYMBOL_DUMMY, -1), be_const_str(&be_local_const_str_SYMBOL_DUMMY) },
{ be_const_key(TEXT_DECOR_UNDERLINE, -1), be_const_int(1) },
{ be_const_key(TABVIEW_TAB_POS_LEFT, -1), be_const_int(3) },
{ be_const_key(SYMBOL_EJECT, -1), be_const_str(&be_local_const_str_SYMBOL_EJECT) },
{ be_const_key(SPINNER_TYPE_FILLSPIN_ARC, -1), be_const_int(1) },
{ be_const_key(BORDER_SIDE_LEFT, -1), be_const_int(4) },
{ be_const_key(TABVIEW_TAB_POS_NONE, -1), be_const_int(0) },
{ be_const_key(TXT_FLAG_NONE, -1), be_const_int(0) },
{ be_const_key(CHART_AXIS_SKIP_LAST_TICK, -1), be_const_int(0) },
{ be_const_key(STYLE_BG_GRAD_COLOR, -1), be_const_int(42) },
{ be_const_key(SYMBOL_CUT, 207), be_const_str(&be_local_const_str_SYMBOL_CUT) },
{ be_const_key(CHART_TYPE_COLUMN, -1), be_const_int(2) },
{ be_const_key(GESTURE_DIR_TOP, -1), be_const_int(0) },
{ be_const_key(KEY_DOWN, -1), be_const_int(18) },
{ be_const_key(OBJ_PART_REAL_FIRST, -1), be_const_int(64) },
{ be_const_key(SYMBOL_BATTERY_3, 360), be_const_str(&be_local_const_str_SYMBOL_BATTERY_3) },
{ be_const_key(LIME, -1), be_const_int(65280) },
{ be_const_key(BAR_TYPE_CUSTOM, -1), be_const_int(2) },
{ be_const_key(LIST_PART_SCROLLBAR, 166), be_const_int(1) },
{ be_const_key(STYLE_LINE_ROUNDED, -1), be_const_int(148) },
{ be_const_key(STYLE_TRANSFORM_HEIGHT, 298), be_const_int(5) },
{ be_const_key(PROTECT_POS, 177), be_const_int(4) },
{ be_const_key(CHART_AXIS_SECONDARY_Y, -1), be_const_int(1) },
{ be_const_key(TEAL, -1), be_const_int(32896) },
{ be_const_key(SCROLLBAR_MODE_HIDE, -1), be_const_int(4) },
{ be_const_key(SYMBOL_WIFI, 215), be_const_str(&be_local_const_str_SYMBOL_WIFI) },
{ be_const_key(DROPDOWN_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(FIT_PARENT, 416), be_const_int(2) },
{ be_const_key(ALIGN_OUT_BOTTOM_LEFT, -1), be_const_int(12) },
{ be_const_key(GRAD_DIR_HOR, -1), be_const_int(2) },
{ be_const_key(STYLE_OUTLINE_OPA, 229), be_const_int(76) },
{ be_const_key(DROPDOWN_PART_SCROLLBAR, -1), be_const_int(65) },
{ be_const_key(LAYOUT_GRID, 426), be_const_int(11) },
{ be_const_key(LAYOUT_COLUMN_RIGHT, -1), be_const_int(4) },
{ be_const_key(HSPI, 149), be_const_int(0) },
{ be_const_key(KEYBOARD_PART_BTN, 0), be_const_int(1) },
{ be_const_key(KEYBOARD_MODE_SPECIAL, -1), be_const_int(2) },
{ be_const_key(CHART_AXIS_DRAW_LAST_TICK, -1), be_const_int(1) },
{ be_const_key(PROTECT_CHILD_CHG, 432), be_const_int(1) },
{ be_const_key(TXT_FLAG_RECOLOR, -1), be_const_int(1) },
{ be_const_key(FS_MODE_WR, 345), be_const_int(1) },
{ be_const_key(CPICKER_PART_KNOB, -1), be_const_int(1) },
{ be_const_key(OPA_TRANSP, 336), be_const_int(0) },
{ be_const_key(STYLE_BG_MAIN_STOP, 184), be_const_int(33) },
{ be_const_key(EVENT_DRAG_END, 40), be_const_int(9) },
{ be_const_key(seg7_font, -1), be_const_func(lv0_load_seg7_font) },
{ be_const_key(layer_top, 194), be_const_func(lv0_layer_top) },
{ be_const_key(SYMBOL_GPS, 279), be_const_str(&be_local_const_str_SYMBOL_GPS) },
{ be_const_key(KEYBOARD_PART_BG, -1), be_const_int(0) },
{ be_const_key(STYLE_OUTLINE_BLEND_MODE, 304), be_const_int(66) },
{ be_const_key(KEY_ESC, -1), be_const_int(27) },
{ be_const_key(CHART_TYPE_COLUMN, 46), be_const_int(2) },
{ be_const_key(EVENT_VALUE_CHANGED, -1), be_const_int(16) },
{ be_const_key(CPICKER_TYPE_DISC, -1), be_const_int(1) },
{ be_const_key(SYMBOL_PLAY, -1), be_const_str(&be_local_const_str_SYMBOL_PLAY) },
{ be_const_key(DROPDOWN_DIR_DOWN, -1), be_const_int(0) },
{ be_const_key(LAYOUT_ROW_BOTTOM, 227), be_const_int(7) },
{ be_const_key(BTNMATRIX_CTRL_CLICK_TRIG, -1), be_const_int(256) },
{ be_const_key(STYLE_TEXT_FONT, -1), be_const_int(32910) },
{ be_const_key(EVENT_RELEASED, 48), be_const_int(7) },
{ be_const_key(SYMBOL_COPY, -1), be_const_str(&be_local_const_str_SYMBOL_COPY) },
{ be_const_key(ALIGN_IN_BOTTOM_RIGHT, 108), be_const_int(6) },
{ be_const_key(SYMBOL_SD_CARD, -1), be_const_str(&be_local_const_str_SYMBOL_SD_CARD) },
{ be_const_key(CHART_PART_SERIES, -1), be_const_int(2) },
{ be_const_key(FS_RES_NOT_IMP, -1), be_const_int(9) },
{ be_const_key(SYMBOL_EYE_OPEN, -1), be_const_str(&be_local_const_str_SYMBOL_EYE_OPEN) },
{ be_const_key(SYMBOL_BULLET, -1), be_const_str(&be_local_const_str_SYMBOL_BULLET) },
{ be_const_key(STYLE_LINE_DASH_WIDTH, -1), be_const_int(146) },
{ be_const_key(CHART_CURSOR_UP, -1), be_const_int(2) },
{ be_const_key(ALIGN_IN_LEFT_MID, -1), be_const_int(7) },
{ be_const_key(LABEL_ALIGN_RIGHT, -1), be_const_int(2) },
{ be_const_key(I2C, -1), be_const_int(1) },
{ be_const_key(CPICKER_COLOR_MODE_HUE, -1), be_const_int(0) },
{ be_const_key(ANIM_ON, -1), be_const_int(1) },
{ be_const_key(FS_RES_UNKNOWN, -1), be_const_int(12) },
{ be_const_key(LIST_PART_BG, -1), be_const_int(0) },
{ be_const_key(SYMBOL_PAUSE, -1), be_const_str(&be_local_const_str_SYMBOL_PAUSE) },
{ be_const_key(MAROON, 435), be_const_int(8388608) },
{ be_const_key(OBJ_PART_MAIN, -1), be_const_int(0) },
{ be_const_key(STYLE_SHADOW_OFS_X, -1), be_const_int(81) },
{ be_const_key(get_hor_res, -1), be_const_func(lv0_get_hor_res) },
{ be_const_key(EVENT_CLICKED, -1), be_const_int(6) },
{ be_const_key(PROTECT_CLICK_FOCUS, -1), be_const_int(32) },
{ be_const_key(STYLE_SHADOW_COLOR, -1), be_const_int(89) },
{ be_const_key(SYMBOL_STOP, -1), be_const_str(&be_local_const_str_SYMBOL_STOP) },
{ be_const_key(STYLE_SIZE, -1), be_const_int(3) },
{ be_const_key(VSPI, -1), be_const_int(1) },
{ be_const_key(DISP_ROT_180, 3), be_const_int(2) },
{ be_const_key(STYLE_TRANSITION_PATH, -1), be_const_int(190) },
{ be_const_key(NAVY, -1), be_const_int(128) },
{ be_const_key(SYMBOL_MINUS, -1), be_const_str(&be_local_const_str_SYMBOL_MINUS) },
{ be_const_key(EVENT_GESTURE, -1), be_const_int(11) },
{ be_const_key(BTN_STATE_PRESSED, -1), be_const_int(1) },
{ be_const_key(ROLLER_MODE_NORMAL, -1), be_const_int(0) },
{ be_const_key(STYLE_OUTLINE_COLOR, -1), be_const_int(73) },
{ be_const_key(LABEL_LONG_DOT, -1), be_const_int(2) },
{ be_const_key(TXT_CMD_STATE_IN, 197), be_const_int(2) },
{ be_const_key(TXT_FLAG_NONE, 420), be_const_int(0) },
{ be_const_key(GAUGE_PART_MAIN, 231), be_const_int(0) },
{ be_const_key(CPICKER_COLOR_MODE_SATURATION, 73), be_const_int(1) },
{ be_const_key(STYLE_SCALE_GRAD_COLOR, 449), be_const_int(201) },
{ be_const_key(SPINNER_TYPE_SPINNING_ARC, -1), be_const_int(0) },
{ be_const_key(STYLE_TEXT_LETTER_SPACE, -1), be_const_int(32896) },
{ be_const_key(ALIGN_OUT_BOTTOM_RIGHT, 74), be_const_int(14) },
{ be_const_key(KEY_PREV, 181), be_const_int(11) },
{ be_const_key(EVENT_CANCEL, -1), be_const_int(20) },
{ be_const_key(STYLE_BORDER_WIDTH, -1), be_const_int(48) },
{ be_const_key(LABEL_LONG_BREAK, -1), be_const_int(1) },
{ be_const_key(ARC_TYPE_REVERSE, -1), be_const_int(2) },
{ be_const_key(STYLE_TRANSITION_PROP_4, 16), be_const_int(181) },
{ be_const_key(SYMBOL_RIGHT, -1), be_const_str(&be_local_const_str_SYMBOL_RIGHT) },
{ be_const_key(FS_RES_FS_ERR, 232), be_const_int(2) },
{ be_const_key(STYLE_PAD_TOP, 456), be_const_int(16) },
{ be_const_key(CHECKBOX_PART_BULLET, -1), be_const_int(64) },
{ be_const_key(SILVER, -1), be_const_int(12632256) },
{ be_const_key(TXT_FLAG_EXPAND, -1), be_const_int(2) },
{ be_const_key(STYLE_VALUE_BLEND_MODE, 418), be_const_int(114) },
{ be_const_key(TABVIEW_TAB_POS_RIGHT, -1), be_const_int(4) },
{ be_const_key(SSPI, -1), be_const_int(2) },
{ be_const_key(SLIDER_TYPE_NORMAL, -1), be_const_int(0) },
{ be_const_key(TEXT_DECOR_STRIKETHROUGH, -1), be_const_int(2) },
{ be_const_key(LAYOUT_PRETTY_MID, -1), be_const_int(9) },
{ be_const_key(ANIM_OFF, -1), be_const_int(0) },
{ be_const_key(STATE_DEFAULT, -1), be_const_int(0) },
{ be_const_key(LAYOUT_COLUMN_MID, -1), be_const_int(3) },
{ be_const_key(STYLE_TEXT_OPA, -1), be_const_int(32908) },
{ be_const_key(STYLE_TRANSITION_PROP_1, -1), be_const_int(178) },
{ be_const_key(STYLE_CLIP_CORNER, 125), be_const_int(2) },
{ be_const_key(SPINNER_TYPE_FILLSPIN_ARC, 291), be_const_int(1) },
{ be_const_key(FS_RES_DENIED, 20), be_const_int(6) },
{ be_const_key(INDEV_STATE_PR, -1), be_const_int(1) },
{ be_const_key(BLEND_MODE_SUBTRACTIVE, -1), be_const_int(2) },
{ be_const_key(KEY_UP, -1), be_const_int(17) },
{ be_const_key(STYLE_TEXT_SEL_COLOR, -1), be_const_int(32906) },
{ be_const_key(SYMBOL_FILE, -1), be_const_str(&be_local_const_str_SYMBOL_FILE) },
{ be_const_key(STYLE_BORDER_OPA, -1), be_const_int(60) },
{ be_const_key(BTN_STATE_DISABLED, 279), be_const_int(2) },
{ be_const_key(FIT_NONE, -1), be_const_int(0) },
{ be_const_key(layer_sys, 296), be_const_func(lv0_layer_sys) },
{ be_const_key(BTN_STATE_RELEASED, -1), be_const_int(0) },
{ be_const_key(STYLE_OPA_SCALE, -1), be_const_int(32780) },
{ be_const_key(SPINNER_DIR_FORWARD, 295), be_const_int(0) },
{ be_const_key(STYLE_BG_GRAD_COLOR, -1), be_const_int(42) },
{ be_const_key(STYLE_TEXT_COLOR, -1), be_const_int(32905) },
{ be_const_key(CHART_UPDATE_MODE_SHIFT, 262), be_const_int(0) },
{ be_const_key(SYMBOL_CHARGE, 419), be_const_str(&be_local_const_str_SYMBOL_CHARGE) },
{ be_const_key(STATE_FOCUSED, -1), be_const_int(2) },
{ be_const_key(KEY_RIGHT, -1), be_const_int(19) },
{ be_const_key(BORDER_SIDE_NONE, 189), be_const_int(0) },
{ be_const_key(PAGE_EDGE_RIGHT, -1), be_const_int(4) },
{ be_const_key(STATE_CHECKED, -1), be_const_int(1) },
{ be_const_key(STYLE_BORDER_SIDE, 61), be_const_int(49) },
{ be_const_key(STYLE_BG_COLOR, 460), be_const_int(41) },
{ be_const_key(BTNMATRIX_CTRL_CHECK_STATE, -1), be_const_int(128) },
{ be_const_key(FS_RES_LOCKED, 119), be_const_int(5) },
{ be_const_key(STYLE_LINE_OPA, -1), be_const_int(156) },
{ be_const_key(CPICKER_TYPE_RECT, 350), be_const_int(0) },
{ be_const_key(SYMBOL_PREV, 301), be_const_str(&be_local_const_str_SYMBOL_PREV) },
{ be_const_key(ALIGN_OUT_RIGHT_BOTTOM, -1), be_const_int(20) },
{ be_const_key(SCROLLBAR_MODE_OFF, 201), be_const_int(0) },
{ be_const_key(BORDER_SIDE_RIGHT, -1), be_const_int(8) },
{ be_const_key(STYLE_RADIUS, -1), be_const_int(1) },
{ be_const_key(SYMBOL_CLOSE, -1), be_const_str(&be_local_const_str_SYMBOL_CLOSE) },
{ be_const_key(PROTECT_PARENT, -1), be_const_int(2) },
{ be_const_key(STYLE_OUTLINE_PAD, -1), be_const_int(65) },
{ be_const_key(ALIGN_OUT_LEFT_TOP, -1), be_const_int(15) },
{ be_const_key(EVENT_DEFOCUSED, -1), be_const_int(14) },
{ be_const_key(STYLE_PATTERN_OPA, -1), be_const_int(108) },
{ be_const_key(SLIDER_TYPE_RANGE, -1), be_const_int(2) },
{ be_const_key(OPA_100, -1), be_const_int(255) },
{ be_const_key(SYMBOL_DOWNLOAD, -1), be_const_str(&be_local_const_str_SYMBOL_DOWNLOAD) },
{ be_const_key(KEY_BACKSPACE, -1), be_const_int(8) },
{ be_const_key(PAGE_EDGE_LEFT, -1), be_const_int(1) },
{ be_const_key(ARC_PART_BG, 448), be_const_int(0) },
{ be_const_key(STYLE_SCALE_END_BORDER_WIDTH, 316), be_const_int(194) },
{ be_const_key(STYLE_PATTERN_BLEND_MODE, -1), be_const_int(96) },
{ be_const_key(BLACK, 208), be_const_int(0) },
{ be_const_key(STYLE_SCALE_END_COLOR, -1), be_const_int(202) },
{ be_const_key(EVENT_DRAG_BEGIN, 43), be_const_int(8) },
{ be_const_key(GESTURE_DIR_LEFT, 434), be_const_int(2) },
{ be_const_key(DRAG_DIR_VER, -1), be_const_int(2) },
{ be_const_key(DISP_SIZE_LARGE, -1), be_const_int(2) },
{ be_const_key(STYLE_VALUE_OFS_X, -1), be_const_int(115) },
{ be_const_key(BLUE, -1), be_const_int(255) },
{ be_const_key(BORDER_SIDE_TOP, -1), be_const_int(2) },
{ be_const_key(SYMBOL_AUDIO, 6), be_const_str(&be_local_const_str_SYMBOL_AUDIO) },
{ be_const_key(STYLE_SHADOW_WIDTH, 101), be_const_int(80) },
{ be_const_key(LAYOUT_ROW_TOP, 326), be_const_int(5) },
{ be_const_key(ALIGN_IN_TOP_LEFT, 311), be_const_int(1) },
{ be_const_key(STYLE_PATTERN_RECOLOR_OPA, -1), be_const_int(109) },
{ be_const_key(LAYOUT_PRETTY_TOP, 94), be_const_int(8) },
{ be_const_key(OPA_30, 248), be_const_int(76) },
{ be_const_key(GESTURE_DIR_RIGHT, -1), be_const_int(3) },
{ be_const_key(STYLE_VALUE_OPA, -1), be_const_int(124) },
{ be_const_key(CHART_PART_CURSOR, -1), be_const_int(3) },
{ be_const_key(GAUGE_PART_MAJOR, -1), be_const_int(1) },
{ be_const_key(FS_RES_OK, 12), be_const_int(0) },
{ be_const_key(STYLE_BORDER_COLOR, -1), be_const_int(57) },
{ be_const_key(DISP_SIZE_EXTRA_LARGE, -1), be_const_int(3) },
{ be_const_key(SYMBOL_BATTERY_FULL, 370), be_const_str(&be_local_const_str_SYMBOL_BATTERY_FULL) },
{ be_const_key(KEY_DEL, 116), be_const_int(127) },
{ be_const_key(CHART_CURSOR_NONE, 292), be_const_int(0) },
{ be_const_key(EVENT_PRESSED, 394), be_const_int(0) },
{ be_const_key(STYLE_VALUE_LINE_SPACE, -1), be_const_int(113) },
{ be_const_key(STYLE_TEXT_SEL_BG_COLOR, -1), be_const_int(32907) },
{ be_const_key(PURPLE, 160), be_const_int(8388736) },
{ be_const_key(LAYOUT_PRETTY_BOTTOM, -1), be_const_int(10) },
{ be_const_key(SYMBOL_VOLUME_MAX, -1), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MAX) },
{ be_const_key(SLIDER_TYPE_SYMMETRICAL, -1), be_const_int(1) },
{ be_const_key(SYMBOL_HOME, 392), be_const_str(&be_local_const_str_SYMBOL_HOME) },
{ be_const_key(CHART_AXIS_PRIMARY_Y, -1), be_const_int(0) },
{ be_const_key(STYLE_SHADOW_BLEND_MODE, 393), be_const_int(84) },
{ be_const_key(STYLE_TEXT_LINE_SPACE, -1), be_const_int(32897) },
{ be_const_key(BTNMATRIX_CTRL_HIDDEN, 207), be_const_int(8) },
{ be_const_key(STYLE_LINE_WIDTH, 198), be_const_int(144) },
{ be_const_key(CALENDAR_PART_DAY_NAMES, -1), be_const_int(2) },
{ be_const_key(OBJMASK_PART_MAIN, 53), be_const_int(0) },
{ be_const_key(STYLE_TRANSITION_PROP_2, -1), be_const_int(179) },
{ be_const_key(SYMBOL_EDIT, -1), be_const_str(&be_local_const_str_SYMBOL_EDIT) },
{ be_const_key(KEY_DOWN, -1), be_const_int(18) },
{ be_const_key(SYMBOL_LIST, 120), be_const_str(&be_local_const_str_SYMBOL_LIST) },
{ be_const_key(STYLE_TRANSITION_PROP_5, -1), be_const_int(182) },
{ be_const_key(GESTURE_DIR_BOTTOM, -1), be_const_int(1) },
{ be_const_key(PAGE_EDGE_BOTTOM, 82), be_const_int(8) },
{ be_const_key(STYLE_TRANSFORM_WIDTH, -1), be_const_int(4) },
{ be_const_key(EVENT_LONG_PRESSED, -1), be_const_int(4) },
{ be_const_key(CYAN, 37), be_const_int(65535) },
{ be_const_key(STYLE_TRANSITION_TIME, -1), be_const_int(176) },
{ be_const_key(STYLE_VALUE_LETTER_SPACE, -1), be_const_int(112) },
{ be_const_key(FS_RES_FULL, 266), be_const_int(4) },
{ be_const_key(ARC_TYPE_SYMMETRIC, -1), be_const_int(1) },
{ be_const_key(STYLE_SCALE_END_LINE_WIDTH, -1), be_const_int(195) },
{ be_const_key(FS_MODE_RD, 367), be_const_int(2) },
{ be_const_key(TEXTAREA_CURSOR_LAST, 373), be_const_int(32767) },
{ be_const_key(GRAD_DIR_NONE, 284), be_const_int(0) },
{ be_const_key(STYLE_MARGIN_TOP, 385), be_const_int(21) },
{ be_const_key(SPI, -1), be_const_int(0) },
{ be_const_key(load_font, -1), be_const_func(lv0_load_font) },
{ be_const_key(EVENT_SHORT_CLICKED, -1), be_const_int(3) },
{ be_const_key(CHART_UPDATE_MODE_CIRCULAR, 122), be_const_int(1) },
{ be_const_key(SYMBOL_UPLOAD, 137), be_const_str(&be_local_const_str_SYMBOL_UPLOAD) },
{ be_const_key(DROPDOWN_DIR_RIGHT, -1), be_const_int(3) },
{ be_const_key(PROTECT_FOLLOW, 303), be_const_int(8) },
{ be_const_key(SYMBOL_BATTERY_1, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_1) },
{ be_const_key(WHITE, -1), be_const_int(16777215) },
{ be_const_key(SCROLLBAR_MODE_UNHIDE, 447), be_const_int(8) },
{ be_const_key(ALIGN_IN_BOTTOM_MID, -1), be_const_int(5) },
{ be_const_key(STYLE_TRANSFORM_ZOOM, -1), be_const_int(7) },
{ be_const_key(OPA_60, -1), be_const_int(153) },
{ be_const_key(SYMBOL_DIRECTORY, 405), be_const_str(&be_local_const_str_SYMBOL_DIRECTORY) },
{ be_const_key(EVENT_APPLY, -1), be_const_int(19) },
{ be_const_key(SYMBOL_EJECT, -1), be_const_str(&be_local_const_str_SYMBOL_EJECT) },
{ be_const_key(PROTECT_EVENT_TO_DISABLED, -1), be_const_int(64) },
{ be_const_key(OPA_COVER, 441), be_const_int(255) },
{ be_const_key(TXT_CMD_STATE_PAR, -1), be_const_int(1) },
{ be_const_key(CALENDAR_PART_BG, 80), be_const_int(0) },
{ be_const_key(MAGENTA, 352), be_const_int(16711935) },
{ be_const_key(LAYOUT_OFF, 377), be_const_int(0) },
{ be_const_key(SYMBOL_CALL, -1), be_const_str(&be_local_const_str_SYMBOL_CALL) },
{ be_const_key(EVENT_PRESS_LOST, 436), be_const_int(2) },
{ be_const_key(ALIGN_OUT_LEFT_MID, -1), be_const_int(16) },
{ be_const_key(BAR_TYPE_NORMAL, -1), be_const_int(0) },
{ be_const_key(BTN_STATE_CHECKED_PRESSED, -1), be_const_int(4) },
{ be_const_key(DRAG_DIR_BOTH, -1), be_const_int(3) },
{ be_const_key(layer_top, -1), be_const_func(lv0_layer_top) },
{ be_const_key(DROPDOWN_PART_LIST, -1), be_const_int(64) },
{ be_const_key(BLEND_MODE_NORMAL, -1), be_const_int(0) },
{ be_const_key(SYMBOL_KEYBOARD, -1), be_const_str(&be_local_const_str_SYMBOL_KEYBOARD) },
{ be_const_key(STYLE_BORDER_BLEND_MODE, -1), be_const_int(50) },
{ be_const_key(STYLE_LINE_BLEND_MODE, 364), be_const_int(145) },
{ be_const_key(STYLE_VALUE_FONT, 444), be_const_int(126) },
{ be_const_key(STYLE_VALUE_OFS_Y, -1), be_const_int(116) },
{ be_const_key(KEY_LEFT, -1), be_const_int(20) },
{ be_const_key(DISP_ROT_270, -1), be_const_int(3) },
{ be_const_key(RED, -1), be_const_int(16711680) },
{ be_const_key(CHART_AXIS_INVERSE_LABELS_ORDER, -1), be_const_int(2) },
{ be_const_key(STATE_HOVERED, -1), be_const_int(8) },
{ be_const_key(SYMBOL_SAVE, -1), be_const_str(&be_local_const_str_SYMBOL_SAVE) },
{ be_const_key(LED_PART_MAIN, 212), be_const_int(0) },
{ be_const_key(SYMBOL_SETTINGS, 409), be_const_str(&be_local_const_str_SYMBOL_SETTINGS) },
{ be_const_key(CHART_AXIS_SKIP_LAST_TICK, 265), be_const_int(0) },
{ be_const_key(BTN_STATE_CHECKED_RELEASED, -1), be_const_int(3) },
{ be_const_key(STYLE_PAD_RIGHT, -1), be_const_int(19) },
{ be_const_key(FS_RES_BUSY, 237), be_const_int(7) },
{ be_const_key(SCROLLBAR_MODE_DRAG, -1), be_const_int(2) },
{ be_const_key(BORDER_SIDE_BOTTOM, -1), be_const_int(1) },
{ be_const_key(KEY_HOME, 47), be_const_int(2) },
{ be_const_key(STYLE_TRANSITION_PROP_6, -1), be_const_int(183) },
{ be_const_key(OPA_40, -1), be_const_int(102) },
{ be_const_key(SYMBOL_MUTE, -1), be_const_str(&be_local_const_str_SYMBOL_MUTE) },
{ be_const_key(SYMBOL_LOOP, -1), be_const_str(&be_local_const_str_SYMBOL_LOOP) },
{ be_const_key(SCROLLBAR_MODE_AUTO, 154), be_const_int(3) },
{ be_const_key(KEY_ENTER, -1), be_const_int(10) },
{ be_const_key(SYMBOL_NEW_LINE, -1), be_const_str(&be_local_const_str_SYMBOL_NEW_LINE) },
{ be_const_key(SYMBOL_DOWN, -1), be_const_str(&be_local_const_str_SYMBOL_DOWN) },
{ be_const_key(STYLE_VALUE_ALIGN, -1), be_const_int(117) },
{ be_const_key(FIT_MAX, -1), be_const_int(3) },
{ be_const_key(STYLE_LINE_DASH_GAP, 452), be_const_int(147) },
{ be_const_key(SYMBOL_OK, -1), be_const_str(&be_local_const_str_SYMBOL_OK) },
{ be_const_key(OBJ_PART_VIRTUAL_FIRST, -1), be_const_int(1) },
{ be_const_key(CHART_CURSOR_LEFT, 276), be_const_int(4) },
{ be_const_key(STYLE_MARGIN_BOTTOM, 356), be_const_int(22) },
{ be_const_key(STYLE_MARGIN_RIGHT, -1), be_const_int(24) },
{ be_const_key(ALIGN_IN_TOP_RIGHT, -1), be_const_int(3) },
{ be_const_key(STYLE_TRANSITION_PROP_3, 269), be_const_int(180) },
{ be_const_key(STYLE_VALUE_COLOR, -1), be_const_int(121) },
{ be_const_key(STYLE_TEXT_DECOR, -1), be_const_int(32898) },
{ be_const_key(SYMBOL_BACKSPACE, 261), be_const_str(&be_local_const_str_SYMBOL_BACKSPACE) },
{ be_const_key(SYMBOL_USB, -1), be_const_str(&be_local_const_str_SYMBOL_USB) },
{ be_const_key(CHART_TYPE_LINE, -1), be_const_int(1) },
{ be_const_key(STYLE_VALUE_STR, -1), be_const_int(127) },
{ be_const_key(SYMBOL_VIDEO, -1), be_const_str(&be_local_const_str_SYMBOL_VIDEO) },
{ be_const_key(SYMBOL_BLUETOOTH, -1), be_const_str(&be_local_const_str_SYMBOL_BLUETOOTH) },
{ be_const_key(CHART_PART_SERIES_BG, 91), be_const_int(1) },
{ be_const_key(DROPDOWN_PART_SELECTED, 267), be_const_int(66) },
{ be_const_key(STYLE_BG_GRAD_DIR, -1), be_const_int(35) },
{ be_const_key(EVENT_FOCUSED, 461), be_const_int(13) },
{ be_const_key(SYMBOL_VOLUME_MID, -1), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MID) },
{ be_const_key(STYLE_TRANSITION_DELAY, -1), be_const_int(177) },
{ be_const_key(STYLE_LINE_COLOR, -1), be_const_int(153) },
{ be_const_key(ALIGN_OUT_RIGHT_TOP, -1), be_const_int(18) },
{ be_const_key(OPA_0, 2), be_const_int(0) },
{ be_const_key(SYMBOL_GPS, -1), be_const_str(&be_local_const_str_SYMBOL_GPS) },
{ be_const_key(LABEL_ALIGN_AUTO, -1), be_const_int(3) },
{ be_const_key(SYMBOL_POWER, -1), be_const_str(&be_local_const_str_SYMBOL_POWER) },
{ be_const_key(TABVIEW_TAB_POS_TOP, -1), be_const_int(1) },
{ be_const_key(STYLE_BORDER_POST, -1), be_const_int(51) },
{ be_const_key(FS_RES_NOT_EX, -1), be_const_int(3) },
{ be_const_key(AQUA, -1), be_const_int(65535) },
{ be_const_key(STYLE_PAD_INNER, -1), be_const_int(20) },
{ be_const_key(KEYBOARD_MODE_NUM, -1), be_const_int(3) },
{ be_const_key(EVENT_LONG_PRESSED_REPEAT, 417), be_const_int(5) },
{ be_const_key(add_button_encoder, -1), be_const_func(lv0_add_button_encoder) },
{ be_const_key(DISP_ROT_90, -1), be_const_int(1) },
{ be_const_key(STATE_EDITED, -1), be_const_int(4) },
{ be_const_key(STYLE_MARGIN_LEFT, 87), be_const_int(23) },
{ be_const_key(OBJ_PART_REAL_FIRST, -1), be_const_int(64) },
{ be_const_key(STYLE_IMAGE_OPA, -1), be_const_int(32940) },
};
static be_define_const_map(
m_liblvgl_map,
459
462
);
static be_define_const_module(

View File

@ -151,6 +151,13 @@ extern "C" {
int lvbe_group_get_click_focus(bvm *vm) { return be_call_c_func(vm, (void*) &lv_group_get_click_focus, "b", "(lv_group)"); }
int lvbe_group_get_wrap(bvm *vm) { return be_call_c_func(vm, (void*) &lv_group_get_wrap, "b", "(lv_group)"); }
/* `lv_indev` methods */
int lvbe_indev_get_type(bvm *vm) { return be_call_c_func(vm, (void*) &lv_indev_get_type, "i", "(lv_indev)"); }
int lvbe_indev_enable(bvm *vm) { return be_call_c_func(vm, (void*) &lv_indev_enable, "", "(lv_indev)b"); }
int lvbe_indev_set_group(bvm *vm) { return be_call_c_func(vm, (void*) &lv_indev_set_group, "", "(lv_indev)(lv_group)"); }
int lvbe_indev_get_obj_act(bvm *vm) { return be_call_c_func(vm, (void*) &lv_indev_get_obj_act, "lv_obj", ""); }
int lvbe_indev_search_obj(bvm *vm) { return be_call_c_func(vm, (void*) &lv_indev_search_obj, "lv_obj", "(lv_obj)(lv_point)"); }
/* `lv_obj` methods */
int lvbe_obj_create(bvm *vm) { return lvx_init_2(vm, (void*) &lv_obj_create, "lv_obj", "(lv_obj)(lv_obj)"); }
int lvbe_obj_del(bvm *vm) { return be_call_c_func(vm, (void*) &lv_obj_del, "i", "(lv_obj)"); }
@ -1042,6 +1049,7 @@ extern "C" {
extern void be_load_lv_img_lib(bvm *vm);
extern void be_load_lv_style_lib(bvm *vm);
extern void be_load_lv_group_lib(bvm *vm);
extern void be_load_lv_indev_lib(bvm *vm);
extern void be_load_lv_obj_lib(bvm *vm);
extern void be_load_lv_arc_lib(bvm *vm);
extern void be_load_lv_bar_lib(bvm *vm);
@ -1082,6 +1090,7 @@ extern "C" {
#endif
be_load_lv_style_lib(vm);
be_load_lv_group_lib(vm);
be_load_lv_indev_lib(vm);
be_load_lv_obj_lib(vm);
#if BE_LV_WIDGET_ARC
be_load_lv_arc_lib(vm);

View File

@ -1820,6 +1820,13 @@ void GpioInit(void)
}
}
// Digital input
for (uint32_t i = 0; i < MAX_SWITCHES; i++) {
if (PinUsed(GPIO_INPUT, i)) {
pinMode(Pin(GPIO_INPUT, i), INPUT);
}
}
#ifdef USE_I2C
TasmotaGlobal.i2c_enabled = (PinUsed(GPIO_I2C_SCL) && PinUsed(GPIO_I2C_SDA));
if (TasmotaGlobal.i2c_enabled) {

View File

@ -27,6 +27,63 @@
extern Adafruit_LvGL_Glue * glue;
/********************************************************************
* Structures used by LVGL_Berry
*******************************************************************/
class LVBE_button {
public:
bool pressed = false; // what is the current state
bool inverted = false; // false: button pressed is HIGH, true: button pressed is LOW
int8_t pin = -1; // physical GPIO (-1 if unconfigured)
uint32_t millis_last_state_change = 0; // last millis() time stamp when the state changed, used for debouncing
const uint32_t debounce_time = 10; // Needs to stabilize for 10ms before state change
inline void set_inverted(bool inv) { inverted = inv; }
inline bool get_inverted(void) const { return inverted; }
inline bool valid(void) const { return pin >= 0; }
bool read_gpio(void) const {
bool cur_state = digitalRead(pin);
if (inverted) { cur_state = !cur_state; }
return cur_state;
}
void set_gpio(int8_t _pin) { // is the button pressed
pin = _pin;
pressed = read_gpio();
millis_last_state_change = millis();
}
bool state_changed(void) { // do we need to report a change
if (!valid()) { return false; }
if (TimeReached(millis_last_state_change + debounce_time)) {
// read current state of GPIO after debounce
if (read_gpio() != pressed) {
return true;
}
}
return false;
}
bool clear_state_changed(void) { // read and clear the state
pressed = read_gpio();
millis_last_state_change = millis();
return pressed;
}
};
class LVBE_globals {
public:
lv_indev_drv_t indev_drv;
LList<lv_indev_t*> indev_list;
// input devices
LVBE_button btn[3];
};
LVBE_globals lvbe;
/********************************************************************
* Generated code, don't edit
*******************************************************************/
@ -542,6 +599,11 @@ extern "C" {
lv_img_set_src(img, &tasmota_logo_64_truecolor);
}
/*********************************************************************************************\
* LVGL Start
*
* Calls uDisplay and starts LVGL
\*********************************************************************************************/
// lv.start(instance, instance) -> nil
int lv0_start(bvm *vm);
int lv0_start(bvm *vm) {
@ -557,13 +619,97 @@ extern "C" {
be_raise(vm, kTypeError, nullptr);
}
// lv.demo() -> nil
int lv0_demo(bvm *vm);
int lv0_demo(bvm *vm) {
lv_ex_get_started_1();
be_return_nil(vm);
/*********************************************************************************************\
* LVGL Input Devices
*
* Calls uDisplay and starts LVGL
*
* lv.add_button_encoder([inv: bool]) -> nil
\*********************************************************************************************/
bool lvbe_encoder_with_keys_read(lv_indev_drv_t * drv, lv_indev_data_t*data);
int lv0_add_button_encoder(bvm *vm); // add buttons with encoder logic
int lv0_add_button_encoder(bvm *vm) {
int32_t argc = be_top(vm); // Get the number of arguments
bool inverted = false;
// berry_log_P("lv0_add_button_encoder argc=%d inverted=%d", argc, be_tobool(vm, 1));
if (argc >= 1) {
inverted = be_tobool(vm, 1); // get the inverted flag
}
// we need 3 buttons from the template
int32_t btn0 = Pin(GPIO_INPUT, 0);
int32_t btn1 = Pin(GPIO_INPUT, 1);
int32_t btn2 = Pin(GPIO_INPUT, 2);
if (btn0 < 0 || btn1 < 0 || btn2 < 0) {
be_raise(vm, "template_error", "You need to configure GPIO Inputs 1/2/3");
}
lvbe.btn[0].set_gpio(btn0);
lvbe.btn[0].set_inverted(inverted);
lvbe.btn[1].set_gpio(btn1);
lvbe.btn[1].set_inverted(inverted);
lvbe.btn[2].set_gpio(btn2);
lvbe.btn[2].set_inverted(inverted);
berry_log_P(D_LOG_LVGL "Button Rotary encoder using GPIOs %d,%d,%d%s", btn0, btn1, btn2, inverted ? " (inverted)" : "");
lv_indev_drv_init(&lvbe.indev_drv);
lvbe.indev_drv.type = LV_INDEV_TYPE_ENCODER;
lvbe.indev_drv.read_cb = lvbe_encoder_with_keys_read;
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_pushint(vm, (int32_t) indev);
be_call(vm, 1);
be_pop(vm, 1);
be_return(vm);
}
/*********************************************************************************************\
* LVGL Input Devices - callbacks
\*********************************************************************************************/
// typedef struct {
// lv_point_t point; /**< For LV_INDEV_TYPE_POINTER the currently pressed point*/
// uint32_t key; /**< For LV_INDEV_TYPE_KEYPAD the currently pressed key*/
// uint32_t btn_id; /**< For LV_INDEV_TYPE_BUTTON the currently pressed button*/
// int16_t enc_diff; /**< For LV_INDEV_TYPE_ENCODER number of steps since the previous read*/
// lv_indev_state_t state; /**< LV_INDEV_STATE_REL or LV_INDEV_STATE_PR*/
// } lv_indev_data_t;
bool lvbe_encoder_with_keys_read(lv_indev_drv_t * drv, lv_indev_data_t*data){
// scan through buttons if we need to report something
uint32_t i;
for (i = 0; i < 3; i++) {
if (lvbe.btn[i].state_changed()) {
switch (i) {
case 0: data->key = LV_KEY_LEFT; break;
case 1: data->key = LV_KEY_ENTER; break;
case 2: data->key = LV_KEY_RIGHT; break;
default: break;
}
bool state = lvbe.btn[i].clear_state_changed();
data->state = state ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
// berry_log_P("Button event key %d state %d,%d", data->key, state, data->state);
break;
}
}
// do we have more to report?
bool more_to_report = false;
for (/* continue where we left */; i < 3; i++) {
if (lvbe.btn[i].state_changed()) {
more_to_report = true;
}
}
return more_to_report;
}
/*********************************************************************************************\
* Methods specific to Tasmota LVGL
\*********************************************************************************************/
// lv.scr_act() -> lv_obj() instance
int lv0_scr_act(bvm *vm) { return lv0_lvobj__void_call(vm, &lv_scr_act); }
int lv0_layer_top(bvm *vm) { return lv0_lvobj__void_call(vm, &lv_layer_top); }
@ -578,6 +724,20 @@ extern "C" {
be_return(vm);
}
/*********************************************************************************************\
* Support for lv_indev and objects that don't need creator
\*********************************************************************************************/
int lv0_init(bvm *vm);
int lv0_init(bvm *vm) {
void * obj = nullptr;
int argc = be_top(vm);
if (argc > 1) {
obj = (void*) be_convert_single_elt(vm, 2);
}
lv_init_set_member(vm, 1, obj);
be_return_nil(vm);
}
/*********************************************************************************************\
* Support for lv_obj
\*********************************************************************************************/

View File

@ -384,7 +384,7 @@ void start_lvgl(const char * uconfig) {
* NOTE: When not using Wi-Fi nor Bluetooth you can pin the guiTask to core 0 */
xTaskCreatePinnedToCore(guiTask, "gui", 4096*2, NULL, 0, NULL, 1);
AddLog(LOG_LEVEL_INFO, PSTR("LVGL initialized"));
AddLog(LOG_LEVEL_INFO, PSTR(D_LOG_LVGL "LVGL initialized"));
}
/*********************************************************************************************\

View File

@ -76,6 +76,7 @@ return_types = {
"lv_align_t": "i",
"lv_keyboard_mode_t": "i",
# "lv_group_focus_cb_t": "i",
"lv_indev_type_t": "i",
"lv_obj_t *": "lv_obj",
@ -96,7 +97,7 @@ lv_widgets = ['arc', 'bar', 'btn', 'btnmatrix', 'calendar', 'canvas', 'chart', '
'cont', 'cpicker', 'dropdown', 'gauge', 'img', 'imgbtn', 'keyboard', 'label', 'led', 'line',
'linemeter', 'list', 'msgbox', 'objmask', 'templ', 'page', 'roller', 'slider', 'spinbox',
'spinner', 'switch', 'table', 'tabview', 'textarea', 'tileview', 'win']
lv_prefix = ['obj', 'group', 'style'] + lv_widgets
lv_prefix = ['obj', 'group', 'style', 'indev'] + lv_widgets
def try_int(s):
try:
@ -318,6 +319,10 @@ print("""
extern int lv0_start(bvm *vm);
extern int lv0_init(bvm *vm);
extern int lv0_add_button_encoder(bvm *vm); // add buttons with encoder logic
extern int lv0_scr_act(bvm *vm);
extern int lv0_layer_top(bvm *vm);
extern int lv0_layer_sys(bvm *vm);
@ -369,7 +374,10 @@ for subtype, flv in lv.items():
print(f" {{ \"init\", lvs_init }},")
print(f" {{ \"tostring\", lvs_tostring }},")
else:
print(f" {{ \"init\", lvbe_{subtype}_create }},")
if subtype != 'indev': # indev has no create
print(f" {{ \"init\", lvbe_{subtype}_create }},")
else:
print(f" {{ \"init\", lv0_init }},")
print(f" {{ \"tostring\", lvx_tostring }},")
print()
@ -411,7 +419,10 @@ for subtype, flv in lv.items():
print(f" init, func(lvs_init)")
print(f" tostring, func(lvs_tostring)")
else:
print(f" init, func(lvbe_{subtype}_create)")
if subtype != 'indev': # indev has no create
print(f" init, func(lvbe_{subtype}_create)")
else:
print(f" init, func(lv0_init)")
print(f" tostring, func(lvx_tostring)")
for f in flv:
@ -444,6 +455,9 @@ print("""/********************************************************************
#include "lvgl.h"
extern int lv0_start(bvm *vm);
extern int lv0_add_button_encoder(bvm *vm); // add buttons with encoder logic
extern int lv0_load_montserrat_font(bvm *vm);
extern int lv0_load_seg7_font(bvm *vm);
extern int lv0_load_font(bvm *vm);
@ -563,6 +577,7 @@ for k_v in lv_module:
print("""
be_native_module_function("start", lv0_start),
be_native_module_function("add_button_encoder", lv0_add_button_encoder),
be_native_module_function("montserrat_font", lv0_load_montserrat_font),
be_native_module_function("seg7_font", lv0_load_seg7_font),
be_native_module_function("load_font", lv0_load_font),
@ -734,6 +749,7 @@ for k_v in lv_module:
print("""
start, func(lv0_start)
add_button_encoder, func(lv0_add_button_encoder)
montserrat_font, func(lv0_load_montserrat_font)
seg7_font, func(lv0_load_seg7_font)
load_font, func(lv0_load_font)

View File

@ -22,6 +22,16 @@ LV_ALIGN_OUT_RIGHT_TOP=18
LV_ALIGN_OUT_RIGHT_MID=19
LV_ALIGN_OUT_RIGHT_BOTTOM=20
LV_INDEV_STATE_REL = 0
LV_INDEV_STATE_PR=1
LV_DRAG_DIR_HOR = 0x1
LV_DRAG_DIR_VER = 0x2
LV_DRAG_DIR_BOTH = 0x3
LV_DRAG_DIR_ONE = 0x4
LV_GESTURE_DIR_TOP=5
LV_GESTURE_DIR_BOTTOM=6
LV_GESTURE_DIR_LEFT=7
LV_GESTURE_DIR_RIGHT=8
LV_DISP_ROT_NONE = 0
LV_DISP_ROT_90=1

View File

@ -38,7 +38,7 @@ lv_style_t * lv_style_list_get_local_style(lv_style_list_t * list);
// bool lv_debug_check_style_list(const lv_style_list_t * list);
// ======================================================================
// Style
// Group
// ======================================================================
// LV Group
lv_group_t * lv_group_create(void);
@ -63,6 +63,29 @@ bool lv_group_get_editing(const lv_group_t * group);
bool lv_group_get_click_focus(const lv_group_t * group);
bool lv_group_get_wrap(lv_group_t * group);
// ======================================================================
// Indev - Input devicce
// ======================================================================
// void _lv_indev_read_task(lv_task_t * task);
lv_indev_t * lv_indev_get_act(void);
lv_indev_type_t lv_indev_get_type(const lv_indev_t * indev);
// void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj);
// void lv_indev_reset_long_press(lv_indev_t * indev);
void lv_indev_enable(lv_indev_t * indev, bool en);
// void lv_indev_set_cursor(lv_indev_t * indev, lv_obj_t * cur_obj);
void lv_indev_set_group(lv_indev_t * indev, lv_group_t * group);
// void lv_indev_set_button_points(lv_indev_t * indev, const lv_point_t points[]);
// void lv_indev_get_point(const lv_indev_t * indev, lv_point_t * point);
// lv_gesture_dir_t lv_indev_get_gesture_dir(const lv_indev_t * indev);
// uint32_t lv_indev_get_key(const lv_indev_t * indev);
// bool lv_indev_is_dragging(const lv_indev_t * indev);
// void lv_indev_get_vect(const lv_indev_t * indev, lv_point_t * point);
// lv_res_t lv_indev_finish_drag(lv_indev_t * indev);
// void lv_indev_wait_release(lv_indev_t * indev);
lv_obj_t * lv_indev_get_obj_act(void);
lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point);
// lv_task_t * lv_indev_get_read_task(lv_disp_t * indev);
// ======================================================================
// Object
// ======================================================================