diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f2a557d6..b94263100 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file. ### Breaking Changed - Matter aggregator relocated to endpoint 1 for Google compatibility, may break existing associations (#20654) +- LVGL library updated to v9.0.0, some small breaking changes in C, none in HASPmota ### Changed - Library OneWire-Stickbreaker by TasmotaOneWire supporting Shelly Plus Add-On (#20580) diff --git a/lib/libesp32/berry_tasmota/include/be_ctypes.h b/lib/libesp32/berry_tasmota/include/be_ctypes.h index abaffa8c3..da97971bd 100644 --- a/lib/libesp32/berry_tasmota/include/be_ctypes.h +++ b/lib/libesp32/berry_tasmota/include/be_ctypes.h @@ -8,14 +8,17 @@ enum { ctypes_i32 = 14, + ctypes_i24 = 13, ctypes_i16 = 12, ctypes_i8 = 11, ctypes_u32 = 4, + ctypes_u24 = 3, ctypes_u16 = 2, ctypes_u8 = 1, // big endian ctypes_be_i32 = -14, + ctypes_be_i24 = -13, ctypes_be_i16 = -12, ctypes_be_i8 = -11, ctypes_be_u32 = -4, diff --git a/lib/libesp32/berry_tasmota/src/be_ctypes.c b/lib/libesp32/berry_tasmota/src/be_ctypes.c index d92ffb183..66b119ed2 100644 --- a/lib/libesp32/berry_tasmota/src/be_ctypes.c +++ b/lib/libesp32/berry_tasmota/src/be_ctypes.c @@ -36,14 +36,17 @@ int32_t bin_search_ctypes(const char * needle, const void * table, size_t elt_si enum { ctypes_i32 = 14, + ctypes_i24 = 13, ctypes_i16 = 12, ctypes_i8 = 11, ctypes_u32 = 4, + ctypes_u24 = 3, ctypes_u16 = 2, ctypes_u8 = 1, // big endian ctypes_be_i32 = -14, + ctypes_be_i24 = -13, ctypes_be_i16 = -12, ctypes_be_i8 = -11, ctypes_be_u32 = -4, diff --git a/lib/libesp32/berry_tasmota/src/be_lv_haspmota.c b/lib/libesp32/berry_tasmota/src/be_lv_haspmota.c index eaa5d97b1..10033d3e2 100644 --- a/lib/libesp32/berry_tasmota/src/be_lv_haspmota.c +++ b/lib/libesp32/berry_tasmota/src/be_lv_haspmota.c @@ -9,8 +9,8 @@ extern const bclass be_class_lv_anim; extern const bclass be_class_lv_arc; extern const bclass be_class_lv_bar; -extern const bclass be_class_lv_btn; -extern const bclass be_class_lv_btnmatrix; +extern const bclass be_class_lv_button; +extern const bclass be_class_lv_buttonmatrix; extern const bclass be_class_lv_canvas; extern const bclass be_class_lv_chart; extern const bclass be_class_lv_checkbox; @@ -20,8 +20,8 @@ extern const bclass be_class_lv_disp; extern const bclass be_class_lv_dropdown; extern const bclass be_class_lv_font; extern const bclass be_class_lv_group; -extern const bclass be_class_lv_img; -extern const bclass be_class_lv_imgbtn; +extern const bclass be_class_lv_image; +extern const bclass be_class_lv_imagebutton; extern const bclass be_class_lv_indev; extern const bclass be_class_lv_label; extern const bclass be_class_lv_led; @@ -290,7 +290,7 @@ be_local_closure(lvh_page_show, /* name */ /* K14 */ be_nested_str_weak(show_anim), /* K15 */ be_nested_str_weak(find), /* K16 */ be_nested_str_weak(SCR_LOAD_ANIM_NONE), - /* K17 */ be_nested_str_weak(scr_load_anim), + /* K17 */ be_nested_str_weak(screen_load_anim), }), be_str_weak(show), &be_const_str_solidified, @@ -839,7 +839,7 @@ be_local_closure(lvh_obj_event_cb, /* name */ ( &(const bvalue[22]) { /* constants */ /* K0 */ be_nested_str_weak(_page), /* K1 */ be_nested_str_weak(_oh), - /* K2 */ be_nested_str_weak(code), + /* K2 */ be_nested_str_weak(get_code), /* K3 */ be_nested_str_weak(action), /* K4 */ be_nested_str_weak(), /* K5 */ be_nested_str_weak(lv), @@ -865,32 +865,32 @@ be_local_closure(lvh_obj_event_cb, /* name */ ( &(const binstruction[72]) { /* code */ 0x88080100, // 0000 GETMBR R2 R0 K0 0x88080501, // 0001 GETMBR R2 R2 K1 - 0x880C0302, // 0002 GETMBR R3 R1 K2 - 0x88100103, // 0003 GETMBR R4 R0 K3 - 0x20100904, // 0004 NE R4 R4 K4 - 0x78120008, // 0005 JMPF R4 #000F - 0xB8120A00, // 0006 GETNGBL R4 K5 - 0x88100906, // 0007 GETMBR R4 R4 K6 - 0x1C100604, // 0008 EQ R4 R3 R4 - 0x78120004, // 0009 JMPF R4 #000F - 0xB8120E00, // 000A GETNGBL R4 K7 - 0x8C100908, // 000B GETMET R4 R4 K8 - 0x58180009, // 000C LDCONST R6 K9 - 0x841C0000, // 000D CLOSURE R7 P0 - 0x7C100600, // 000E CALL R4 3 - 0x8810010A, // 000F GETMBR R4 R0 K10 - 0x8C10090B, // 0010 GETMET R4 R4 K11 - 0x5C180600, // 0011 MOVE R6 R3 - 0x7C100400, // 0012 CALL R4 2 - 0x4C140000, // 0013 LDNIL R5 - 0x20140805, // 0014 NE R5 R4 R5 - 0x7816002F, // 0015 JMPF R5 #0046 - 0xA4161800, // 0016 IMPORT R5 K12 - 0x58180004, // 0017 LDCONST R6 K4 - 0x881C0302, // 0018 GETMBR R7 R1 K2 - 0xB8220A00, // 0019 GETNGBL R8 K5 - 0x8820110D, // 001A GETMBR R8 R8 K13 - 0x1C1C0E08, // 001B EQ R7 R7 R8 + 0x8C0C0302, // 0002 GETMET R3 R1 K2 + 0x7C0C0200, // 0003 CALL R3 1 + 0x88100103, // 0004 GETMBR R4 R0 K3 + 0x20100904, // 0005 NE R4 R4 K4 + 0x78120008, // 0006 JMPF R4 #0010 + 0xB8120A00, // 0007 GETNGBL R4 K5 + 0x88100906, // 0008 GETMBR R4 R4 K6 + 0x1C100604, // 0009 EQ R4 R3 R4 + 0x78120004, // 000A JMPF R4 #0010 + 0xB8120E00, // 000B GETNGBL R4 K7 + 0x8C100908, // 000C GETMET R4 R4 K8 + 0x58180009, // 000D LDCONST R6 K9 + 0x841C0000, // 000E CLOSURE R7 P0 + 0x7C100600, // 000F CALL R4 3 + 0x8810010A, // 0010 GETMBR R4 R0 K10 + 0x8C10090B, // 0011 GETMET R4 R4 K11 + 0x5C180600, // 0012 MOVE R6 R3 + 0x7C100400, // 0013 CALL R4 2 + 0x4C140000, // 0014 LDNIL R5 + 0x20140805, // 0015 NE R5 R4 R5 + 0x7816002E, // 0016 JMPF R5 #0046 + 0xA4161800, // 0017 IMPORT R5 K12 + 0x58180004, // 0018 LDCONST R6 K4 + 0xB81E0A00, // 0019 GETNGBL R7 K5 + 0x881C0F0D, // 001A GETMBR R7 R7 K13 + 0x1C1C0607, // 001B EQ R7 R3 R7 0x781E001A, // 001C JMPF R7 #0038 0xA8020015, // 001D EXBLK 0 #0034 0x881C010E, // 001E GETMBR R7 R0 K14 @@ -4147,14 +4147,13 @@ be_local_class(lvh_obj, { be_const_key_weak(set_text_rule, -1), be_const_closure(lvh_obj_set_text_rule_closure) }, { be_const_key_weak(get_enabled, -1), be_const_closure(lvh_obj_get_enabled_closure) }, { be_const_key_weak(_attr_ignore, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(10, + be_const_list( * be_nested_list(9, ( (struct bvalue*) &(const bvalue[]) { be_nested_str_weak(tostring), be_nested_str_weak(obj), be_nested_str_weak(page), be_nested_str_weak(comment), be_nested_str_weak(parentid), - be_nested_str_weak(auto_size), be_nested_str_weak(prev), be_nested_str_weak(next), be_nested_str_weak(back), @@ -4226,8 +4225,8 @@ be_local_class(lvh_obj, be_const_int(327680), be_const_int(327680), be_const_int(262144), + be_const_int(327680), be_const_int(393216), - be_const_int(458752), be_const_int(65536), be_const_int(524288), })) ) } )) }, @@ -4287,11 +4286,11 @@ be_local_class(lvh_obj, { be_const_key_weak(_event_map, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(7, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_int(28, 2), be_nested_str_weak(changed) }, - { be_const_key_int(8, 4), be_nested_str_weak(release) }, { be_const_key_int(7, -1), be_nested_str_weak(up) }, - { be_const_key_int(3, -1), be_nested_str_weak(lost) }, + { be_const_key_int(8, 4), be_nested_str_weak(release) }, { be_const_key_int(1, -1), be_nested_str_weak(down) }, + { be_const_key_int(3, -1), be_nested_str_weak(lost) }, + { be_const_key_int(29, 2), be_nested_str_weak(changed) }, { be_const_key_int(5, -1), be_nested_str_weak(long) }, { be_const_key_int(6, -1), be_nested_str_weak(hold) }, })) ) } )) }, @@ -4342,7 +4341,7 @@ be_local_class(lvh_btn, &be_class_lvh_obj, be_nested_map(1, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_btn) }, + { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_button) }, })), be_str_weak(lvh_btn) ); @@ -4526,33 +4525,19 @@ extern const bclass be_class_lvh_spinner; ********************************************************************/ be_local_closure(lvh_spinner_set_angle, /* name */ be_nested_proto( - 4, /* nstack */ + 2, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_anim_end), - /* K1 */ be_nested_str_weak(start_value), - /* K2 */ be_nested_str_weak(end_value), - }), + 0, /* has constants */ + NULL, /* no const */ be_str_weak(set_angle), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x60080009, // 0000 GETGBL R2 G9 - 0x5C0C0200, // 0001 MOVE R3 R1 - 0x7C080200, // 0002 CALL R2 1 - 0x5C040400, // 0003 MOVE R1 R2 - 0x88080100, // 0004 GETMBR R2 R0 K0 - 0x900A0201, // 0005 SETMBR R2 K1 R1 - 0x88080100, // 0006 GETMBR R2 R0 K0 - 0x540E0167, // 0007 LDINT R3 360 - 0x000C0203, // 0008 ADD R3 R1 R3 - 0x900A0403, // 0009 SETMBR R2 K2 R3 - 0x80000000, // 000A RET 0 + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 }) ) ); @@ -4564,7 +4549,7 @@ be_local_closure(lvh_spinner_set_angle, /* name */ ********************************************************************/ be_local_closure(lvh_spinner_init, /* name */ be_nested_proto( - 11, /* nstack */ + 10, /* nstack */ 4, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -4572,7 +4557,7 @@ be_local_closure(lvh_spinner_init, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[15]) { /* constants */ + ( &(const bvalue[ 9]) { /* constants */ /* K0 */ be_nested_str_weak(_page), /* K1 */ be_nested_str_weak(find), /* K2 */ be_nested_str_weak(angle), @@ -4580,18 +4565,12 @@ be_local_closure(lvh_spinner_init, /* name */ /* K4 */ be_nested_str_weak(_lv_obj), /* K5 */ be_nested_str_weak(lv), /* K6 */ be_nested_str_weak(spinner), - /* K7 */ be_nested_str_weak(post_init), - /* K8 */ be_nested_str_weak(anim_get), - /* K9 */ be_nested_str_weak(_arc_anim_start_angle), - /* K10 */ be_nested_str_weak(_arc_anim_end_angle), - /* K11 */ be_nested_str_weak(_anim_start), - /* K12 */ be_nested_str_weak(anim_ntv), - /* K13 */ be_nested_str_weak(_p), - /* K14 */ be_nested_str_weak(_anim_end), + /* K7 */ be_nested_str_weak(set_anim_params), + /* K8 */ be_nested_str_weak(post_init), }), be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[41]) { /* code */ + ( &(const binstruction[22]) { /* code */ 0x90020002, // 0000 SETMBR R0 K0 R2 0x8C100701, // 0001 GETMET R4 R3 K1 0x58180002, // 0002 LDCONST R6 K2 @@ -4604,68 +4583,16 @@ be_local_closure(lvh_spinner_init, /* name */ 0xB81A0A00, // 0009 GETNGBL R6 K5 0x8C180D06, // 000A GETMET R6 R6 K6 0x5C200200, // 000B MOVE R8 R1 - 0x5C240A00, // 000C MOVE R9 R5 - 0x5C280800, // 000D MOVE R10 R4 - 0x7C180800, // 000E CALL R6 4 - 0x90020806, // 000F SETMBR R0 K4 R6 - 0x8C180107, // 0010 GETMET R6 R0 K7 - 0x7C180200, // 0011 CALL R6 1 - 0xB81A0A00, // 0012 GETNGBL R6 K5 - 0x8C180D08, // 0013 GETMET R6 R6 K8 - 0x88200104, // 0014 GETMBR R8 R0 K4 - 0x88240104, // 0015 GETMBR R9 R0 K4 - 0x88241309, // 0016 GETMBR R9 R9 K9 - 0x7C180600, // 0017 CALL R6 3 - 0xB81E0A00, // 0018 GETNGBL R7 K5 - 0x8C1C0F08, // 0019 GETMET R7 R7 K8 - 0x88240104, // 001A GETMBR R9 R0 K4 - 0x88280104, // 001B GETMBR R10 R0 K4 - 0x8828150A, // 001C GETMBR R10 R10 K10 - 0x7C1C0600, // 001D CALL R7 3 - 0xB8220A00, // 001E GETNGBL R8 K5 - 0x8C20110C, // 001F GETMET R8 R8 K12 - 0x88280D0D, // 0020 GETMBR R10 R6 K13 - 0x7C200400, // 0021 CALL R8 2 - 0x90021608, // 0022 SETMBR R0 K11 R8 - 0xB8220A00, // 0023 GETNGBL R8 K5 - 0x8C20110C, // 0024 GETMET R8 R8 K12 - 0x88280F0D, // 0025 GETMBR R10 R7 K13 - 0x7C200400, // 0026 CALL R8 2 - 0x90021C08, // 0027 SETMBR R0 K14 R8 - 0x80000000, // 0028 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_angle -********************************************************************/ -be_local_closure(lvh_spinner_get_angle, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_anim_end), - /* K1 */ be_nested_str_weak(start_value), - /* K2 */ be_nested_str_weak(_anim_start), - }), - be_str_weak(get_angle), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x88040301, // 0001 GETMBR R1 R1 K1 - 0x88080102, // 0002 GETMBR R2 R0 K2 - 0x88080501, // 0003 GETMBR R2 R2 K1 - 0x04040202, // 0004 SUB R1 R1 R2 - 0x80040200, // 0005 RET 1 R1 + 0x7C180400, // 000C CALL R6 2 + 0x90020806, // 000D SETMBR R0 K4 R6 + 0x88180104, // 000E GETMBR R6 R0 K4 + 0x8C180D07, // 000F GETMET R6 R6 K7 + 0x5C200A00, // 0010 MOVE R8 R5 + 0x5C240800, // 0011 MOVE R9 R4 + 0x7C180600, // 0012 CALL R6 3 + 0x8C180108, // 0013 GETMET R6 R0 K8 + 0x7C180200, // 0014 CALL R6 1 + 0x80000000, // 0015 RET 0 }) ) ); @@ -4677,24 +4604,43 @@ be_local_closure(lvh_spinner_get_angle, /* name */ ********************************************************************/ be_local_closure(lvh_spinner_get_speed, /* name */ be_nested_proto( - 2, /* nstack */ + 1, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_anim_start), - /* K1 */ be_nested_str_weak(time), - }), + 0, /* has constants */ + NULL, /* no const */ be_str_weak(get_speed), &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x88040301, // 0001 GETMBR R1 R1 K1 - 0x80040200, // 0002 RET 1 R1 + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_angle +********************************************************************/ +be_local_closure(lvh_spinner_get_angle, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_angle), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 }) ) ); @@ -4706,31 +4652,19 @@ be_local_closure(lvh_spinner_get_speed, /* name */ ********************************************************************/ be_local_closure(lvh_spinner_set_speed, /* name */ be_nested_proto( - 4, /* nstack */ + 2, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_anim_start), - /* K1 */ be_nested_str_weak(time), - /* K2 */ be_nested_str_weak(_anim_end), - }), + 0, /* has constants */ + NULL, /* no const */ be_str_weak(set_speed), &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x60080009, // 0000 GETGBL R2 G9 - 0x5C0C0200, // 0001 MOVE R3 R1 - 0x7C080200, // 0002 CALL R2 1 - 0x5C040400, // 0003 MOVE R1 R2 - 0x88080100, // 0004 GETMBR R2 R0 K0 - 0x900A0201, // 0005 SETMBR R2 K1 R1 - 0x88080102, // 0006 GETMBR R2 R0 K2 - 0x900A0201, // 0007 SETMBR R2 K1 R1 - 0x80000000, // 0008 RET 0 + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 }) ) ); @@ -4746,13 +4680,13 @@ be_local_class(lvh_spinner, &be_class_lvh_arc, be_nested_map(8, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(set_speed, 1), be_const_closure(lvh_spinner_set_speed_closure) }, - { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_spinner) }, - { be_const_key_weak(get_speed, 6), be_const_closure(lvh_spinner_get_speed_closure) }, + { be_const_key_weak(set_speed, 4), be_const_closure(lvh_spinner_set_speed_closure) }, + { be_const_key_weak(_speed, -1), be_const_var(0) }, + { be_const_key_weak(get_angle, 6), be_const_closure(lvh_spinner_get_angle_closure) }, { be_const_key_weak(init, 2), be_const_closure(lvh_spinner_init_closure) }, - { be_const_key_weak(_anim_start, -1), be_const_var(0) }, - { be_const_key_weak(_anim_end, -1), be_const_var(1) }, - { be_const_key_weak(get_angle, -1), be_const_closure(lvh_spinner_get_angle_closure) }, + { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_spinner) }, + { be_const_key_weak(_angle, -1), be_const_var(1) }, + { be_const_key_weak(get_speed, -1), be_const_closure(lvh_spinner_get_speed_closure) }, { be_const_key_weak(set_angle, 0), be_const_closure(lvh_spinner_set_angle_closure) }, })), be_str_weak(lvh_spinner) @@ -4790,6 +4724,71 @@ void be_load_lvh_line_class(bvm *vm) { extern const bclass be_class_lvh_img; +/******************************************************************** +** Solidified function: get_angle +********************************************************************/ +be_local_closure(lvh_img_get_angle, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(get_angle), + }), + be_str_weak(get_angle), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: set_auto_size +********************************************************************/ +be_local_closure(lvh_img_set_auto_size, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_inner_align), + /* K2 */ be_nested_str_weak(lv), + /* K3 */ be_nested_str_weak(IMAGE_ALIGN_STRETCH), + }), + be_str_weak(set_auto_size), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x78060004, // 0000 JMPF R1 #0006 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x8C080501, // 0002 GETMET R2 R2 K1 + 0xB8120400, // 0003 GETNGBL R4 K2 + 0x88100903, // 0004 GETMBR R4 R4 K3 + 0x7C080400, // 0005 CALL R2 2 + 0x80000000, // 0006 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: set_angle ********************************************************************/ @@ -4826,29 +4825,23 @@ be_local_closure(lvh_img_set_angle, /* name */ /******************************************************************** -** Solidified function: get_angle +** Solidified function: get_auto_size ********************************************************************/ -be_local_closure(lvh_img_get_angle, /* name */ +be_local_closure(lvh_img_get_auto_size, /* name */ be_nested_proto( - 3, /* nstack */ + 1, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_lv_obj), - /* K1 */ be_nested_str_weak(get_angle), - }), - be_str_weak(get_angle), + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_auto_size), &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 }) ) ); @@ -4862,11 +4855,13 @@ extern const bclass be_class_lvh_obj; be_local_class(lvh_img, 0, &be_class_lvh_obj, - be_nested_map(3, + be_nested_map(5, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(set_angle, -1), be_const_closure(lvh_img_set_angle_closure) }, - { be_const_key_weak(get_angle, 2), be_const_closure(lvh_img_get_angle_closure) }, - { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_img) }, + { be_const_key_weak(get_angle, -1), be_const_closure(lvh_img_get_angle_closure) }, + { be_const_key_weak(set_auto_size, -1), be_const_closure(lvh_img_set_auto_size_closure) }, + { be_const_key_weak(set_angle, 4), be_const_closure(lvh_img_set_angle_closure) }, + { be_const_key_weak(get_auto_size, -1), be_const_closure(lvh_img_get_auto_size_closure) }, + { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_image) }, })), be_str_weak(lvh_img) ); @@ -5122,7 +5117,7 @@ be_local_class(lvh_btnmatrix, &be_class_lvh_obj, be_nested_map(1, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_btnmatrix) }, + { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_buttonmatrix) }, })), be_str_weak(lvh_btnmatrix) ); @@ -6213,23 +6208,33 @@ void be_load_lvh_dropdown_class(bvm *vm) { extern const bclass be_class_lvh_qrcode; /******************************************************************** -** Solidified function: get_qr_size +** Solidified function: set_dark_color ********************************************************************/ -be_local_closure(lvh_qrcode_get_qr_size, /* name */ +be_local_closure(lvh_qrcode_set_dark_color, /* name */ be_nested_proto( - 1, /* nstack */ - 1, /* argc */ + 7, /* nstack */ + 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(get_qr_size), + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_dark_color), + /* K2 */ be_nested_str_weak(parse_color), + }), + be_str_weak(set_dark_color), &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 + ( &(const binstruction[ 7]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x8C100102, // 0002 GETMET R4 R0 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C100400, // 0004 CALL R4 2 + 0x7C080400, // 0005 CALL R2 2 + 0x80000000, // 0006 RET 0 }) ) ); @@ -6241,131 +6246,26 @@ be_local_closure(lvh_qrcode_get_qr_size, /* name */ ********************************************************************/ be_local_closure(lvh_qrcode_set_qr_size, /* name */ be_nested_proto( - 2, /* nstack */ + 5, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_size), + }), be_str_weak(set_qr_size), &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_qr_light_color -********************************************************************/ -be_local_closure(lvh_qrcode_get_qr_light_color, /* name */ - be_nested_proto( - 1, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(get_qr_light_color), - &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_qr_dark_color -********************************************************************/ -be_local_closure(lvh_qrcode_get_qr_dark_color, /* name */ - be_nested_proto( - 1, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(get_qr_dark_color), - &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(lvh_qrcode_init, /* name */ - be_nested_proto( - 13, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(_page), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(qr_size), - /* K3 */ be_nested_str_weak(parse_color), - /* K4 */ be_nested_str_weak(qr_dark_color), - /* K5 */ be_nested_str_weak(_X23000000), - /* K6 */ be_nested_str_weak(qr_light_color), - /* K7 */ be_nested_str_weak(_X23FFFFFF), - /* K8 */ be_nested_str_weak(_lv_obj), - /* K9 */ be_nested_str_weak(lv), - /* K10 */ be_nested_str_weak(qrcode), - /* K11 */ be_nested_str_weak(post_init), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* code */ - 0x90020002, // 0000 SETMBR R0 K0 R2 - 0x8C100701, // 0001 GETMET R4 R3 K1 - 0x58180002, // 0002 LDCONST R6 K2 - 0x541E0063, // 0003 LDINT R7 100 - 0x7C100600, // 0004 CALL R4 3 - 0x8C140103, // 0005 GETMET R5 R0 K3 - 0x8C1C0701, // 0006 GETMET R7 R3 K1 - 0x58240004, // 0007 LDCONST R9 K4 - 0x58280005, // 0008 LDCONST R10 K5 - 0x7C1C0600, // 0009 CALL R7 3 - 0x7C140400, // 000A CALL R5 2 - 0x8C180103, // 000B GETMET R6 R0 K3 - 0x8C200701, // 000C GETMET R8 R3 K1 - 0x58280006, // 000D LDCONST R10 K6 - 0x582C0007, // 000E LDCONST R11 K7 - 0x7C200600, // 000F CALL R8 3 - 0x7C180400, // 0010 CALL R6 2 - 0xB81E1200, // 0011 GETNGBL R7 K9 - 0x8C1C0F0A, // 0012 GETMET R7 R7 K10 - 0x5C240200, // 0013 MOVE R9 R1 - 0x5C280800, // 0014 MOVE R10 R4 - 0x5C2C0A00, // 0015 MOVE R11 R5 - 0x5C300C00, // 0016 MOVE R12 R6 - 0x7C1C0A00, // 0017 CALL R7 5 - 0x90021007, // 0018 SETMBR R0 K8 R7 - 0x8C1C010B, // 0019 GETMET R7 R0 K11 - 0x7C1C0200, // 001A CALL R7 1 - 0x80000000, // 001B RET 0 + ( &(const binstruction[ 5]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80000000, // 0004 RET 0 }) ) ); @@ -6377,19 +6277,29 @@ be_local_closure(lvh_qrcode_init, /* name */ ********************************************************************/ be_local_closure(lvh_qrcode_set_qr_light_color, /* name */ be_nested_proto( - 2, /* nstack */ + 7, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_light_color), + /* K2 */ be_nested_str_weak(parse_color), + }), be_str_weak(set_qr_light_color), &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 + ( &(const binstruction[ 7]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x8C100102, // 0002 GETMET R4 R0 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C100400, // 0004 CALL R4 2 + 0x7C080400, // 0005 CALL R2 2 + 0x80000000, // 0006 RET 0 }) ) ); @@ -6397,47 +6307,33 @@ be_local_closure(lvh_qrcode_set_qr_light_color, /* name */ /******************************************************************** -** Solidified function: get_qr_text +** Solidified function: set_light_color ********************************************************************/ -be_local_closure(lvh_qrcode_get_qr_text, /* name */ +be_local_closure(lvh_qrcode_set_light_color, /* name */ be_nested_proto( - 1, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(get_qr_text), - &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: set_qr_dark_color -********************************************************************/ -be_local_closure(lvh_qrcode_set_qr_dark_color, /* name */ - be_nested_proto( - 2, /* nstack */ + 7, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(set_qr_dark_color), + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_light_color), + /* K2 */ be_nested_str_weak(parse_color), + }), + be_str_weak(set_light_color), &be_const_str_solidified, - ( &(const binstruction[ 1]) { /* code */ - 0x80000000, // 0000 RET 0 + ( &(const binstruction[ 7]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x8C100102, // 0002 GETMET R4 R0 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C100400, // 0004 CALL R4 2 + 0x7C080400, // 0005 CALL R2 2 + 0x80000000, // 0006 RET 0 }) ) ); @@ -6482,6 +6378,239 @@ be_local_closure(lvh_qrcode_set_qr_text, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_dark_color +********************************************************************/ +be_local_closure(lvh_qrcode_get_dark_color, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_dark_color), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: set_size +********************************************************************/ +be_local_closure(lvh_qrcode_set_size, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_size), + }), + be_str_weak(set_size), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_size +********************************************************************/ +be_local_closure(lvh_qrcode_get_size, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_size), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_light_color +********************************************************************/ +be_local_closure(lvh_qrcode_get_light_color, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_light_color), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_qr_text +********************************************************************/ +be_local_closure(lvh_qrcode_get_qr_text, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_qr_text), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_qr_dark_color +********************************************************************/ +be_local_closure(lvh_qrcode_get_qr_dark_color, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_qr_dark_color), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_qr_light_color +********************************************************************/ +be_local_closure(lvh_qrcode_get_qr_light_color, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_qr_light_color), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: set_qr_dark_color +********************************************************************/ +be_local_closure(lvh_qrcode_set_qr_dark_color, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_lv_obj), + /* K1 */ be_nested_str_weak(set_dark_color), + /* K2 */ be_nested_str_weak(parse_color), + }), + be_str_weak(set_qr_dark_color), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x8C100102, // 0002 GETMET R4 R0 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C100400, // 0004 CALL R4 2 + 0x7C080400, // 0005 CALL R2 2 + 0x80000000, // 0006 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_qr_size +********************************************************************/ +be_local_closure(lvh_qrcode_get_qr_size, /* name */ + be_nested_proto( + 1, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_qr_size), + &be_const_str_solidified, + ( &(const binstruction[ 1]) { /* code */ + 0x80000000, // 0000 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: lvh_qrcode ********************************************************************/ @@ -6489,18 +6618,23 @@ extern const bclass be_class_lvh_obj; be_local_class(lvh_qrcode, 0, &be_class_lvh_obj, - be_nested_map(10, + be_nested_map(15, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(set_qr_text, -1), be_const_closure(lvh_qrcode_set_qr_text_closure) }, + { be_const_key_weak(set_dark_color, 6), be_const_closure(lvh_qrcode_set_dark_color_closure) }, { be_const_key_weak(set_qr_size, -1), be_const_closure(lvh_qrcode_set_qr_size_closure) }, - { be_const_key_weak(get_qr_light_color, 6), be_const_closure(lvh_qrcode_get_qr_light_color_closure) }, - { be_const_key_weak(set_qr_dark_color, -1), be_const_closure(lvh_qrcode_set_qr_dark_color_closure) }, + { be_const_key_weak(set_qr_light_color, 10), be_const_closure(lvh_qrcode_set_qr_light_color_closure) }, + { be_const_key_weak(set_light_color, 9), be_const_closure(lvh_qrcode_set_light_color_closure) }, + { be_const_key_weak(get_qr_size, 11), be_const_closure(lvh_qrcode_get_qr_size_closure) }, + { be_const_key_weak(get_dark_color, -1), be_const_closure(lvh_qrcode_get_dark_color_closure) }, + { be_const_key_weak(set_size, -1), be_const_closure(lvh_qrcode_set_size_closure) }, + { be_const_key_weak(_lv_class, -1), be_const_class(be_class_lv_qrcode) }, + { be_const_key_weak(get_size, -1), be_const_closure(lvh_qrcode_get_size_closure) }, + { be_const_key_weak(get_qr_dark_color, 5), be_const_closure(lvh_qrcode_get_qr_dark_color_closure) }, { be_const_key_weak(get_qr_text, -1), be_const_closure(lvh_qrcode_get_qr_text_closure) }, - { be_const_key_weak(init, -1), be_const_closure(lvh_qrcode_init_closure) }, - { be_const_key_weak(set_qr_light_color, -1), be_const_closure(lvh_qrcode_set_qr_light_color_closure) }, - { be_const_key_weak(_lv_class, 4), be_const_class(be_class_lv_qrcode) }, - { be_const_key_weak(get_qr_dark_color, 3), be_const_closure(lvh_qrcode_get_qr_dark_color_closure) }, - { be_const_key_weak(get_qr_size, 0), be_const_closure(lvh_qrcode_get_qr_size_closure) }, + { be_const_key_weak(get_light_color, -1), be_const_closure(lvh_qrcode_get_light_color_closure) }, + { be_const_key_weak(get_qr_light_color, -1), be_const_closure(lvh_qrcode_get_qr_light_color_closure) }, + { be_const_key_weak(set_qr_dark_color, -1), be_const_closure(lvh_qrcode_set_qr_dark_color_closure) }, + { be_const_key_weak(set_qr_text, 4), be_const_closure(lvh_qrcode_set_qr_text_closure) }, })), be_str_weak(lvh_qrcode) ); @@ -7021,6 +7155,266 @@ void be_load_lvh_chart_class(bvm *vm) { extern const bclass be_class_HASPmota; +/******************************************************************** +** Solidified function: event_dispatch +********************************************************************/ +be_local_closure(HASPmota_event_dispatch, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(toptr), + /* K2 */ be_nested_str_weak(event), + /* K3 */ be_nested_str_weak(_p), + /* K4 */ be_nested_str_weak(lv), + /* K5 */ be_nested_str_weak(lv_event), + /* K6 */ be_nested_str_weak(get_user_data), + /* K7 */ be_const_int(0), + /* K8 */ be_nested_str_weak(fromptr), + /* K9 */ be_nested_str_weak(instance), + /* K10 */ be_nested_str_weak(event_cb), + }), + be_str_weak(event_dispatch), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x88100102, // 0004 GETMBR R4 R0 K2 + 0x78120002, // 0005 JMPF R4 #0009 + 0x88100102, // 0006 GETMBR R4 R0 K2 + 0x90120603, // 0007 SETMBR R4 K3 R3 + 0x70020004, // 0008 JMP #000E + 0xB8120800, // 0009 GETNGBL R4 K4 + 0x8C100905, // 000A GETMET R4 R4 K5 + 0x5C180600, // 000B MOVE R6 R3 + 0x7C100400, // 000C CALL R4 2 + 0x90020404, // 000D SETMBR R0 K2 R4 + 0x88100102, // 000E GETMBR R4 R0 K2 + 0x8C100906, // 000F GETMET R4 R4 K6 + 0x7C100200, // 0010 CALL R4 1 + 0x60140009, // 0011 GETGBL R5 G9 + 0x5C180800, // 0012 MOVE R6 R4 + 0x7C140200, // 0013 CALL R5 1 + 0x20140B07, // 0014 NE R5 R5 K7 + 0x7816000A, // 0015 JMPF R5 #0021 + 0x8C140508, // 0016 GETMET R5 R2 K8 + 0x5C1C0800, // 0017 MOVE R7 R4 + 0x7C140400, // 0018 CALL R5 2 + 0x60180004, // 0019 GETGBL R6 G4 + 0x5C1C0A00, // 001A MOVE R7 R5 + 0x7C180200, // 001B CALL R6 1 + 0x1C180D09, // 001C EQ R6 R6 K9 + 0x781A0002, // 001D JMPF R6 #0021 + 0x8C180B0A, // 001E GETMET R6 R5 K10 + 0x88200102, // 001F GETMBR R8 R0 K2 + 0x7C180400, // 0020 CALL R6 2 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: parse_page +********************************************************************/ +be_local_closure(HASPmota_parse_page, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* constants */ + /* K0 */ be_nested_str_weak(has), + /* K1 */ be_nested_str_weak(page), + /* K2 */ be_nested_str_weak(int), + /* K3 */ be_nested_str_weak(lvh_page_cur_idx), + /* K4 */ be_nested_str_weak(lvh_pages), + /* K5 */ be_nested_str_weak(contains), + /* K6 */ be_nested_str_weak(lvh_page), + /* K7 */ be_nested_str_weak(find), + /* K8 */ be_nested_str_weak(id), + /* K9 */ be_const_int(0), + /* K10 */ be_nested_str_weak(get_page_cur), + /* K11 */ be_nested_str_weak(prev), + /* K12 */ be_nested_str_weak(next), + /* K13 */ be_nested_str_weak(back), + }), + be_str_weak(parse_page), + &be_const_str_solidified, + ( &(const binstruction[54]) { /* code */ + 0x8C080300, // 0000 GETMET R2 R1 K0 + 0x58100001, // 0001 LDCONST R4 K1 + 0x7C080400, // 0002 CALL R2 2 + 0x780A0030, // 0003 JMPF R2 #0035 + 0x60080004, // 0004 GETGBL R2 G4 + 0x940C0301, // 0005 GETIDX R3 R1 K1 + 0x7C080200, // 0006 CALL R2 1 + 0x1C080502, // 0007 EQ R2 R2 K2 + 0x780A002B, // 0008 JMPF R2 #0035 + 0x60080009, // 0009 GETGBL R2 G9 + 0x940C0301, // 000A GETIDX R3 R1 K1 + 0x7C080200, // 000B CALL R2 1 + 0x90020602, // 000C SETMBR R0 K3 R2 + 0x880C0104, // 000D GETMBR R3 R0 K4 + 0x8C0C0705, // 000E GETMET R3 R3 K5 + 0x5C140400, // 000F MOVE R5 R2 + 0x7C0C0400, // 0010 CALL R3 2 + 0x740E0006, // 0011 JMPT R3 #0019 + 0x880C0106, // 0012 GETMBR R3 R0 K6 + 0x88100104, // 0013 GETMBR R4 R0 K4 + 0x5C140600, // 0014 MOVE R5 R3 + 0x5C180400, // 0015 MOVE R6 R2 + 0x5C1C0000, // 0016 MOVE R7 R0 + 0x7C140400, // 0017 CALL R5 2 + 0x98100405, // 0018 SETIDX R4 R2 R5 + 0x8C0C0307, // 0019 GETMET R3 R1 K7 + 0x58140008, // 001A LDCONST R5 K8 + 0x7C0C0400, // 001B CALL R3 2 + 0x1C0C0709, // 001C EQ R3 R3 K9 + 0x780E0016, // 001D JMPF R3 #0035 + 0x8C0C010A, // 001E GETMET R3 R0 K10 + 0x7C0C0200, // 001F CALL R3 1 + 0x60100009, // 0020 GETGBL R4 G9 + 0x8C140307, // 0021 GETMET R5 R1 K7 + 0x581C000B, // 0022 LDCONST R7 K11 + 0x4C200000, // 0023 LDNIL R8 + 0x7C140600, // 0024 CALL R5 3 + 0x7C100200, // 0025 CALL R4 1 + 0x900E1604, // 0026 SETMBR R3 K11 R4 + 0x60100009, // 0027 GETGBL R4 G9 + 0x8C140307, // 0028 GETMET R5 R1 K7 + 0x581C000C, // 0029 LDCONST R7 K12 + 0x4C200000, // 002A LDNIL R8 + 0x7C140600, // 002B CALL R5 3 + 0x7C100200, // 002C CALL R4 1 + 0x900E1804, // 002D SETMBR R3 K12 R4 + 0x60100009, // 002E GETGBL R4 G9 + 0x8C140307, // 002F GETMET R5 R1 K7 + 0x581C000D, // 0030 LDCONST R7 K13 + 0x4C200000, // 0031 LDNIL R8 + 0x7C140600, // 0032 CALL R5 3 + 0x7C100200, // 0033 CALL R4 1 + 0x900E1A04, // 0034 SETMBR R3 K13 R4 + 0x80000000, // 0035 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: parse +********************************************************************/ +be_local_closure(HASPmota_parse, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(json), + /* K1 */ be_nested_str_weak(load), + /* K2 */ be_nested_str_weak(instance), + /* K3 */ be_nested_str_weak(parse_page), + /* K4 */ be_nested_str_weak(parse_obj), + /* K5 */ be_nested_str_weak(lvh_pages), + /* K6 */ be_nested_str_weak(lvh_page_cur_idx), + /* K7 */ be_nested_str_weak(value_error), + /* K8 */ be_nested_str_weak(unable_X20to_X20parse_X20JSON_X20line), + }), + be_str_weak(parse), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x60100004, // 0004 GETGBL R4 G4 + 0x5C140600, // 0005 MOVE R5 R3 + 0x7C100200, // 0006 CALL R4 1 + 0x1C100902, // 0007 EQ R4 R4 K2 + 0x78120009, // 0008 JMPF R4 #0013 + 0x8C100103, // 0009 GETMET R4 R0 K3 + 0x5C180600, // 000A MOVE R6 R3 + 0x7C100400, // 000B CALL R4 2 + 0x8C100104, // 000C GETMET R4 R0 K4 + 0x5C180600, // 000D MOVE R6 R3 + 0x881C0105, // 000E GETMBR R7 R0 K5 + 0x88200106, // 000F GETMBR R8 R0 K6 + 0x941C0E08, // 0010 GETIDX R7 R7 R8 + 0x7C100600, // 0011 CALL R4 3 + 0x70020000, // 0012 JMP #0014 + 0xB0060F08, // 0013 RAISE 1 K7 K8 + 0x80000000, // 0014 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: fix_lv_version +********************************************************************/ +be_local_closure(HASPmota_fix_lv_version, /* name */ + be_nested_proto( + 6, /* nstack */ + 0, /* argc */ + 4, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_const_class(be_class_HASPmota), + /* K1 */ be_nested_str_weak(introspect), + /* K2 */ be_nested_str_weak(get), + /* K3 */ be_nested_str_weak(lv), + /* K4 */ be_nested_str_weak(version), + /* K5 */ be_nested_str_weak(int), + }), + be_str_weak(fix_lv_version), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x58000000, // 0000 LDCONST R0 K0 + 0xA4060200, // 0001 IMPORT R1 K1 + 0x8C080302, // 0002 GETMET R2 R1 K2 + 0xB8120600, // 0003 GETNGBL R4 K3 + 0x58140004, // 0004 LDCONST R5 K4 + 0x7C080600, // 0005 CALL R2 3 + 0x600C0004, // 0006 GETGBL R3 G4 + 0x5C100400, // 0007 MOVE R4 R2 + 0x7C0C0200, // 0008 CALL R3 1 + 0x200C0705, // 0009 NE R3 R3 K5 + 0x780E0002, // 000A JMPF R3 #000E + 0xB80E0600, // 000B GETNGBL R3 K3 + 0x54120007, // 000C LDINT R4 8 + 0x900E0804, // 000D SETMBR R3 K4 R4 + 0x80000000, // 000E RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: register_event ********************************************************************/ @@ -7097,6 +7491,375 @@ be_local_closure(HASPmota_register_event, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: page_dir_to +********************************************************************/ +be_local_closure(HASPmota_page_dir_to, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(pages_list_sorted), + /* K1 */ be_const_int(0), + /* K2 */ be_const_int(1), + /* K3 */ be_const_int(2), + /* K4 */ be_nested_str_weak(find), + }), + be_str_weak(page_dir_to), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x58100001, // 0001 LDCONST R4 K1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x1C0C0403, // 0004 EQ R3 R2 R3 + 0x780E0000, // 0005 JMPF R3 #0007 + 0x80060200, // 0006 RET 1 K1 + 0x600C000C, // 0007 GETGBL R3 G12 + 0x5C100400, // 0008 MOVE R4 R2 + 0x7C0C0200, // 0009 CALL R3 1 + 0x18100702, // 000A LE R4 R3 K2 + 0x78120000, // 000B JMPF R4 #000D + 0x80060200, // 000C RET 1 K1 + 0x1C100703, // 000D EQ R4 R3 K3 + 0x78120000, // 000E JMPF R4 #0010 + 0x80060400, // 000F RET 1 K2 + 0x8C100504, // 0010 GETMET R4 R2 K4 + 0x5C180200, // 0011 MOVE R6 R1 + 0x7C100400, // 0012 CALL R4 2 + 0x4C140000, // 0013 LDNIL R5 + 0x1C140805, // 0014 EQ R5 R4 R5 + 0x78160000, // 0015 JMPF R5 #0017 + 0x80060200, // 0016 RET 1 K1 + 0x00140702, // 0017 ADD R5 R3 K2 + 0x0C140B03, // 0018 DIV R5 R5 K3 + 0x18140805, // 0019 LE R5 R4 R5 + 0x78160001, // 001A JMPF R5 #001D + 0x80060400, // 001B RET 1 K2 + 0x70020001, // 001C JMP #001F + 0x5415FFFE, // 001D LDINT R5 -1 + 0x80040A00, // 001E RET 1 R5 + 0x80000000, // 001F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: parse_obj +********************************************************************/ +be_local_closure(HASPmota_parse_obj, /* name */ + be_nested_proto( + 20, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[30]) { /* constants */ + /* K0 */ be_nested_str_weak(global), + /* K1 */ be_nested_str_weak(introspect), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(id), + /* K4 */ be_nested_str_weak(obj), + /* K5 */ be_nested_str_weak(get_page_cur), + /* K6 */ be_nested_str_weak(berry_run), + /* K7 */ be_nested_str_weak(nil), + /* K8 */ be_nested_str_weak(HSP_X3A_X20unable_X20to_X20compile_X20berry_X20code_X20_X22_X25s_X22_X20_X2D_X20_X27_X25s_X27_X20_X2D_X20_X25s), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(HSP_X3A_X20invalid_X20_X27id_X27_X3A_X20), + /* K11 */ be_nested_str_weak(_X20for_X20_X27obj_X27_X3A), + /* K12 */ be_nested_str_weak(parentid), + /* K13 */ be_nested_str_weak(get_obj), + /* K14 */ be_nested_str_weak(_lv_obj), + /* K15 */ be_nested_str_weak(get_scr), + /* K16 */ be_nested_str_weak(get), + /* K17 */ be_nested_str_weak(lvh_), + /* K18 */ be_nested_str_weak(class), + /* K19 */ be_nested_str_weak(lvh_obj), + /* K20 */ be_nested_str_weak(module), + /* K21 */ be_nested_str_weak(HSP_X3A_X20Cannot_X20find_X20object_X20of_X20type_X20), + /* K22 */ be_nested_str_weak(set_obj), + /* K23 */ be_nested_str_weak(p_X25ib_X25i), + /* K24 */ be_nested_str_weak(function), + /* K25 */ be_nested_str_weak(HSP_X3A_X20unable_X20to_X20run_X20berry_X20code_X20_X22_X25s_X22_X20_X2D_X20_X27_X25s_X27_X20_X2D_X20_X25s), + /* K26 */ be_const_int(0), + /* K27 */ be_nested_str_weak(HSP_X3A_X20cannot_X20specify_X20_X27obj_X27_X20for_X20_X27id_X27_X3A0), + /* K28 */ be_nested_str_weak(keys), + /* K29 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(parse_obj), + &be_const_str_solidified, + ( &(const binstruction[217]) { /* code */ + 0xA40E0000, // 0000 IMPORT R3 K0 + 0xA4120200, // 0001 IMPORT R4 K1 + 0x60140009, // 0002 GETGBL R5 G9 + 0x8C180302, // 0003 GETMET R6 R1 K2 + 0x58200003, // 0004 LDCONST R8 K3 + 0x7C180400, // 0005 CALL R6 2 + 0x7C140200, // 0006 CALL R5 1 + 0x60180008, // 0007 GETGBL R6 G8 + 0x8C1C0302, // 0008 GETMET R7 R1 K2 + 0x58240004, // 0009 LDCONST R9 K4 + 0x7C1C0400, // 000A CALL R7 2 + 0x7C180200, // 000B CALL R6 1 + 0x4C1C0000, // 000C LDNIL R7 + 0x8C200105, // 000D GETMET R8 R0 K5 + 0x7C200200, // 000E CALL R8 1 + 0x60240008, // 000F GETGBL R9 G8 + 0x8C280302, // 0010 GETMET R10 R1 K2 + 0x58300006, // 0011 LDCONST R12 K6 + 0x7C280400, // 0012 CALL R10 2 + 0x7C240200, // 0013 CALL R9 1 + 0x4C280000, // 0014 LDNIL R10 + 0x202C1307, // 0015 NE R11 R9 K7 + 0x782E0012, // 0016 JMPF R11 #002A + 0xA8020005, // 0017 EXBLK 0 #001E + 0x602C000D, // 0018 GETGBL R11 G13 + 0x5C301200, // 0019 MOVE R12 R9 + 0x7C2C0200, // 001A CALL R11 1 + 0x5C281600, // 001B MOVE R10 R11 + 0xA8040001, // 001C EXBLK 1 1 + 0x7002000B, // 001D JMP #002A + 0xAC2C0002, // 001E CATCH R11 0 2 + 0x70020008, // 001F JMP #0029 + 0x60340001, // 0020 GETGBL R13 G1 + 0x60380018, // 0021 GETGBL R14 G24 + 0x583C0008, // 0022 LDCONST R15 K8 + 0x5C401200, // 0023 MOVE R16 R9 + 0x5C441600, // 0024 MOVE R17 R11 + 0x5C481800, // 0025 MOVE R18 R12 + 0x7C380800, // 0026 CALL R14 4 + 0x7C340200, // 0027 CALL R13 1 + 0x70020000, // 0028 JMP #002A + 0xB0080000, // 0029 RAISE 2 R0 R0 + 0x202C0D07, // 002A NE R11 R6 K7 + 0x782E006E, // 002B JMPF R11 #009B + 0x4C2C0000, // 002C LDNIL R11 + 0x202C0A0B, // 002D NE R11 R5 R11 + 0x782E006B, // 002E JMPF R11 #009B + 0x142C0B09, // 002F LT R11 R5 K9 + 0x742E0002, // 0030 JMPT R11 #0034 + 0x542E00FD, // 0031 LDINT R11 254 + 0x242C0A0B, // 0032 GT R11 R5 R11 + 0x782E0008, // 0033 JMPF R11 #003D + 0x602C0001, // 0034 GETGBL R11 G1 + 0x60300008, // 0035 GETGBL R12 G8 + 0x5C340A00, // 0036 MOVE R13 R5 + 0x7C300200, // 0037 CALL R12 1 + 0x0032140C, // 0038 ADD R12 K10 R12 + 0x0030190B, // 0039 ADD R12 R12 K11 + 0x00301806, // 003A ADD R12 R12 R6 + 0x7C2C0200, // 003B CALL R11 1 + 0x80001600, // 003C RET 0 + 0x4C2C0000, // 003D LDNIL R11 + 0x60300009, // 003E GETGBL R12 G9 + 0x8C340302, // 003F GETMET R13 R1 K2 + 0x583C000C, // 0040 LDCONST R15 K12 + 0x7C340400, // 0041 CALL R13 2 + 0x7C300200, // 0042 CALL R12 1 + 0x4C340000, // 0043 LDNIL R13 + 0x2034180D, // 0044 NE R13 R12 R13 + 0x78360006, // 0045 JMPF R13 #004D + 0x8C34110D, // 0046 GETMET R13 R8 K13 + 0x5C3C1800, // 0047 MOVE R15 R12 + 0x7C340400, // 0048 CALL R13 2 + 0x4C380000, // 0049 LDNIL R14 + 0x20381A0E, // 004A NE R14 R13 R14 + 0x783A0000, // 004B JMPF R14 #004D + 0x882C1B0E, // 004C GETMBR R11 R13 K14 + 0x4C340000, // 004D LDNIL R13 + 0x1C34160D, // 004E EQ R13 R11 R13 + 0x78360002, // 004F JMPF R13 #0053 + 0x8C34110F, // 0050 GETMET R13 R8 K15 + 0x7C340200, // 0051 CALL R13 1 + 0x5C2C1A00, // 0052 MOVE R11 R13 + 0x8C340910, // 0053 GETMET R13 R4 K16 + 0x5C3C0000, // 0054 MOVE R15 R0 + 0x00422206, // 0055 ADD R16 K17 R6 + 0x7C340600, // 0056 CALL R13 3 + 0x4C380000, // 0057 LDNIL R14 + 0x4C3C0000, // 0058 LDNIL R15 + 0x1C3C1A0F, // 0059 EQ R15 R13 R15 + 0x783E0010, // 005A JMPF R15 #006C + 0x8C3C0910, // 005B GETMET R15 R4 K16 + 0x5C440600, // 005C MOVE R17 R3 + 0x5C480C00, // 005D MOVE R18 R6 + 0x7C3C0600, // 005E CALL R15 3 + 0x4C400000, // 005F LDNIL R16 + 0x20401E10, // 0060 NE R16 R15 R16 + 0x78420009, // 0061 JMPF R16 #006C + 0x60400004, // 0062 GETGBL R16 G4 + 0x5C441E00, // 0063 MOVE R17 R15 + 0x7C400200, // 0064 CALL R16 1 + 0x1C402112, // 0065 EQ R16 R16 K18 + 0x78420004, // 0066 JMPF R16 #006C + 0x5C401E00, // 0067 MOVE R16 R15 + 0x5C441600, // 0068 MOVE R17 R11 + 0x7C400200, // 0069 CALL R16 1 + 0x5C382000, // 006A MOVE R14 R16 + 0x88340113, // 006B GETMBR R13 R0 K19 + 0x4C3C0000, // 006C LDNIL R15 + 0x1C3C1A0F, // 006D EQ R15 R13 R15 + 0x783E000F, // 006E JMPF R15 #007F + 0x8C3C0914, // 006F GETMET R15 R4 K20 + 0x5C440C00, // 0070 MOVE R17 R6 + 0x7C3C0400, // 0071 CALL R15 2 + 0x4C400000, // 0072 LDNIL R16 + 0x20401E10, // 0073 NE R16 R15 R16 + 0x78420009, // 0074 JMPF R16 #007F + 0x60400004, // 0075 GETGBL R16 G4 + 0x5C441E00, // 0076 MOVE R17 R15 + 0x7C400200, // 0077 CALL R16 1 + 0x1C402112, // 0078 EQ R16 R16 K18 + 0x78420004, // 0079 JMPF R16 #007F + 0x5C401E00, // 007A MOVE R16 R15 + 0x5C441600, // 007B MOVE R17 R11 + 0x7C400200, // 007C CALL R16 1 + 0x5C382000, // 007D MOVE R14 R16 + 0x88340113, // 007E GETMBR R13 R0 K19 + 0x4C3C0000, // 007F LDNIL R15 + 0x1C3C1A0F, // 0080 EQ R15 R13 R15 + 0x783E0006, // 0081 JMPF R15 #0089 + 0x603C0001, // 0082 GETGBL R15 G1 + 0x60400008, // 0083 GETGBL R16 G8 + 0x5C440C00, // 0084 MOVE R17 R6 + 0x7C400200, // 0085 CALL R16 1 + 0x00422A10, // 0086 ADD R16 K21 R16 + 0x7C3C0200, // 0087 CALL R15 1 + 0x80001E00, // 0088 RET 0 + 0x5C3C1A00, // 0089 MOVE R15 R13 + 0x5C401600, // 008A MOVE R16 R11 + 0x5C440400, // 008B MOVE R17 R2 + 0x5C480200, // 008C MOVE R18 R1 + 0x5C4C1C00, // 008D MOVE R19 R14 + 0x7C3C0800, // 008E CALL R15 4 + 0x5C1C1E00, // 008F MOVE R7 R15 + 0x8C3C1116, // 0090 GETMET R15 R8 K22 + 0x5C440A00, // 0091 MOVE R17 R5 + 0x5C480E00, // 0092 MOVE R18 R7 + 0x7C3C0600, // 0093 CALL R15 3 + 0x603C0018, // 0094 GETGBL R15 G24 + 0x58400017, // 0095 LDCONST R16 K23 + 0x8C441103, // 0096 GETMET R17 R8 K3 + 0x7C440200, // 0097 CALL R17 1 + 0x5C480A00, // 0098 MOVE R18 R5 + 0x7C3C0600, // 0099 CALL R15 3 + 0x900C1E07, // 009A SETMBR R3 R15 R7 + 0x4C2C0000, // 009B LDNIL R11 + 0x202C140B, // 009C NE R11 R10 R11 + 0x782E0018, // 009D JMPF R11 #00B7 + 0xA802000B, // 009E EXBLK 0 #00AB + 0x5C2C1400, // 009F MOVE R11 R10 + 0x7C2C0000, // 00A0 CALL R11 0 + 0x60300004, // 00A1 GETGBL R12 G4 + 0x5C341600, // 00A2 MOVE R13 R11 + 0x7C300200, // 00A3 CALL R12 1 + 0x1C301918, // 00A4 EQ R12 R12 K24 + 0x78320002, // 00A5 JMPF R12 #00A9 + 0x5C301600, // 00A6 MOVE R12 R11 + 0x5C340E00, // 00A7 MOVE R13 R7 + 0x7C300200, // 00A8 CALL R12 1 + 0xA8040001, // 00A9 EXBLK 1 1 + 0x7002000B, // 00AA JMP #00B7 + 0xAC2C0002, // 00AB CATCH R11 0 2 + 0x70020008, // 00AC JMP #00B6 + 0x60340001, // 00AD GETGBL R13 G1 + 0x60380018, // 00AE GETGBL R14 G24 + 0x583C0019, // 00AF LDCONST R15 K25 + 0x5C401200, // 00B0 MOVE R16 R9 + 0x5C441600, // 00B1 MOVE R17 R11 + 0x5C481800, // 00B2 MOVE R18 R12 + 0x7C380800, // 00B3 CALL R14 4 + 0x7C340200, // 00B4 CALL R13 1 + 0x70020000, // 00B5 JMP #00B7 + 0xB0080000, // 00B6 RAISE 2 R0 R0 + 0x4C2C0000, // 00B7 LDNIL R11 + 0x1C2C0A0B, // 00B8 EQ R11 R5 R11 + 0x782E0000, // 00B9 JMPF R11 #00BB + 0x80001600, // 00BA RET 0 + 0x1C2C0B1A, // 00BB EQ R11 R5 K26 + 0x782E0005, // 00BC JMPF R11 #00C3 + 0x202C0D07, // 00BD NE R11 R6 K7 + 0x782E0003, // 00BE JMPF R11 #00C3 + 0x602C0001, // 00BF GETGBL R11 G1 + 0x5830001B, // 00C0 LDCONST R12 K27 + 0x7C2C0200, // 00C1 CALL R11 1 + 0x80001600, // 00C2 RET 0 + 0x1C2C0B1A, // 00C3 EQ R11 R5 K26 + 0x782E0005, // 00C4 JMPF R11 #00CB + 0x8C2C0105, // 00C5 GETMET R11 R0 K5 + 0x7C2C0200, // 00C6 CALL R11 1 + 0x8C2C170D, // 00C7 GETMET R11 R11 K13 + 0x5834001A, // 00C8 LDCONST R13 K26 + 0x7C2C0400, // 00C9 CALL R11 2 + 0x5C1C1600, // 00CA MOVE R7 R11 + 0x602C0010, // 00CB GETGBL R11 G16 + 0x8C30031C, // 00CC GETMET R12 R1 K28 + 0x7C300200, // 00CD CALL R12 1 + 0x7C2C0200, // 00CE CALL R11 1 + 0xA8020004, // 00CF EXBLK 0 #00D5 + 0x5C301600, // 00D0 MOVE R12 R11 + 0x7C300000, // 00D1 CALL R12 0 + 0x9434020C, // 00D2 GETIDX R13 R1 R12 + 0x901C180D, // 00D3 SETMBR R7 R12 R13 + 0x7001FFFA, // 00D4 JMP #00D0 + 0x582C001D, // 00D5 LDCONST R11 K29 + 0xAC2C0200, // 00D6 CATCH R11 1 0 + 0xB0080000, // 00D7 RAISE 2 R0 R0 + 0x80000000, // 00D8 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: do_action +********************************************************************/ +be_local_closure(HASPmota_do_action, /* name */ + be_nested_proto( + 6, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(lv), + /* K1 */ be_nested_str_weak(EVENT_CLICKED), + /* K2 */ be_nested_str_weak(page_show), + /* K3 */ be_nested_str_weak(_action), + }), + be_str_weak(do_action), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0xB80E0000, // 0000 GETNGBL R3 K0 + 0x880C0701, // 0001 GETMBR R3 R3 K1 + 0x200C0403, // 0002 NE R3 R2 R3 + 0x780E0000, // 0003 JMPF R3 #0005 + 0x80000600, // 0004 RET 0 + 0x8C0C0102, // 0005 GETMET R3 R0 K2 + 0x88140303, // 0006 GETMBR R5 R1 K3 + 0x7C0C0400, // 0007 CALL R3 2 + 0x80000000, // 0008 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: pages_list_sorted ********************************************************************/ @@ -7178,11 +7941,99 @@ be_local_closure(HASPmota_pages_list_sorted, /* name */ /******************************************************************** -** Solidified function: parse +** Solidified function: get_page_cur ********************************************************************/ -be_local_closure(HASPmota_parse, /* name */ +be_local_closure(HASPmota_get_page_cur, /* name */ be_nested_proto( - 9, /* nstack */ + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(lvh_pages), + /* K1 */ be_nested_str_weak(lvh_page_cur_idx), + }), + be_str_weak(get_page_cur), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x88080101, // 0001 GETMBR R2 R0 K1 + 0x94040202, // 0002 GETIDX R1 R1 R2 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: sort +********************************************************************/ +be_local_closure(HASPmota_sort, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 4, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_const_class(be_class_HASPmota), + /* K1 */ be_const_int(1), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(sort), + &be_const_str_solidified, + ( &(const binstruction[30]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0x60080010, // 0001 GETGBL R2 G16 + 0x600C000C, // 0002 GETGBL R3 G12 + 0x5C100000, // 0003 MOVE R4 R0 + 0x7C0C0200, // 0004 CALL R3 1 + 0x040C0701, // 0005 SUB R3 R3 K1 + 0x400E0203, // 0006 CONNECT R3 K1 R3 + 0x7C080200, // 0007 CALL R2 1 + 0xA8020010, // 0008 EXBLK 0 #001A + 0x5C0C0400, // 0009 MOVE R3 R2 + 0x7C0C0000, // 000A CALL R3 0 + 0x94100003, // 000B GETIDX R4 R0 R3 + 0x5C140600, // 000C MOVE R5 R3 + 0x24180B02, // 000D GT R6 R5 K2 + 0x781A0008, // 000E JMPF R6 #0018 + 0x04180B01, // 000F SUB R6 R5 K1 + 0x94180006, // 0010 GETIDX R6 R0 R6 + 0x24180C04, // 0011 GT R6 R6 R4 + 0x781A0004, // 0012 JMPF R6 #0018 + 0x04180B01, // 0013 SUB R6 R5 K1 + 0x94180006, // 0014 GETIDX R6 R0 R6 + 0x98000A06, // 0015 SETIDX R0 R5 R6 + 0x04140B01, // 0016 SUB R5 R5 K1 + 0x7001FFF4, // 0017 JMP #000D + 0x98000A04, // 0018 SETIDX R0 R5 R4 + 0x7001FFEE, // 0019 JMP #0009 + 0x58080003, // 001A LDCONST R2 K3 + 0xAC080200, // 001B CATCH R2 1 0 + 0xB0080000, // 001C RAISE 2 R0 R0 + 0x80040000, // 001D RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _load +********************************************************************/ +be_local_closure(HASPmota__load, /* name */ + be_nested_proto( + 17, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -7190,41 +8041,266 @@ be_local_closure(HASPmota_parse, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(json), - /* K1 */ be_nested_str_weak(load), - /* K2 */ be_nested_str_weak(instance), - /* K3 */ be_nested_str_weak(parse_page), - /* K4 */ be_nested_str_weak(parse_obj), + ( &(const bvalue[26]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(json), + /* K2 */ be_nested_str_weak(lvh_page_cur_idx), + /* K3 */ be_const_int(1), + /* K4 */ be_nested_str_weak(lvh_page), /* K5 */ be_nested_str_weak(lvh_pages), - /* K6 */ be_nested_str_weak(lvh_page_cur_idx), - /* K7 */ be_nested_str_weak(value_error), - /* K8 */ be_nested_str_weak(unable_X20to_X20parse_X20JSON_X20line), + /* K6 */ be_nested_str_weak(r), + /* K7 */ be_nested_str_weak(read), + /* K8 */ be_nested_str_weak(close), + /* K9 */ be_nested_str_weak(split), + /* K10 */ be_nested_str_weak(_X0A), + /* K11 */ be_const_int(0), + /* K12 */ be_nested_str_weak(load), + /* K13 */ be_nested_str_weak(instance), + /* K14 */ be_nested_str_weak(tasmota), + /* K15 */ be_nested_str_weak(loglevel), + /* K16 */ be_nested_str_weak(log), + /* K17 */ be_nested_str_weak(HSP_X3A_X20parsing_X20line_X20_X27_X25s_X27_X20tasmota_X2Eloglevel_X284_X29_X3D_X25s), + /* K18 */ be_nested_str_weak(parse_page), + /* K19 */ be_nested_str_weak(parse_obj), + /* K20 */ be_nested_str_weak(tr), + /* K21 */ be_nested_str_weak(_X20_X09), + /* K22 */ be_nested_str_weak(), + /* K23 */ be_nested_str_weak(HSP_X3A_X20invalid_X20JSON_X20line_X20_X27_X25s_X27), + /* K24 */ be_const_int(2), + /* K25 */ be_nested_str_weak(remove), }), - be_str_weak(parse), + be_str_weak(_load), &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ + ( &(const binstruction[89]) { /* code */ 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x60100004, // 0004 GETGBL R4 G4 - 0x5C140600, // 0005 MOVE R5 R3 - 0x7C100200, // 0006 CALL R4 1 - 0x1C100902, // 0007 EQ R4 R4 K2 - 0x78120009, // 0008 JMPF R4 #0013 - 0x8C100103, // 0009 GETMET R4 R0 K3 - 0x5C180600, // 000A MOVE R6 R3 - 0x7C100400, // 000B CALL R4 2 - 0x8C100104, // 000C GETMET R4 R0 K4 - 0x5C180600, // 000D MOVE R6 R3 - 0x881C0105, // 000E GETMBR R7 R0 K5 - 0x88200106, // 000F GETMBR R8 R0 K6 - 0x941C0E08, // 0010 GETIDX R7 R7 R8 - 0x7C100600, // 0011 CALL R4 3 - 0x70020000, // 0012 JMP #0014 - 0xB0060F08, // 0013 RAISE 1 K7 K8 - 0x80000000, // 0014 RET 0 + 0xA40E0200, // 0001 IMPORT R3 K1 + 0x90020503, // 0002 SETMBR R0 K2 K3 + 0x88100104, // 0003 GETMBR R4 R0 K4 + 0x88140105, // 0004 GETMBR R5 R0 K5 + 0x5C180800, // 0005 MOVE R6 R4 + 0x581C0003, // 0006 LDCONST R7 K3 + 0x5C200000, // 0007 MOVE R8 R0 + 0x7C180400, // 0008 CALL R6 2 + 0x98160606, // 0009 SETIDX R5 K3 R6 + 0x60140011, // 000A GETGBL R5 G17 + 0x5C180200, // 000B MOVE R6 R1 + 0x581C0006, // 000C LDCONST R7 K6 + 0x7C140400, // 000D CALL R5 2 + 0x8C180B07, // 000E GETMET R6 R5 K7 + 0x7C180200, // 000F CALL R6 1 + 0x8C1C0B08, // 0010 GETMET R7 R5 K8 + 0x7C1C0200, // 0011 CALL R7 1 + 0x8C1C0509, // 0012 GETMET R7 R2 K9 + 0x5C240C00, // 0013 MOVE R9 R6 + 0x5828000A, // 0014 LDCONST R10 K10 + 0x7C1C0600, // 0015 CALL R7 3 + 0x4C140000, // 0016 LDNIL R5 + 0x4C180000, // 0017 LDNIL R6 + 0x6020000C, // 0018 GETGBL R8 G12 + 0x5C240E00, // 0019 MOVE R9 R7 + 0x7C200200, // 001A CALL R8 1 + 0x2420110B, // 001B GT R8 R8 K11 + 0x78220038, // 001C JMPF R8 #0056 + 0x8C20070C, // 001D GETMET R8 R3 K12 + 0x94280F0B, // 001E GETIDX R10 R7 K11 + 0x7C200400, // 001F CALL R8 2 + 0x60240004, // 0020 GETGBL R9 G4 + 0x5C281000, // 0021 MOVE R10 R8 + 0x7C240200, // 0022 CALL R9 1 + 0x1C24130D, // 0023 EQ R9 R9 K13 + 0x7826001A, // 0024 JMPF R9 #0040 + 0xB8261C00, // 0025 GETNGBL R9 K14 + 0x8C24130F, // 0026 GETMET R9 R9 K15 + 0x542E0003, // 0027 LDINT R11 4 + 0x7C240400, // 0028 CALL R9 2 + 0x7826000B, // 0029 JMPF R9 #0036 + 0xB8261C00, // 002A GETNGBL R9 K14 + 0x8C241310, // 002B GETMET R9 R9 K16 + 0x602C0018, // 002C GETGBL R11 G24 + 0x58300011, // 002D LDCONST R12 K17 + 0x94340F0B, // 002E GETIDX R13 R7 K11 + 0xB83A1C00, // 002F GETNGBL R14 K14 + 0x8C381D0F, // 0030 GETMET R14 R14 K15 + 0x54420003, // 0031 LDINT R16 4 + 0x7C380400, // 0032 CALL R14 2 + 0x7C2C0600, // 0033 CALL R11 3 + 0x54320003, // 0034 LDINT R12 4 + 0x7C240600, // 0035 CALL R9 3 + 0x8C240112, // 0036 GETMET R9 R0 K18 + 0x5C2C1000, // 0037 MOVE R11 R8 + 0x7C240400, // 0038 CALL R9 2 + 0x8C240113, // 0039 GETMET R9 R0 K19 + 0x5C2C1000, // 003A MOVE R11 R8 + 0x88300105, // 003B GETMBR R12 R0 K5 + 0x88340102, // 003C GETMBR R13 R0 K2 + 0x9430180D, // 003D GETIDX R12 R12 R13 + 0x7C240600, // 003E CALL R9 3 + 0x70020010, // 003F JMP #0051 + 0x6024000C, // 0040 GETGBL R9 G12 + 0x8C280514, // 0041 GETMET R10 R2 K20 + 0x94300F0B, // 0042 GETIDX R12 R7 K11 + 0x58340015, // 0043 LDCONST R13 K21 + 0x58380016, // 0044 LDCONST R14 K22 + 0x7C280800, // 0045 CALL R10 4 + 0x7C240200, // 0046 CALL R9 1 + 0x2424130B, // 0047 GT R9 R9 K11 + 0x78260007, // 0048 JMPF R9 #0051 + 0xB8261C00, // 0049 GETNGBL R9 K14 + 0x8C241310, // 004A GETMET R9 R9 K16 + 0x602C0018, // 004B GETGBL R11 G24 + 0x58300017, // 004C LDCONST R12 K23 + 0x94340F0B, // 004D GETIDX R13 R7 K11 + 0x7C2C0400, // 004E CALL R11 2 + 0x58300018, // 004F LDCONST R12 K24 + 0x7C240600, // 0050 CALL R9 3 + 0x4C200000, // 0051 LDNIL R8 + 0x8C240F19, // 0052 GETMET R9 R7 K25 + 0x582C000B, // 0053 LDCONST R11 K11 + 0x7C240400, // 0054 CALL R9 2 + 0x7001FFC1, // 0055 JMP #0018 + 0x4C1C0000, // 0056 LDNIL R7 + 0x90020503, // 0057 SETMBR R0 K2 K3 + 0x80000000, // 0058 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(HASPmota_init, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(fix_lv_version), + /* K1 */ be_nested_str_weak(re), + /* K2 */ be_nested_str_weak(re_page_target), + /* K3 */ be_nested_str_weak(compile), + /* K4 */ be_nested_str_weak(p_X5Cd_X2B), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0xA4060200, // 0002 IMPORT R1 K1 + 0x8C080303, // 0003 GETMET R2 R1 K3 + 0x58100004, // 0004 LDCONST R4 K4 + 0x7C080400, // 0005 CALL R2 2 + 0x90020402, // 0006 SETMBR R0 K2 R2 + 0x80000000, // 0007 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: page_show +********************************************************************/ +be_local_closure(HASPmota_page_show, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(lvh_pages), + /* K1 */ be_nested_str_weak(lvh_page_cur_idx), + /* K2 */ be_nested_str_weak(pages_list_sorted), + /* K3 */ be_const_int(1), + /* K4 */ be_nested_str_weak(prev), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(back), + /* K7 */ be_nested_str_weak(re_page_target), + /* K8 */ be_nested_str_weak(match), + /* K9 */ be_const_int(0), + /* K10 */ be_nested_str_weak(show), + }), + be_str_weak(page_show), + &be_const_str_solidified, + ( &(const binstruction[68]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x880C0100, // 0001 GETMBR R3 R0 K0 + 0x88100101, // 0002 GETMBR R4 R0 K1 + 0x940C0604, // 0003 GETIDX R3 R3 R4 + 0x8C100102, // 0004 GETMET R4 R0 K2 + 0x88180101, // 0005 GETMBR R6 R0 K1 + 0x7C100400, // 0006 CALL R4 2 + 0x6014000C, // 0007 GETGBL R5 G12 + 0x5C180800, // 0008 MOVE R6 R4 + 0x7C140200, // 0009 CALL R5 1 + 0x18140B03, // 000A LE R5 R5 K3 + 0x78160000, // 000B JMPF R5 #000D + 0x80000A00, // 000C RET 0 + 0x1C140304, // 000D EQ R5 R1 K4 + 0x78160009, // 000E JMPF R5 #0019 + 0x60140009, // 000F GETGBL R5 G9 + 0x88180704, // 0010 GETMBR R6 R3 K4 + 0x7C140200, // 0011 CALL R5 1 + 0x5C080A00, // 0012 MOVE R2 R5 + 0x4C140000, // 0013 LDNIL R5 + 0x1C140405, // 0014 EQ R5 R2 R5 + 0x78160001, // 0015 JMPF R5 #0018 + 0x5415FFFE, // 0016 LDINT R5 -1 + 0x94080805, // 0017 GETIDX R2 R4 R5 + 0x70020020, // 0018 JMP #003A + 0x1C140305, // 0019 EQ R5 R1 K5 + 0x78160008, // 001A JMPF R5 #0024 + 0x60140009, // 001B GETGBL R5 G9 + 0x88180705, // 001C GETMBR R6 R3 K5 + 0x7C140200, // 001D CALL R5 1 + 0x5C080A00, // 001E MOVE R2 R5 + 0x4C140000, // 001F LDNIL R5 + 0x1C140405, // 0020 EQ R5 R2 R5 + 0x78160000, // 0021 JMPF R5 #0023 + 0x94080903, // 0022 GETIDX R2 R4 K3 + 0x70020015, // 0023 JMP #003A + 0x1C140306, // 0024 EQ R5 R1 K6 + 0x78160008, // 0025 JMPF R5 #002F + 0x60140009, // 0026 GETGBL R5 G9 + 0x88180706, // 0027 GETMBR R6 R3 K6 + 0x7C140200, // 0028 CALL R5 1 + 0x5C080A00, // 0029 MOVE R2 R5 + 0x4C140000, // 002A LDNIL R5 + 0x1C140405, // 002B EQ R5 R2 R5 + 0x78160000, // 002C JMPF R5 #002E + 0x58080003, // 002D LDCONST R2 K3 + 0x7002000A, // 002E JMP #003A + 0x88140107, // 002F GETMBR R5 R0 K7 + 0x8C140B08, // 0030 GETMET R5 R5 K8 + 0x5C1C0200, // 0031 MOVE R7 R1 + 0x7C140400, // 0032 CALL R5 2 + 0x78160005, // 0033 JMPF R5 #003A + 0x60140009, // 0034 GETGBL R5 G9 + 0x5419FFFE, // 0035 LDINT R6 -1 + 0x401A0606, // 0036 CONNECT R6 K3 R6 + 0x94180206, // 0037 GETIDX R6 R1 R6 + 0x7C140200, // 0038 CALL R5 1 + 0x5C080A00, // 0039 MOVE R2 R5 + 0x4C140000, // 003A LDNIL R5 + 0x20140405, // 003B NE R5 R2 R5 + 0x78160005, // 003C JMPF R5 #0043 + 0x24140509, // 003D GT R5 R2 K9 + 0x78160003, // 003E JMPF R5 #0043 + 0x88140100, // 003F GETMBR R5 R0 K0 + 0x94140A02, // 0040 GETIDX R5 R5 R2 + 0x8C140B0A, // 0041 GETMET R5 R5 K10 + 0x7C140200, // 0042 CALL R5 1 + 0x80000000, // 0043 RET 0 }) ) ); @@ -7393,173 +8469,6 @@ be_local_closure(HASPmota_start, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: page_show -********************************************************************/ -be_local_closure(HASPmota_page_show, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(lvh_pages), - /* K1 */ be_nested_str_weak(lvh_page_cur_idx), - /* K2 */ be_nested_str_weak(pages_list_sorted), - /* K3 */ be_const_int(1), - /* K4 */ be_nested_str_weak(prev), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(back), - /* K7 */ be_nested_str_weak(re_page_target), - /* K8 */ be_nested_str_weak(match), - /* K9 */ be_const_int(0), - /* K10 */ be_nested_str_weak(show), - }), - be_str_weak(page_show), - &be_const_str_solidified, - ( &(const binstruction[68]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x880C0100, // 0001 GETMBR R3 R0 K0 - 0x88100101, // 0002 GETMBR R4 R0 K1 - 0x940C0604, // 0003 GETIDX R3 R3 R4 - 0x8C100102, // 0004 GETMET R4 R0 K2 - 0x88180101, // 0005 GETMBR R6 R0 K1 - 0x7C100400, // 0006 CALL R4 2 - 0x6014000C, // 0007 GETGBL R5 G12 - 0x5C180800, // 0008 MOVE R6 R4 - 0x7C140200, // 0009 CALL R5 1 - 0x18140B03, // 000A LE R5 R5 K3 - 0x78160000, // 000B JMPF R5 #000D - 0x80000A00, // 000C RET 0 - 0x1C140304, // 000D EQ R5 R1 K4 - 0x78160009, // 000E JMPF R5 #0019 - 0x60140009, // 000F GETGBL R5 G9 - 0x88180704, // 0010 GETMBR R6 R3 K4 - 0x7C140200, // 0011 CALL R5 1 - 0x5C080A00, // 0012 MOVE R2 R5 - 0x4C140000, // 0013 LDNIL R5 - 0x1C140405, // 0014 EQ R5 R2 R5 - 0x78160001, // 0015 JMPF R5 #0018 - 0x5415FFFE, // 0016 LDINT R5 -1 - 0x94080805, // 0017 GETIDX R2 R4 R5 - 0x70020020, // 0018 JMP #003A - 0x1C140305, // 0019 EQ R5 R1 K5 - 0x78160008, // 001A JMPF R5 #0024 - 0x60140009, // 001B GETGBL R5 G9 - 0x88180705, // 001C GETMBR R6 R3 K5 - 0x7C140200, // 001D CALL R5 1 - 0x5C080A00, // 001E MOVE R2 R5 - 0x4C140000, // 001F LDNIL R5 - 0x1C140405, // 0020 EQ R5 R2 R5 - 0x78160000, // 0021 JMPF R5 #0023 - 0x94080903, // 0022 GETIDX R2 R4 K3 - 0x70020015, // 0023 JMP #003A - 0x1C140306, // 0024 EQ R5 R1 K6 - 0x78160008, // 0025 JMPF R5 #002F - 0x60140009, // 0026 GETGBL R5 G9 - 0x88180706, // 0027 GETMBR R6 R3 K6 - 0x7C140200, // 0028 CALL R5 1 - 0x5C080A00, // 0029 MOVE R2 R5 - 0x4C140000, // 002A LDNIL R5 - 0x1C140405, // 002B EQ R5 R2 R5 - 0x78160000, // 002C JMPF R5 #002E - 0x58080003, // 002D LDCONST R2 K3 - 0x7002000A, // 002E JMP #003A - 0x88140107, // 002F GETMBR R5 R0 K7 - 0x8C140B08, // 0030 GETMET R5 R5 K8 - 0x5C1C0200, // 0031 MOVE R7 R1 - 0x7C140400, // 0032 CALL R5 2 - 0x78160005, // 0033 JMPF R5 #003A - 0x60140009, // 0034 GETGBL R5 G9 - 0x5419FFFE, // 0035 LDINT R6 -1 - 0x401A0606, // 0036 CONNECT R6 K3 R6 - 0x94180206, // 0037 GETIDX R6 R1 R6 - 0x7C140200, // 0038 CALL R5 1 - 0x5C080A00, // 0039 MOVE R2 R5 - 0x4C140000, // 003A LDNIL R5 - 0x20140405, // 003B NE R5 R2 R5 - 0x78160005, // 003C JMPF R5 #0043 - 0x24140509, // 003D GT R5 R2 K9 - 0x78160003, // 003E JMPF R5 #0043 - 0x88140100, // 003F GETMBR R5 R0 K0 - 0x94140A02, // 0040 GETIDX R5 R5 R2 - 0x8C140B0A, // 0041 GETMET R5 R5 K10 - 0x7C140200, // 0042 CALL R5 1 - 0x80000000, // 0043 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(HASPmota_init, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(re), - /* K1 */ be_nested_str_weak(re_page_target), - /* K2 */ be_nested_str_weak(compile), - /* K3 */ be_nested_str_weak(p_X5Cd_X2B), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080302, // 0001 GETMET R2 R1 K2 - 0x58100003, // 0002 LDCONST R4 K3 - 0x7C080400, // 0003 CALL R2 2 - 0x90020202, // 0004 SETMBR R0 K1 R2 - 0x80000000, // 0005 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_page_cur -********************************************************************/ -be_local_closure(HASPmota_get_page_cur, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(lvh_pages), - /* K1 */ be_nested_str_weak(lvh_page_cur_idx), - }), - be_str_weak(get_page_cur), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x88080101, // 0001 GETMBR R2 R0 K1 - 0x94040202, // 0002 GETIDX R1 R1 R2 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: deinit ********************************************************************/ @@ -7607,743 +8516,60 @@ be_local_closure(HASPmota_deinit, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: event_dispatch -********************************************************************/ -be_local_closure(HASPmota_event_dispatch, /* name */ - be_nested_proto( - 9, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(toptr), - /* K2 */ be_nested_str_weak(event), - /* K3 */ be_nested_str_weak(_change_buffer), - /* K4 */ be_nested_str_weak(lv), - /* K5 */ be_nested_str_weak(lv_event), - /* K6 */ be_nested_str_weak(user_data), - /* K7 */ be_const_int(0), - /* K8 */ be_nested_str_weak(fromptr), - /* K9 */ be_nested_str_weak(instance), - /* K10 */ be_nested_str_weak(event_cb), - }), - be_str_weak(event_dispatch), - &be_const_str_solidified, - ( &(const binstruction[35]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x88100102, // 0004 GETMBR R4 R0 K2 - 0x78120004, // 0005 JMPF R4 #000B - 0x88100102, // 0006 GETMBR R4 R0 K2 - 0x8C100903, // 0007 GETMET R4 R4 K3 - 0x5C180600, // 0008 MOVE R6 R3 - 0x7C100400, // 0009 CALL R4 2 - 0x70020004, // 000A JMP #0010 - 0xB8120800, // 000B GETNGBL R4 K4 - 0x8C100905, // 000C GETMET R4 R4 K5 - 0x5C180600, // 000D MOVE R6 R3 - 0x7C100400, // 000E CALL R4 2 - 0x90020404, // 000F SETMBR R0 K2 R4 - 0x88100102, // 0010 GETMBR R4 R0 K2 - 0x88100906, // 0011 GETMBR R4 R4 K6 - 0x60140009, // 0012 GETGBL R5 G9 - 0x5C180800, // 0013 MOVE R6 R4 - 0x7C140200, // 0014 CALL R5 1 - 0x20140B07, // 0015 NE R5 R5 K7 - 0x7816000A, // 0016 JMPF R5 #0022 - 0x8C140508, // 0017 GETMET R5 R2 K8 - 0x5C1C0800, // 0018 MOVE R7 R4 - 0x7C140400, // 0019 CALL R5 2 - 0x60180004, // 001A GETGBL R6 G4 - 0x5C1C0A00, // 001B MOVE R7 R5 - 0x7C180200, // 001C CALL R6 1 - 0x1C180D09, // 001D EQ R6 R6 K9 - 0x781A0002, // 001E JMPF R6 #0022 - 0x8C180B0A, // 001F GETMET R6 R5 K10 - 0x88200102, // 0020 GETMBR R8 R0 K2 - 0x7C180400, // 0021 CALL R6 2 - 0x80000000, // 0022 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: do_action -********************************************************************/ -be_local_closure(HASPmota_do_action, /* name */ - be_nested_proto( - 6, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(lv), - /* K1 */ be_nested_str_weak(EVENT_CLICKED), - /* K2 */ be_nested_str_weak(page_show), - /* K3 */ be_nested_str_weak(_action), - }), - be_str_weak(do_action), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xB80E0000, // 0000 GETNGBL R3 K0 - 0x880C0701, // 0001 GETMBR R3 R3 K1 - 0x200C0403, // 0002 NE R3 R2 R3 - 0x780E0000, // 0003 JMPF R3 #0005 - 0x80000600, // 0004 RET 0 - 0x8C0C0102, // 0005 GETMET R3 R0 K2 - 0x88140303, // 0006 GETMBR R5 R1 K3 - 0x7C0C0400, // 0007 CALL R3 2 - 0x80000000, // 0008 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: sort -********************************************************************/ -be_local_closure(HASPmota_sort, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 4, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_const_class(be_class_HASPmota), - /* K1 */ be_const_int(1), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(sort), - &be_const_str_solidified, - ( &(const binstruction[30]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0x60080010, // 0001 GETGBL R2 G16 - 0x600C000C, // 0002 GETGBL R3 G12 - 0x5C100000, // 0003 MOVE R4 R0 - 0x7C0C0200, // 0004 CALL R3 1 - 0x040C0701, // 0005 SUB R3 R3 K1 - 0x400E0203, // 0006 CONNECT R3 K1 R3 - 0x7C080200, // 0007 CALL R2 1 - 0xA8020010, // 0008 EXBLK 0 #001A - 0x5C0C0400, // 0009 MOVE R3 R2 - 0x7C0C0000, // 000A CALL R3 0 - 0x94100003, // 000B GETIDX R4 R0 R3 - 0x5C140600, // 000C MOVE R5 R3 - 0x24180B02, // 000D GT R6 R5 K2 - 0x781A0008, // 000E JMPF R6 #0018 - 0x04180B01, // 000F SUB R6 R5 K1 - 0x94180006, // 0010 GETIDX R6 R0 R6 - 0x24180C04, // 0011 GT R6 R6 R4 - 0x781A0004, // 0012 JMPF R6 #0018 - 0x04180B01, // 0013 SUB R6 R5 K1 - 0x94180006, // 0014 GETIDX R6 R0 R6 - 0x98000A06, // 0015 SETIDX R0 R5 R6 - 0x04140B01, // 0016 SUB R5 R5 K1 - 0x7001FFF4, // 0017 JMP #000D - 0x98000A04, // 0018 SETIDX R0 R5 R4 - 0x7001FFEE, // 0019 JMP #0009 - 0x58080003, // 001A LDCONST R2 K3 - 0xAC080200, // 001B CATCH R2 1 0 - 0xB0080000, // 001C RAISE 2 R0 R0 - 0x80040000, // 001D RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _load -********************************************************************/ -be_local_closure(HASPmota__load, /* name */ - be_nested_proto( - 14, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[17]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(json), - /* K2 */ be_nested_str_weak(lvh_page_cur_idx), - /* K3 */ be_const_int(1), - /* K4 */ be_nested_str_weak(lvh_page), - /* K5 */ be_nested_str_weak(lvh_pages), - /* K6 */ be_nested_str_weak(r), - /* K7 */ be_nested_str_weak(read), - /* K8 */ be_nested_str_weak(close), - /* K9 */ be_nested_str_weak(split), - /* K10 */ be_nested_str_weak(_X0A), - /* K11 */ be_const_int(0), - /* K12 */ be_nested_str_weak(load), - /* K13 */ be_nested_str_weak(instance), - /* K14 */ be_nested_str_weak(parse_page), - /* K15 */ be_nested_str_weak(parse_obj), - /* K16 */ be_nested_str_weak(remove), - }), - be_str_weak(_load), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xA40E0200, // 0001 IMPORT R3 K1 - 0x90020503, // 0002 SETMBR R0 K2 K3 - 0x88100104, // 0003 GETMBR R4 R0 K4 - 0x88140105, // 0004 GETMBR R5 R0 K5 - 0x5C180800, // 0005 MOVE R6 R4 - 0x581C0003, // 0006 LDCONST R7 K3 - 0x5C200000, // 0007 MOVE R8 R0 - 0x7C180400, // 0008 CALL R6 2 - 0x98160606, // 0009 SETIDX R5 K3 R6 - 0x60140011, // 000A GETGBL R5 G17 - 0x5C180200, // 000B MOVE R6 R1 - 0x581C0006, // 000C LDCONST R7 K6 - 0x7C140400, // 000D CALL R5 2 - 0x8C180B07, // 000E GETMET R6 R5 K7 - 0x7C180200, // 000F CALL R6 1 - 0x8C1C0B08, // 0010 GETMET R7 R5 K8 - 0x7C1C0200, // 0011 CALL R7 1 - 0x8C1C0509, // 0012 GETMET R7 R2 K9 - 0x5C240C00, // 0013 MOVE R9 R6 - 0x5828000A, // 0014 LDCONST R10 K10 - 0x7C1C0600, // 0015 CALL R7 3 - 0x4C140000, // 0016 LDNIL R5 - 0x4C180000, // 0017 LDNIL R6 - 0x6020000C, // 0018 GETGBL R8 G12 - 0x5C240E00, // 0019 MOVE R9 R7 - 0x7C200200, // 001A CALL R8 1 - 0x2420110B, // 001B GT R8 R8 K11 - 0x78220015, // 001C JMPF R8 #0033 - 0x8C20070C, // 001D GETMET R8 R3 K12 - 0x94280F0B, // 001E GETIDX R10 R7 K11 - 0x7C200400, // 001F CALL R8 2 - 0x60240004, // 0020 GETGBL R9 G4 - 0x5C281000, // 0021 MOVE R10 R8 - 0x7C240200, // 0022 CALL R9 1 - 0x1C24130D, // 0023 EQ R9 R9 K13 - 0x78260008, // 0024 JMPF R9 #002E - 0x8C24010E, // 0025 GETMET R9 R0 K14 - 0x5C2C1000, // 0026 MOVE R11 R8 - 0x7C240400, // 0027 CALL R9 2 - 0x8C24010F, // 0028 GETMET R9 R0 K15 - 0x5C2C1000, // 0029 MOVE R11 R8 - 0x88300105, // 002A GETMBR R12 R0 K5 - 0x88340102, // 002B GETMBR R13 R0 K2 - 0x9430180D, // 002C GETIDX R12 R12 R13 - 0x7C240600, // 002D CALL R9 3 - 0x4C200000, // 002E LDNIL R8 - 0x8C240F10, // 002F GETMET R9 R7 K16 - 0x582C000B, // 0030 LDCONST R11 K11 - 0x7C240400, // 0031 CALL R9 2 - 0x7001FFE4, // 0032 JMP #0018 - 0x4C1C0000, // 0033 LDNIL R7 - 0x90020503, // 0034 SETMBR R0 K2 K3 - 0x80000000, // 0035 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: parse_page -********************************************************************/ -be_local_closure(HASPmota_parse_page, /* name */ - be_nested_proto( - 9, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(has), - /* K1 */ be_nested_str_weak(page), - /* K2 */ be_nested_str_weak(int), - /* K3 */ be_nested_str_weak(lvh_page_cur_idx), - /* K4 */ be_nested_str_weak(lvh_pages), - /* K5 */ be_nested_str_weak(contains), - /* K6 */ be_nested_str_weak(lvh_page), - /* K7 */ be_nested_str_weak(find), - /* K8 */ be_nested_str_weak(id), - /* K9 */ be_const_int(0), - /* K10 */ be_nested_str_weak(get_page_cur), - /* K11 */ be_nested_str_weak(prev), - /* K12 */ be_nested_str_weak(next), - /* K13 */ be_nested_str_weak(back), - }), - be_str_weak(parse_page), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0x8C080300, // 0000 GETMET R2 R1 K0 - 0x58100001, // 0001 LDCONST R4 K1 - 0x7C080400, // 0002 CALL R2 2 - 0x780A0030, // 0003 JMPF R2 #0035 - 0x60080004, // 0004 GETGBL R2 G4 - 0x940C0301, // 0005 GETIDX R3 R1 K1 - 0x7C080200, // 0006 CALL R2 1 - 0x1C080502, // 0007 EQ R2 R2 K2 - 0x780A002B, // 0008 JMPF R2 #0035 - 0x60080009, // 0009 GETGBL R2 G9 - 0x940C0301, // 000A GETIDX R3 R1 K1 - 0x7C080200, // 000B CALL R2 1 - 0x90020602, // 000C SETMBR R0 K3 R2 - 0x880C0104, // 000D GETMBR R3 R0 K4 - 0x8C0C0705, // 000E GETMET R3 R3 K5 - 0x5C140400, // 000F MOVE R5 R2 - 0x7C0C0400, // 0010 CALL R3 2 - 0x740E0006, // 0011 JMPT R3 #0019 - 0x880C0106, // 0012 GETMBR R3 R0 K6 - 0x88100104, // 0013 GETMBR R4 R0 K4 - 0x5C140600, // 0014 MOVE R5 R3 - 0x5C180400, // 0015 MOVE R6 R2 - 0x5C1C0000, // 0016 MOVE R7 R0 - 0x7C140400, // 0017 CALL R5 2 - 0x98100405, // 0018 SETIDX R4 R2 R5 - 0x8C0C0307, // 0019 GETMET R3 R1 K7 - 0x58140008, // 001A LDCONST R5 K8 - 0x7C0C0400, // 001B CALL R3 2 - 0x1C0C0709, // 001C EQ R3 R3 K9 - 0x780E0016, // 001D JMPF R3 #0035 - 0x8C0C010A, // 001E GETMET R3 R0 K10 - 0x7C0C0200, // 001F CALL R3 1 - 0x60100009, // 0020 GETGBL R4 G9 - 0x8C140307, // 0021 GETMET R5 R1 K7 - 0x581C000B, // 0022 LDCONST R7 K11 - 0x4C200000, // 0023 LDNIL R8 - 0x7C140600, // 0024 CALL R5 3 - 0x7C100200, // 0025 CALL R4 1 - 0x900E1604, // 0026 SETMBR R3 K11 R4 - 0x60100009, // 0027 GETGBL R4 G9 - 0x8C140307, // 0028 GETMET R5 R1 K7 - 0x581C000C, // 0029 LDCONST R7 K12 - 0x4C200000, // 002A LDNIL R8 - 0x7C140600, // 002B CALL R5 3 - 0x7C100200, // 002C CALL R4 1 - 0x900E1804, // 002D SETMBR R3 K12 R4 - 0x60100009, // 002E GETGBL R4 G9 - 0x8C140307, // 002F GETMET R5 R1 K7 - 0x581C000D, // 0030 LDCONST R7 K13 - 0x4C200000, // 0031 LDNIL R8 - 0x7C140600, // 0032 CALL R5 3 - 0x7C100200, // 0033 CALL R4 1 - 0x900E1A04, // 0034 SETMBR R3 K13 R4 - 0x80000000, // 0035 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: page_dir_to -********************************************************************/ -be_local_closure(HASPmota_page_dir_to, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(pages_list_sorted), - /* K1 */ be_const_int(0), - /* K2 */ be_const_int(1), - /* K3 */ be_const_int(2), - /* K4 */ be_nested_str_weak(find), - }), - be_str_weak(page_dir_to), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x58100001, // 0001 LDCONST R4 K1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x1C0C0403, // 0004 EQ R3 R2 R3 - 0x780E0000, // 0005 JMPF R3 #0007 - 0x80060200, // 0006 RET 1 K1 - 0x600C000C, // 0007 GETGBL R3 G12 - 0x5C100400, // 0008 MOVE R4 R2 - 0x7C0C0200, // 0009 CALL R3 1 - 0x18100702, // 000A LE R4 R3 K2 - 0x78120000, // 000B JMPF R4 #000D - 0x80060200, // 000C RET 1 K1 - 0x1C100703, // 000D EQ R4 R3 K3 - 0x78120000, // 000E JMPF R4 #0010 - 0x80060400, // 000F RET 1 K2 - 0x8C100504, // 0010 GETMET R4 R2 K4 - 0x5C180200, // 0011 MOVE R6 R1 - 0x7C100400, // 0012 CALL R4 2 - 0x4C140000, // 0013 LDNIL R5 - 0x1C140805, // 0014 EQ R5 R4 R5 - 0x78160000, // 0015 JMPF R5 #0017 - 0x80060200, // 0016 RET 1 K1 - 0x00140702, // 0017 ADD R5 R3 K2 - 0x0C140B03, // 0018 DIV R5 R5 K3 - 0x18140805, // 0019 LE R5 R4 R5 - 0x78160001, // 001A JMPF R5 #001D - 0x80060400, // 001B RET 1 K2 - 0x70020001, // 001C JMP #001F - 0x5415FFFE, // 001D LDINT R5 -1 - 0x80040A00, // 001E RET 1 R5 - 0x80000000, // 001F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: parse_obj -********************************************************************/ -be_local_closure(HASPmota_parse_obj, /* name */ - be_nested_proto( - 20, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[30]) { /* constants */ - /* K0 */ be_nested_str_weak(global), - /* K1 */ be_nested_str_weak(introspect), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(id), - /* K4 */ be_nested_str_weak(obj), - /* K5 */ be_nested_str_weak(get_page_cur), - /* K6 */ be_nested_str_weak(berry_run), - /* K7 */ be_nested_str_weak(nil), - /* K8 */ be_nested_str_weak(HSP_X3A_X20unable_X20to_X20compile_X20berry_X20code_X20_X22_X25s_X22_X20_X2D_X20_X27_X25s_X27_X20_X2D_X20_X25s), - /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(HSP_X3A_X20invalid_X20_X27id_X27_X3A_X20), - /* K11 */ be_nested_str_weak(_X20for_X20_X27obj_X27_X3A), - /* K12 */ be_nested_str_weak(parentid), - /* K13 */ be_nested_str_weak(get_obj), - /* K14 */ be_nested_str_weak(_lv_obj), - /* K15 */ be_nested_str_weak(get_scr), - /* K16 */ be_nested_str_weak(get), - /* K17 */ be_nested_str_weak(lvh_), - /* K18 */ be_nested_str_weak(class), - /* K19 */ be_nested_str_weak(lvh_obj), - /* K20 */ be_nested_str_weak(module), - /* K21 */ be_nested_str_weak(HSP_X3A_X20Cannot_X20find_X20object_X20of_X20type_X20), - /* K22 */ be_nested_str_weak(set_obj), - /* K23 */ be_nested_str_weak(p_X25ib_X25i), - /* K24 */ be_nested_str_weak(function), - /* K25 */ be_nested_str_weak(HSP_X3A_X20unable_X20to_X20run_X20berry_X20code_X20_X22_X25s_X22_X20_X2D_X20_X27_X25s_X27_X20_X2D_X20_X25s), - /* K26 */ be_const_int(0), - /* K27 */ be_nested_str_weak(HSP_X3A_X20cannot_X20specify_X20_X27obj_X27_X20for_X20_X27id_X27_X3A0), - /* K28 */ be_nested_str_weak(keys), - /* K29 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(parse_obj), - &be_const_str_solidified, - ( &(const binstruction[217]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0xA4120200, // 0001 IMPORT R4 K1 - 0x60140009, // 0002 GETGBL R5 G9 - 0x8C180302, // 0003 GETMET R6 R1 K2 - 0x58200003, // 0004 LDCONST R8 K3 - 0x7C180400, // 0005 CALL R6 2 - 0x7C140200, // 0006 CALL R5 1 - 0x60180008, // 0007 GETGBL R6 G8 - 0x8C1C0302, // 0008 GETMET R7 R1 K2 - 0x58240004, // 0009 LDCONST R9 K4 - 0x7C1C0400, // 000A CALL R7 2 - 0x7C180200, // 000B CALL R6 1 - 0x4C1C0000, // 000C LDNIL R7 - 0x8C200105, // 000D GETMET R8 R0 K5 - 0x7C200200, // 000E CALL R8 1 - 0x60240008, // 000F GETGBL R9 G8 - 0x8C280302, // 0010 GETMET R10 R1 K2 - 0x58300006, // 0011 LDCONST R12 K6 - 0x7C280400, // 0012 CALL R10 2 - 0x7C240200, // 0013 CALL R9 1 - 0x4C280000, // 0014 LDNIL R10 - 0x202C1307, // 0015 NE R11 R9 K7 - 0x782E0012, // 0016 JMPF R11 #002A - 0xA8020005, // 0017 EXBLK 0 #001E - 0x602C000D, // 0018 GETGBL R11 G13 - 0x5C301200, // 0019 MOVE R12 R9 - 0x7C2C0200, // 001A CALL R11 1 - 0x5C281600, // 001B MOVE R10 R11 - 0xA8040001, // 001C EXBLK 1 1 - 0x7002000B, // 001D JMP #002A - 0xAC2C0002, // 001E CATCH R11 0 2 - 0x70020008, // 001F JMP #0029 - 0x60340001, // 0020 GETGBL R13 G1 - 0x60380018, // 0021 GETGBL R14 G24 - 0x583C0008, // 0022 LDCONST R15 K8 - 0x5C401200, // 0023 MOVE R16 R9 - 0x5C441600, // 0024 MOVE R17 R11 - 0x5C481800, // 0025 MOVE R18 R12 - 0x7C380800, // 0026 CALL R14 4 - 0x7C340200, // 0027 CALL R13 1 - 0x70020000, // 0028 JMP #002A - 0xB0080000, // 0029 RAISE 2 R0 R0 - 0x4C2C0000, // 002A LDNIL R11 - 0x1C2C0A0B, // 002B EQ R11 R5 R11 - 0x782E0000, // 002C JMPF R11 #002E - 0x80001600, // 002D RET 0 - 0x202C0D07, // 002E NE R11 R6 K7 - 0x782E006E, // 002F JMPF R11 #009F - 0x4C2C0000, // 0030 LDNIL R11 - 0x202C0A0B, // 0031 NE R11 R5 R11 - 0x782E006B, // 0032 JMPF R11 #009F - 0x142C0B09, // 0033 LT R11 R5 K9 - 0x742E0002, // 0034 JMPT R11 #0038 - 0x542E00FD, // 0035 LDINT R11 254 - 0x242C0A0B, // 0036 GT R11 R5 R11 - 0x782E0008, // 0037 JMPF R11 #0041 - 0x602C0001, // 0038 GETGBL R11 G1 - 0x60300008, // 0039 GETGBL R12 G8 - 0x5C340A00, // 003A MOVE R13 R5 - 0x7C300200, // 003B CALL R12 1 - 0x0032140C, // 003C ADD R12 K10 R12 - 0x0030190B, // 003D ADD R12 R12 K11 - 0x00301806, // 003E ADD R12 R12 R6 - 0x7C2C0200, // 003F CALL R11 1 - 0x80001600, // 0040 RET 0 - 0x4C2C0000, // 0041 LDNIL R11 - 0x60300009, // 0042 GETGBL R12 G9 - 0x8C340302, // 0043 GETMET R13 R1 K2 - 0x583C000C, // 0044 LDCONST R15 K12 - 0x7C340400, // 0045 CALL R13 2 - 0x7C300200, // 0046 CALL R12 1 - 0x4C340000, // 0047 LDNIL R13 - 0x2034180D, // 0048 NE R13 R12 R13 - 0x78360006, // 0049 JMPF R13 #0051 - 0x8C34110D, // 004A GETMET R13 R8 K13 - 0x5C3C1800, // 004B MOVE R15 R12 - 0x7C340400, // 004C CALL R13 2 - 0x4C380000, // 004D LDNIL R14 - 0x20381A0E, // 004E NE R14 R13 R14 - 0x783A0000, // 004F JMPF R14 #0051 - 0x882C1B0E, // 0050 GETMBR R11 R13 K14 - 0x4C340000, // 0051 LDNIL R13 - 0x1C34160D, // 0052 EQ R13 R11 R13 - 0x78360002, // 0053 JMPF R13 #0057 - 0x8C34110F, // 0054 GETMET R13 R8 K15 - 0x7C340200, // 0055 CALL R13 1 - 0x5C2C1A00, // 0056 MOVE R11 R13 - 0x8C340910, // 0057 GETMET R13 R4 K16 - 0x5C3C0000, // 0058 MOVE R15 R0 - 0x00422206, // 0059 ADD R16 K17 R6 - 0x7C340600, // 005A CALL R13 3 - 0x4C380000, // 005B LDNIL R14 - 0x4C3C0000, // 005C LDNIL R15 - 0x1C3C1A0F, // 005D EQ R15 R13 R15 - 0x783E0010, // 005E JMPF R15 #0070 - 0x8C3C0910, // 005F GETMET R15 R4 K16 - 0x5C440600, // 0060 MOVE R17 R3 - 0x5C480C00, // 0061 MOVE R18 R6 - 0x7C3C0600, // 0062 CALL R15 3 - 0x4C400000, // 0063 LDNIL R16 - 0x20401E10, // 0064 NE R16 R15 R16 - 0x78420009, // 0065 JMPF R16 #0070 - 0x60400004, // 0066 GETGBL R16 G4 - 0x5C441E00, // 0067 MOVE R17 R15 - 0x7C400200, // 0068 CALL R16 1 - 0x1C402112, // 0069 EQ R16 R16 K18 - 0x78420004, // 006A JMPF R16 #0070 - 0x5C401E00, // 006B MOVE R16 R15 - 0x5C441600, // 006C MOVE R17 R11 - 0x7C400200, // 006D CALL R16 1 - 0x5C382000, // 006E MOVE R14 R16 - 0x88340113, // 006F GETMBR R13 R0 K19 - 0x4C3C0000, // 0070 LDNIL R15 - 0x1C3C1A0F, // 0071 EQ R15 R13 R15 - 0x783E000F, // 0072 JMPF R15 #0083 - 0x8C3C0914, // 0073 GETMET R15 R4 K20 - 0x5C440C00, // 0074 MOVE R17 R6 - 0x7C3C0400, // 0075 CALL R15 2 - 0x4C400000, // 0076 LDNIL R16 - 0x20401E10, // 0077 NE R16 R15 R16 - 0x78420009, // 0078 JMPF R16 #0083 - 0x60400004, // 0079 GETGBL R16 G4 - 0x5C441E00, // 007A MOVE R17 R15 - 0x7C400200, // 007B CALL R16 1 - 0x1C402112, // 007C EQ R16 R16 K18 - 0x78420004, // 007D JMPF R16 #0083 - 0x5C401E00, // 007E MOVE R16 R15 - 0x5C441600, // 007F MOVE R17 R11 - 0x7C400200, // 0080 CALL R16 1 - 0x5C382000, // 0081 MOVE R14 R16 - 0x88340113, // 0082 GETMBR R13 R0 K19 - 0x4C3C0000, // 0083 LDNIL R15 - 0x1C3C1A0F, // 0084 EQ R15 R13 R15 - 0x783E0006, // 0085 JMPF R15 #008D - 0x603C0001, // 0086 GETGBL R15 G1 - 0x60400008, // 0087 GETGBL R16 G8 - 0x5C440C00, // 0088 MOVE R17 R6 - 0x7C400200, // 0089 CALL R16 1 - 0x00422A10, // 008A ADD R16 K21 R16 - 0x7C3C0200, // 008B CALL R15 1 - 0x80001E00, // 008C RET 0 - 0x5C3C1A00, // 008D MOVE R15 R13 - 0x5C401600, // 008E MOVE R16 R11 - 0x5C440400, // 008F MOVE R17 R2 - 0x5C480200, // 0090 MOVE R18 R1 - 0x5C4C1C00, // 0091 MOVE R19 R14 - 0x7C3C0800, // 0092 CALL R15 4 - 0x5C1C1E00, // 0093 MOVE R7 R15 - 0x8C3C1116, // 0094 GETMET R15 R8 K22 - 0x5C440A00, // 0095 MOVE R17 R5 - 0x5C480E00, // 0096 MOVE R18 R7 - 0x7C3C0600, // 0097 CALL R15 3 - 0x603C0018, // 0098 GETGBL R15 G24 - 0x58400017, // 0099 LDCONST R16 K23 - 0x8C441103, // 009A GETMET R17 R8 K3 - 0x7C440200, // 009B CALL R17 1 - 0x5C480A00, // 009C MOVE R18 R5 - 0x7C3C0600, // 009D CALL R15 3 - 0x900C1E07, // 009E SETMBR R3 R15 R7 - 0x4C2C0000, // 009F LDNIL R11 - 0x202C140B, // 00A0 NE R11 R10 R11 - 0x782E0018, // 00A1 JMPF R11 #00BB - 0xA802000B, // 00A2 EXBLK 0 #00AF - 0x5C2C1400, // 00A3 MOVE R11 R10 - 0x7C2C0000, // 00A4 CALL R11 0 - 0x60300004, // 00A5 GETGBL R12 G4 - 0x5C341600, // 00A6 MOVE R13 R11 - 0x7C300200, // 00A7 CALL R12 1 - 0x1C301918, // 00A8 EQ R12 R12 K24 - 0x78320002, // 00A9 JMPF R12 #00AD - 0x5C301600, // 00AA MOVE R12 R11 - 0x5C340E00, // 00AB MOVE R13 R7 - 0x7C300200, // 00AC CALL R12 1 - 0xA8040001, // 00AD EXBLK 1 1 - 0x7002000B, // 00AE JMP #00BB - 0xAC2C0002, // 00AF CATCH R11 0 2 - 0x70020008, // 00B0 JMP #00BA - 0x60340001, // 00B1 GETGBL R13 G1 - 0x60380018, // 00B2 GETGBL R14 G24 - 0x583C0019, // 00B3 LDCONST R15 K25 - 0x5C401200, // 00B4 MOVE R16 R9 - 0x5C441600, // 00B5 MOVE R17 R11 - 0x5C481800, // 00B6 MOVE R18 R12 - 0x7C380800, // 00B7 CALL R14 4 - 0x7C340200, // 00B8 CALL R13 1 - 0x70020000, // 00B9 JMP #00BB - 0xB0080000, // 00BA RAISE 2 R0 R0 - 0x1C2C0B1A, // 00BB EQ R11 R5 K26 - 0x782E0005, // 00BC JMPF R11 #00C3 - 0x202C0D07, // 00BD NE R11 R6 K7 - 0x782E0003, // 00BE JMPF R11 #00C3 - 0x602C0001, // 00BF GETGBL R11 G1 - 0x5830001B, // 00C0 LDCONST R12 K27 - 0x7C2C0200, // 00C1 CALL R11 1 - 0x80001600, // 00C2 RET 0 - 0x1C2C0B1A, // 00C3 EQ R11 R5 K26 - 0x782E0005, // 00C4 JMPF R11 #00CB - 0x8C2C0105, // 00C5 GETMET R11 R0 K5 - 0x7C2C0200, // 00C6 CALL R11 1 - 0x8C2C170D, // 00C7 GETMET R11 R11 K13 - 0x5834001A, // 00C8 LDCONST R13 K26 - 0x7C2C0400, // 00C9 CALL R11 2 - 0x5C1C1600, // 00CA MOVE R7 R11 - 0x602C0010, // 00CB GETGBL R11 G16 - 0x8C30031C, // 00CC GETMET R12 R1 K28 - 0x7C300200, // 00CD CALL R12 1 - 0x7C2C0200, // 00CE CALL R11 1 - 0xA8020004, // 00CF EXBLK 0 #00D5 - 0x5C301600, // 00D0 MOVE R12 R11 - 0x7C300000, // 00D1 CALL R12 0 - 0x9434020C, // 00D2 GETIDX R13 R1 R12 - 0x901C180D, // 00D3 SETMBR R7 R12 R13 - 0x7001FFFA, // 00D4 JMP #00D0 - 0x582C001D, // 00D5 LDCONST R11 K29 - 0xAC2C0200, // 00D6 CATCH R11 1 0 - 0xB0080000, // 00D7 RAISE 2 R0 R0 - 0x80000000, // 00D8 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified class: HASPmota ********************************************************************/ be_local_class(HASPmota, 10, NULL, - be_nested_map(45, + be_nested_map(46, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(re_page_target, -1), be_const_var(7) }, - { be_const_key_weak(lvh_pages, -1), be_const_var(5) }, - { be_const_key_weak(lvh_scr, -1), be_const_class(be_class_lvh_scr) }, - { be_const_key_weak(register_event, 44), be_const_closure(HASPmota_register_event_closure) }, - { be_const_key_weak(lvh_line, -1), be_const_class(be_class_lvh_line) }, - { be_const_key_weak(dark, 33), be_const_var(0) }, - { be_const_key_weak(pages_list_sorted, 37), be_const_closure(HASPmota_pages_list_sorted_closure) }, - { be_const_key_weak(parse, -1), be_const_closure(HASPmota_parse_closure) }, - { be_const_key_weak(lvh_page_cur_idx, 19), be_const_var(6) }, - { be_const_key_weak(parse_obj, 23), be_const_closure(HASPmota_parse_obj_closure) }, - { be_const_key_weak(lvh_label, -1), be_const_class(be_class_lvh_label) }, - { be_const_key_weak(start, 10), be_const_closure(HASPmota_start_closure) }, - { be_const_key_weak(lvh_chart, -1), be_const_class(be_class_lvh_chart) }, - { be_const_key_weak(page_show, -1), be_const_closure(HASPmota_page_show_closure) }, - { be_const_key_weak(lvh_checkbox, -1), be_const_class(be_class_lvh_checkbox) }, - { be_const_key_weak(init, -1), be_const_closure(HASPmota_init_closure) }, - { be_const_key_weak(lvh_obj, -1), be_const_class(be_class_lvh_obj) }, - { be_const_key_weak(get_page_cur, -1), be_const_closure(HASPmota_get_page_cur_closure) }, - { be_const_key_weak(hres, 12), be_const_var(1) }, - { be_const_key_weak(parse_page, 17), be_const_closure(HASPmota_parse_page_closure) }, - { be_const_key_weak(_load, 21), be_const_closure(HASPmota__load_closure) }, - { be_const_key_weak(lvh_slider, -1), be_const_class(be_class_lvh_slider) }, - { be_const_key_weak(deinit, -1), be_const_closure(HASPmota_deinit_closure) }, - { be_const_key_weak(lvh_roller, -1), be_const_class(be_class_lvh_roller) }, - { be_const_key_weak(lvh_spinner, 28), be_const_class(be_class_lvh_spinner) }, { be_const_key_weak(event_dispatch, -1), be_const_closure(HASPmota_event_dispatch_closure) }, - { be_const_key_weak(vres, -1), be_const_var(2) }, - { be_const_key_weak(event_cb, 32), be_const_var(9) }, - { be_const_key_weak(event, 38), be_const_var(8) }, + { be_const_key_weak(lvh_slider, -1), be_const_class(be_class_lvh_slider) }, + { be_const_key_weak(parse_page, -1), be_const_closure(HASPmota_parse_page_closure) }, + { be_const_key_weak(page_dir_to, -1), be_const_closure(HASPmota_page_dir_to_closure) }, + { be_const_key_weak(fix_lv_version, -1), be_const_static_closure(HASPmota_fix_lv_version_closure) }, + { be_const_key_weak(register_event, 41), be_const_closure(HASPmota_register_event_closure) }, + { be_const_key_weak(lvh_img, 15), be_const_class(be_class_lvh_img) }, + { be_const_key_weak(parse_obj, 44), be_const_closure(HASPmota_parse_obj_closure) }, + { be_const_key_weak(lvh_switch, 3), be_const_class(be_class_lvh_switch) }, + { be_const_key_weak(event_cb, -1), be_const_var(9) }, + { be_const_key_weak(parse, 7), be_const_closure(HASPmota_parse_closure) }, + { be_const_key_weak(do_action, -1), be_const_closure(HASPmota_do_action_closure) }, + { be_const_key_weak(lvh_roller, 33), be_const_class(be_class_lvh_roller) }, + { be_const_key_weak(lvh_dropdown, 9), be_const_class(be_class_lvh_dropdown) }, + { be_const_key_weak(lvh_pages, -1), be_const_var(5) }, + { be_const_key_weak(start, 20), be_const_closure(HASPmota_start_closure) }, + { be_const_key_weak(pages_list_sorted, -1), be_const_closure(HASPmota_pages_list_sorted_closure) }, + { be_const_key_weak(lvh_spinner, -1), be_const_class(be_class_lvh_spinner) }, + { be_const_key_weak(lvh_scr, -1), be_const_class(be_class_lvh_scr) }, + { be_const_key_weak(re_page_target, -1), be_const_var(7) }, + { be_const_key_weak(init, -1), be_const_closure(HASPmota_init_closure) }, + { be_const_key_weak(lvh_checkbox, -1), be_const_class(be_class_lvh_checkbox) }, + { be_const_key_weak(lvh_page_cur_idx, 31), be_const_var(6) }, + { be_const_key_weak(event, -1), be_const_var(8) }, + { be_const_key_weak(lvh_textarea, -1), be_const_class(be_class_lvh_textarea) }, + { be_const_key_weak(hres, -1), be_const_var(1) }, + { be_const_key_weak(lvh_line, 19), be_const_class(be_class_lvh_line) }, + { be_const_key_weak(scr, -1), be_const_var(3) }, + { be_const_key_weak(lvh_arc, 26), be_const_class(be_class_lvh_arc) }, + { be_const_key_weak(lvh_page, 36), be_const_class(be_class_lvh_page) }, + { be_const_key_weak(get_page_cur, 16), be_const_closure(HASPmota_get_page_cur_closure) }, + { be_const_key_weak(lvh_chart, -1), be_const_class(be_class_lvh_chart) }, { be_const_key_weak(lvh_btn, -1), be_const_class(be_class_lvh_btn) }, + { be_const_key_weak(_load, 30), be_const_closure(HASPmota__load_closure) }, { be_const_key_weak(r16, -1), be_const_var(4) }, - { be_const_key_weak(lvh_arc, -1), be_const_class(be_class_lvh_arc) }, - { be_const_key_weak(lvh_dropdown, 18), be_const_class(be_class_lvh_dropdown) }, - { be_const_key_weak(do_action, 16), be_const_closure(HASPmota_do_action_closure) }, - { be_const_key_weak(def_templ_name, 26), be_nested_str_weak(pages_X2Ejsonl) }, - { be_const_key_weak(lvh_btnmatrix, 9), be_const_class(be_class_lvh_btnmatrix) }, - { be_const_key_weak(sort, 20), be_const_static_closure(HASPmota_sort_closure) }, + { be_const_key_weak(def_templ_name, -1), be_nested_str_weak(pages_X2Ejsonl) }, + { be_const_key_weak(vres, -1), be_const_var(2) }, + { be_const_key_weak(lvh_obj, 6), be_const_class(be_class_lvh_obj) }, + { be_const_key_weak(page_show, -1), be_const_closure(HASPmota_page_show_closure) }, + { be_const_key_weak(sort, 17), be_const_static_closure(HASPmota_sort_closure) }, { be_const_key_weak(lvh_qrcode, -1), be_const_class(be_class_lvh_qrcode) }, { be_const_key_weak(lvh_bar, -1), be_const_class(be_class_lvh_bar) }, - { be_const_key_weak(lvh_page, -1), be_const_class(be_class_lvh_page) }, - { be_const_key_weak(lvh_textarea, -1), be_const_class(be_class_lvh_textarea) }, - { be_const_key_weak(scr, -1), be_const_var(3) }, - { be_const_key_weak(page_dir_to, -1), be_const_closure(HASPmota_page_dir_to_closure) }, - { be_const_key_weak(lvh_switch, -1), be_const_class(be_class_lvh_switch) }, - { be_const_key_weak(lvh_img, -1), be_const_class(be_class_lvh_img) }, + { be_const_key_weak(deinit, -1), be_const_closure(HASPmota_deinit_closure) }, + { be_const_key_weak(dark, -1), be_const_var(0) }, + { be_const_key_weak(lvh_label, -1), be_const_class(be_class_lvh_label) }, + { be_const_key_weak(lvh_btnmatrix, -1), be_const_class(be_class_lvh_btnmatrix) }, })), be_str_weak(HASPmota) ); diff --git a/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota.be b/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota.be index 8e90ccf1b..3edea396c 100644 --- a/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota.be +++ b/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota.be @@ -25,6 +25,18 @@ def init(lv_tasmota) lv.register_button_encoder = lv_tasmota.register_button_encoder lv.screenshot = lv_tasmota.screenshot + # add version information + lv.version = lv.version_major() + # use the following to retrofit the version: + #- + def fix_lv_version() + import introspect + var v = introspect.get(lv, "version") + # if `lv.version` does not exist, v is `module('undefined')` + if type(v) != 'int' lv.version = 8 end + end + -# + # add widgets lv.clock = lv_clock lv.clock_icon = lv_clock_icon @@ -112,8 +124,7 @@ def splash() tas_logo.set_zoom(150) tas_logo.set_style_img_recolor_opa(255, 0) # lv.PART_MAIN | lv.STATE_DEFAULT tas_logo.set_style_img_recolor(white, 0) # lv.PART_MAIN | lv.STATE_DEFAULT - tas_logo.set_align(lv.ALIGN_LEFT_MID) - tas_logo.set_x(-12) + tas_logo.align(lv.ALIGN_LEFT_MID, -12, 0) var tas = lv.label(bg) # tas.set_style_bg_opa(lv.OPA_TRANSP, lv.PART_MAIN | lv.STATE_DEFAULT) diff --git a/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota_widgets.be b/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota_widgets.be index 7c65815e5..2796341bf 100644 --- a/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota_widgets.be +++ b/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota_widgets.be @@ -88,7 +88,7 @@ class lv_obj end # for solidification #@ solidify:lv_signal_arcs,weak class lv_signal_arcs : lv_obj var percentage # value to display, range 0..100 - var p1, p2, area, arc_dsc # instances of objects kept to avoid re-instanciating at each call + var area, arc_dsc # instances of objects kept to avoid re-instanciating at each call def init(parent) # init custom widget (don't call super constructor) @@ -96,8 +96,6 @@ 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.arc_dsc = lv.draw_arc_dsc() end @@ -105,7 +103,7 @@ class lv_signal_arcs : lv_obj def widget_event(cl, event) # Call the ancestor's event handler if lv.obj_event_base(cl, event) != lv.RES_OK return end - var code = event.code + var code = event.get_code() import math def atleast1(x) if x >= 1 return x else return 1 end end @@ -119,18 +117,20 @@ class lv_signal_arcs : lv_obj #print("inter_bar", inter_bar, "bar", bar, "bar_offset", bar_offset) if code == lv.EVENT_DRAW_MAIN - var draw_ctx = lv.draw_ctx(event.param) + var arc_dsc = self.arc_dsc + var param = event.get_param() + var layer = event.get_layer() # get coordinates of object self.get_coords(self.area) var x_ofs = self.area.x1 var y_ofs = self.area.y1 - lv.draw_arc_dsc_init(self.arc_dsc) # initialize lv.draw_line_dsc structure - self.init_draw_arc_dsc(lv.PART_MAIN, self.arc_dsc) # copy the current values + lv.draw_arc_dsc_init(arc_dsc) # initialize lv.draw_line_dsc structure + self.init_draw_arc_dsc(lv.PART_MAIN, arc_dsc) # copy the current values - self.arc_dsc.rounded = 1 - self.arc_dsc.width = (bar * 3 + 1) / 4 + arc_dsc.rounded = 1 + arc_dsc.width = (bar * 3 + 1) / 4 var on_color = self.get_style_line_color(lv.PART_MAIN | lv.STATE_DEFAULT) var off_color = self.get_style_bg_color(lv.PART_MAIN | lv.STATE_DEFAULT) @@ -144,15 +144,26 @@ class lv_signal_arcs : lv_obj if (angle > 45) angle = 45 end # print("hypotenuse",hypotenuse,"adjacent",adjacent,"angle",angle) - self.p1.x = x_ofs + width / 2 - self.p1.y = y_ofs + height - 1 - bar_offset + arc_dsc.center_x = x_ofs + width / 2 + arc_dsc.center_y = y_ofs + height - 1 - bar_offset - self.arc_dsc.color = self.percentage >= 25 ? on_color : off_color - lv.draw_arc(draw_ctx, self.arc_dsc, self.p1, 0 * (bar + inter_bar) + bar_offset, 0, 360) - self.arc_dsc.color = self.percentage >= 50 ? on_color : off_color - lv.draw_arc(draw_ctx, self.arc_dsc, self.p1, 1 * (bar + inter_bar) + bar_offset - 1, 270 - angle, 270 + angle) - self.arc_dsc.color = self.percentage >= 75 ? on_color : off_color - lv.draw_arc(draw_ctx, self.arc_dsc, self.p1, 2 * (bar + inter_bar) + bar_offset - 2, 270 - angle, 270 + angle) + arc_dsc.color = self.percentage >= 25 ? on_color : off_color + arc_dsc.radius = 0 * (bar + inter_bar) + bar_offset + arc_dsc.start_angle = 0 + arc_dsc.end_angle = 306 + lv.draw_arc(layer, arc_dsc) + + arc_dsc.radius = 1 * (bar + inter_bar) + bar_offset - 1 + arc_dsc.start_angle = 270 - angle + arc_dsc.end_angle = 270 + angle + arc_dsc.color = self.percentage >= 50 ? on_color : off_color + lv.draw_arc(layer, arc_dsc) + + arc_dsc.radius = 2 * (bar + inter_bar) + bar_offset - 2 + arc_dsc.start_angle = 270 - angle + arc_dsc.end_angle = 270 + angle + arc_dsc.color = self.percentage >= 75 ? on_color : off_color + lv.draw_arc(layer, arc_dsc) #elif mode == lv.DESIGN_DRAW_POST # commented since we don't want a frame around this object # self.ancestor_design.call(self, clip_area, mode) @@ -221,7 +232,7 @@ end #@ solidify:lv_signal_bars,weak 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 + var area, line_dsc # instances of objects kept to avoid re-instanciating at each call def init(parent) # init custom widget (don't call super constructor) @@ -229,16 +240,15 @@ 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() end def widget_event(cl, event) # Call the ancestor's event handler + # tasmota.log(f">>>: widget_event {cl=} {event=}") if lv.obj_event_base(cl, event) != lv.RES_OK return end - var code = event.code + var code = event.get_code() def atleast1(x) if x >= 1 return x else return 1 end end # the model is that we have 4 bars and inter-bar (1/4 of width) @@ -250,32 +260,34 @@ class lv_signal_bars : lv_obj var bar_offset = bar / 2 if code == lv.EVENT_DRAW_MAIN - var draw_ctx = lv.draw_ctx(event.param) + var line_dsc = self.line_dsc + var param = event.get_param() + var layer = event.get_layer() # 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 - self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc) # copy the current values + lv.draw_line_dsc_init(line_dsc) # initialize lv_draw_line_dsc structure + self.init_draw_line_dsc(lv.PART_MAIN, line_dsc) # copy the current values - self.line_dsc.round_start = 1 - self.line_dsc.round_end = 1 - self.line_dsc.width = bar + line_dsc.round_start = 1 + line_dsc.round_end = 1 + line_dsc.width = bar var on_color = self.get_style_line_color(lv.PART_MAIN | lv.STATE_DEFAULT) var off_color = self.get_style_bg_color(lv.PART_MAIN | lv.STATE_DEFAULT) - lv.event_send(self, lv.EVENT_DRAW_PART_BEGIN, self.line_dsc) + # lv.event_send(self, lv.EVENT_DRAW_PART_BEGIN, line_dsc) for i:0..3 # 4 bars - self.line_dsc.color = self.percentage >= (i+1)*20 ? on_color : off_color - self.p1.y = y_ofs + height - 1 - bar_offset - self.p1.x = x_ofs + i * (bar + inter_bar) + bar_offset - self.p2.y = y_ofs + ((3 - i) * (height - bar)) / 4 + bar_offset - self.p2.x = self.p1.x - lv.draw_line(draw_ctx, self.line_dsc, self.p1, self.p2) + line_dsc.color = self.percentage >= (i+1)*20 ? on_color : off_color + line_dsc.p1_y = y_ofs + height - 1 - bar_offset + line_dsc.p1_x = x_ofs + i * (bar + inter_bar) + bar_offset + line_dsc.p2_y = y_ofs + ((3 - i) * (height - bar)) / 4 + bar_offset + line_dsc.p2_x = line_dsc.p1_x + lv.draw_line(layer, line_dsc) end - lv.event_send(self, lv.EVENT_DRAW_PART_END, self.line_dsc) + # lv.event_send(self, lv.EVENT_DRAW_PART_END, line_dsc) end end diff --git a/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota.h b/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota.h index 31a6267d5..5ff64c7fd 100644 --- a/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota.h +++ b/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota.h @@ -17,7 +17,7 @@ be_local_closure(lv_tasmota_init, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[33]) { /* constants */ + ( &(const bvalue[35]) { /* constants */ /* K0 */ be_nested_str_weak(lv), /* K1 */ be_nested_str_weak(start), /* K2 */ be_nested_str_weak(splash_init), @@ -32,29 +32,31 @@ be_local_closure(lv_tasmota_init, /* name */ /* K11 */ be_nested_str_weak(load_freetype_font), /* K12 */ be_nested_str_weak(register_button_encoder), /* K13 */ be_nested_str_weak(screenshot), - /* K14 */ be_nested_str_weak(clock), - /* K15 */ be_nested_str_weak(lv_clock), - /* K16 */ be_nested_str_weak(clock_icon), - /* K17 */ be_nested_str_weak(lv_clock_icon), - /* K18 */ be_nested_str_weak(signal_arcs), - /* K19 */ be_nested_str_weak(lv_signal_arcs), - /* K20 */ be_nested_str_weak(signal_bars), - /* K21 */ be_nested_str_weak(lv_signal_bars), - /* K22 */ be_nested_str_weak(wifi_arcs_icon), - /* K23 */ be_nested_str_weak(lv_wifi_arcs_icon), - /* K24 */ be_nested_str_weak(wifi_arcs), - /* K25 */ be_nested_str_weak(lv_wifi_arcs), - /* K26 */ be_nested_str_weak(wifi_bars_icon), - /* K27 */ be_nested_str_weak(lv_wifi_bars_icon), - /* K28 */ be_nested_str_weak(wifi_bars), - /* K29 */ be_nested_str_weak(lv_wifi_bars), - /* K30 */ be_nested_str_weak(tasmota), - /* K31 */ be_nested_str_weak(get_option), - /* K32 */ be_const_int(0), + /* K14 */ be_nested_str_weak(version), + /* K15 */ be_nested_str_weak(version_major), + /* K16 */ be_nested_str_weak(clock), + /* K17 */ be_nested_str_weak(lv_clock), + /* K18 */ be_nested_str_weak(clock_icon), + /* K19 */ be_nested_str_weak(lv_clock_icon), + /* K20 */ be_nested_str_weak(signal_arcs), + /* K21 */ be_nested_str_weak(lv_signal_arcs), + /* K22 */ be_nested_str_weak(signal_bars), + /* K23 */ be_nested_str_weak(lv_signal_bars), + /* K24 */ be_nested_str_weak(wifi_arcs_icon), + /* K25 */ be_nested_str_weak(lv_wifi_arcs_icon), + /* K26 */ be_nested_str_weak(wifi_arcs), + /* K27 */ be_nested_str_weak(lv_wifi_arcs), + /* K28 */ be_nested_str_weak(wifi_bars_icon), + /* K29 */ be_nested_str_weak(lv_wifi_bars_icon), + /* K30 */ be_nested_str_weak(wifi_bars), + /* K31 */ be_nested_str_weak(lv_wifi_bars), + /* K32 */ be_nested_str_weak(tasmota), + /* K33 */ be_nested_str_weak(get_option), + /* K34 */ be_const_int(0), }), be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[53]) { /* code */ + ( &(const binstruction[56]) { /* code */ 0xA4060000, // 0000 IMPORT R1 K0 0x88080101, // 0001 GETMBR R2 R0 K1 0x90060202, // 0002 SETMBR R1 K1 R2 @@ -82,32 +84,35 @@ be_local_closure(lv_tasmota_init, /* name */ 0x90061802, // 0018 SETMBR R1 K12 R2 0x8808010D, // 0019 GETMBR R2 R0 K13 0x90061A02, // 001A SETMBR R1 K13 R2 - 0xB80A1E00, // 001B GETNGBL R2 K15 - 0x90061C02, // 001C SETMBR R1 K14 R2 - 0xB80A2200, // 001D GETNGBL R2 K17 - 0x90062002, // 001E SETMBR R1 K16 R2 - 0xB80A2600, // 001F GETNGBL R2 K19 - 0x90062402, // 0020 SETMBR R1 K18 R2 - 0xB80A2A00, // 0021 GETNGBL R2 K21 - 0x90062802, // 0022 SETMBR R1 K20 R2 - 0xB80A2E00, // 0023 GETNGBL R2 K23 - 0x90062C02, // 0024 SETMBR R1 K22 R2 - 0xB80A3200, // 0025 GETNGBL R2 K25 - 0x90063002, // 0026 SETMBR R1 K24 R2 - 0xB80A3600, // 0027 GETNGBL R2 K27 - 0x90063402, // 0028 SETMBR R1 K26 R2 - 0xB80A3A00, // 0029 GETNGBL R2 K29 - 0x90063802, // 002A SETMBR R1 K28 R2 - 0xB80A3C00, // 002B GETNGBL R2 K30 - 0x8C08051F, // 002C GETMET R2 R2 K31 - 0x54120086, // 002D LDINT R4 135 - 0x7C080400, // 002E CALL R2 2 - 0x1C080520, // 002F EQ R2 R2 K32 - 0x780A0001, // 0030 JMPF R2 #0033 - 0x8C080302, // 0031 GETMET R2 R1 K2 - 0x7C080200, // 0032 CALL R2 1 - 0x4C080000, // 0033 LDNIL R2 - 0x80040400, // 0034 RET 1 R2 + 0x8C08030F, // 001B GETMET R2 R1 K15 + 0x7C080200, // 001C CALL R2 1 + 0x90061C02, // 001D SETMBR R1 K14 R2 + 0xB80A2200, // 001E GETNGBL R2 K17 + 0x90062002, // 001F SETMBR R1 K16 R2 + 0xB80A2600, // 0020 GETNGBL R2 K19 + 0x90062402, // 0021 SETMBR R1 K18 R2 + 0xB80A2A00, // 0022 GETNGBL R2 K21 + 0x90062802, // 0023 SETMBR R1 K20 R2 + 0xB80A2E00, // 0024 GETNGBL R2 K23 + 0x90062C02, // 0025 SETMBR R1 K22 R2 + 0xB80A3200, // 0026 GETNGBL R2 K25 + 0x90063002, // 0027 SETMBR R1 K24 R2 + 0xB80A3600, // 0028 GETNGBL R2 K27 + 0x90063402, // 0029 SETMBR R1 K26 R2 + 0xB80A3A00, // 002A GETNGBL R2 K29 + 0x90063802, // 002B SETMBR R1 K28 R2 + 0xB80A3E00, // 002C GETNGBL R2 K31 + 0x90063C02, // 002D SETMBR R1 K30 R2 + 0xB80A4000, // 002E GETNGBL R2 K32 + 0x8C080521, // 002F GETMET R2 R2 K33 + 0x54120086, // 0030 LDINT R4 135 + 0x7C080400, // 0031 CALL R2 2 + 0x1C080522, // 0032 EQ R2 R2 K34 + 0x780A0001, // 0033 JMPF R2 #0036 + 0x8C080302, // 0034 GETMET R2 R1 K2 + 0x7C080200, // 0035 CALL R2 1 + 0x4C080000, // 0036 LDNIL R2 + 0x80040400, // 0037 RET 1 R2 }) ) ); @@ -297,7 +302,7 @@ be_local_closure(lv_tasmota_splash, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[42]) { /* constants */ + ( &(const bvalue[43]) { /* constants */ /* K0 */ be_nested_str_weak(display), /* K1 */ be_nested_str_weak(started), /* K2 */ be_nested_str_weak(lv), @@ -323,27 +328,28 @@ be_local_closure(lv_tasmota_splash, /* name */ /* K22 */ be_nested_str_weak(set_zoom), /* K23 */ be_nested_str_weak(set_style_img_recolor_opa), /* K24 */ be_nested_str_weak(set_style_img_recolor), - /* K25 */ be_nested_str_weak(set_align), + /* K25 */ be_nested_str_weak(align), /* K26 */ be_nested_str_weak(ALIGN_LEFT_MID), - /* K27 */ be_nested_str_weak(set_x), - /* K28 */ be_nested_str_weak(label), - /* K29 */ be_nested_str_weak(set_style_text_color), - /* K30 */ be_nested_str_weak(set_text), - /* K31 */ be_nested_str_weak(TASMOTA), - /* K32 */ be_nested_str_weak(get_hor_res), - /* K33 */ be_nested_str_weak(set_style_text_font), - /* K34 */ be_nested_str_weak(driver_name), - /* K35 */ be_nested_str_weak(ALIGN_BOTTOM_MID), - /* K36 */ be_const_int(16777215), - /* K37 */ be_nested_str_weak(refr_now), - /* K38 */ be_nested_str_weak(_splash), - /* K39 */ be_nested_str_weak(tasmota), - /* K40 */ be_nested_str_weak(set_timer), - /* K41 */ be_nested_str_weak(splash_remove), + /* K27 */ be_nested_str_weak(label), + /* K28 */ be_nested_str_weak(set_style_text_color), + /* K29 */ be_nested_str_weak(set_text), + /* K30 */ be_nested_str_weak(TASMOTA), + /* K31 */ be_nested_str_weak(get_hor_res), + /* K32 */ be_nested_str_weak(set_style_text_font), + /* K33 */ be_nested_str_weak(set_align), + /* K34 */ be_nested_str_weak(set_x), + /* K35 */ be_nested_str_weak(driver_name), + /* K36 */ be_nested_str_weak(ALIGN_BOTTOM_MID), + /* K37 */ be_const_int(16777215), + /* K38 */ be_nested_str_weak(refr_now), + /* K39 */ be_nested_str_weak(_splash), + /* K40 */ be_nested_str_weak(tasmota), + /* K41 */ be_nested_str_weak(set_timer), + /* K42 */ be_nested_str_weak(splash_remove), }), be_str_weak(splash), &be_const_str_solidified, - ( &(const binstruction[166]) { /* code */ + ( &(const binstruction[165]) { /* code */ 0xA4020000, // 0000 IMPORT R0 K0 0x8C040101, // 0001 GETMET R1 R0 K1 0x7C040200, // 0002 CALL R1 1 @@ -427,89 +433,88 @@ be_local_closure(lv_tasmota_splash, /* name */ 0x8C180B19, // 0050 GETMET R6 R5 K25 0xB8220400, // 0051 GETNGBL R8 K2 0x8820111A, // 0052 GETMBR R8 R8 K26 - 0x7C180400, // 0053 CALL R6 2 - 0x8C180B1B, // 0054 GETMET R6 R5 K27 - 0x5421FFF3, // 0055 LDINT R8 -12 - 0x7C180400, // 0056 CALL R6 2 - 0xB81A0400, // 0057 GETNGBL R6 K2 - 0x8C180D1C, // 0058 GETMET R6 R6 K28 - 0x5C200200, // 0059 MOVE R8 R1 - 0x7C180400, // 005A CALL R6 2 - 0x8C1C0D1D, // 005B GETMET R7 R6 K29 - 0x5C240800, // 005C MOVE R9 R4 - 0x5828000A, // 005D LDCONST R10 K10 - 0x7C1C0600, // 005E CALL R7 3 - 0x8C1C0D1E, // 005F GETMET R7 R6 K30 - 0x5824001F, // 0060 LDCONST R9 K31 - 0x7C1C0400, // 0061 CALL R7 2 - 0xB81E0400, // 0062 GETNGBL R7 K2 - 0x8C1C0F20, // 0063 GETMET R7 R7 K32 - 0x7C1C0200, // 0064 CALL R7 1 - 0x542200C7, // 0065 LDINT R8 200 - 0x281C0E08, // 0066 GE R7 R7 R8 - 0x781E0007, // 0067 JMPF R7 #0070 - 0x4C1C0000, // 0068 LDNIL R7 - 0x201C0407, // 0069 NE R7 R2 R7 - 0x781E0003, // 006A JMPF R7 #006F - 0x8C1C0D21, // 006B GETMET R7 R6 K33 - 0x5C240400, // 006C MOVE R9 R2 - 0x5828000A, // 006D LDCONST R10 K10 - 0x7C1C0600, // 006E CALL R7 3 - 0x70020006, // 006F JMP #0077 - 0x4C1C0000, // 0070 LDNIL R7 - 0x201C0607, // 0071 NE R7 R3 R7 - 0x781E0003, // 0072 JMPF R7 #0077 - 0x8C1C0D21, // 0073 GETMET R7 R6 K33 - 0x5C240600, // 0074 MOVE R9 R3 - 0x5828000A, // 0075 LDCONST R10 K10 - 0x7C1C0600, // 0076 CALL R7 3 - 0x8C1C0D19, // 0077 GETMET R7 R6 K25 - 0xB8260400, // 0078 GETNGBL R9 K2 - 0x8824131A, // 0079 GETMBR R9 R9 K26 - 0x7C1C0400, // 007A CALL R7 2 - 0x8C1C0D1B, // 007B GETMET R7 R6 K27 - 0x54260029, // 007C LDINT R9 42 - 0x7C1C0400, // 007D CALL R7 2 - 0x8C1C0122, // 007E GETMET R7 R0 K34 - 0x7C1C0200, // 007F CALL R7 1 - 0x4C200000, // 0080 LDNIL R8 - 0x6024000C, // 0081 GETGBL R9 G12 - 0x5C280E00, // 0082 MOVE R10 R7 - 0x7C240200, // 0083 CALL R9 1 - 0x2424130A, // 0084 GT R9 R9 K10 - 0x78260012, // 0085 JMPF R9 #0099 - 0xB8260400, // 0086 GETNGBL R9 K2 - 0x8C24131C, // 0087 GETMET R9 R9 K28 - 0x5C2C0200, // 0088 MOVE R11 R1 - 0x7C240400, // 0089 CALL R9 2 - 0x5C201200, // 008A MOVE R8 R9 - 0x8C241119, // 008B GETMET R9 R8 K25 - 0xB82E0400, // 008C GETNGBL R11 K2 - 0x882C1723, // 008D GETMBR R11 R11 K35 - 0x7C240400, // 008E CALL R9 2 - 0x8C24111D, // 008F GETMET R9 R8 K29 - 0xB82E0400, // 0090 GETNGBL R11 K2 - 0x8C2C1707, // 0091 GETMET R11 R11 K7 - 0x58340024, // 0092 LDCONST R13 K36 - 0x7C2C0400, // 0093 CALL R11 2 - 0x5830000A, // 0094 LDCONST R12 K10 - 0x7C240600, // 0095 CALL R9 3 - 0x8C24111E, // 0096 GETMET R9 R8 K30 - 0x5C2C0E00, // 0097 MOVE R11 R7 - 0x7C240400, // 0098 CALL R9 2 - 0xB8260400, // 0099 GETNGBL R9 K2 - 0x8C241325, // 009A GETMET R9 R9 K37 - 0x582C000A, // 009B LDCONST R11 K10 - 0x7C240400, // 009C CALL R9 2 - 0xB8260400, // 009D GETNGBL R9 K2 - 0x90264C01, // 009E SETMBR R9 K38 R1 - 0xB8264E00, // 009F GETNGBL R9 K39 - 0x8C241328, // 00A0 GETMET R9 R9 K40 - 0x542E1387, // 00A1 LDINT R11 5000 - 0xB8320400, // 00A2 GETNGBL R12 K2 - 0x88301929, // 00A3 GETMBR R12 R12 K41 - 0x7C240600, // 00A4 CALL R9 3 - 0x80000000, // 00A5 RET 0 + 0x5425FFF3, // 0053 LDINT R9 -12 + 0x5828000A, // 0054 LDCONST R10 K10 + 0x7C180800, // 0055 CALL R6 4 + 0xB81A0400, // 0056 GETNGBL R6 K2 + 0x8C180D1B, // 0057 GETMET R6 R6 K27 + 0x5C200200, // 0058 MOVE R8 R1 + 0x7C180400, // 0059 CALL R6 2 + 0x8C1C0D1C, // 005A GETMET R7 R6 K28 + 0x5C240800, // 005B MOVE R9 R4 + 0x5828000A, // 005C LDCONST R10 K10 + 0x7C1C0600, // 005D CALL R7 3 + 0x8C1C0D1D, // 005E GETMET R7 R6 K29 + 0x5824001E, // 005F LDCONST R9 K30 + 0x7C1C0400, // 0060 CALL R7 2 + 0xB81E0400, // 0061 GETNGBL R7 K2 + 0x8C1C0F1F, // 0062 GETMET R7 R7 K31 + 0x7C1C0200, // 0063 CALL R7 1 + 0x542200C7, // 0064 LDINT R8 200 + 0x281C0E08, // 0065 GE R7 R7 R8 + 0x781E0007, // 0066 JMPF R7 #006F + 0x4C1C0000, // 0067 LDNIL R7 + 0x201C0407, // 0068 NE R7 R2 R7 + 0x781E0003, // 0069 JMPF R7 #006E + 0x8C1C0D20, // 006A GETMET R7 R6 K32 + 0x5C240400, // 006B MOVE R9 R2 + 0x5828000A, // 006C LDCONST R10 K10 + 0x7C1C0600, // 006D CALL R7 3 + 0x70020006, // 006E JMP #0076 + 0x4C1C0000, // 006F LDNIL R7 + 0x201C0607, // 0070 NE R7 R3 R7 + 0x781E0003, // 0071 JMPF R7 #0076 + 0x8C1C0D20, // 0072 GETMET R7 R6 K32 + 0x5C240600, // 0073 MOVE R9 R3 + 0x5828000A, // 0074 LDCONST R10 K10 + 0x7C1C0600, // 0075 CALL R7 3 + 0x8C1C0D21, // 0076 GETMET R7 R6 K33 + 0xB8260400, // 0077 GETNGBL R9 K2 + 0x8824131A, // 0078 GETMBR R9 R9 K26 + 0x7C1C0400, // 0079 CALL R7 2 + 0x8C1C0D22, // 007A GETMET R7 R6 K34 + 0x54260029, // 007B LDINT R9 42 + 0x7C1C0400, // 007C CALL R7 2 + 0x8C1C0123, // 007D GETMET R7 R0 K35 + 0x7C1C0200, // 007E CALL R7 1 + 0x4C200000, // 007F LDNIL R8 + 0x6024000C, // 0080 GETGBL R9 G12 + 0x5C280E00, // 0081 MOVE R10 R7 + 0x7C240200, // 0082 CALL R9 1 + 0x2424130A, // 0083 GT R9 R9 K10 + 0x78260012, // 0084 JMPF R9 #0098 + 0xB8260400, // 0085 GETNGBL R9 K2 + 0x8C24131B, // 0086 GETMET R9 R9 K27 + 0x5C2C0200, // 0087 MOVE R11 R1 + 0x7C240400, // 0088 CALL R9 2 + 0x5C201200, // 0089 MOVE R8 R9 + 0x8C241121, // 008A GETMET R9 R8 K33 + 0xB82E0400, // 008B GETNGBL R11 K2 + 0x882C1724, // 008C GETMBR R11 R11 K36 + 0x7C240400, // 008D CALL R9 2 + 0x8C24111C, // 008E GETMET R9 R8 K28 + 0xB82E0400, // 008F GETNGBL R11 K2 + 0x8C2C1707, // 0090 GETMET R11 R11 K7 + 0x58340025, // 0091 LDCONST R13 K37 + 0x7C2C0400, // 0092 CALL R11 2 + 0x5830000A, // 0093 LDCONST R12 K10 + 0x7C240600, // 0094 CALL R9 3 + 0x8C24111D, // 0095 GETMET R9 R8 K29 + 0x5C2C0E00, // 0096 MOVE R11 R7 + 0x7C240400, // 0097 CALL R9 2 + 0xB8260400, // 0098 GETNGBL R9 K2 + 0x8C241326, // 0099 GETMET R9 R9 K38 + 0x582C000A, // 009A LDCONST R11 K10 + 0x7C240400, // 009B CALL R9 2 + 0xB8260400, // 009C GETNGBL R9 K2 + 0x90264E01, // 009D SETMBR R9 K39 R1 + 0xB8265000, // 009E GETNGBL R9 K40 + 0x8C241329, // 009F GETMET R9 R9 K41 + 0x542E1387, // 00A0 LDINT R11 5000 + 0xB8320400, // 00A1 GETNGBL R12 K2 + 0x8830192A, // 00A2 GETMBR R12 R12 K42 + 0x7C240600, // 00A3 CALL R9 3 + 0x80000000, // 00A4 RET 0 }) ) ); diff --git a/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota_widgets.h b/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota_widgets.h index 380bbc756..53063b24d 100644 --- a/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota_widgets.h +++ b/lib/libesp32/berry_tasmota/src/solidify/solidified_lv_tasmota_widgets.h @@ -394,6 +394,336 @@ void be_load_lv_clock_icon_class(bvm *vm) { extern const bclass be_class_lv_signal_arcs; +/******************************************************************** +** Solidified function: widget_event +********************************************************************/ +be_local_closure(lv_signal_arcs_widget_event, /* name */ + be_nested_proto( + 29, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 0, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_const_int(1), + }), + be_str_weak(atleast1), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x28040100, // 0000 GE R1 R0 K0 + 0x78060001, // 0001 JMPF R1 #0004 + 0x80040000, // 0002 RET 1 R0 + 0x70020000, // 0003 JMP #0005 + 0x80060000, // 0004 RET 1 K0 + 0x80000000, // 0005 RET 0 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[37]) { /* constants */ + /* K0 */ be_nested_str_weak(lv), + /* K1 */ be_nested_str_weak(obj_event_base), + /* K2 */ be_nested_str_weak(RES_OK), + /* K3 */ be_nested_str_weak(get_code), + /* K4 */ be_nested_str_weak(math), + /* K5 */ be_nested_str_weak(get_height), + /* K6 */ be_nested_str_weak(get_width), + /* K7 */ be_const_int(2), + /* K8 */ be_const_int(3), + /* K9 */ be_nested_str_weak(EVENT_DRAW_MAIN), + /* K10 */ be_nested_str_weak(arc_dsc), + /* K11 */ be_nested_str_weak(get_param), + /* K12 */ be_nested_str_weak(get_layer), + /* K13 */ be_nested_str_weak(get_coords), + /* K14 */ be_nested_str_weak(area), + /* K15 */ be_nested_str_weak(x1), + /* K16 */ be_nested_str_weak(y1), + /* K17 */ be_nested_str_weak(draw_arc_dsc_init), + /* K18 */ be_nested_str_weak(init_draw_arc_dsc), + /* K19 */ be_nested_str_weak(PART_MAIN), + /* K20 */ be_nested_str_weak(rounded), + /* K21 */ be_const_int(1), + /* K22 */ be_nested_str_weak(width), + /* K23 */ be_nested_str_weak(get_style_line_color), + /* K24 */ be_nested_str_weak(STATE_DEFAULT), + /* K25 */ be_nested_str_weak(get_style_bg_color), + /* K26 */ be_nested_str_weak(deg), + /* K27 */ be_nested_str_weak(acos), + /* K28 */ be_nested_str_weak(center_x), + /* K29 */ be_nested_str_weak(center_y), + /* K30 */ be_nested_str_weak(color), + /* K31 */ be_nested_str_weak(percentage), + /* K32 */ be_nested_str_weak(radius), + /* K33 */ be_const_int(0), + /* K34 */ be_nested_str_weak(start_angle), + /* K35 */ be_nested_str_weak(end_angle), + /* K36 */ be_nested_str_weak(draw_arc), + }), + be_str_weak(widget_event), + &be_const_str_solidified, + ( &(const binstruction[171]) { /* code */ + 0xB80E0000, // 0000 GETNGBL R3 K0 + 0x8C0C0701, // 0001 GETMET R3 R3 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x5C180400, // 0003 MOVE R6 R2 + 0x7C0C0600, // 0004 CALL R3 3 + 0xB8120000, // 0005 GETNGBL R4 K0 + 0x88100902, // 0006 GETMBR R4 R4 K2 + 0x200C0604, // 0007 NE R3 R3 R4 + 0x780E0000, // 0008 JMPF R3 #000A + 0x80000600, // 0009 RET 0 + 0x8C0C0503, // 000A GETMET R3 R2 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0xA4120800, // 000C IMPORT R4 K4 + 0x84140000, // 000D CLOSURE R5 P0 + 0x8C180105, // 000E GETMET R6 R0 K5 + 0x7C180200, // 000F CALL R6 1 + 0x8C1C0106, // 0010 GETMET R7 R0 K6 + 0x7C1C0200, // 0011 CALL R7 1 + 0x5C200A00, // 0012 MOVE R8 R5 + 0x54260007, // 0013 LDINT R9 8 + 0x0C240C09, // 0014 DIV R9 R6 R9 + 0x7C200200, // 0015 CALL R8 1 + 0x5C240A00, // 0016 MOVE R9 R5 + 0x08281107, // 0017 MUL R10 R8 K7 + 0x04280C0A, // 0018 SUB R10 R6 R10 + 0x0C281508, // 0019 DIV R10 R10 K8 + 0x7C240200, // 001A CALL R9 1 + 0x0C281307, // 001B DIV R10 R9 K7 + 0xB82E0000, // 001C GETNGBL R11 K0 + 0x882C1709, // 001D GETMBR R11 R11 K9 + 0x1C2C060B, // 001E EQ R11 R3 R11 + 0x782E0089, // 001F JMPF R11 #00AA + 0x882C010A, // 0020 GETMBR R11 R0 K10 + 0x8C30050B, // 0021 GETMET R12 R2 K11 + 0x7C300200, // 0022 CALL R12 1 + 0x8C34050C, // 0023 GETMET R13 R2 K12 + 0x7C340200, // 0024 CALL R13 1 + 0x8C38010D, // 0025 GETMET R14 R0 K13 + 0x8840010E, // 0026 GETMBR R16 R0 K14 + 0x7C380400, // 0027 CALL R14 2 + 0x8838010E, // 0028 GETMBR R14 R0 K14 + 0x88381D0F, // 0029 GETMBR R14 R14 K15 + 0x883C010E, // 002A GETMBR R15 R0 K14 + 0x883C1F10, // 002B GETMBR R15 R15 K16 + 0xB8420000, // 002C GETNGBL R16 K0 + 0x8C402111, // 002D GETMET R16 R16 K17 + 0x5C481600, // 002E MOVE R18 R11 + 0x7C400400, // 002F CALL R16 2 + 0x8C400112, // 0030 GETMET R16 R0 K18 + 0xB84A0000, // 0031 GETNGBL R18 K0 + 0x88482513, // 0032 GETMBR R18 R18 K19 + 0x5C4C1600, // 0033 MOVE R19 R11 + 0x7C400600, // 0034 CALL R16 3 + 0x902E2915, // 0035 SETMBR R11 K20 K21 + 0x08401308, // 0036 MUL R16 R9 K8 + 0x00402115, // 0037 ADD R16 R16 K21 + 0x54460003, // 0038 LDINT R17 4 + 0x0C402011, // 0039 DIV R16 R16 R17 + 0x902E2C10, // 003A SETMBR R11 K22 R16 + 0x8C400117, // 003B GETMET R16 R0 K23 + 0xB84A0000, // 003C GETNGBL R18 K0 + 0x88482513, // 003D GETMBR R18 R18 K19 + 0xB84E0000, // 003E GETNGBL R19 K0 + 0x884C2718, // 003F GETMBR R19 R19 K24 + 0x30482413, // 0040 OR R18 R18 R19 + 0x7C400400, // 0041 CALL R16 2 + 0x8C440119, // 0042 GETMET R17 R0 K25 + 0xB84E0000, // 0043 GETNGBL R19 K0 + 0x884C2713, // 0044 GETMBR R19 R19 K19 + 0xB8520000, // 0045 GETNGBL R20 K0 + 0x88502918, // 0046 GETMBR R20 R20 K24 + 0x304C2614, // 0047 OR R19 R19 R20 + 0x7C440400, // 0048 CALL R17 2 + 0x04480C09, // 0049 SUB R18 R6 R9 + 0x0C4C0F07, // 004A DIV R19 R7 K7 + 0x044C260A, // 004B SUB R19 R19 R10 + 0x60500009, // 004C GETGBL R20 G9 + 0x54560059, // 004D LDINT R21 90 + 0x8C58091A, // 004E GETMET R22 R4 K26 + 0x8C60091B, // 004F GETMET R24 R4 K27 + 0x6068000A, // 0050 GETGBL R26 G10 + 0x5C6C2600, // 0051 MOVE R27 R19 + 0x7C680200, // 0052 CALL R26 1 + 0x606C000A, // 0053 GETGBL R27 G10 + 0x5C702400, // 0054 MOVE R28 R18 + 0x7C6C0200, // 0055 CALL R27 1 + 0x0C68341B, // 0056 DIV R26 R26 R27 + 0x7C600400, // 0057 CALL R24 2 + 0x7C580400, // 0058 CALL R22 2 + 0x04542A16, // 0059 SUB R21 R21 R22 + 0x7C500200, // 005A CALL R20 1 + 0x5456002C, // 005B LDINT R21 45 + 0x24542815, // 005C GT R21 R20 R21 + 0x78560000, // 005D JMPF R21 #005F + 0x5452002C, // 005E LDINT R20 45 + 0x0C540F07, // 005F DIV R21 R7 K7 + 0x00541C15, // 0060 ADD R21 R14 R21 + 0x902E3815, // 0061 SETMBR R11 K28 R21 + 0x00541E06, // 0062 ADD R21 R15 R6 + 0x04542B15, // 0063 SUB R21 R21 K21 + 0x04542A0A, // 0064 SUB R21 R21 R10 + 0x902E3A15, // 0065 SETMBR R11 K29 R21 + 0x8854011F, // 0066 GETMBR R21 R0 K31 + 0x545A0018, // 0067 LDINT R22 25 + 0x28542A16, // 0068 GE R21 R21 R22 + 0x78560001, // 0069 JMPF R21 #006C + 0x5C542000, // 006A MOVE R21 R16 + 0x70020000, // 006B JMP #006D + 0x5C542200, // 006C MOVE R21 R17 + 0x902E3C15, // 006D SETMBR R11 K30 R21 + 0x00541208, // 006E ADD R21 R9 R8 + 0x08564215, // 006F MUL R21 K33 R21 + 0x00542A0A, // 0070 ADD R21 R21 R10 + 0x902E4015, // 0071 SETMBR R11 K32 R21 + 0x902E4521, // 0072 SETMBR R11 K34 K33 + 0x54560131, // 0073 LDINT R21 306 + 0x902E4615, // 0074 SETMBR R11 K35 R21 + 0xB8560000, // 0075 GETNGBL R21 K0 + 0x8C542B24, // 0076 GETMET R21 R21 K36 + 0x5C5C1A00, // 0077 MOVE R23 R13 + 0x5C601600, // 0078 MOVE R24 R11 + 0x7C540600, // 0079 CALL R21 3 + 0x00541208, // 007A ADD R21 R9 R8 + 0x08562A15, // 007B MUL R21 K21 R21 + 0x00542A0A, // 007C ADD R21 R21 R10 + 0x04542B15, // 007D SUB R21 R21 K21 + 0x902E4015, // 007E SETMBR R11 K32 R21 + 0x5456010D, // 007F LDINT R21 270 + 0x04542A14, // 0080 SUB R21 R21 R20 + 0x902E4415, // 0081 SETMBR R11 K34 R21 + 0x5456010D, // 0082 LDINT R21 270 + 0x00542A14, // 0083 ADD R21 R21 R20 + 0x902E4615, // 0084 SETMBR R11 K35 R21 + 0x8854011F, // 0085 GETMBR R21 R0 K31 + 0x545A0031, // 0086 LDINT R22 50 + 0x28542A16, // 0087 GE R21 R21 R22 + 0x78560001, // 0088 JMPF R21 #008B + 0x5C542000, // 0089 MOVE R21 R16 + 0x70020000, // 008A JMP #008C + 0x5C542200, // 008B MOVE R21 R17 + 0x902E3C15, // 008C SETMBR R11 K30 R21 + 0xB8560000, // 008D GETNGBL R21 K0 + 0x8C542B24, // 008E GETMET R21 R21 K36 + 0x5C5C1A00, // 008F MOVE R23 R13 + 0x5C601600, // 0090 MOVE R24 R11 + 0x7C540600, // 0091 CALL R21 3 + 0x00541208, // 0092 ADD R21 R9 R8 + 0x08560E15, // 0093 MUL R21 K7 R21 + 0x00542A0A, // 0094 ADD R21 R21 R10 + 0x04542B07, // 0095 SUB R21 R21 K7 + 0x902E4015, // 0096 SETMBR R11 K32 R21 + 0x5456010D, // 0097 LDINT R21 270 + 0x04542A14, // 0098 SUB R21 R21 R20 + 0x902E4415, // 0099 SETMBR R11 K34 R21 + 0x5456010D, // 009A LDINT R21 270 + 0x00542A14, // 009B ADD R21 R21 R20 + 0x902E4615, // 009C SETMBR R11 K35 R21 + 0x8854011F, // 009D GETMBR R21 R0 K31 + 0x545A004A, // 009E LDINT R22 75 + 0x28542A16, // 009F GE R21 R21 R22 + 0x78560001, // 00A0 JMPF R21 #00A3 + 0x5C542000, // 00A1 MOVE R21 R16 + 0x70020000, // 00A2 JMP #00A4 + 0x5C542200, // 00A3 MOVE R21 R17 + 0x902E3C15, // 00A4 SETMBR R11 K30 R21 + 0xB8560000, // 00A5 GETNGBL R21 K0 + 0x8C542B24, // 00A6 GETMET R21 R21 K36 + 0x5C5C1A00, // 00A7 MOVE R23 R13 + 0x5C601600, // 00A8 MOVE R24 R11 + 0x7C540600, // 00A9 CALL R21 3 + 0x80000000, // 00AA RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_percentage +********************************************************************/ +be_local_closure(lv_signal_arcs_get_percentage, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(percentage), + }), + be_str_weak(get_percentage), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(lv_signal_arcs_init, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(_lvgl), + /* K1 */ be_nested_str_weak(create_custom_widget), + /* K2 */ be_nested_str_weak(percentage), + /* K3 */ be_nested_str_weak(area), + /* K4 */ be_nested_str_weak(lv), + /* K5 */ be_nested_str_weak(arc_dsc), + /* K6 */ be_nested_str_weak(draw_arc_dsc), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0xB80A0000, // 0000 GETNGBL R2 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x5C140200, // 0003 MOVE R5 R1 + 0x7C080600, // 0004 CALL R2 3 + 0x540A0063, // 0005 LDINT R2 100 + 0x90020402, // 0006 SETMBR R0 K2 R2 + 0xB80A0800, // 0007 GETNGBL R2 K4 + 0x8C080503, // 0008 GETMET R2 R2 K3 + 0x7C080200, // 0009 CALL R2 1 + 0x90020602, // 000A SETMBR R0 K3 R2 + 0xB80A0800, // 000B GETNGBL R2 K4 + 0x8C080506, // 000C GETMET R2 R2 K6 + 0x7C080200, // 000D CALL R2 1 + 0x90020A02, // 000E SETMBR R0 K5 R2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: set_percentage ********************************************************************/ @@ -439,363 +769,22 @@ be_local_closure(lv_signal_arcs_set_percentage, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(lv_signal_arcs_init, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(_lvgl), - /* K1 */ be_nested_str_weak(create_custom_widget), - /* K2 */ be_nested_str_weak(percentage), - /* K3 */ be_nested_str_weak(p1), - /* K4 */ be_nested_str_weak(lv), - /* K5 */ be_nested_str_weak(point), - /* K6 */ be_nested_str_weak(p2), - /* K7 */ be_nested_str_weak(area), - /* K8 */ be_nested_str_weak(arc_dsc), - /* K9 */ be_nested_str_weak(draw_arc_dsc), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ - 0xB80A0000, // 0000 GETNGBL R2 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x5C140200, // 0003 MOVE R5 R1 - 0x7C080600, // 0004 CALL R2 3 - 0x540A0063, // 0005 LDINT R2 100 - 0x90020402, // 0006 SETMBR R0 K2 R2 - 0xB80A0800, // 0007 GETNGBL R2 K4 - 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 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: widget_event -********************************************************************/ -be_local_closure(lv_signal_arcs_widget_event, /* name */ - be_nested_proto( - 27, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_const_int(1), - }), - be_str_weak(atleast1), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x28040100, // 0000 GE R1 R0 K0 - 0x78060001, // 0001 JMPF R1 #0004 - 0x80040000, // 0002 RET 1 R0 - 0x70020000, // 0003 JMP #0005 - 0x80060000, // 0004 RET 1 K0 - 0x80000000, // 0005 RET 0 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[35]) { /* constants */ - /* K0 */ be_nested_str_weak(lv), - /* K1 */ be_nested_str_weak(obj_event_base), - /* K2 */ be_nested_str_weak(RES_OK), - /* K3 */ be_nested_str_weak(code), - /* K4 */ be_nested_str_weak(math), - /* K5 */ be_nested_str_weak(get_height), - /* K6 */ be_nested_str_weak(get_width), - /* K7 */ be_const_int(2), - /* K8 */ be_const_int(3), - /* K9 */ be_nested_str_weak(EVENT_DRAW_MAIN), - /* K10 */ be_nested_str_weak(draw_ctx), - /* K11 */ be_nested_str_weak(param), - /* K12 */ be_nested_str_weak(get_coords), - /* K13 */ be_nested_str_weak(area), - /* K14 */ be_nested_str_weak(x1), - /* K15 */ be_nested_str_weak(y1), - /* K16 */ be_nested_str_weak(draw_arc_dsc_init), - /* K17 */ be_nested_str_weak(arc_dsc), - /* K18 */ be_nested_str_weak(init_draw_arc_dsc), - /* K19 */ be_nested_str_weak(PART_MAIN), - /* K20 */ be_nested_str_weak(rounded), - /* K21 */ be_const_int(1), - /* K22 */ be_nested_str_weak(width), - /* K23 */ be_nested_str_weak(get_style_line_color), - /* K24 */ be_nested_str_weak(STATE_DEFAULT), - /* K25 */ be_nested_str_weak(get_style_bg_color), - /* K26 */ be_nested_str_weak(deg), - /* K27 */ be_nested_str_weak(acos), - /* K28 */ be_nested_str_weak(p1), - /* K29 */ be_nested_str_weak(x), - /* K30 */ be_nested_str_weak(y), - /* K31 */ be_nested_str_weak(color), - /* K32 */ be_nested_str_weak(percentage), - /* K33 */ be_nested_str_weak(draw_arc), - /* K34 */ be_const_int(0), - }), - be_str_weak(widget_event), - &be_const_str_solidified, - ( &(const binstruction[171]) { /* code */ - 0xB80E0000, // 0000 GETNGBL R3 K0 - 0x8C0C0701, // 0001 GETMET R3 R3 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x5C180400, // 0003 MOVE R6 R2 - 0x7C0C0600, // 0004 CALL R3 3 - 0xB8120000, // 0005 GETNGBL R4 K0 - 0x88100902, // 0006 GETMBR R4 R4 K2 - 0x200C0604, // 0007 NE R3 R3 R4 - 0x780E0000, // 0008 JMPF R3 #000A - 0x80000600, // 0009 RET 0 - 0x880C0503, // 000A GETMBR R3 R2 K3 - 0xA4120800, // 000B IMPORT R4 K4 - 0x84140000, // 000C CLOSURE R5 P0 - 0x8C180105, // 000D GETMET R6 R0 K5 - 0x7C180200, // 000E CALL R6 1 - 0x8C1C0106, // 000F GETMET R7 R0 K6 - 0x7C1C0200, // 0010 CALL R7 1 - 0x5C200A00, // 0011 MOVE R8 R5 - 0x54260007, // 0012 LDINT R9 8 - 0x0C240C09, // 0013 DIV R9 R6 R9 - 0x7C200200, // 0014 CALL R8 1 - 0x5C240A00, // 0015 MOVE R9 R5 - 0x08281107, // 0016 MUL R10 R8 K7 - 0x04280C0A, // 0017 SUB R10 R6 R10 - 0x0C281508, // 0018 DIV R10 R10 K8 - 0x7C240200, // 0019 CALL R9 1 - 0x0C281307, // 001A DIV R10 R9 K7 - 0xB82E0000, // 001B GETNGBL R11 K0 - 0x882C1709, // 001C GETMBR R11 R11 K9 - 0x1C2C060B, // 001D EQ R11 R3 R11 - 0x782E008A, // 001E JMPF R11 #00AA - 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 - 0x8838010D, // 0024 GETMBR R14 R0 K13 - 0x7C300400, // 0025 CALL R12 2 - 0x8830010D, // 0026 GETMBR R12 R0 K13 - 0x8830190E, // 0027 GETMBR R12 R12 K14 - 0x8834010D, // 0028 GETMBR R13 R0 K13 - 0x88341B0F, // 0029 GETMBR R13 R13 K15 - 0xB83A0000, // 002A GETNGBL R14 K0 - 0x8C381D10, // 002B GETMET R14 R14 K16 - 0x88400111, // 002C GETMBR R16 R0 K17 - 0x7C380400, // 002D CALL R14 2 - 0x8C380112, // 002E GETMET R14 R0 K18 - 0xB8420000, // 002F GETNGBL R16 K0 - 0x88402113, // 0030 GETMBR R16 R16 K19 - 0x88440111, // 0031 GETMBR R17 R0 K17 - 0x7C380600, // 0032 CALL R14 3 - 0x88380111, // 0033 GETMBR R14 R0 K17 - 0x903A2915, // 0034 SETMBR R14 K20 K21 - 0x88380111, // 0035 GETMBR R14 R0 K17 - 0x083C1308, // 0036 MUL R15 R9 K8 - 0x003C1F15, // 0037 ADD R15 R15 K21 - 0x54420003, // 0038 LDINT R16 4 - 0x0C3C1E10, // 0039 DIV R15 R15 R16 - 0x903A2C0F, // 003A SETMBR R14 K22 R15 - 0x8C380117, // 003B GETMET R14 R0 K23 - 0xB8420000, // 003C GETNGBL R16 K0 - 0x88402113, // 003D GETMBR R16 R16 K19 - 0xB8460000, // 003E GETNGBL R17 K0 - 0x88442318, // 003F GETMBR R17 R17 K24 - 0x30402011, // 0040 OR R16 R16 R17 - 0x7C380400, // 0041 CALL R14 2 - 0x8C3C0119, // 0042 GETMET R15 R0 K25 - 0xB8460000, // 0043 GETNGBL R17 K0 - 0x88442313, // 0044 GETMBR R17 R17 K19 - 0xB84A0000, // 0045 GETNGBL R18 K0 - 0x88482518, // 0046 GETMBR R18 R18 K24 - 0x30442212, // 0047 OR R17 R17 R18 - 0x7C3C0400, // 0048 CALL R15 2 - 0x04400C09, // 0049 SUB R16 R6 R9 - 0x0C440F07, // 004A DIV R17 R7 K7 - 0x0444220A, // 004B SUB R17 R17 R10 - 0x60480009, // 004C GETGBL R18 G9 - 0x544E0059, // 004D LDINT R19 90 - 0x8C50091A, // 004E GETMET R20 R4 K26 - 0x8C58091B, // 004F GETMET R22 R4 K27 - 0x6060000A, // 0050 GETGBL R24 G10 - 0x5C642200, // 0051 MOVE R25 R17 - 0x7C600200, // 0052 CALL R24 1 - 0x6064000A, // 0053 GETGBL R25 G10 - 0x5C682000, // 0054 MOVE R26 R16 - 0x7C640200, // 0055 CALL R25 1 - 0x0C603019, // 0056 DIV R24 R24 R25 - 0x7C580400, // 0057 CALL R22 2 - 0x7C500400, // 0058 CALL R20 2 - 0x044C2614, // 0059 SUB R19 R19 R20 - 0x7C480200, // 005A CALL R18 1 - 0x544E002C, // 005B LDINT R19 45 - 0x244C2413, // 005C GT R19 R18 R19 - 0x784E0000, // 005D JMPF R19 #005F - 0x544A002C, // 005E LDINT R18 45 - 0x884C011C, // 005F GETMBR R19 R0 K28 - 0x0C500F07, // 0060 DIV R20 R7 K7 - 0x00501814, // 0061 ADD R20 R12 R20 - 0x904E3A14, // 0062 SETMBR R19 K29 R20 - 0x884C011C, // 0063 GETMBR R19 R0 K28 - 0x00501A06, // 0064 ADD R20 R13 R6 - 0x04502915, // 0065 SUB R20 R20 K21 - 0x0450280A, // 0066 SUB R20 R20 R10 - 0x904E3C14, // 0067 SETMBR R19 K30 R20 - 0x884C0111, // 0068 GETMBR R19 R0 K17 - 0x88500120, // 0069 GETMBR R20 R0 K32 - 0x54560018, // 006A LDINT R21 25 - 0x28502815, // 006B GE R20 R20 R21 - 0x78520001, // 006C JMPF R20 #006F - 0x5C501C00, // 006D MOVE R20 R14 - 0x70020000, // 006E JMP #0070 - 0x5C501E00, // 006F MOVE R20 R15 - 0x904E3E14, // 0070 SETMBR R19 K31 R20 - 0xB84E0000, // 0071 GETNGBL R19 K0 - 0x8C4C2721, // 0072 GETMET R19 R19 K33 - 0x5C541600, // 0073 MOVE R21 R11 - 0x88580111, // 0074 GETMBR R22 R0 K17 - 0x885C011C, // 0075 GETMBR R23 R0 K28 - 0x00601208, // 0076 ADD R24 R9 R8 - 0x08624418, // 0077 MUL R24 K34 R24 - 0x0060300A, // 0078 ADD R24 R24 R10 - 0x58640022, // 0079 LDCONST R25 K34 - 0x546A0167, // 007A LDINT R26 360 - 0x7C4C0E00, // 007B CALL R19 7 - 0x884C0111, // 007C GETMBR R19 R0 K17 - 0x88500120, // 007D GETMBR R20 R0 K32 - 0x54560031, // 007E LDINT R21 50 - 0x28502815, // 007F GE R20 R20 R21 - 0x78520001, // 0080 JMPF R20 #0083 - 0x5C501C00, // 0081 MOVE R20 R14 - 0x70020000, // 0082 JMP #0084 - 0x5C501E00, // 0083 MOVE R20 R15 - 0x904E3E14, // 0084 SETMBR R19 K31 R20 - 0xB84E0000, // 0085 GETNGBL R19 K0 - 0x8C4C2721, // 0086 GETMET R19 R19 K33 - 0x5C541600, // 0087 MOVE R21 R11 - 0x88580111, // 0088 GETMBR R22 R0 K17 - 0x885C011C, // 0089 GETMBR R23 R0 K28 - 0x00601208, // 008A ADD R24 R9 R8 - 0x08622A18, // 008B MUL R24 K21 R24 - 0x0060300A, // 008C ADD R24 R24 R10 - 0x04603115, // 008D SUB R24 R24 K21 - 0x5466010D, // 008E LDINT R25 270 - 0x04643212, // 008F SUB R25 R25 R18 - 0x546A010D, // 0090 LDINT R26 270 - 0x00683412, // 0091 ADD R26 R26 R18 - 0x7C4C0E00, // 0092 CALL R19 7 - 0x884C0111, // 0093 GETMBR R19 R0 K17 - 0x88500120, // 0094 GETMBR R20 R0 K32 - 0x5456004A, // 0095 LDINT R21 75 - 0x28502815, // 0096 GE R20 R20 R21 - 0x78520001, // 0097 JMPF R20 #009A - 0x5C501C00, // 0098 MOVE R20 R14 - 0x70020000, // 0099 JMP #009B - 0x5C501E00, // 009A MOVE R20 R15 - 0x904E3E14, // 009B SETMBR R19 K31 R20 - 0xB84E0000, // 009C GETNGBL R19 K0 - 0x8C4C2721, // 009D GETMET R19 R19 K33 - 0x5C541600, // 009E MOVE R21 R11 - 0x88580111, // 009F GETMBR R22 R0 K17 - 0x885C011C, // 00A0 GETMBR R23 R0 K28 - 0x00601208, // 00A1 ADD R24 R9 R8 - 0x08620E18, // 00A2 MUL R24 K7 R24 - 0x0060300A, // 00A3 ADD R24 R24 R10 - 0x04603107, // 00A4 SUB R24 R24 K7 - 0x5466010D, // 00A5 LDINT R25 270 - 0x04643212, // 00A6 SUB R25 R25 R18 - 0x546A010D, // 00A7 LDINT R26 270 - 0x00683412, // 00A8 ADD R26 R26 R18 - 0x7C4C0E00, // 00A9 CALL R19 7 - 0x80000000, // 00AA RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_percentage -********************************************************************/ -be_local_closure(lv_signal_arcs_get_percentage, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(percentage), - }), - be_str_weak(get_percentage), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified class: lv_signal_arcs ********************************************************************/ extern const bclass be_class_lv_obj; be_local_class(lv_signal_arcs, - 5, + 3, &be_class_lv_obj, - be_nested_map(9, + be_nested_map(7, ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(widget_event, 2), be_const_closure(lv_signal_arcs_widget_event_closure) }, + { be_const_key_weak(get_percentage, 3), be_const_closure(lv_signal_arcs_get_percentage_closure) }, + { be_const_key_weak(set_percentage, 6), be_const_closure(lv_signal_arcs_set_percentage_closure) }, + { be_const_key_weak(arc_dsc, -1), be_const_var(2) }, { be_const_key_weak(percentage, -1), be_const_var(0) }, - { be_const_key_weak(area, 4), be_const_var(3) }, - { be_const_key_weak(p2, -1), be_const_var(2) }, - { be_const_key_weak(get_percentage, -1), be_const_closure(lv_signal_arcs_get_percentage_closure) }, - { be_const_key_weak(p1, -1), be_const_var(1) }, - { be_const_key_weak(arc_dsc, -1), be_const_var(4) }, - { be_const_key_weak(init, 5), be_const_closure(lv_signal_arcs_init_closure) }, - { be_const_key_weak(widget_event, -1), be_const_closure(lv_signal_arcs_widget_event_closure) }, - { be_const_key_weak(set_percentage, 3), be_const_closure(lv_signal_arcs_set_percentage_closure) }, + { be_const_key_weak(init, -1), be_const_closure(lv_signal_arcs_init_closure) }, + { be_const_key_weak(area, -1), be_const_var(1) }, })), be_str_weak(lv_signal_arcs) ); @@ -1140,57 +1129,26 @@ be_local_closure(lv_signal_bars_set_percentage, /* name */ /******************************************************************** -** Solidified function: init +** Solidified function: get_percentage ********************************************************************/ -be_local_closure(lv_signal_bars_init, /* name */ +be_local_closure(lv_signal_bars_get_percentage, /* name */ be_nested_proto( - 6, /* nstack */ - 2, /* argc */ + 2, /* nstack */ + 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(_lvgl), - /* K1 */ be_nested_str_weak(create_custom_widget), - /* K2 */ be_nested_str_weak(percentage), - /* K3 */ be_nested_str_weak(p1), - /* K4 */ be_nested_str_weak(lv), - /* K5 */ be_nested_str_weak(point), - /* K6 */ be_nested_str_weak(p2), - /* K7 */ be_nested_str_weak(area), - /* K8 */ be_nested_str_weak(line_dsc), - /* K9 */ be_nested_str_weak(draw_line_dsc), + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(percentage), }), - be_str_weak(init), + be_str_weak(get_percentage), &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ - 0xB80A0000, // 0000 GETNGBL R2 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x5C140200, // 0003 MOVE R5 R1 - 0x7C080600, // 0004 CALL R2 3 - 0x540A0063, // 0005 LDINT R2 100 - 0x90020402, // 0006 SETMBR R0 K2 R2 - 0xB80A0800, // 0007 GETNGBL R2 K4 - 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 + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 }) ) ); @@ -1234,24 +1192,24 @@ be_local_closure(lv_signal_bars_widget_event, /* name */ ), }), 1, /* has constants */ - ( &(const bvalue[38]) { /* constants */ + ( &(const bvalue[35]) { /* constants */ /* K0 */ be_nested_str_weak(lv), /* K1 */ be_nested_str_weak(obj_event_base), /* K2 */ be_nested_str_weak(RES_OK), - /* K3 */ be_nested_str_weak(code), + /* K3 */ be_nested_str_weak(get_code), /* K4 */ be_nested_str_weak(get_height), /* K5 */ be_nested_str_weak(get_width), /* K6 */ be_const_int(3), /* K7 */ be_const_int(2), /* K8 */ be_nested_str_weak(EVENT_DRAW_MAIN), - /* K9 */ be_nested_str_weak(draw_ctx), - /* K10 */ be_nested_str_weak(param), - /* K11 */ be_nested_str_weak(get_coords), - /* K12 */ be_nested_str_weak(area), - /* K13 */ be_nested_str_weak(x1), - /* K14 */ be_nested_str_weak(y1), - /* K15 */ be_nested_str_weak(draw_line_dsc_init), - /* K16 */ be_nested_str_weak(line_dsc), + /* K9 */ be_nested_str_weak(line_dsc), + /* K10 */ be_nested_str_weak(get_param), + /* K11 */ be_nested_str_weak(get_layer), + /* K12 */ be_nested_str_weak(get_coords), + /* K13 */ be_nested_str_weak(area), + /* K14 */ be_nested_str_weak(x1), + /* K15 */ be_nested_str_weak(y1), + /* K16 */ be_nested_str_weak(draw_line_dsc_init), /* K17 */ be_nested_str_weak(init_draw_line_dsc), /* K18 */ be_nested_str_weak(PART_MAIN), /* K19 */ be_nested_str_weak(round_start), @@ -1261,22 +1219,19 @@ be_local_closure(lv_signal_bars_widget_event, /* name */ /* K23 */ be_nested_str_weak(get_style_line_color), /* K24 */ be_nested_str_weak(STATE_DEFAULT), /* K25 */ be_nested_str_weak(get_style_bg_color), - /* K26 */ be_nested_str_weak(event_send), - /* K27 */ be_nested_str_weak(EVENT_DRAW_PART_BEGIN), - /* K28 */ be_const_int(0), - /* K29 */ be_nested_str_weak(color), - /* K30 */ be_nested_str_weak(percentage), - /* K31 */ be_nested_str_weak(p1), - /* K32 */ be_nested_str_weak(y), - /* K33 */ be_nested_str_weak(x), - /* K34 */ be_nested_str_weak(p2), - /* K35 */ be_nested_str_weak(draw_line), - /* K36 */ be_nested_str_weak(stop_iteration), - /* K37 */ be_nested_str_weak(EVENT_DRAW_PART_END), + /* K26 */ be_const_int(0), + /* K27 */ be_nested_str_weak(color), + /* K28 */ be_nested_str_weak(percentage), + /* K29 */ be_nested_str_weak(p1_y), + /* K30 */ be_nested_str_weak(p1_x), + /* K31 */ be_nested_str_weak(p2_y), + /* K32 */ be_nested_str_weak(p2_x), + /* K33 */ be_nested_str_weak(draw_line), + /* K34 */ be_nested_str_weak(stop_iteration), }), be_str_weak(widget_event), &be_const_str_solidified, - ( &(const binstruction[138]) { /* code */ + ( &(const binstruction[115]) { /* code */ 0xB80E0000, // 0000 GETNGBL R3 K0 0x8C0C0701, // 0001 GETMET R3 R3 K1 0x5C140200, // 0002 MOVE R5 R1 @@ -1287,134 +1242,111 @@ be_local_closure(lv_signal_bars_widget_event, /* name */ 0x200C0604, // 0007 NE R3 R3 R4 0x780E0000, // 0008 JMPF R3 #000A 0x80000600, // 0009 RET 0 - 0x880C0503, // 000A GETMBR R3 R2 K3 - 0x84100000, // 000B CLOSURE R4 P0 - 0x8C140104, // 000C GETMET R5 R0 K4 - 0x7C140200, // 000D CALL R5 1 - 0x8C180105, // 000E GETMET R6 R0 K5 - 0x7C180200, // 000F CALL R6 1 - 0x5C1C0800, // 0010 MOVE R7 R4 - 0x5422000E, // 0011 LDINT R8 15 - 0x0C200C08, // 0012 DIV R8 R6 R8 - 0x7C1C0200, // 0013 CALL R7 1 - 0x5C200800, // 0014 MOVE R8 R4 - 0x08240F06, // 0015 MUL R9 R7 K6 - 0x04240C09, // 0016 SUB R9 R6 R9 - 0x542A0003, // 0017 LDINT R10 4 - 0x0C24120A, // 0018 DIV R9 R9 R10 - 0x7C200200, // 0019 CALL R8 1 - 0x0C241107, // 001A DIV R9 R8 K7 - 0xB82A0000, // 001B GETNGBL R10 K0 - 0x88281508, // 001C GETMBR R10 R10 K8 - 0x1C28060A, // 001D EQ R10 R3 R10 - 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 - 0x8834010C, // 0024 GETMBR R13 R0 K12 - 0x7C2C0400, // 0025 CALL R11 2 - 0x882C010C, // 0026 GETMBR R11 R0 K12 - 0x882C170D, // 0027 GETMBR R11 R11 K13 - 0x8830010C, // 0028 GETMBR R12 R0 K12 - 0x8830190E, // 0029 GETMBR R12 R12 K14 - 0xB8360000, // 002A GETNGBL R13 K0 - 0x8C341B0F, // 002B GETMET R13 R13 K15 - 0x883C0110, // 002C GETMBR R15 R0 K16 - 0x7C340400, // 002D CALL R13 2 - 0x8C340111, // 002E GETMET R13 R0 K17 - 0xB83E0000, // 002F GETNGBL R15 K0 - 0x883C1F12, // 0030 GETMBR R15 R15 K18 - 0x88400110, // 0031 GETMBR R16 R0 K16 - 0x7C340600, // 0032 CALL R13 3 - 0x88340110, // 0033 GETMBR R13 R0 K16 - 0x90362714, // 0034 SETMBR R13 K19 K20 - 0x88340110, // 0035 GETMBR R13 R0 K16 - 0x90362B14, // 0036 SETMBR R13 K21 K20 - 0x88340110, // 0037 GETMBR R13 R0 K16 - 0x90362C08, // 0038 SETMBR R13 K22 R8 - 0x8C340117, // 0039 GETMET R13 R0 K23 - 0xB83E0000, // 003A GETNGBL R15 K0 - 0x883C1F12, // 003B GETMBR R15 R15 K18 - 0xB8420000, // 003C GETNGBL R16 K0 - 0x88402118, // 003D GETMBR R16 R16 K24 - 0x303C1E10, // 003E OR R15 R15 R16 - 0x7C340400, // 003F CALL R13 2 - 0x8C380119, // 0040 GETMET R14 R0 K25 - 0xB8420000, // 0041 GETNGBL R16 K0 - 0x88402112, // 0042 GETMBR R16 R16 K18 - 0xB8460000, // 0043 GETNGBL R17 K0 - 0x88442318, // 0044 GETMBR R17 R17 K24 - 0x30402011, // 0045 OR R16 R16 R17 - 0x7C380400, // 0046 CALL R14 2 - 0xB83E0000, // 0047 GETNGBL R15 K0 - 0x8C3C1F1A, // 0048 GETMET R15 R15 K26 - 0x5C440000, // 0049 MOVE R17 R0 - 0xB84A0000, // 004A GETNGBL R18 K0 - 0x8848251B, // 004B GETMBR R18 R18 K27 - 0x884C0110, // 004C GETMBR R19 R0 K16 - 0x7C3C0800, // 004D CALL R15 4 - 0x603C0010, // 004E GETGBL R15 G16 - 0x40423906, // 004F CONNECT R16 K28 K6 - 0x7C3C0200, // 0050 CALL R15 1 - 0xA802002C, // 0051 EXBLK 0 #007F - 0x5C401E00, // 0052 MOVE R16 R15 - 0x7C400000, // 0053 CALL R16 0 - 0x88440110, // 0054 GETMBR R17 R0 K16 - 0x8848011E, // 0055 GETMBR R18 R0 K30 - 0x004C2114, // 0056 ADD R19 R16 K20 - 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 - 0x90463A12, // 005E SETMBR R17 K29 R18 - 0x8844011F, // 005F GETMBR R17 R0 K31 - 0x00481805, // 0060 ADD R18 R12 R5 - 0x04482514, // 0061 SUB R18 R18 K20 - 0x04482409, // 0062 SUB R18 R18 R9 - 0x90464012, // 0063 SETMBR R17 K32 R18 - 0x8844011F, // 0064 GETMBR R17 R0 K31 - 0x00481007, // 0065 ADD R18 R8 R7 - 0x08482012, // 0066 MUL R18 R16 R18 - 0x00481612, // 0067 ADD R18 R11 R18 - 0x00482409, // 0068 ADD R18 R18 R9 - 0x90464212, // 0069 SETMBR R17 K33 R18 - 0x88440122, // 006A GETMBR R17 R0 K34 - 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 - 0x90464012, // 0072 SETMBR R17 K32 R18 - 0x88440122, // 0073 GETMBR R17 R0 K34 - 0x8848011F, // 0074 GETMBR R18 R0 K31 - 0x88482521, // 0075 GETMBR R18 R18 K33 - 0x90464212, // 0076 SETMBR R17 K33 R18 - 0xB8460000, // 0077 GETNGBL R17 K0 - 0x8C442323, // 0078 GETMET R17 R17 K35 - 0x5C4C1400, // 0079 MOVE R19 R10 - 0x88500110, // 007A GETMBR R20 R0 K16 - 0x8854011F, // 007B GETMBR R21 R0 K31 - 0x88580122, // 007C GETMBR R22 R0 K34 - 0x7C440A00, // 007D CALL R17 5 - 0x7001FFD2, // 007E JMP #0052 - 0x583C0024, // 007F LDCONST R15 K36 - 0xAC3C0200, // 0080 CATCH R15 1 0 - 0xB0080000, // 0081 RAISE 2 R0 R0 - 0xB83E0000, // 0082 GETNGBL R15 K0 - 0x8C3C1F1A, // 0083 GETMET R15 R15 K26 - 0x5C440000, // 0084 MOVE R17 R0 - 0xB84A0000, // 0085 GETNGBL R18 K0 - 0x88482525, // 0086 GETMBR R18 R18 K37 - 0x884C0110, // 0087 GETMBR R19 R0 K16 - 0x7C3C0800, // 0088 CALL R15 4 - 0x80000000, // 0089 RET 0 + 0x8C0C0503, // 000A GETMET R3 R2 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x84100000, // 000C CLOSURE R4 P0 + 0x8C140104, // 000D GETMET R5 R0 K4 + 0x7C140200, // 000E CALL R5 1 + 0x8C180105, // 000F GETMET R6 R0 K5 + 0x7C180200, // 0010 CALL R6 1 + 0x5C1C0800, // 0011 MOVE R7 R4 + 0x5422000E, // 0012 LDINT R8 15 + 0x0C200C08, // 0013 DIV R8 R6 R8 + 0x7C1C0200, // 0014 CALL R7 1 + 0x5C200800, // 0015 MOVE R8 R4 + 0x08240F06, // 0016 MUL R9 R7 K6 + 0x04240C09, // 0017 SUB R9 R6 R9 + 0x542A0003, // 0018 LDINT R10 4 + 0x0C24120A, // 0019 DIV R9 R9 R10 + 0x7C200200, // 001A CALL R8 1 + 0x0C241107, // 001B DIV R9 R8 K7 + 0xB82A0000, // 001C GETNGBL R10 K0 + 0x88281508, // 001D GETMBR R10 R10 K8 + 0x1C28060A, // 001E EQ R10 R3 R10 + 0x782A0051, // 001F JMPF R10 #0072 + 0x88280109, // 0020 GETMBR R10 R0 K9 + 0x8C2C050A, // 0021 GETMET R11 R2 K10 + 0x7C2C0200, // 0022 CALL R11 1 + 0x8C30050B, // 0023 GETMET R12 R2 K11 + 0x7C300200, // 0024 CALL R12 1 + 0x8C34010C, // 0025 GETMET R13 R0 K12 + 0x883C010D, // 0026 GETMBR R15 R0 K13 + 0x7C340400, // 0027 CALL R13 2 + 0x8834010D, // 0028 GETMBR R13 R0 K13 + 0x88341B0E, // 0029 GETMBR R13 R13 K14 + 0x8838010D, // 002A GETMBR R14 R0 K13 + 0x88381D0F, // 002B GETMBR R14 R14 K15 + 0xB83E0000, // 002C GETNGBL R15 K0 + 0x8C3C1F10, // 002D GETMET R15 R15 K16 + 0x5C441400, // 002E MOVE R17 R10 + 0x7C3C0400, // 002F CALL R15 2 + 0x8C3C0111, // 0030 GETMET R15 R0 K17 + 0xB8460000, // 0031 GETNGBL R17 K0 + 0x88442312, // 0032 GETMBR R17 R17 K18 + 0x5C481400, // 0033 MOVE R18 R10 + 0x7C3C0600, // 0034 CALL R15 3 + 0x902A2714, // 0035 SETMBR R10 K19 K20 + 0x902A2B14, // 0036 SETMBR R10 K21 K20 + 0x902A2C08, // 0037 SETMBR R10 K22 R8 + 0x8C3C0117, // 0038 GETMET R15 R0 K23 + 0xB8460000, // 0039 GETNGBL R17 K0 + 0x88442312, // 003A GETMBR R17 R17 K18 + 0xB84A0000, // 003B GETNGBL R18 K0 + 0x88482518, // 003C GETMBR R18 R18 K24 + 0x30442212, // 003D OR R17 R17 R18 + 0x7C3C0400, // 003E CALL R15 2 + 0x8C400119, // 003F GETMET R16 R0 K25 + 0xB84A0000, // 0040 GETNGBL R18 K0 + 0x88482512, // 0041 GETMBR R18 R18 K18 + 0xB84E0000, // 0042 GETNGBL R19 K0 + 0x884C2718, // 0043 GETMBR R19 R19 K24 + 0x30482413, // 0044 OR R18 R18 R19 + 0x7C400400, // 0045 CALL R16 2 + 0x60440010, // 0046 GETGBL R17 G16 + 0x404A3506, // 0047 CONNECT R18 K26 K6 + 0x7C440200, // 0048 CALL R17 1 + 0xA8020024, // 0049 EXBLK 0 #006F + 0x5C482200, // 004A MOVE R18 R17 + 0x7C480000, // 004B CALL R18 0 + 0x884C011C, // 004C GETMBR R19 R0 K28 + 0x00502514, // 004D ADD R20 R18 K20 + 0x54560013, // 004E LDINT R21 20 + 0x08502815, // 004F MUL R20 R20 R21 + 0x284C2614, // 0050 GE R19 R19 R20 + 0x784E0001, // 0051 JMPF R19 #0054 + 0x5C4C1E00, // 0052 MOVE R19 R15 + 0x70020000, // 0053 JMP #0055 + 0x5C4C2000, // 0054 MOVE R19 R16 + 0x902A3613, // 0055 SETMBR R10 K27 R19 + 0x004C1C05, // 0056 ADD R19 R14 R5 + 0x044C2714, // 0057 SUB R19 R19 K20 + 0x044C2609, // 0058 SUB R19 R19 R9 + 0x902A3A13, // 0059 SETMBR R10 K29 R19 + 0x004C1007, // 005A ADD R19 R8 R7 + 0x084C2413, // 005B MUL R19 R18 R19 + 0x004C1A13, // 005C ADD R19 R13 R19 + 0x004C2609, // 005D ADD R19 R19 R9 + 0x902A3C13, // 005E SETMBR R10 K30 R19 + 0x044E0C12, // 005F SUB R19 K6 R18 + 0x04500A08, // 0060 SUB R20 R5 R8 + 0x084C2614, // 0061 MUL R19 R19 R20 + 0x54520003, // 0062 LDINT R20 4 + 0x0C4C2614, // 0063 DIV R19 R19 R20 + 0x004C1C13, // 0064 ADD R19 R14 R19 + 0x004C2609, // 0065 ADD R19 R19 R9 + 0x902A3E13, // 0066 SETMBR R10 K31 R19 + 0x884C151E, // 0067 GETMBR R19 R10 K30 + 0x902A4013, // 0068 SETMBR R10 K32 R19 + 0xB84E0000, // 0069 GETNGBL R19 K0 + 0x8C4C2721, // 006A GETMET R19 R19 K33 + 0x5C541800, // 006B MOVE R21 R12 + 0x5C581400, // 006C MOVE R22 R10 + 0x7C4C0600, // 006D CALL R19 3 + 0x7001FFDA, // 006E JMP #004A + 0x58440022, // 006F LDCONST R17 K34 + 0xAC440200, // 0070 CATCH R17 1 0 + 0xB0080000, // 0071 RAISE 2 R0 R0 + 0x80000000, // 0072 RET 0 }) ) ); @@ -1422,26 +1354,46 @@ be_local_closure(lv_signal_bars_widget_event, /* name */ /******************************************************************** -** Solidified function: get_percentage +** Solidified function: init ********************************************************************/ -be_local_closure(lv_signal_bars_get_percentage, /* name */ +be_local_closure(lv_signal_bars_init, /* name */ be_nested_proto( - 2, /* nstack */ - 1, /* argc */ + 6, /* nstack */ + 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(percentage), + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(_lvgl), + /* K1 */ be_nested_str_weak(create_custom_widget), + /* K2 */ be_nested_str_weak(percentage), + /* K3 */ be_nested_str_weak(area), + /* K4 */ be_nested_str_weak(lv), + /* K5 */ be_nested_str_weak(line_dsc), + /* K6 */ be_nested_str_weak(draw_line_dsc), }), - be_str_weak(get_percentage), + be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 + ( &(const binstruction[16]) { /* code */ + 0xB80A0000, // 0000 GETNGBL R2 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x5C140200, // 0003 MOVE R5 R1 + 0x7C080600, // 0004 CALL R2 3 + 0x540A0063, // 0005 LDINT R2 100 + 0x90020402, // 0006 SETMBR R0 K2 R2 + 0xB80A0800, // 0007 GETNGBL R2 K4 + 0x8C080503, // 0008 GETMET R2 R2 K3 + 0x7C080200, // 0009 CALL R2 1 + 0x90020602, // 000A SETMBR R0 K3 R2 + 0xB80A0800, // 000B GETNGBL R2 K4 + 0x8C080506, // 000C GETMET R2 R2 K6 + 0x7C080200, // 000D CALL R2 1 + 0x90020A02, // 000E SETMBR R0 K5 R2 + 0x80000000, // 000F RET 0 }) ) ); @@ -1453,19 +1405,17 @@ be_local_closure(lv_signal_bars_get_percentage, /* name */ ********************************************************************/ extern const bclass be_class_lv_obj; be_local_class(lv_signal_bars, - 5, + 3, &be_class_lv_obj, - be_nested_map(9, + be_nested_map(7, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(percentage, 4), be_const_var(0) }, - { be_const_key_weak(p1, 5), be_const_var(1) }, - { be_const_key_weak(p2, -1), be_const_var(2) }, + { be_const_key_weak(set_percentage, 3), be_const_closure(lv_signal_bars_set_percentage_closure) }, { be_const_key_weak(get_percentage, -1), be_const_closure(lv_signal_bars_get_percentage_closure) }, - { be_const_key_weak(line_dsc, -1), be_const_var(4) }, - { be_const_key_weak(area, -1), be_const_var(3) }, + { be_const_key_weak(percentage, -1), be_const_var(0) }, + { be_const_key_weak(area, 6), be_const_var(1) }, + { be_const_key_weak(line_dsc, 2), be_const_var(2) }, { be_const_key_weak(init, -1), be_const_closure(lv_signal_bars_init_closure) }, { be_const_key_weak(widget_event, -1), be_const_closure(lv_signal_bars_widget_event_closure) }, - { be_const_key_weak(set_percentage, 3), be_const_closure(lv_signal_bars_set_percentage_closure) }, })), be_str_weak(lv_signal_bars) ); diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/Adafruit_LvGL_Glue.cpp b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/Adafruit_LvGL_Glue.cpp deleted file mode 100755 index 2e433ee9e..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/Adafruit_LvGL_Glue.cpp +++ /dev/null @@ -1,267 +0,0 @@ -#include "Adafruit_LvGL_Glue.h" -#include -#include "lv_berry.h" - -// ARCHITECTURE-SPECIFIC TIMER STUFF --------------------------------------- - -extern void lv_flush_callback(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p); - -// Tick interval for LittlevGL internal timekeeping; 1 to 10 ms recommended -static const int lv_tick_interval_ms = 5; - -static void lv_tick_handler(void) { lv_tick_inc(lv_tick_interval_ms); } - -// TOUCHSCREEN STUFF ------------------------------------------------------- - - -uint32_t Touch_Status(int32_t sel); - -static void touchscreen_read(lv_indev_drv_t *indev_drv, lv_indev_data_t *data) { - data->point.x = Touch_Status(1); // Last-pressed coordinates - data->point.y = Touch_Status(2); - data->state = Touch_Status(0) ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED; - data->continue_reading = false; /*No buffering now so no more data read*/ - // keep data for TS calibration - lv_ts_calibration.state = data->state; - if (data->state == LV_INDEV_STATE_PRESSED) { // if not pressed, the data may be invalid - lv_ts_calibration.x = data->point.x; - lv_ts_calibration.y = data->point.y; - lv_ts_calibration.raw_x = Touch_Status(-1); - lv_ts_calibration.raw_y = Touch_Status(-2); - } -} - -// OTHER LITTLEVGL VITALS -------------------------------------------------- - -#if LV_COLOR_DEPTH != 16 -#pragma error("LV_COLOR_DEPTH must be 16") -#endif -// This isn't necessarily true, don't mention it for now. See notes later. -//#if LV_COLOR_16_SWAP != 0 -// #pragma message("Set LV_COLOR_16_SWAP to 0 for best display performance") -//#endif - -// Actual RAM usage will be 2X these figures, since using 2 DMA buffers... -#define LV_BUFFER_ROWS 60 // Most others have a bit more space - - -// // This is the flush function required for LittlevGL screen updates. -// // It receives a bounding rect and an array of pixel data (conveniently -// // already in 565 format, so the Earth was lucky there). -// static void lv_flush_callback(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p) { -// // Get pointer to glue object from indev user data -// Adafruit_LvGL_Glue *glue = (Adafruit_LvGL_Glue *)disp->user_data; - -// uint16_t width = (area->x2 - area->x1 + 1); -// uint16_t height = (area->y2 - area->y1 + 1); - -// // check if we are currently doing a screenshot -// if (glue->getScreenshotFile() != nullptr) { -// // save pixels to file -// int32_t btw = (width * height * LV_COLOR_DEPTH + 7) / 8; -// while (btw > 0) { -// int32_t ret = glue->getScreenshotFile()->write((const uint8_t*) color_p, btw); -// if (ret >= 0) { -// btw -= ret; -// } else { -// btw = 0; // abort -// } -// } -// lv_disp_flush_ready(disp); -// return; // ok -// // } - -// Renderer *display = glue->display; - -// if (!glue->first_frame) { -// //display->dmaWait(); // Wait for prior DMA transfer to complete -// //display->endWrite(); // End transaction from any prior call -// } else { -// glue->first_frame = false; -// } - -// display->setAddrWindow(area->x1, area->y1, area->x1+width, area->y1+height); -// display->pushColors((uint16_t *)color_p, width * height, true); -// display->setAddrWindow(0,0,0,0); - -// lv_disp_flush_ready(disp); - -// } - -// #if (LV_USE_LOG) -// // Optional LittlevGL debug print function, writes to Serial if debug is -// // enabled when calling glue begin() function. -// static void lv_debug(lv_log_level_t level, const char *file, uint32_t line, const char *fname, -// const char *dsc) { -// Serial.print(file); -// Serial.write('@'); -// Serial.print(line); -// Serial.print(":"); -// Serial.print(fname); -// Serial.write("->"); -// Serial.println(dsc); -// } -// #endif - - -// GLUE LIB FUNCTIONS ------------------------------------------------------ - -// Constructor -/** - * @brief Construct a new Adafruit_LvGL_Glue::Adafruit_LvGL_Glue object, - * initializing minimal variables - * - */ -Adafruit_LvGL_Glue::Adafruit_LvGL_Glue(void) - : first_frame(true), lv_pixel_buf(NULL) { -} - -// Destructor -/** - * @brief Destroy the Adafruit_LvGL_Glue::Adafruit_LvGL_Glue object, freeing any - * memory previously allocated within this library. - * - */ -Adafruit_LvGL_Glue::~Adafruit_LvGL_Glue(void) { - delete[] lv_pixel_buf; - // Probably other stuff that could be deallocated here -} - -// begin() function is overloaded for STMPE610 touch, ADC touch, or none. - -// Pass in POINTERS to ALREADY INITIALIZED display & touch objects (user code -// should have previously called corresponding begin() functions and checked -// return states before invoking this), -// they are NOT initialized here. Debug arg is -// touch arg can be NULL (or left off) if using LittlevGL as a passive widget -// display. - -/** - * @brief Configure the glue layer and the underlying LvGL code to use the given - * TFT display driver instance and touchscreen controller - * - * @param tft Pointer to an **already initialized** display object instance - * @param touch Pointer to an **already initialized** `Adafruit_STMPE610` - * touchscreen controller object instance - * @param debug Debug flag to enable debug messages. Only used if LV_USE_LOG is - * configured in LittleLVGL's lv_conf.h - * @return LvGLStatus The status of the initialization: - * * LVGL_OK : Success - * * LVGL_ERR_TIMER : Failure to set up timers - * * LVGL_ERR_ALLOC : Failure to allocate memory - */ -// LvGLStatus Adafruit_LvGL_Glue::begin(uDisplay_lvgl *tft, -// Adafruit_STMPE610 *touch, bool debug) { -// is_adc_touch = false; -// return begin(tft, (void *)touch, debug); -// } -/** - * @brief Configure the glue layer and the underlying LvGL code to use the given - * TFT display driver and touchscreen controller instances - * - * @param tft Pointer to an **already initialized** display object instance - * @param touch Pointer to an **already initialized** `TouchScreen` touchscreen - * controller object instance - * @param debug Debug flag to enable debug messages. Only used if LV_USE_LOG is - * configured in LittleLVGL's lv_conf.h - * @return LvGLStatus The status of the initialization: - * * LVGL_OK : Success - * * LVGL_ERR_TIMER : Failure to set up timers - * * LVGL_ERR_ALLOC : Failure to allocate memory - */ -// LvGLStatus Adafruit_LvGL_Glue::begin(uDisplay_lvgl *tft, TouchScreen *touch, -// bool debug) { -// is_adc_touch = true; -// return begin(tft, (void *)touch, debug); -// } -/** - * @brief Configure the glue layer and the underlying LvGL code to use the given - * TFT display driver and touchscreen controller instances - * - * @param tft Pointer to an **already initialized** display object instance - * @param debug Debug flag to enable debug messages. Only used if LV_USE_LOG is - * configured in LittleLVGL's lv_conf.h - * @return LvGLStatus The status of the initialization: - * * LVGL_OK : Success - * * LVGL_ERR_TIMER : Failure to set up timers - * * LVGL_ERR_ALLOC : Failure to allocate memory - */ -LvGLStatus Adafruit_LvGL_Glue::begin(Renderer *tft, bool debug) { - return begin(tft, (void *)NULL, debug); -} - -LvGLStatus Adafruit_LvGL_Glue::begin(Renderer *tft, void *touch, bool debug) { - - lv_init(); - - // Allocate LvGL display buffer (x2 because DMA double buffering) - LvGLStatus status = LVGL_ERR_ALLOC; - // if ((lv_pixel_buf = new lv_color_t[LV_HOR_RES_MAX * LV_BUFFER_ROWS * 2])) { - - uint32_t lvgl_buffer_size; - - //lvgl_buffer_size = LV_HOR_RES_MAX * LV_BUFFER_ROWS; - uint8_t flushlines = tft->lvgl_pars()->fluslines; - lvgl_buffer_size = tft->width() * (flushlines ? flushlines:LV_BUFFER_ROWS); - if (tft->lvgl_pars()->use_dma) { - lvgl_buffer_size /= 2; - if (lvgl_buffer_size < 1000000) { - lv_pixel_buf2 = new lv_color_t[lvgl_buffer_size]; - } - if (!lv_pixel_buf2) { - return status; - } - } else { - lv_pixel_buf2 = nullptr; - } - - if ((lv_pixel_buf = new lv_color_t[lvgl_buffer_size])) { - - display = tft; - touchscreen = (void *)touch; - - // // Initialize LvGL display buffers - // lv_disp_buf_init( - // &lv_disp_buf, lv_pixel_buf, // 1st half buf - // &lv_pixel_buf[LV_HOR_RES_MAX * LV_BUFFER_ROWS], // 2nd half buf - // LV_HOR_RES_MAX * LV_BUFFER_ROWS); - - // Initialize LvGL display buffers - lv_disp_draw_buf_init( - &lv_disp_buf, lv_pixel_buf, // 1st half buf - lv_pixel_buf2, // 2nd half buf - lvgl_buffer_size); - - // Initialize LvGL display driver - lv_disp_drv_init(&lv_disp_drv); - lv_disp_drv.hor_res = tft->width(); - lv_disp_drv.ver_res = tft->height(); - lv_disp_drv.flush_cb = lv_flush_callback; - lv_disp_drv.draw_buf = &lv_disp_buf; - lv_disp_drv.user_data = (void*)this; - lv_disp_drv_register(&lv_disp_drv); - - // Initialize LvGL input device (touchscreen already started) - if (touch) { // Can also pass NULL if passive widget display - lv_indev_drv_init(&lv_indev_drv); // Basic init - lv_indev_drv.type = LV_INDEV_TYPE_POINTER; // Is pointer dev - lv_indev_drv.read_cb = touchscreen_read; // Read callback - lv_indev_drv.user_data = (void*)this; - lv_input_dev_ptr = lv_indev_drv_register(&lv_indev_drv); - } - - // TIMER SETUP is architecture-specific ---------------------------- - - // ESP 32------------------------------------------------ - tick.attach_ms(lv_tick_interval_ms, lv_tick_handler); - status = LVGL_OK; - // ----------------------------------------- - } - - if (status != LVGL_OK) { - delete[] lv_pixel_buf; - lv_pixel_buf = NULL; - } - - return status; -} diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/Adafruit_LvGL_Glue.h b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/Adafruit_LvGL_Glue.h deleted file mode 100755 index 2074e0c7a..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/Adafruit_LvGL_Glue.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _ADAFRUIT_LVGL_GLUE_H_ -#define _ADAFRUIT_LVGL_GLUE_H_ - -#include // LittlevGL core lib -#include -#include // ESP32-specific timer lib -#include - -typedef enum { - LVGL_OK, - LVGL_ERR_ALLOC, - LVGL_ERR_TIMER, -} LvGLStatus; - -/** - * @brief Class to act as a "glue" layer between the LvGL graphics library and - * most of Adafruit's TFT displays - * - */ - -class Adafruit_LvGL_Glue { -public: - Adafruit_LvGL_Glue(void); - ~Adafruit_LvGL_Glue(void); - // Different begin() funcs for STMPE610, ADC or no touch - // LvGLStatus begin(uDisplay_lvgl *tft, Adafruit_STMPE610 *touch, - // bool debug = false); - // LvGLStatus begin(uDisplay_lvgl *tft, TouchScreen *touch, - // bool debug = false); - LvGLStatus begin(Renderer *tft, bool debug = false); - LvGLStatus begin(Renderer *tft, void *touch, bool debug); - // These items need to be public for some internal callbacks, - // but should be avoided by user code please! - Renderer *display; ///< Pointer to the SPITFT display instance - void *touchscreen; ///< Pointer to the touchscreen object to use - bool is_adc_touch; ///< determines if the touchscreen controlelr is ADC based - bool first_frame; ///< Tracks if a call to `lv_flush_callback` needs to wait - ///< for DMA transfer to complete - void setScreenshotFile(File *f) { screenshot = f; } - File * getScreenshotFile(void) const { return screenshot; } - void stopScreenshot(void) { screenshot = nullptr; } - -private: - lv_disp_drv_t lv_disp_drv; - lv_disp_draw_buf_t lv_disp_buf; - lv_color_t *lv_pixel_buf; - lv_color_t *lv_pixel_buf2; - lv_indev_drv_t lv_indev_drv; - lv_indev_t *lv_input_dev_ptr; - Ticker tick; - File * screenshot = nullptr; -}; - -#endif // _ADAFRUIT_LVGL_GLUE_H_ diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/README.md b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/README.md deleted file mode 100755 index 61a79f988..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Adafruit LvGL Glue [![Build Status](https://github.com/adafruit/Adafruit_LvGL_Glue/workflows/Arduino%20Library%20CI/badge.svg)](https://github.com/adafruit/Adafruit_LvGL_Glue/actions) - -This Arduino library provides a layer between LittlevGL (a UI library for -embedded systems) and most of Adafruit's color TFT displays (anything that's -a subclass of SPITFT). - -Examples show basic use on PyPortal, FeatherWing, CLUE and TFT Gizmo. -Use these as a starting point, see LittlevGL documentation at -docs.littlevgl.com for a thorough explanation of capabilities and use. - -# Dependencies - * [LittlevGL](https://github.com/littlevgl/lvgl) - * [Adafruit GFX Library](https://github.com/adafruit/Adafruit-GFX-Library) - * [Adafruit HX8357 Library](https://github.com/adafruit/Adafruit_HX8357_Library) - * [Adafruit ILI9341](https://github.com/adafruit/Adafruit_ILI9341) - * [Adafruit ST7735 and ST7789 Library](https://github.com/adafruit/Adafruit-ST7735-Library) - * [Adafruit STMPE610](https://github.com/adafruit/Adafruit_STMPE610) - * [Adafruit TouchScreen](https://github.com/adafruit/Adafruit_TouchScreen) - * [Adafruit Zero DMA Library](https://github.com/adafruit/Adafruit_ZeroDMA) - * [Adafruit ZeroTimer Library](https://github.com/adafruit/Adafruit_ZeroTimer) - -# Compatibility -Version 2.0.0 is a breaking change, mostly due to significant structural -changes in the LittlevGL library for Arduino. If you were previously using -an earlier version of this library and/or LittlevGL, both will need updating, -and you should skim the examples and read through the hello_changes example -specifically. - -Use on M0 (SAMD21) boards isn't recommended anymore, as LittlevGL has grown. -Simple programs might still work, but it's better to move up to a device -with more RAM -- M4 (SAMD51), nRF52 and ESP32 are currently supported. - -# Contributing -Contributions are welcome! Please read our [Code of Conduct](https://github.com/adafruit/Adafruit_LvGL_Glue/blob/master/CODE_OF_CONDUCT.md>) -before contributing to help this project stay welcoming. - -## Documentation and doxygen -Documentation is produced by doxygen. Contributions should include documentation for any new code added. - -Some examples of how to use doxygen can be found in these guide pages: - -https://learn.adafruit.com/the-well-automated-arduino-library/doxygen - -https://learn.adafruit.com/the-well-automated-arduino-library/doxygen-tips - -Written by Phil Burgess aka Paint Your Dragon for Adafruit Industries. -BSD license, check license.txt for more information -All text above must be included in any redistribution - -To install, use the Arduino Library Manager and search for "Adafruit LvGL Glue Library" and install the library. diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/code-of-conduct.md b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/code-of-conduct.md deleted file mode 100755 index 8ee6e4498..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/code-of-conduct.md +++ /dev/null @@ -1,127 +0,0 @@ -# Adafruit Community Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and leaders pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level or type of -experience, education, socio-economic status, nationality, personal appearance, -race, religion, or sexual identity and orientation. - -## Our Standards - -We are committed to providing a friendly, safe and welcoming environment for -all. - -Examples of behavior that contributes to creating a positive environment -include: - -* Be kind and courteous to others -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Collaborating with other community members -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and sexual attention or advances -* The use of inappropriate images, including in a community member's avatar -* The use of inappropriate language, including in a community member's nickname -* Any spamming, flaming, baiting or other attention-stealing behavior -* Excessive or unwelcome helping; answering outside the scope of the question - asked -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate - -The goal of the standards and moderation guidelines outlined here is to build -and maintain a respectful community. We ask that you don’t just aim to be -"technically unimpeachable", but rather try to be your best self. - -We value many things beyond technical expertise, including collaboration and -supporting others within our community. Providing a positive experience for -other community members can have a much more significant impact than simply -providing the correct answer. - -## Our Responsibilities - -Project leaders are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project leaders have the right and responsibility to remove, edit, or -reject messages, comments, commits, code, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any community member for other behaviors that they deem -inappropriate, threatening, offensive, or harmful. - -## Moderation - -Instances of behaviors that violate the Adafruit Community Code of Conduct -may be reported by any member of the community. Community members are -encouraged to report these situations, including situations they witness -involving other community members. - -You may report in the following ways: - -In any situation, you may send an email to . - -On the Adafruit Discord, you may send an open message from any channel -to all Community Helpers by tagging @community helpers. You may also send an -open message from any channel, or a direct message to @kattni#1507, -@tannewt#4653, @Dan Halbert#1614, @cater#2442, @sommersoft#0222, or -@Andon#8175. - -Email and direct message reports will be kept confidential. - -In situations on Discord where the issue is particularly egregious, possibly -illegal, requires immediate action, or violates the Discord terms of service, -you should also report the message directly to Discord. - -These are the steps for upholding our community’s standards of conduct. - -1. Any member of the community may report any situation that violates the -Adafruit Community Code of Conduct. All reports will be reviewed and -investigated. -2. If the behavior is an egregious violation, the community member who -committed the violation may be banned immediately, without warning. -3. Otherwise, moderators will first respond to such behavior with a warning. -4. Moderators follow a soft "three strikes" policy - the community member may -be given another chance, if they are receptive to the warning and change their -behavior. -5. If the community member is unreceptive or unreasonable when warned by a -moderator, or the warning goes unheeded, they may be banned for a first or -second offense. Repeated offenses will result in the community member being -banned. - -## Scope - -This Code of Conduct and the enforcement policies listed above apply to all -Adafruit Community venues. This includes but is not limited to any community -spaces (both public and private), the entire Adafruit Discord server, and -Adafruit GitHub repositories. Examples of Adafruit Community spaces include -but are not limited to meet-ups, audio chats on the Adafruit Discord, or -interaction at a conference. - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. As a community -member, you are representing our community, and are expected to behave -accordingly. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 1.4, available at -, -and the [Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html). - -For other projects adopting the Adafruit Community Code of -Conduct, please contact the maintainers of those projects for enforcement. -If you wish to use this code of conduct for your own project, consider -explicitly mentioning your moderation policy or making a copy with your -own moderation policy so as to avoid confusion. diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/library.json b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/library.json deleted file mode 100644 index c6c7aff6c..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/library.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "Adafruit LittlevGL Glue Library", - "description": "This library works in conjunction with LittlevGL (an embedded system GUI library) and Adafruit display-specific libraries to provide nice user interfaces on PyPortal, TFT FeatherWings, and more.", - "version": "2.0.0", - "homepage": "https://github.com/adafruit/Adafruit_LvGL_Glue", - "frameworks": "*", - "build": { - "flags": [ "-Wno-deprecated-enum-enum-conversion" ] - } -} diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/library.properties b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/library.properties deleted file mode 100755 index c09ddcace..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/library.properties +++ /dev/null @@ -1,10 +0,0 @@ -name=Adafruit LittlevGL Glue Library -version=2.0.0 -author=Adafruit -maintainer=Adafruit -sentence=Simplifies use of LittlevGL library with Adafruit displays. -paragraph=This library works in conjunction with LittlevGL (an embedded system GUI library) and Adafruit display-specific libraries to provide nice user interfaces on PyPortal, TFT FeatherWings, and more. -category=Display -url=https://github.com/adafruit/Adafruit_LvGL_Glue -architectures=samd, nrf52, esp32 -depends=Adafruit GFX Library, Adafruit TouchScreen, Adafruit STMPE610, Adafruit Zero DMA Library, Adafruit HX8357 Library, Adafruit ILI9341, Adafruit ZeroTimer Library, Adafruit ST7735 and ST7789 Library, lvgl diff --git a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/license.txt b/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/license.txt deleted file mode 100755 index a61cb1df4..000000000 --- a/lib/libesp32_lvgl/Adafruit_LvGL_Glue-shadinger/license.txt +++ /dev/null @@ -1,26 +0,0 @@ -Software License Agreement (BSD License) - -Copyright (c) 2020 Phil Burgess aka Paint Your Dragon for Adafruit Industries -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -3. Neither the name of the copyright holders nor the -names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/libesp32_lvgl/LVGL_assets/TASMOTA_Symbol_64.png b/lib/libesp32_lvgl/LVGL_assets/TASMOTA_Symbol_64.png new file mode 100644 index 000000000..c17a80cb7 Binary files /dev/null and b/lib/libesp32_lvgl/LVGL_assets/TASMOTA_Symbol_64.png differ diff --git a/tasmota/lvgl_berry/fonts/DSEG7/DSEG-LICENSE.txt b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/DSEG-LICENSE.txt similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/DSEG-LICENSE.txt rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/DSEG-LICENSE.txt diff --git a/tasmota/lvgl_berry/fonts/DSEG7/DSEG7Classic-Bold.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/DSEG7Classic-Bold.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/DSEG7Classic-Bold.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/DSEG7Classic-Bold.ttf diff --git a/tasmota/lvgl_berry/fonts/DSEG7/DSEG7Classic-BoldItalic.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/DSEG7Classic-BoldItalic.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/DSEG7Classic-BoldItalic.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/DSEG7Classic-BoldItalic.ttf diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_10.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_10.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_10.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_10.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_12.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_12.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_12.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_12.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_14.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_14.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_14.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_14.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_16.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_16.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_16.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_16.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_18.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_18.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_18.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_18.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_20.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_20.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_20.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_20.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_24.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_24.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_24.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_24.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_28.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_28.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_28.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_28.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_36.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_36.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_36.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_36.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_48.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_48.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_48.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_48.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_8.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_8.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/font_files/seg7_8.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/font_files/seg7_8.lvfont diff --git a/tasmota/lvgl_berry/fonts/DSEG7/gen_seg7_fonts.bash b/lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/gen_seg7_fonts.bash similarity index 100% rename from tasmota/lvgl_berry/fonts/DSEG7/gen_seg7_fonts.bash rename to lib/libesp32_lvgl/LVGL_assets/fonts/DSEG7/gen_seg7_fonts.bash diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium1541.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium1541.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium1541.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium1541.ttf diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium64.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium64.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium64.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium (GEOS)/Berkelium64.ttf diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium (GEOS)/FreeLicense.txt b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium (GEOS)/FreeLicense.txt similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium (GEOS)/FreeLicense.txt rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium (GEOS)/FreeLicense.txt diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium64.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium64.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Berkelium64.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Berkelium64.lvfont diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Daniel Linssen/m3x6.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Daniel Linssen/m3x6.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Daniel Linssen/m3x6.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Daniel Linssen/m3x6.ttf diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Daniel Linssen/m5x7.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Daniel Linssen/m5x7.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Daniel Linssen/m5x7.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Daniel Linssen/m5x7.ttf diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/PrintChar (Apple II Font)/FreeLicense.txt b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/PrintChar (Apple II Font)/FreeLicense.txt similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/PrintChar (Apple II Font)/FreeLicense.txt rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/PrintChar (Apple II Font)/FreeLicense.txt diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/PrintChar (Apple II Font)/PrintChar21.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/PrintChar (Apple II Font)/PrintChar21.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/PrintChar (Apple II Font)/PrintChar21.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/PrintChar (Apple II Font)/PrintChar21.ttf diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/PrintChar21.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/PrintChar21.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/PrintChar21.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/PrintChar21.lvfont diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Shaston (GSOS)/FreeLicense.txt b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Shaston (GSOS)/FreeLicense.txt similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Shaston (GSOS)/FreeLicense.txt rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Shaston (GSOS)/FreeLicense.txt diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Shaston (GSOS)/Shaston320.ttf b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Shaston (GSOS)/Shaston320.ttf similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Shaston (GSOS)/Shaston320.ttf rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Shaston (GSOS)/Shaston320.ttf diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/Shaston320.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Shaston320.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/Shaston320.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/Shaston320.lvfont diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/m3x6.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/m3x6.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/m3x6.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/m3x6.lvfont diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/m5x7.lvfont b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/m5x7.lvfont similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/m5x7.lvfont rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/m5x7.lvfont diff --git a/tasmota/lvgl_berry/fonts/pixel_perfect/pages.jsonl b/lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/pages.jsonl similarity index 100% rename from tasmota/lvgl_berry/fonts/pixel_perfect/pages.jsonl rename to lib/libesp32_lvgl/LVGL_assets/fonts/pixel_perfect/pages.jsonl diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_12_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_12_latin1.c index b9b8dae13..d3e11753b 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_12_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_12_latin1.c @@ -2084,9 +2084,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -2100,9 +2099,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -2111,7 +2107,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_12_latin1 = { #else lv_font_t robotocondensed_regular_12_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_14_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_14_latin1.c index 194954f87..1c173bff7 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_14_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_14_latin1.c @@ -2335,9 +2335,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -2351,9 +2350,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -2362,7 +2358,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_14_latin1 = { #else lv_font_t robotocondensed_regular_14_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_16_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_16_latin1.c index 56666d4af..b905c14c3 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_16_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_16_latin1.c @@ -2536,9 +2536,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -2552,9 +2551,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -2563,7 +2559,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_16_latin1 = { #else lv_font_t robotocondensed_regular_16_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_20_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_20_latin1.c index 6198d0448..347d18f96 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_20_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_20_latin1.c @@ -3076,9 +3076,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -3092,9 +3091,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -3103,7 +3099,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_20_latin1 = { #else lv_font_t robotocondensed_regular_20_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_22_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_22_latin1.c index 1ec74432d..baaefe4cb 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_22_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_22_latin1.c @@ -3371,9 +3371,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -3387,9 +3386,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -3398,7 +3394,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_22_latin1 = { #else lv_font_t robotocondensed_regular_22_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_24_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_24_latin1.c index 70b8e27d7..b0f597095 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_24_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_24_latin1.c @@ -3527,9 +3527,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -3543,9 +3542,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -3554,7 +3550,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_24_latin1 = { #else lv_font_t robotocondensed_regular_24_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_26_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_26_latin1.c index 83dd586a5..e451f4421 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_26_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_26_latin1.c @@ -3952,9 +3952,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -3968,9 +3967,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -3979,7 +3975,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_26_latin1 = { #else lv_font_t robotocondensed_regular_26_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_28_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_28_latin1.c index 63bd194cc..fb4b659e5 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_28_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_28_latin1.c @@ -4309,9 +4309,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -4325,9 +4324,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -4336,7 +4332,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_28_latin1 = { #else lv_font_t robotocondensed_regular_28_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_32_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_32_latin1.c index 0e02875c7..6b40bec58 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_32_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_32_latin1.c @@ -4930,9 +4930,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -4946,9 +4945,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -4957,7 +4953,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_32_latin1 = { #else lv_font_t robotocondensed_regular_32_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_36_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_36_latin1.c index 80bdaf56c..b643f81af 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_36_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_36_latin1.c @@ -5714,9 +5714,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -5730,9 +5729,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -5741,7 +5737,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_36_latin1 = { #else lv_font_t robotocondensed_regular_36_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_38_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_38_latin1.c index 5f0aadd5c..f88b71d12 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_38_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_38_latin1.c @@ -6059,9 +6059,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -6075,9 +6074,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -6086,7 +6082,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_38_latin1 = { #else lv_font_t robotocondensed_regular_38_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_40_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_40_latin1.c index 6babc76ed..6fc146666 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_40_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_40_latin1.c @@ -6422,9 +6422,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -6438,9 +6437,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -6449,7 +6445,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_40_latin1 = { #else lv_font_t robotocondensed_regular_40_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_44_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_44_latin1.c index 581484546..d7df39045 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_44_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_44_latin1.c @@ -7114,9 +7114,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -7130,9 +7129,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -7141,7 +7137,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_44_latin1 = { #else lv_font_t robotocondensed_regular_44_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_48_latin1.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_48_latin1.c index 1f33d5fb6..d07465afa 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_48_latin1.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/roboto-latin1/robotocondensed_regular_48_latin1.c @@ -7613,9 +7613,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -7629,9 +7628,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 3, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -7640,7 +7636,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t robotocondensed_regular_48_latin1 = { #else lv_font_t robotocondensed_regular_48_latin1 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_10.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_10.c index 6539b03df..37f5e160d 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_10.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_10.c @@ -119,9 +119,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -135,9 +134,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 1, .kern_classes = 0, .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -146,7 +142,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_10 = { #else lv_font_t seg7_10 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_12.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_12.c index 2f1415af4..531cc9320 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_12.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_12.c @@ -128,9 +128,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -144,9 +143,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 1, .kern_classes = 0, .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -155,7 +151,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_12 = { #else lv_font_t seg7_12 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_14.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_14.c index 88ada73fd..4be4afd7d 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_14.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_14.c @@ -134,9 +134,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -150,9 +149,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 1, .kern_classes = 0, .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -161,7 +157,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_14 = { #else lv_font_t seg7_14 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_16.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_16.c index 589ccb458..e679280b8 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_16.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_16.c @@ -137,9 +137,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -153,9 +152,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 1, .kern_classes = 0, .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -164,7 +160,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_16 = { #else lv_font_t seg7_16 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_18.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_18.c index aee89f557..0298ae451 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_18.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_18.c @@ -143,9 +143,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -159,9 +158,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 1, .kern_classes = 0, .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -170,7 +166,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_18 = { #else lv_font_t seg7_18 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_20.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_20.c index 3817fe7d0..6a9447c9b 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_20.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_20.c @@ -167,9 +167,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -183,9 +182,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 2, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -194,7 +190,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_20 = { #else lv_font_t seg7_20 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_24.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_24.c index 9e4e97689..c98bb056f 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_24.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_24.c @@ -183,9 +183,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -199,9 +198,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 2, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -210,7 +206,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_24 = { #else lv_font_t seg7_24 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_28.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_28.c index 9955fda17..caadd5f69 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_28.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_28.c @@ -210,9 +210,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -226,9 +225,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 2, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -237,7 +233,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_28 = { #else lv_font_t seg7_28 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_36.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_36.c index 41756ce93..9a32b1dfc 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_36.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_36.c @@ -257,9 +257,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -273,9 +272,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 2, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -284,7 +280,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_36 = { #else lv_font_t seg7_36 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_48.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_48.c index a09f554a6..05b106671 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_48.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_48.c @@ -316,9 +316,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -332,9 +331,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 2, .kern_classes = 0, .bitmap_format = 1, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -343,7 +339,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_48 = { #else lv_font_t seg7_48 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_8.c b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_8.c index 296fa8d75..c98fa9e7c 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_8.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/fonts/seg7_8.c @@ -119,9 +119,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 /*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; static const lv_font_fmt_txt_dsc_t font_dsc = { #else static lv_font_fmt_txt_dsc_t font_dsc = { @@ -135,9 +134,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .bpp = 1, .kern_classes = 0, .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif }; @@ -146,7 +142,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) +#if LVGL_VERSION_MAJOR >= 8 const lv_font_t seg7_8 = { #else lv_font_t seg7_8 = { diff --git a/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.c b/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.c index 96f4c4c5e..6d891a1b5 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.c +++ b/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.c @@ -9,13 +9,13 @@ #include "../lvgl.h" /*To see all the widgets*/ #include "lv_theme_haspmota.h" -#include "misc/lv_gc.h" +// #include "misc/lv_gc.h" TODO /********************* * DEFINES *********************/ #define MODE_DARK 1 -#define RADIUS_DEFAULT (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, 12) : lv_disp_dpx(theme.disp, 8)) +#define RADIUS_DEFAULT (disp_size == DISP_LARGE ? lv_display_dpx(theme.disp, 12) : lv_display_dpx(theme.disp, 8)) /*SCREEN*/ #define LIGHT_COLOR_SCR lv_palette_lighten(LV_PALETTE_GREY, 4) @@ -28,12 +28,12 @@ #define DARK_COLOR_GREY lv_color_hex(0x2f3237) #define TRANSITION_TIME LV_THEME_DEFAULT_TRANSITION_TIME -#define BORDER_WIDTH lv_disp_dpx(theme.disp, 2) -#define OUTLINE_WIDTH lv_disp_dpx(theme.disp, 3) +#define BORDER_WIDTH lv_display_dpx(theme.disp, 2) +#define OUTLINE_WIDTH lv_display_dpx(theme.disp, 3) -#define PAD_DEF (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, 24) : disp_size == DISP_MEDIUM ? lv_disp_dpx(theme.disp, 20) : lv_disp_dpx(theme.disp, 16)) -#define PAD_SMALL (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, 14) : disp_size == DISP_MEDIUM ? lv_disp_dpx(theme.disp, 12) : lv_disp_dpx(theme.disp, 10)) -#define PAD_TINY (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, 8) : disp_size == DISP_MEDIUM ? lv_disp_dpx(theme.disp, 6) : lv_disp_dpx(theme.disp, 2)) +#define PAD_DEF (disp_size == DISP_LARGE ? lv_display_dpx(theme.disp, 24) : disp_size == DISP_MEDIUM ? lv_display_dpx(theme.disp, 20) : lv_display_dpx(theme.disp, 16)) +#define PAD_SMALL (disp_size == DISP_LARGE ? lv_display_dpx(theme.disp, 14) : disp_size == DISP_MEDIUM ? lv_display_dpx(theme.disp, 12) : lv_display_dpx(theme.disp, 10)) +#define PAD_TINY (disp_size == DISP_LARGE ? lv_display_dpx(theme.disp, 8) : disp_size == DISP_MEDIUM ? lv_display_dpx(theme.disp, 6) : lv_display_dpx(theme.disp, 2)) // OpenHASP specific /*BUTTON*/ @@ -261,7 +261,7 @@ static void style_init(void) LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR, LV_STYLE_TRANSFORM_WIDTH, LV_STYLE_TRANSFORM_HEIGHT, LV_STYLE_TRANSLATE_Y, LV_STYLE_TRANSLATE_X, - LV_STYLE_TRANSFORM_ZOOM, LV_STYLE_TRANSFORM_ANGLE, + /*LV_STYLE_TRANSFORM_ZOOM_X, LV_STYLE_TRANSFORM_ZOOM_Y,*/ LV_STYLE_TRANSFORM_ANGLE, LV_STYLE_COLOR_FILTER_OPA, LV_STYLE_COLOR_FILTER_DSC, 0 }; @@ -286,9 +286,9 @@ static void style_init(void) style_init_reset(&styles->scrollbar); lv_style_set_bg_color(&styles->scrollbar, (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY, 2) : lv_palette_main(LV_PALETTE_GREY)); lv_style_set_radius(&styles->scrollbar, LV_RADIUS_CIRCLE); - lv_style_set_pad_right(&styles->scrollbar, lv_disp_dpx(theme.disp, 7)); - lv_style_set_pad_top(&styles->scrollbar, lv_disp_dpx(theme.disp, 7)); - lv_style_set_size(&styles->scrollbar, lv_disp_dpx(theme.disp, 5)); + lv_style_set_pad_right(&styles->scrollbar, lv_display_dpx(theme.disp, 7)); + lv_style_set_pad_top(&styles->scrollbar, lv_display_dpx(theme.disp, 7)); + lv_style_set_size(&styles->scrollbar, lv_display_dpx(theme.disp, 5), lv_display_dpx(theme.disp, 5)); lv_style_set_bg_opa(&styles->scrollbar, LV_OPA_40); lv_style_set_transition(&styles->scrollbar, &trans_normal); @@ -316,7 +316,7 @@ static void style_init(void) lv_style_set_pad_row(&styles->card, PAD_SMALL); lv_style_set_pad_column(&styles->card, PAD_SMALL); lv_style_set_line_color(&styles->card, lv_palette_main(LV_PALETTE_GREY)); - lv_style_set_line_width(&styles->card, lv_disp_dpx(theme.disp, 1)); + lv_style_set_line_width(&styles->card, lv_display_dpx(theme.disp, 1)); style_init_reset(&styles->outline_primary); lv_style_set_outline_color(&styles->outline_primary, theme.color_primary); @@ -330,19 +330,19 @@ static void style_init(void) lv_style_set_outline_opa(&styles->outline_secondary, LV_OPA_50); style_init_reset(&styles->btn); - lv_style_set_radius(&styles->btn, (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, 16) : disp_size == DISP_MEDIUM ? lv_disp_dpx(theme.disp, 12) : lv_disp_dpx(theme.disp, 8))); + lv_style_set_radius(&styles->btn, (disp_size == DISP_LARGE ? lv_display_dpx(theme.disp, 16) : disp_size == DISP_MEDIUM ? lv_display_dpx(theme.disp, 12) : lv_display_dpx(theme.disp, 8))); lv_style_set_bg_opa(&styles->btn, LV_OPA_COVER); lv_style_set_bg_color(&styles->btn, color_grey); // if(!(theme.flags & MODE_DARK)) { // OpenHASP // lv_style_set_shadow_color(&styles->btn, lv_palette_lighten(LV_PALETTE_GREY, 3)); // lv_style_set_shadow_width(&styles->btn, 1); - // lv_style_set_shadow_ofs_y(&styles->btn, lv_disp_dpx(theme.disp, 4)); + // lv_style_set_shadow_ofs_y(&styles->btn, lv_display_dpx(theme.disp, 4)); // } lv_style_set_text_color(&styles->btn, color_text); lv_style_set_pad_hor(&styles->btn, PAD_DEF); lv_style_set_pad_ver(&styles->btn, PAD_SMALL); - lv_style_set_pad_column(&styles->btn, lv_disp_dpx(theme.disp, 5)); - lv_style_set_pad_row(&styles->btn, lv_disp_dpx(theme.disp, 5)); + lv_style_set_pad_column(&styles->btn, lv_display_dpx(theme.disp, 5)); + lv_style_set_pad_row(&styles->btn, lv_display_dpx(theme.disp, 5)); lv_style_set_text_font(&styles->btn, theme.font_normal); static lv_color_filter_dsc_t dark_filter; @@ -372,11 +372,11 @@ static void style_init(void) lv_style_set_pad_gap(&styles->pad_small, PAD_SMALL); style_init_reset(&styles->pad_gap); - lv_style_set_pad_row(&styles->pad_gap, lv_disp_dpx(theme.disp, 10)); - lv_style_set_pad_column(&styles->pad_gap, lv_disp_dpx(theme.disp, 10)); + lv_style_set_pad_row(&styles->pad_gap, lv_display_dpx(theme.disp, 10)); + lv_style_set_pad_column(&styles->pad_gap, lv_display_dpx(theme.disp, 10)); style_init_reset(&styles->line_space_large); - lv_style_set_text_line_space(&styles->line_space_large, lv_disp_dpx(theme.disp, 20)); + lv_style_set_text_line_space(&styles->line_space_large, lv_display_dpx(theme.disp, 20)); style_init_reset(&styles->text_align_center); lv_style_set_text_align(&styles->text_align_center, LV_TEXT_ALIGN_CENTER); @@ -429,14 +429,14 @@ static void style_init(void) #if LV_THEME_DEFAULT_GROW style_init_reset(&styles->grow); - lv_style_set_transform_width(&styles->grow, lv_disp_dpx(theme.disp, 3)); - lv_style_set_transform_height(&styles->grow, lv_disp_dpx(theme.disp, 3)); + lv_style_set_transform_width(&styles->grow, lv_display_dpx(theme.disp, 3)); + lv_style_set_transform_height(&styles->grow, lv_display_dpx(theme.disp, 3)); #endif style_init_reset(&styles->knob); lv_style_set_bg_color(&styles->knob, theme.color_primary); lv_style_set_bg_opa(&styles->knob, LV_OPA_COVER); - lv_style_set_pad_all(&styles->knob, lv_disp_dpx(theme.disp, 6)); + lv_style_set_pad_all(&styles->knob, lv_display_dpx(theme.disp, 6)); lv_style_set_radius(&styles->knob, LV_RADIUS_CIRCLE); style_init_reset(&styles->anim); @@ -445,7 +445,7 @@ static void style_init(void) #if LV_USE_ARC style_init_reset(&styles->arc_indic); lv_style_set_arc_color(&styles->arc_indic, color_grey); - lv_style_set_arc_width(&styles->arc_indic, lv_disp_dpx(theme.disp, 18)); // OpenHASP + lv_style_set_arc_width(&styles->arc_indic, lv_display_dpx(theme.disp, 18)); // OpenHASP lv_style_set_arc_rounded(&styles->arc_indic, true); style_init_reset(&styles->arc_indic_primary); @@ -455,7 +455,7 @@ static void style_init(void) style_init_reset(&styles->arc_knob); lv_style_set_bg_color(&styles->arc_knob, theme.color_primary); lv_style_set_bg_opa(&styles->arc_knob, LV_OPA_COVER); - lv_style_set_pad_all(&styles->arc_knob, lv_disp_dpx(theme.disp, 4)); + lv_style_set_pad_all(&styles->arc_knob, lv_display_dpx(theme.disp, 4)); lv_style_set_radius(&styles->arc_knob, LV_RADIUS_CIRCLE); #endif @@ -465,7 +465,7 @@ static void style_init(void) #endif #if LV_USE_CHECKBOX style_init_reset(&styles->cb_marker); - lv_style_set_pad_all(&styles->cb_marker, lv_disp_dpx(theme.disp, 3)); + lv_style_set_pad_all(&styles->cb_marker, lv_display_dpx(theme.disp, 3)); lv_style_set_border_width(&styles->cb_marker, BORDER_WIDTH); lv_style_set_border_color(&styles->cb_marker, theme.color_primary); lv_style_set_bg_color(&styles->cb_marker, color_card); @@ -473,14 +473,14 @@ static void style_init(void) lv_style_set_radius(&styles->cb_marker, RADIUS_DEFAULT / 2); style_init_reset(&styles->cb_marker_checked); - lv_style_set_bg_img_src(&styles->cb_marker_checked, LV_SYMBOL_OK); + lv_style_set_bg_image_src(&styles->cb_marker_checked, LV_SYMBOL_OK); lv_style_set_text_color(&styles->cb_marker_checked, lv_color_white()); lv_style_set_text_font(&styles->cb_marker_checked, theme.font_small); #endif #if LV_USE_SWITCH style_init_reset(&styles->switch_knob); - lv_style_set_pad_all(&styles->switch_knob, - lv_disp_dpx(theme.disp, 4)); + lv_style_set_pad_all(&styles->switch_knob, - lv_display_dpx(theme.disp, 4)); lv_style_set_bg_color(&styles->switch_knob, lv_color_white()); #endif @@ -493,45 +493,45 @@ static void style_init(void) #if LV_USE_CHART style_init_reset(&styles->chart_bg); lv_style_set_border_post(&styles->chart_bg, false); - lv_style_set_pad_column(&styles->chart_bg, lv_disp_dpx(theme.disp, 10)); + lv_style_set_pad_column(&styles->chart_bg, lv_display_dpx(theme.disp, 10)); lv_style_set_line_color(&styles->chart_bg, color_grey); style_init_reset(&styles->chart_series); - lv_style_set_line_width(&styles->chart_series, lv_disp_dpx(theme.disp, 3)); - lv_style_set_radius(&styles->chart_series, lv_disp_dpx(theme.disp, 3)); - lv_style_set_size(&styles->chart_series, lv_disp_dpx(theme.disp, 8)); - lv_style_set_pad_column(&styles->chart_series, lv_disp_dpx(theme.disp, 2)); + lv_style_set_line_width(&styles->chart_series, lv_display_dpx(theme.disp, 3)); + lv_style_set_radius(&styles->chart_series, lv_display_dpx(theme.disp, 3)); + lv_style_set_size(&styles->chart_series, lv_display_dpx(theme.disp, 8), lv_display_dpx(theme.disp, 8)); + lv_style_set_pad_column(&styles->chart_series, lv_display_dpx(theme.disp, 2)); style_init_reset(&styles->chart_indic); lv_style_set_radius(&styles->chart_indic,LV_RADIUS_CIRCLE); - lv_style_set_size(&styles->chart_indic, lv_disp_dpx(theme.disp, 8)); + lv_style_set_size(&styles->chart_indic, lv_display_dpx(theme.disp, 8), lv_display_dpx(theme.disp, 8)); lv_style_set_bg_color(&styles->chart_indic, theme.color_primary); lv_style_set_bg_opa(&styles->chart_indic, LV_OPA_COVER); style_init_reset(&styles->chart_ticks); - lv_style_set_line_width(&styles->chart_ticks, lv_disp_dpx(theme.disp, 1)); + lv_style_set_line_width(&styles->chart_ticks, lv_display_dpx(theme.disp, 1)); lv_style_set_line_color(&styles->chart_ticks, color_text); - lv_style_set_pad_all(&styles->chart_ticks, lv_disp_dpx(theme.disp, 2)); + lv_style_set_pad_all(&styles->chart_ticks, lv_display_dpx(theme.disp, 2)); lv_style_set_text_color(&styles->chart_ticks, lv_palette_main(LV_PALETTE_GREY)); #endif #if LV_USE_METER style_init_reset(&styles->meter_marker); - lv_style_set_line_width(&styles->meter_marker, lv_disp_dpx(theme.disp, 5)); + lv_style_set_line_width(&styles->meter_marker, lv_display_dpx(theme.disp, 5)); lv_style_set_line_color(&styles->meter_marker, color_text); - lv_style_set_size(&styles->meter_marker, lv_disp_dpx(theme.disp, 20)); - lv_style_set_pad_left(&styles->meter_marker, lv_disp_dpx(theme.disp, 15)); + lv_style_set_size(&styles->meter_marker, lv_display_dpx(theme.disp, 20)); + lv_style_set_pad_left(&styles->meter_marker, lv_display_dpx(theme.disp, 15)); style_init_reset(&styles->meter_indic); lv_style_set_radius(&styles->meter_indic, LV_RADIUS_CIRCLE); lv_style_set_bg_color(&styles->meter_indic, color_text); lv_style_set_bg_opa(&styles->meter_indic, LV_OPA_COVER); - lv_style_set_size(&styles->meter_indic, lv_disp_dpx(theme.disp, 15)); + lv_style_set_size(&styles->meter_indic, lv_display_dpx(theme.disp, 15)); #endif #if LV_USE_TABLE style_init_reset(&styles->table_cell); - lv_style_set_border_width(&styles->table_cell, lv_disp_dpx(theme.disp, 1)); + lv_style_set_border_width(&styles->table_cell, lv_display_dpx(theme.disp, 1)); lv_style_set_border_color(&styles->table_cell, color_grey); lv_style_set_border_side(&styles->table_cell, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM ); #endif @@ -539,8 +539,8 @@ static void style_init(void) #if LV_USE_TEXTAREA style_init_reset(&styles->ta_cursor); lv_style_set_border_color(&styles->ta_cursor, color_text); - lv_style_set_border_width(&styles->ta_cursor, lv_disp_dpx(theme.disp, 2)); - lv_style_set_pad_left(&styles->ta_cursor, lv_disp_dpx(theme.disp, 1)); + lv_style_set_border_width(&styles->ta_cursor, lv_display_dpx(theme.disp, 2)); + lv_style_set_pad_left(&styles->ta_cursor, lv_display_dpx(theme.disp, 1)); lv_style_set_border_side(&styles->ta_cursor, LV_BORDER_SIDE_LEFT); lv_style_set_anim_time(&styles->ta_cursor, 400); @@ -555,7 +555,7 @@ static void style_init(void) lv_style_set_radius(&styles->calendar_bg, 0); style_init_reset(&styles->calendar_day); - lv_style_set_border_width(&styles->calendar_day, lv_disp_dpx(theme.disp, 1)); + lv_style_set_border_width(&styles->calendar_day, lv_display_dpx(theme.disp, 1)); lv_style_set_border_color(&styles->calendar_day, color_grey); lv_style_set_bg_color(&styles->calendar_day, color_card); lv_style_set_bg_opa(&styles->calendar_day, LV_OPA_20); @@ -563,13 +563,13 @@ static void style_init(void) #if LV_USE_COLORWHEEL style_init_reset(&styles->colorwheel_main); - lv_style_set_arc_width(&styles->colorwheel_main, lv_disp_dpx(theme.disp, 10)); + lv_style_set_arc_width(&styles->colorwheel_main, lv_display_dpx(theme.disp, 10)); #endif #if LV_USE_MSGBOX /*To add space for for the button shadow*/ style_init_reset(&styles->msgbox_btn_bg); - lv_style_set_pad_all(&styles->msgbox_btn_bg, lv_disp_dpx(theme.disp, 4)); + lv_style_set_pad_all(&styles->msgbox_btn_bg, lv_display_dpx(theme.disp, 4)); style_init_reset(&styles->msgbox_bg); lv_style_set_max_width(&styles->msgbox_bg, lv_pct(100)); @@ -598,7 +598,7 @@ static void style_init(void) lv_style_set_clip_corner(&styles->list_bg, true); style_init_reset(&styles->list_btn); - lv_style_set_border_width(&styles->list_btn, lv_disp_dpx(theme.disp, 1)); + lv_style_set_border_width(&styles->list_btn, lv_display_dpx(theme.disp, 1)); lv_style_set_border_color(&styles->list_btn, color_grey); lv_style_set_border_side(&styles->list_btn, LV_BORDER_SIDE_BOTTOM); lv_style_set_pad_all(&styles->list_btn, PAD_SMALL); @@ -615,9 +615,9 @@ static void style_init(void) lv_style_set_bg_color(&styles->led, lv_color_white()); lv_style_set_bg_grad_color(&styles->led, lv_palette_main(LV_PALETTE_GREY)); lv_style_set_radius(&styles->led, LV_RADIUS_CIRCLE); - lv_style_set_shadow_width(&styles->led, lv_disp_dpx(theme.disp, 15)); + lv_style_set_shadow_width(&styles->led, lv_display_dpx(theme.disp, 15)); lv_style_set_shadow_color(&styles->led, lv_color_white()); - lv_style_set_shadow_spread(&styles->led, lv_disp_dpx(theme.disp, 5)); + lv_style_set_shadow_spread(&styles->led, lv_display_dpx(theme.disp, 5)); #endif } @@ -625,15 +625,15 @@ static void style_init(void) * GLOBAL FUNCTIONS **********************/ -lv_theme_t * lv_theme_haspmota_init(lv_disp_t * disp, lv_color_t color_primary, lv_color_t color_secondary, bool dark, const lv_font_t * font) +lv_theme_t * lv_theme_haspmota_init(lv_display_t * disp, lv_color_t color_primary, lv_color_t color_secondary, bool dark, const lv_font_t * font) { /*This trick is required only to avoid the garbage collection of *styles' data if LVGL is used in a binding (e.g. Micropython) *In a general case styles could be in simple `static lv_style_t my_style...` variables*/ if(!inited) { - LV_GC_ROOT(_lv_theme_default_styles) = lv_mem_alloc(sizeof(my_theme_styles_t)); - styles = (my_theme_styles_t *)LV_GC_ROOT(_lv_theme_default_styles); + // LV_GC_ROOT(_lv_theme_default_styles) = lv_mem_alloc(sizeof(my_theme_styles_t)); + styles = (my_theme_styles_t *)malloc(sizeof(my_theme_styles_t)); // TODO LVGL } if(LV_HOR_RES <= 320) disp_size = DISP_SMALL; @@ -693,13 +693,13 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj) #if LV_USE_WIN /*Header*/ - if(lv_obj_get_child_id(obj) == 0 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) { + if(lv_obj_get_index(obj) == 0 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) { lv_obj_add_style(obj, &styles->bg_color_grey, 0); lv_obj_add_style(obj, &styles->pad_tiny, 0); return; } /*Content*/ - else if(lv_obj_get_child_id(obj) == 1 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) { + else if(lv_obj_get_index(obj) == 1 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) { lv_obj_add_style(obj, &styles->scr, 0); lv_obj_add_style(obj, &styles->pad_normal, 0); lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); @@ -711,8 +711,8 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj) lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); } - #if LV_USE_BTN - else if(lv_obj_check_type(obj, &lv_btn_class)) { +#if LV_USE_BUTTON + else if(lv_obj_check_type(obj, &lv_button_class)) { lv_obj_add_style(obj, &styles->btn, 0); lv_obj_add_style(obj, &styles->bg_color_primary, 0); lv_obj_add_style(obj, &styles->transition_delayed, 0); @@ -733,8 +733,8 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj) } #endif -#if LV_USE_BTNMATRIX - else if(lv_obj_check_type(obj, &lv_btnmatrix_class)) { +#if LV_USE_BUTTONMATRIX + else if(lv_obj_check_type(obj, &lv_buttonmatrix_class)) { #if LV_USE_MSGBOX if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) { lv_obj_add_style(obj, &styles->msgbox_btn_bg, 0); @@ -862,7 +862,7 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj) lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); lv_obj_add_style(obj, &styles->chart_series, LV_PART_ITEMS); lv_obj_add_style(obj, &styles->chart_indic, LV_PART_INDICATOR); - lv_obj_add_style(obj, &styles->chart_ticks, LV_PART_TICKS); + lv_obj_add_style(obj, &styles->chart_ticks, LV_PART_ITEMS); lv_obj_add_style(obj, &styles->chart_series, LV_PART_CURSOR); } #endif @@ -996,7 +996,7 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj) lv_obj_add_style(obj, &styles->bg_color_grey, 0); lv_obj_add_style(obj, &styles->list_item_grow, 0); } - else if(lv_obj_check_type(obj, &lv_list_btn_class)) { + else if(lv_obj_check_type(obj, &lv_list_button_class)) { lv_obj_add_style(obj, &styles->bg_color_white, 0); lv_obj_add_style(obj, &styles->list_btn, 0); lv_obj_add_style(obj, &styles->bg_color_primary, LV_STATE_FOCUS_KEY); diff --git a/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.h b/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.h index 7276f485d..ef40ba742 100644 --- a/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.h +++ b/lib/libesp32_lvgl/LVGL_assets/src/lv_theme_haspmota.h @@ -40,7 +40,7 @@ typedef enum { * @param font pointer to a font to use. * @return a pointer to reference this theme later */ -lv_theme_t * lv_theme_haspmota_init(lv_disp_t * disp, lv_color_t color_primary, lv_color_t color_secondary, bool dark, const lv_font_t * font); +lv_theme_t * lv_theme_haspmota_init(lv_display_t * disp, lv_color_t color_primary, lv_color_t color_secondary, bool dark, const lv_font_t * font); bool lv_theme_haspmota_is_inited(void); diff --git a/lib/libesp32_lvgl/LVGL_assets/src/tasmota_logo_64_truecolor_alpha.c b/lib/libesp32_lvgl/LVGL_assets/src/tasmota_logo_64_truecolor_alpha.c new file mode 100644 index 000000000..cc5a2af1f --- /dev/null +++ b/lib/libesp32_lvgl/LVGL_assets/src/tasmota_logo_64_truecolor_alpha.c @@ -0,0 +1,127 @@ +// Command: +// python3 LVGLImage.py --ofmt C --cf RGB565A8 TASMOTA_Symbol_64.png + +#include "lvgl.h" + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_DUST +#define LV_ATTRIBUTE_IMG_DUST +#endif + +static const +LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DUST +uint8_t TASMOTA_Symbol_64_map[] = { + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x8c,0x8e,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xff,0x81,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfc,0xfc,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfd,0xff,0xfb,0xfb,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xfb,0xff,0xff,0xfb,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xfa,0xff,0xb9,0xb8,0xff,0xfa,0xff,0xfd,0xfd,0xff,0x81,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfe,0xff,0xf9,0xff,0xc4,0x02,0x01,0xc1,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x04,0x04,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfe,0xff,0xf9,0xff,0xc2,0x05,0x00,0x04,0x00,0x00,0x04,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x05,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfe,0xff,0xf9,0xff,0xc2,0x05,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc2,0x05,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc2,0x05,0x00,0x04,0x00,0x00,0x00,0x00,0x01,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x01,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x04,0x00,0x00,0x00,0x02,0x06,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x06,0x02,0x00,0x00,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x05,0x00,0x00,0x02,0x04,0x00,0x00,0x00,0x09,0x29,0x49,0x5e,0x69,0x69,0x5e,0x49,0x29,0x09,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc2,0x05,0x00,0x05,0x00,0x02,0x04,0x00,0x00,0x0d,0x55,0xa2,0xda,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xd9,0xa5,0x59,0x0c,0x00,0x00,0x05,0x02,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x05,0x00,0x03,0x00,0x00,0x13,0x81,0xe3,0xff,0xff,0xff,0xff,0xfe,0xfc,0xfb,0xfb,0xfc,0xfe,0xff,0xff,0xff,0xff,0xe2,0x83,0x14,0x00,0x00,0x04,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x05,0x00,0x04,0x00,0x00,0x66,0xe9,0xff,0xff,0xfc,0xfb,0xfb,0xfc,0xfd,0xfe,0xff,0xff,0xfe,0xfd,0xfc,0xfc,0xfb,0xfc,0xff,0xff,0xea,0x69,0x00,0x00,0x05,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x00,0x00,0x00, + 0x00,0x00,0x02,0x02,0x00,0x80,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc2,0x05,0x00,0x05,0x00,0x06,0x00,0x12,0xb5,0xff,0xff,0xf9,0xfd,0xfe,0xfb,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfb,0xfe,0xfd,0xf9,0xff,0xff,0xb8,0x14,0x00,0x06,0x00,0x04,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x02,0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x04,0x00,0x05,0x00,0x29,0xe1,0xff,0xfa,0xfb,0xff,0xfb,0xfd,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xfa,0xff,0xfb,0xfa,0xff,0xe2,0x2a,0x00,0x05,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x82,0x00,0x02,0x02,0x00, + 0x01,0x01,0x00,0x7f,0xff,0xfd,0xfd,0xff,0xf9,0xff,0xc3,0x05,0x00,0x05,0x00,0x05,0x00,0x2e,0xf0,0xff,0xf9,0xff,0xfe,0xfb,0xff,0xff,0xcb,0x7c,0x25,0xa0,0xff,0xfc,0xfc,0xff,0xa1,0x25,0x7c,0xcb,0xff,0xff,0xfb,0xfe,0xff,0xf8,0xff,0xf0,0x2e,0x00,0x05,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfd,0xff,0x82,0x00,0x01,0x02,0x01,0x00,0x80,0xff,0xfd,0xfe,0xff,0xf9,0xff,0xc2,0x05,0x00,0x05,0x00,0x04,0x00,0x1d,0xea,0xff,0xf9,0xff,0xfc,0xff,0xff,0xca,0x4b,0x00,0x00,0x00,0x92,0xff,0xfb,0xfb,0xff,0x94,0x00,0x00,0x00,0x49,0xca,0xff,0xff,0xfc,0xff,0xf9,0xff,0xea,0x1d,0x00,0x04,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfe,0xfd,0xff,0x83,0x00,0x01, + 0x00,0x7f,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc2,0x06,0x00,0x04,0x00,0x01,0x00,0x01,0xc8,0xff,0xf8,0xff,0xfb,0xff,0xff,0x7c,0x00,0x00,0x00,0x09,0x00,0x97,0xff,0xfb,0xfb,0xff,0x98,0x00,0x09,0x00,0x00,0x00,0x7b,0xff,0xff,0xfb,0xff,0xf8,0xff,0xc8,0x01,0x00,0x01,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x81,0x00,0x8b,0xff,0xfc,0xfd,0xff,0xf9,0xff,0xc3,0x06,0x00,0x05,0x00,0x00,0x04,0x00,0x85,0xff,0xf8,0xff,0xfc,0xff,0xfb,0x4d,0x00,0x00,0x05,0x02,0x04,0x00,0x95,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x02,0x05,0x00,0x00,0x4c,0xfa,0xff,0xfc,0xff,0xf8,0xff,0x84,0x00,0x04,0x00,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xff,0xfd,0xfc,0xff,0x8e, + 0x8a,0xff,0xfc,0xfd,0xf9,0xff,0xc2,0x05,0x00,0x05,0x00,0x00,0x04,0x00,0x2e,0xfe,0xff,0xfe,0xfd,0xff,0xff,0x46,0x00,0x06,0x01,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x01,0x06,0x00,0x45,0xff,0xff,0xfd,0xfe,0xff,0xfe,0x2e,0x00,0x04,0x00,0x00,0x05,0x00,0x04,0xc0,0xff,0xf9,0xfd,0xfc,0xff,0x8c,0x00,0x7f,0xff,0xf9,0xff,0xc2,0x06,0x00,0x04,0x00,0x00,0x01,0x02,0x00,0xac,0xff,0xfa,0xff,0xfc,0xff,0x66,0x00,0x07,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x07,0x00,0x66,0xff,0xfc,0xff,0xfa,0xff,0xab,0x00,0x02,0x01,0x00,0x00,0x04,0x00,0x05,0xc0,0xff,0xf9,0xff,0x81,0x00, + 0x01,0x00,0x7d,0xff,0xc1,0x05,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x2e,0xfd,0xff,0xfd,0xfa,0xff,0xad,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0xad,0xff,0xfa,0xfd,0xff,0xfc,0x2e,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x04,0xbf,0xff,0x7f,0x00,0x01,0x02,0x00,0x00,0x61,0x15,0x00,0x05,0x00,0x00,0x00,0x00,0x04,0x00,0x8a,0xff,0xfa,0xfe,0xff,0xf8,0x26,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x27,0xf8,0xff,0xfe,0xfa,0xff,0x89,0x00,0x04,0x00,0x00,0x00,0x00,0x05,0x00,0x14,0x61,0x00,0x00,0x02, + 0x00,0x01,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0xd4,0xff,0xfb,0xfb,0xff,0x9d,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x9e,0xff,0xfb,0xfb,0xff,0xd3,0x05,0x00,0x01,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x30,0xff,0xff,0xfe,0xfe,0xff,0x3e,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x3f,0xff,0xfe,0xfd,0xff,0xff,0x2f,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x62,0xff,0xfc,0xfc,0xff,0xdb,0x08,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x09,0xdc,0xff,0xfc,0xfb,0xff,0x62,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x8c,0xff,0xfa,0xfa,0xff,0xaa,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xaa,0xff,0xfa,0xfa,0xff,0x8c,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xa9,0xff,0xfa,0xfb,0xff,0x83,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x83,0xff,0xfb,0xfa,0xff,0xa8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xb8,0xff,0xfb,0xfb,0xff,0x6c,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x6d,0xff,0xfb,0xfb,0xff,0xb6,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xbc,0xff,0xfb,0xfb,0xff,0x66,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x67,0xff,0xfb,0xfb,0xff,0xbb,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xb4,0xff,0xfa,0xfb,0xff,0x71,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x72,0xff,0xfb,0xfa,0xff,0xb3,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0xa1,0xff,0xfa,0xfa,0xff,0x8f,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x90,0xff,0xfa,0xfa,0xff,0xa0,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x81,0xff,0xfa,0xfa,0xff,0xba,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xbb,0xff,0xfa,0xfa,0xff,0x80,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x51,0xff,0xfc,0xfd,0xff,0xec,0x16,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x16,0xed,0xff,0xfd,0xfc,0xff,0x50,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0xf4,0xff,0xfd,0xfc,0xff,0x5b,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x5c,0xff,0xfc,0xfd,0xff,0xf3,0x1f,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xbe,0xff,0xfa,0xfc,0xff,0xc1,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0xc2,0xff,0xfc,0xfa,0xff,0xbd,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x6a,0xff,0xfb,0xfe,0xfd,0xff,0x4e,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x4f,0xff,0xfd,0xfe,0xfb,0xff,0x69,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x13,0xe8,0xff,0xfc,0xfb,0xff,0xdb,0x09,0x00,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x09,0xdb,0xff,0xfb,0xfc,0xff,0xe7,0x13,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x7f,0xff,0xfa,0xff,0xfa,0xff,0xa5,0x00,0x01,0x03,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x03,0x01,0x00,0xa6,0xff,0xfa,0xff,0xfa,0xff,0x7f,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0c,0xe0,0xff,0xfc,0xff,0xfb,0xff,0x8c,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x8c,0xff,0xfb,0xff,0xfc,0xff,0xdf,0x0b,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x4c,0xff,0xfd,0xfd,0xfe,0xfc,0xff,0x9c,0x00,0x00,0x02,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x02,0x00,0x00,0x9a,0xff,0xfc,0xfe,0xfd,0xfd,0xff,0x4c,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x8b,0xff,0xf8,0xff,0xfe,0xfc,0xff,0xcb,0x33,0x00,0x02,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x02,0x00,0x33,0xca,0xff,0xfc,0xfe,0xff,0xf8,0xff,0x8a,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xae,0xff,0xf9,0xff,0xff,0xf9,0xff,0xe5,0x0b,0x00,0x06,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x06,0x00,0x0b,0xe5,0xff,0xf9,0xff,0xff,0xf8,0xff,0xae,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xb1,0xff,0xfb,0xfc,0xfd,0xff,0xe3,0x11,0x00,0x07,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x07,0x00,0x11,0xe3,0xff,0xfd,0xfc,0xfb,0xff,0xb3,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x99,0xff,0xff,0xf7,0xff,0xe3,0x0f,0x00,0x07,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x06,0x00,0x0f,0xe3,0xff,0xf7,0xff,0xff,0x9b,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x64,0xf2,0xff,0xff,0xde,0x0f,0x00,0x06,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x06,0x00,0x10,0xde,0xff,0xff,0xf2,0x65,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x1f,0x9f,0xff,0xf4,0x10,0x00,0x07,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x07,0x00,0x10,0xf4,0xff,0x9e,0x1f,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x33,0x80,0x10,0x00,0x06,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x06,0x00,0x0f,0x84,0x36,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x96,0xff,0xfb,0xfb,0xff,0x97,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +}; + +const lv_img_dsc_t TASMOTA_Symbol_64 = { + .header.magic = LV_IMAGE_HEADER_MAGIC, + .header.cf = LV_COLOR_FORMAT_RGB565A8, + .header.flags = 0, + .header.w = 64, + .header.h = 64, + .header.stride = 128, + .data_size = 12288, + .data = TASMOTA_Symbol_64_map, +}; diff --git a/lib/libesp32_lvgl/freetype/CMakeLists.txt b/lib/libesp32_lvgl/freetype/CMakeLists.txt deleted file mode 100644 index ffb7c4801..000000000 --- a/lib/libesp32_lvgl/freetype/CMakeLists.txt +++ /dev/null @@ -1,585 +0,0 @@ -# CMakeLists.txt -# -# Copyright (C) 2013-2021 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# Written originally by John Cary -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# -# The following will 1. create a build directory and 2. change into it and -# call cmake to configure the build with default parameters as a static -# library. See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html -# for information about Debug, Release, etc. builds. -# -# cmake -B build -D CMAKE_BUILD_TYPE=Release -# -# For a dynamic library, use -# -# cmake -B build -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release -# -# For a framework on OS X, use -# -# cmake -E chdir build cmake -G Xcode -D BUILD_FRAMEWORK:BOOL=true .. -# -# For an iOS static library, use -# -# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=OS .. -# -# or -# -# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR .. -# -# or -# -# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 .. -# -# Finally, build the project with: -# -# cmake --build build -# -# Install it with -# -# (sudo) cmake --build build --target install -# -# A binary distribution can be made with -# -# cmake --build build --config Release --target package -# -# Please refer to the cmake manual for further options, in particular, how -# to modify compilation and linking parameters. -# -# Some notes. -# -# . `cmake' creates configuration files in -# -# /include/freetype/config -# -# which should be further modified if necessary. -# -# . You can use `cmake' directly on a freshly cloned FreeType git -# repository. -# -# . `CMakeLists.txt' is provided as-is since it is normally not used by the -# developer team. -# -# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG', -# `FT_WITH_HARFBUZZ', and `FT_WITH_BROTLI' CMake variables to `ON' to -# force using a dependency. Leave a variable undefined (which is the -# default) to use the dependency only if it is available. Example: -# -# cmake -B build -D FT_WITH_ZLIB=ON \ -# -D FT_WITH_BZIP2=ON \ -# -D FT_WITH_PNG=ON \ -# -D FT_WITH_HARFBUZZ=ON \ -# -D FT_WITH_BROTLI=ON [...] -# -# Set `CMAKE_DISABLE_FIND_PACKAGE_XXX=TRUE' to disable a dependency completely -# (where `XXX' is a CMake package name like `BZip2'). Example for disabling all -# dependencies: -# -# cmake -B build -D CMAKE_DISABLE_FIND_PACKAGE_ZLIB=TRUE \ -# -D CMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE \ -# -D CMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE \ -# -D CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE \ -# -D CMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE [...] -# -# . Installation of FreeType can be controlled with the CMake variables -# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' -# (this is compatible with the same CMake variables in zlib's CMake -# support). - -# FreeType explicitly marks the API to be exported and relies on the compiler -# to hide all other symbols. CMake supports a C_VISBILITY_PRESET property -# starting with 2.8.12. -cmake_minimum_required(VERSION 2.8.12) - -if (NOT CMAKE_VERSION VERSION_LESS 3.3) - # Allow symbol visibility settings also on static libraries. CMake < 3.3 - # only sets the property on a shared library build. - cmake_policy(SET CMP0063 NEW) -endif () - -include(CheckIncludeFile) - -# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which -# configures the base build environment and references the toolchain file -if (APPLE) - if (DEFINED IOS_PLATFORM) - if (NOT "${IOS_PLATFORM}" STREQUAL "OS" - AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR" - AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR64") - message(FATAL_ERROR - "IOS_PLATFORM must be set to either OS, SIMULATOR, or SIMULATOR64") - endif () - if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") - message(AUTHOR_WARNING - "You should use Xcode generator with IOS_PLATFORM enabled to get Universal builds.") - endif () - if (BUILD_SHARED_LIBS) - message(FATAL_ERROR - "BUILD_SHARED_LIBS can not be on with IOS_PLATFORM enabled") - endif () - if (BUILD_FRAMEWORK) - message(FATAL_ERROR - "BUILD_FRAMEWORK can not be on with IOS_PLATFORM enabled") - endif () - - # iOS only uses static libraries - set(BUILD_SHARED_LIBS OFF) - - set(CMAKE_TOOLCHAIN_FILE - ${CMAKE_SOURCE_DIR}/builds/cmake/iOS.cmake) - endif () -else () - if (DEFINED IOS_PLATFORM) - message(FATAL_ERROR "IOS_PLATFORM is not supported on this platform") - endif () -endif () - - -project(freetype C) - -set(VERSION_MAJOR "2") -set(VERSION_MINOR "10") -set(VERSION_PATCH "4") - -# Generate LIBRARY_VERSION and LIBRARY_SOVERSION. -set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'") -file(STRINGS "${PROJECT_SOURCE_DIR}/builds/unix/configure.raw" - VERSION_INFO - REGEX ${LIBTOOL_REGEX}) -string(REGEX REPLACE - ${LIBTOOL_REGEX} "\\1" - LIBTOOL_CURRENT "${VERSION_INFO}") -string(REGEX REPLACE - ${LIBTOOL_REGEX} "\\2" - LIBTOOL_REVISION "${VERSION_INFO}") -string(REGEX REPLACE - ${LIBTOOL_REGEX} "\\3" - LIBTOOL_AGE "${VERSION_INFO}") - -# This is what libtool does internally on Unix platforms. -math(EXPR LIBRARY_SOVERSION "${LIBTOOL_CURRENT} - ${LIBTOOL_AGE}") -set(LIBRARY_VERSION "${LIBRARY_SOVERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION}") - -# External dependency library detection is automatic. See the notes at the top -# of this file, for how to force or disable dependencies completely. -option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF) -option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF) -option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF) -option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF) -option(FT_WITH_BROTLI "Support compressed WOFF2 fonts." OFF) - - -# Disallow in-source builds -if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") - message(FATAL_ERROR - "In-source builds are not permitted! Make a separate folder for" - " building, e.g.,\n" - " cmake -E make_directory build\n" - " cmake -E chdir build cmake ..\n" - "Before that, remove the files created by this failed run with\n" - " cmake -E remove CMakeCache.txt\n" - " cmake -E remove_directory CMakeFiles") -endif () - - -# Add local cmake modules -list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/builds/cmake) - - -if (BUILD_FRAMEWORK) - if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") - message(FATAL_ERROR - "You should use Xcode generator with BUILD_FRAMEWORK enabled") - endif () - set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)") - set(BUILD_SHARED_LIBS ON) -endif () - - -# Find dependencies -set(HARFBUZZ_MIN_VERSION "2.0.0") -if (FT_WITH_HARFBUZZ) - find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION} REQUIRED) -else () - find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION}) -endif () - -if (FT_WITH_PNG) - find_package(PNG REQUIRED) -else () - find_package(PNG) -endif () - -if (FT_WITH_ZLIB) - find_package(ZLIB REQUIRED) -else () - find_package(ZLIB) -endif () - -if (FT_WITH_BZIP2) - find_package(BZip2 REQUIRED) -else () - find_package(BZip2) -endif () - -if (FT_WITH_BROTLI) - find_package(BrotliDec REQUIRED) -else () - find_package(BrotliDec) -endif () - -# Create the configuration file -if (UNIX) - check_include_file("unistd.h" HAVE_UNISTD_H) - check_include_file("fcntl.h" HAVE_FCNTL_H) - - file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.h.in" - FTCONFIG_H) - if (HAVE_UNISTD_H) - string(REGEX REPLACE - "#undef +(HAVE_UNISTD_H)" "#define \\1 1" - FTCONFIG_H "${FTCONFIG_H}") - endif () - if (HAVE_FCNTL_H) - string(REGEX REPLACE - "#undef +(HAVE_FCNTL_H)" "#define \\1 1" - FTCONFIG_H "${FTCONFIG_H}") - endif () -else () - file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h" - FTCONFIG_H) -endif () - -set(FTCONFIG_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h") -if (EXISTS "${FTCONFIG_H_NAME}") - file(READ "${FTCONFIG_H_NAME}" ORIGINAL_FTCONFIG_H) -else () - set(ORIGINAL_FTCONFIG_H "") -endif () -if (NOT (ORIGINAL_FTCONFIG_H STREQUAL FTCONFIG_H)) - file(WRITE "${FTCONFIG_H_NAME}" "${FTCONFIG_H}") -endif () - - -# Create the options file -file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftoption.h" - FTOPTION_H) -if (ZLIB_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_SYSTEM_ZLIB) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (BZIP2_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_BZIP2) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (PNG_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_PNG) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (HARFBUZZ_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (BROTLIDEC_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_BROTLI) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () - -set(FTOPTION_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h") -if (EXISTS "${FTOPTION_H_NAME}") - file(READ "${FTOPTION_H_NAME}" ORIGINAL_FTOPTION_H) -else () - set(ORIGINAL_FTOPTION_H "") -endif () -if (NOT (ORIGINAL_FTOPTION_H STREQUAL FTOPTION_H)) - file(WRITE "${FTOPTION_H_NAME}" "${FTOPTION_H}") -endif () - - -file(GLOB PUBLIC_HEADERS "include/ft2build.h" "include/freetype/*.h") -file(GLOB PUBLIC_CONFIG_HEADERS "include/freetype/config/*.h") -file(GLOB PRIVATE_HEADERS "include/freetype/internal/*.h") - - -set(BASE_SRCS - src/autofit/autofit.c - src/base/ftbase.c - src/base/ftbbox.c - src/base/ftbdf.c - src/base/ftbitmap.c - src/base/ftcid.c - src/base/ftfstype.c - src/base/ftgasp.c - src/base/ftglyph.c - src/base/ftgxval.c - src/base/ftinit.c - src/base/ftmm.c - src/base/ftotval.c - src/base/ftpatent.c - src/base/ftpfr.c - src/base/ftstroke.c - src/base/ftsynth.c - src/base/fttype1.c - src/base/ftwinfnt.c - src/bdf/bdf.c - src/bzip2/ftbzip2.c - src/cache/ftcache.c - src/cff/cff.c - src/cid/type1cid.c - src/gzip/ftgzip.c - src/lzw/ftlzw.c - src/pcf/pcf.c - src/pfr/pfr.c - src/psaux/psaux.c - src/pshinter/pshinter.c - src/psnames/psnames.c - src/raster/raster.c - src/sdf/sdf.c - src/sfnt/sfnt.c - src/smooth/smooth.c - src/truetype/truetype.c - src/type1/type1.c - src/type42/type42.c - src/winfonts/winfnt.c -) - -if (UNIX) - list(APPEND BASE_SRCS "builds/unix/ftsystem.c") -elseif (WIN32) - list(APPEND BASE_SRCS "builds/windows/ftsystem.c") -else () - list(APPEND BASE_SRCS "src/base/ftsystem.c") -endif () - -if (WIN32) - enable_language(RC) - list(APPEND BASE_SRCS builds/windows/ftdebug.c - src/base/ftver.rc) -elseif (WINCE) - list(APPEND BASE_SRCS builds/wince/ftdebug.c) -else () - list(APPEND BASE_SRCS src/base/ftdebug.c) -endif () - -if (BUILD_FRAMEWORK) - list(APPEND BASE_SRCS builds/mac/freetype-Info.plist) -endif () - - -if (NOT DISABLE_FORCE_DEBUG_POSTFIX) - set(CMAKE_DEBUG_POSTFIX d) -endif () - - -add_library(freetype - ${PUBLIC_HEADERS} - ${PUBLIC_CONFIG_HEADERS} - ${PRIVATE_HEADERS} - ${BASE_SRCS} -) - -set_target_properties( - freetype PROPERTIES - C_VISIBILITY_PRESET hidden) - -target_compile_definitions( - freetype PRIVATE FT2_BUILD_LIBRARY) - -if (WIN32) - target_compile_definitions( - freetype PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) - if (BUILD_SHARED_LIBS) - target_compile_definitions( - freetype PRIVATE DLL_EXPORT) - endif () -endif () - -if (BUILD_SHARED_LIBS) - set_target_properties(freetype PROPERTIES - VERSION ${LIBRARY_VERSION} - SOVERSION ${LIBRARY_SOVERSION}) -endif () - -# Pick up ftconfig.h and ftoption.h generated above, first. -target_include_directories( - freetype - PUBLIC - $ - $ - $ - PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/include - - # Make available for builds/unix/ftsystem.c. - ${CMAKE_CURRENT_BINARY_DIR}/include/freetype/config -) - - -if (BUILD_FRAMEWORK) - set_property(SOURCE ${PUBLIC_CONFIG_HEADERS} - PROPERTY MACOSX_PACKAGE_LOCATION Headers/config - ) - set_target_properties(freetype PROPERTIES - FRAMEWORK TRUE - MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist - PUBLIC_HEADER "${PUBLIC_HEADERS}" - XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" - ) -endif () - - -set(PKG_CONFIG_REQUIRED_PRIVATE "") -set(PKG_CONFIG_LIBS_PRIVATE "") - -if (ZLIB_FOUND) - target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) - target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib") -endif () -if (BZIP2_FOUND) - target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES}) - target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS - list(APPEND PKG_CONFIG_LIBS_PRIVATE "-lbz2") -endif () -if (PNG_FOUND) - target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES}) - target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS}) - target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libpng") -endif () -if (HARFBUZZ_FOUND) - target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES}) - target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}") -endif () -if (BROTLIDEC_FOUND) - target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES}) - target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS}) - target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libbrotlidec") -endif () - - -# Installation -include(GNUInstallDirs) - -if (NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) - install( - # Note the trailing slash in the argument to `DIRECTORY'! - DIRECTORY ${PROJECT_SOURCE_DIR}/include/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2 - COMPONENT headers - PATTERN "internal" EXCLUDE - PATTERN "ftconfig.h" EXCLUDE - PATTERN "ftoption.h" EXCLUDE) - install( - FILES ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h - ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2/freetype/config - COMPONENT headers) -endif () - -if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) - # Generate the pkg-config file - file(READ "${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in" FREETYPE2_PC_IN) - - string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}") - - string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX} - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%exec_prefix%" "\${prefix}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%LIBS_PRIVATE%" "${PKG_CONFIG_LIBS_PRIVATE}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - - set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc") - if (EXISTS "${FREETYPE2_PC_IN_NAME}") - file(READ "${FREETYPE2_PC_IN_NAME}" ORIGINAL_FREETYPE2_PC_IN) - else () - set(ORIGINAL_FREETYPE2_PC_IN "") - endif () - if (NOT (ORIGINAL_FREETYPE2_PC_IN STREQUAL FREETYPE2_PC_IN)) - file(WRITE "${FREETYPE2_PC_IN_NAME}" ${FREETYPE2_PC_IN}) - endif () - - install( - FILES ${PROJECT_BINARY_DIR}/freetype2.pc - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig - COMPONENT pkgconfig) - - include(CMakePackageConfigHelpers) - write_basic_package_version_file( - ${PROJECT_BINARY_DIR}/freetype-config-version.cmake - VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH} - COMPATIBILITY SameMajorVersion) - - install( - TARGETS freetype - EXPORT freetype-targets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - FRAMEWORK DESTINATION Library/Frameworks - COMPONENT libraries) - install( - EXPORT freetype-targets - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype - FILE freetype-config.cmake - COMPONENT headers) - install( - FILES ${PROJECT_BINARY_DIR}/freetype-config-version.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype - COMPONENT headers) -endif () - - -# Packaging -set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME}) -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.") -set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") -set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT") - -set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) -set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) -set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) -set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") - -if (WIN32) - set(CPACK_GENERATOR ZIP) -else () - set(CPACK_GENERATOR TGZ) -endif () - -set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") -set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers") -set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION - "Library used to build programs which use FreeType") -set(CPACK_COMPONENT_HEADERS_DESCRIPTION - "C/C++ header files for use with FreeType") -set(CPACK_COMPONENT_HEADERS_DEPENDS libraries) -set(CPACK_COMPONENT_LIBRARIES_GROUP "Development") -set(CPACK_COMPONENT_HEADERS_GROUP "Development") - -include(CPack) diff --git a/lib/libesp32_lvgl/freetype/ChangeLog b/lib/libesp32_lvgl/freetype/ChangeLog index 42f7c34ba..ca58f007a 100644 --- a/lib/libesp32_lvgl/freetype/ChangeLog +++ b/lib/libesp32_lvgl/freetype/ChangeLog @@ -1,5066 +1,6562 @@ -2020-10-20 Werner Lemberg +2023-08-25 Werner Lemberg - * Version 2.10.4 released. + * Version 2.13.2 released. ========================== + Tag sources with `VER-2-13-2'. - Tag sources with `VER-2-10-4'. - - * docs/VERSION.TXT: Add entry for version 2.10.4. + * docs/VERSION.TXT: Add entry for version 2.13.2. * docs/CHANGES: Updated. + * docs/release, docs/README, builds/macs/README: Updated. * README, src/base/ftver.rc, builds/windows/vc2010/index.html, - builds/windows/visualc/index.html, - builds/windows/visualce/index.html, - builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/index.html, docs/freetype-config.1: - s/2.10.3/2.10.4/, s/2103/2104/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. - - * builds/unix/configure.raw (version_info): Set to 23:4:17. - * CMakeLists.txt (VERSION_PATCH): Set to 4. - -2020-10-19 Werner Lemberg - - [sfnt] Fix heap buffer overflow (#59308). - - This is CVE-2020-15999. - - * src/sfnt/pngshim.c (Load_SBit_Png): Test bitmap size earlier. - -2020-10-17 Alexei Podtelezhnikov - - * src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++. - -2020-10-17 Alexei Podtelezhnikov - - * src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++. - -2020-10-10 Werner Lemberg - - * Version 2.10.3 released. - ========================== - - - Tag sources with `VER-2-10-3'. - - * docs/VERSION.TXT: Add entry for version 2.10.3. - - * README, src/base/ftver.rc, builds/windows/vc2010/index.html, - builds/windows/visualc/index.html, - builds/windows/visualce/index.html, - builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/index.html, docs/freetype-config.1: - s/2.10.2/2.10.3/, s/2102/2103/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. - - * builds/unix/configure.raw (version_info): Set to 23:3:17. - * CMakeLists.txt (VERSION_PATCH): Set to 3. - -2020-09-25 Werner Lemberg - - [autofit] Synchronize with ttfautohint. - - This corresponds to the following commits in the ttfautohint git - repository: - - bb6842bd3bd437b7b4a7921b0376c860f5e73d18 Typo, formatting. - d5c91ddb1cb310257a3dfe9a8e20e1fc51335faa Add Medefaidrin script. - - * src/autofit/afblue.dat: Add blue zone data for Medefaidrin. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Medefaidrin standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Medefaidrin - data. - -2020-09-25 Werner Lemberg - - Move `scripts/make_distribution_archives.py` to `src/tools`. - - * scr/tools/scripts/make_distribution_archives.py: (_TOP_DIR, - _SCRIPT_DIR): Updated to new location. - (main): s/shutils.copyfile/shutils.copy/ to preserve file - permissions. - (main): Prefix source file paths with `git_dir` while copying files - to allow calls of the script from other places than the top-level - directory. - -2020-09-24 Werner Lemberg - - * src/cff/cffgload.c (cff_slot_load): Scale `vertBearingY`. - - Towards the end of the the function there is a call to - `FT_Outline_Get_CBox` that retrieves the glyph bbox in scaled units. - That sets `horiBearing{X,Y}` and `vertBearingX` but `vertBearingY` - is left alone, and is not scaled. - - Patch from Eric Muller . - -2020-09-24 Werner Lemberg - - * src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics. - -2020-09-22 Werner Lemberg - - [meson] Move auxiliary scripts to `builds/meson`. - - Suggested by Alexei. - - * scripts/*.py: Move meson scripts to... - * builds/meson/*.py: ... this new location. - - * meson.build: Updated. - -2020-09-21 David Turner - - Add python script for building tarballs. - - * scripts/make_distribution_archives.py: New file. - - This standalone Python script should be equivalent to running `make - dist` with the Make-based build system, with the following minor - differences: - - - Since `make distclean` doesn't always clean up `objs/` properly, - `make dist` archives may contain some stale binaries like - `objs/.libs/libfreetype.so.6` or others. - - - `config.guess` and `config.sub` are not updated unless option - `--gnu-config-dir=DIR` is used to specify the location of these - files. - - - Some bits of the auto-generated reference documentation may - appear in slightly different order, probably due to issues related - to mkdocs and docwriter. - - As an example, the call - - scripts/make_distribution_archives.py /tmp/freetype2-dist - - creates the following files under `/tmp/freetype2-dist`: - - freetype-.tar.gz - freetype-.tar.xz - ft.zip - -2020-09-21 Werner Lemberg - - * scripts/extract_freetype_version.py: Fix regex typos. - -2020-09-21 David Turner - - Add Meson build project file. - - Example usage: - - # Configure Meson build in directory `build-meson` to generate - # release binaries comparable to to the ones from the - # autotools/make build system. - meson setup build-meson \ - --prefix=/usr/local \ - --buildtype=debugoptimized \ - --strip \ - -Db_ndebug=true - - # After configuring the Meson build with the above command, - # compile and install to `/usr/local/`; this includes a pkg-config - # file. - ninja -C build-meson install - - # Alternatively, compile and install to `/tmp/aa/usr/local/...` - # for packaging. - DESTDIR=/tmp/aa ninja -C build-meson install - - # Generate documentation under `build-meson/docs`. - ninja -C build-meson docs - - Library size comparison for stripped `libfreetype.so` generated by - all three build systems: - - - Default build (autotools + libtool): 712 KiB - - CMake build (RelWithDebInfo): 712 KiB - - Meson build: 712 KiB - - - * meson.build: New top-level Meson build file for the library. - - * meson_options.txt: New file. It holds user-selectable options for - the build, which can be printed with `meson configure`, and selected - at `meson setup` or `meson --reconfigure` time with - `-D