mirror of https://github.com/arendst/Tasmota.git
lv_berry simplify solidification from laptop
This commit is contained in:
parent
e4ae5e0b3a
commit
2438ab959a
|
@ -5,4 +5,4 @@
|
|||
# Should be eventually included in the build process
|
||||
#
|
||||
rm generate/be_*.h
|
||||
python3 tools/coc/coc -o generate src default ../berry_tasmota/src ../berry_mapping/src ../berry_int64/src ../../libesp32_lvgl/lv_binding_berry/src ../../libesp32_lvgl/lv_binding_berry/generate -c default/berry_conf.h
|
||||
python3 tools/coc/coc -o generate src default ../berry_tasmota/src ../berry_mapping/src ../berry_int64/src ../../libesp32_lvgl/lv_binding_berry/src ../../libesp32_lvgl/lv_binding_berry/src/solidify ../../libesp32_lvgl/lv_binding_berry/generate -c default/berry_conf.h
|
||||
|
|
|
@ -36,7 +36,7 @@ end
|
|||
|
||||
var pattern = "#@\\s*solidify:([A-Za-z0-9_.,]+)"
|
||||
|
||||
def parse_file(fname)
|
||||
def parse_file(fname, prefix_out)
|
||||
print("Parsing: ", fname)
|
||||
var f = open(prefix_dir + fname)
|
||||
var src = f.read()
|
||||
|
@ -81,5 +81,5 @@ clean_directory(prefix_out)
|
|||
var src_file_list = os.listdir(prefix_dir)
|
||||
for src_file : src_file_list
|
||||
if src_file[0] == '.' continue end
|
||||
parse_file(src_file)
|
||||
parse_file(src_file, prefix_out)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# empty module
|
||||
# allows stand-alone `import cb`
|
|
@ -846,42 +846,11 @@ const be_const_member_t lv0_constants[] = {
|
|||
|
||||
const size_t lv0_constants_size = sizeof(lv0_constants)/sizeof(lv0_constants[0]);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: lv_module_init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_lv_module_init, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* 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(lv),
|
||||
/* K1 */ be_nested_str(member),
|
||||
/* K2 */ be_nested_str(lv_solidified),
|
||||
}),
|
||||
&be_const_str_lv_module_init,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x6004000B, // 0000 GETGBL R1 G11
|
||||
0x58080000, // 0001 LDCONST R2 K0
|
||||
0x7C040200, // 0002 CALL R1 1
|
||||
0x88080101, // 0003 GETMBR R2 R0 K1
|
||||
0x90060202, // 0004 SETMBR R1 K1 R2
|
||||
0x90060400, // 0005 SETMBR R1 K2 R0
|
||||
0x80040200, // 0006 RET 1 R1
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
#include "../src/solidify/solidified_lv.h"
|
||||
|
||||
/* @const_object_info_begin
|
||||
module lv (scope: global, file: lv) {
|
||||
init, closure(lv_lv_module_init_closure)
|
||||
init, closure(lv_module_init_closure)
|
||||
member, func(lv0_member)
|
||||
}
|
||||
@const_object_info_end */
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
#! ../../libesp32/berry/berry -s -g
|
||||
#
|
||||
# Berry solidify files
|
||||
#
|
||||
# `../berry/berry -s -g`
|
||||
|
||||
import os
|
||||
import global
|
||||
import solidify
|
||||
import string
|
||||
import re
|
||||
|
||||
# import sys
|
||||
# sys.path().push('src/embedded') # allow to import from src/embedded
|
||||
|
||||
# globals that need to exist to make compilation succeed
|
||||
var globs = "path,ctypes_bytes_dyn,tasmota,ccronexpr,gpio,light,webclient,load,MD5,lv,light_state,"
|
||||
"lv_clock,lv_clock_icon,lv_signal_arcs,lv_signal_bars,lv_wifi_arcs_icon,lv_wifi_arcs,"
|
||||
"lv_wifi_bars_icon,lv_wifi_bars,"
|
||||
"_lvgl,"
|
||||
"cb"
|
||||
|
||||
for g:string.split(globs, ",")
|
||||
global.(g) = nil
|
||||
end
|
||||
|
||||
var prefix_dir = "src/embedded/"
|
||||
var files_in = ['lv.be', 'lvgl_glob.be','lvgl_extra.be']
|
||||
var prefix_out = "src/solidify/"
|
||||
|
||||
def clean_directory(dir)
|
||||
var file_list = os.listdir(dir)
|
||||
for f : file_list
|
||||
if f[0] == '.' continue end # ignore files starting with `.`
|
||||
os.remove(dir + f)
|
||||
end
|
||||
end
|
||||
|
||||
var pattern = "#@\\s*solidify:([A-Za-z0-9_.,]+)"
|
||||
|
||||
def parse_file(fname, prefix_out)
|
||||
print("Parsing: ", fname)
|
||||
var f = open(prefix_dir + fname)
|
||||
var src = f.read()
|
||||
f.close()
|
||||
# try to compile
|
||||
var compiled = compile(src)
|
||||
compiled() # run the compile code to instanciate the classes and modules
|
||||
# output solidified
|
||||
var fname_h = string.split(fname, '.be')[0] + '.h' # take whatever is before the first '.be'
|
||||
var fout = open(prefix_out + "solidified_" + fname_h, "w")
|
||||
fout.write(string.format("/* Solidification of %s */\n", fname_h))
|
||||
fout.write("/********************************************************************\\\n")
|
||||
fout.write("* Generated code, don't edit *\n")
|
||||
fout.write("\\********************************************************************/\n")
|
||||
fout.write('#include "be_constobj.h"\n')
|
||||
|
||||
var directives = re.searchall(pattern, src)
|
||||
# print(directives)
|
||||
|
||||
for directive : directives
|
||||
var object_list = string.split(directive[1], ',')
|
||||
var object_name = object_list[0]
|
||||
var weak = (object_list.find('weak') != nil) # do we solidify with weak strings?
|
||||
var o = global
|
||||
var cl_name = nil
|
||||
var obj_name = nil
|
||||
for subname : string.split(object_name, '.')
|
||||
o = o.(subname)
|
||||
cl_name = obj_name
|
||||
obj_name = subname
|
||||
end
|
||||
solidify.dump(o, weak, fout, cl_name)
|
||||
end
|
||||
|
||||
fout.write("/********************************************************************/\n")
|
||||
fout.write("/* End of solidification */\n")
|
||||
fout.close()
|
||||
end
|
||||
|
||||
clean_directory(prefix_out)
|
||||
|
||||
#var src_file_list = os.listdir(prefix_dir)
|
||||
var src_file_list = files_in
|
||||
for src_file : src_file_list
|
||||
if src_file[0] == '.' continue end
|
||||
parse_file(src_file, prefix_out)
|
||||
end
|
|
@ -1,417 +1,4 @@
|
|||
/********************************************************************
|
||||
* Tasmota LVGL lv_signal_bars widget
|
||||
*******************************************************************/
|
||||
#include "be_constobj.h"
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: _anonymous_
|
||||
********************************************************************/
|
||||
be_local_closure(lv_extra__anonymous_, /* name */
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str(global),
|
||||
/* K1 */ be_nested_str(lv),
|
||||
/* K2 */ be_nested_str(lv_coord_arr),
|
||||
/* K3 */ be_nested_str(lv_point_arr),
|
||||
/* K4 */ be_nested_str(coord_arr),
|
||||
/* K5 */ be_nested_str(point_arr),
|
||||
/* K6 */ be_nested_str(style_prop_arr),
|
||||
/* K7 */ be_nested_str(lv_style_prop_arr),
|
||||
}),
|
||||
&be_const_str__anonymous_,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[13]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x88080301, // 0001 GETMBR R2 R1 K1
|
||||
0x880C0102, // 0002 GETMBR R3 R0 K2
|
||||
0x900A0403, // 0003 SETMBR R2 K2 R3
|
||||
0x880C0103, // 0004 GETMBR R3 R0 K3
|
||||
0x900A0603, // 0005 SETMBR R2 K3 R3
|
||||
0x880C0102, // 0006 GETMBR R3 R0 K2
|
||||
0x900A0803, // 0007 SETMBR R2 K4 R3
|
||||
0x880C0103, // 0008 GETMBR R3 R0 K3
|
||||
0x900A0A03, // 0009 SETMBR R2 K5 R3
|
||||
0x880C0107, // 000A GETMBR R3 R0 K7
|
||||
0x900A0C03, // 000B SETMBR R2 K6 R3
|
||||
0x80040000, // 000C RET 1 R0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_coord_arr_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
3, /* 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(instance),
|
||||
/* K1 */ be_nested_str(init),
|
||||
/* K2 */ be_const_int(2),
|
||||
/* K3 */ be_nested_str(add),
|
||||
/* K4 */ be_nested_str(stop_iteration),
|
||||
/* K5 */ be_nested_str(ptr),
|
||||
/* K6 */ be_nested_str(int),
|
||||
/* K7 */ be_nested_str(value_error),
|
||||
/* K8 */ be_nested_str(argument_X20must_X20be_X20a_X20list_X20or_X20a_X20pointer_X2Bsize),
|
||||
}),
|
||||
&be_const_str_init,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[56]) { /* code */
|
||||
0x600C0004, // 0000 GETGBL R3 G4
|
||||
0x5C100200, // 0001 MOVE R4 R1
|
||||
0x7C0C0200, // 0002 CALL R3 1
|
||||
0x1C0C0700, // 0003 EQ R3 R3 K0
|
||||
0x780E001E, // 0004 JMPF R3 #0024
|
||||
0x600C000F, // 0005 GETGBL R3 G15
|
||||
0x5C100200, // 0006 MOVE R4 R1
|
||||
0x60140012, // 0007 GETGBL R5 G18
|
||||
0x7C0C0400, // 0008 CALL R3 2
|
||||
0x780E0019, // 0009 JMPF R3 #0024
|
||||
0x600C0003, // 000A GETGBL R3 G3
|
||||
0x5C100000, // 000B MOVE R4 R0
|
||||
0x7C0C0200, // 000C CALL R3 1
|
||||
0x8C0C0701, // 000D GETMET R3 R3 K1
|
||||
0x6014000C, // 000E GETGBL R5 G12
|
||||
0x5C180200, // 000F MOVE R6 R1
|
||||
0x7C140200, // 0010 CALL R5 1
|
||||
0x08140B02, // 0011 MUL R5 R5 K2
|
||||
0x7C0C0400, // 0012 CALL R3 2
|
||||
0x600C0010, // 0013 GETGBL R3 G16
|
||||
0x5C100200, // 0014 MOVE R4 R1
|
||||
0x7C0C0200, // 0015 CALL R3 1
|
||||
0xA8020008, // 0016 EXBLK 0 #0020
|
||||
0x5C100600, // 0017 MOVE R4 R3
|
||||
0x7C100000, // 0018 CALL R4 0
|
||||
0x8C140103, // 0019 GETMET R5 R0 K3
|
||||
0x601C0009, // 001A GETGBL R7 G9
|
||||
0x5C200800, // 001B MOVE R8 R4
|
||||
0x7C1C0200, // 001C CALL R7 1
|
||||
0x58200002, // 001D LDCONST R8 K2
|
||||
0x7C140600, // 001E CALL R5 3
|
||||
0x7001FFF6, // 001F JMP #0017
|
||||
0x580C0004, // 0020 LDCONST R3 K4
|
||||
0xAC0C0200, // 0021 CATCH R3 1 0
|
||||
0xB0080000, // 0022 RAISE 2 R0 R0
|
||||
0x70020012, // 0023 JMP #0037
|
||||
0x600C0004, // 0024 GETGBL R3 G4
|
||||
0x5C100200, // 0025 MOVE R4 R1
|
||||
0x7C0C0200, // 0026 CALL R3 1
|
||||
0x1C0C0705, // 0027 EQ R3 R3 K5
|
||||
0x780E000C, // 0028 JMPF R3 #0036
|
||||
0x600C0004, // 0029 GETGBL R3 G4
|
||||
0x5C100400, // 002A MOVE R4 R2
|
||||
0x7C0C0200, // 002B CALL R3 1
|
||||
0x1C0C0706, // 002C EQ R3 R3 K6
|
||||
0x780E0007, // 002D JMPF R3 #0036
|
||||
0x600C0003, // 002E GETGBL R3 G3
|
||||
0x5C100000, // 002F MOVE R4 R0
|
||||
0x7C0C0200, // 0030 CALL R3 1
|
||||
0x8C0C0701, // 0031 GETMET R3 R3 K1
|
||||
0x5C140200, // 0032 MOVE R5 R1
|
||||
0x08180502, // 0033 MUL R6 R2 K2
|
||||
0x7C0C0600, // 0034 CALL R3 3
|
||||
0x70020000, // 0035 JMP #0037
|
||||
0xB0060F08, // 0036 RAISE 1 K7 K8
|
||||
0x80000000, // 0037 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: item
|
||||
********************************************************************/
|
||||
be_local_closure(lv_coord_arr_item, /* 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[ 2]) { /* constants */
|
||||
/* K0 */ be_nested_str(get),
|
||||
/* K1 */ be_const_int(2),
|
||||
}),
|
||||
&be_const_str_item,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C080100, // 0000 GETMET R2 R0 K0
|
||||
0x08100301, // 0001 MUL R4 R1 K1
|
||||
0x58140001, // 0002 LDCONST R5 K1
|
||||
0x7C080600, // 0003 CALL R2 3
|
||||
0x80040400, // 0004 RET 1 R2
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: setitem
|
||||
********************************************************************/
|
||||
be_local_closure(lv_coord_arr_setitem, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
3, /* 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(set),
|
||||
/* K1 */ be_const_int(2),
|
||||
}),
|
||||
&be_const_str_setitem,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x8C0C0100, // 0000 GETMET R3 R0 K0
|
||||
0x08140301, // 0001 MUL R5 R1 K1
|
||||
0x5C180400, // 0002 MOVE R6 R2
|
||||
0x581C0001, // 0003 LDCONST R7 K1
|
||||
0x7C0C0800, // 0004 CALL R3 4
|
||||
0x80000000, // 0005 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: lv_coord_arr
|
||||
********************************************************************/
|
||||
extern const bclass be_class_bytes;
|
||||
be_local_class(lv_coord_arr,
|
||||
0,
|
||||
&be_class_bytes,
|
||||
be_nested_map(3,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key(init, -1), be_const_closure(lv_coord_arr_init_closure) },
|
||||
{ be_const_key(item, -1), be_const_closure(lv_coord_arr_item_closure) },
|
||||
{ be_const_key(setitem, -1), be_const_closure(lv_coord_arr_setitem_closure) },
|
||||
})),
|
||||
be_str_weak(lv_coord_arr)
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_point_arr_init, /* 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[12]) { /* constants */
|
||||
/* K0 */ be_nested_str(instance),
|
||||
/* K1 */ be_nested_str(value_error),
|
||||
/* K2 */ be_nested_str(argument_X20must_X20be_X20a_X20list),
|
||||
/* K3 */ be_nested_str(init),
|
||||
/* K4 */ be_nested_str(lv),
|
||||
/* K5 */ be_nested_str(lv_point),
|
||||
/* K6 */ be_nested_str(elements_X20must_X20be_X20a_X20lv_point),
|
||||
/* K7 */ be_nested_str(add),
|
||||
/* K8 */ be_nested_str(x),
|
||||
/* K9 */ be_const_int(2),
|
||||
/* K10 */ be_nested_str(y),
|
||||
/* K11 */ be_nested_str(stop_iteration),
|
||||
}),
|
||||
&be_const_str_init,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[52]) { /* code */
|
||||
0x60080004, // 0000 GETGBL R2 G4
|
||||
0x5C0C0200, // 0001 MOVE R3 R1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x20080500, // 0003 NE R2 R2 K0
|
||||
0x740A0004, // 0004 JMPT R2 #000A
|
||||
0x6008000F, // 0005 GETGBL R2 G15
|
||||
0x5C0C0200, // 0006 MOVE R3 R1
|
||||
0x60100012, // 0007 GETGBL R4 G18
|
||||
0x7C080400, // 0008 CALL R2 2
|
||||
0x740A0000, // 0009 JMPT R2 #000B
|
||||
0xB0060302, // 000A RAISE 1 K1 K2
|
||||
0x60080003, // 000B GETGBL R2 G3
|
||||
0x5C0C0000, // 000C MOVE R3 R0
|
||||
0x7C080200, // 000D CALL R2 1
|
||||
0x8C080503, // 000E GETMET R2 R2 K3
|
||||
0x6010000C, // 000F GETGBL R4 G12
|
||||
0x5C140200, // 0010 MOVE R5 R1
|
||||
0x7C100200, // 0011 CALL R4 1
|
||||
0x54160003, // 0012 LDINT R5 4
|
||||
0x08100805, // 0013 MUL R4 R4 R5
|
||||
0x7C080400, // 0014 CALL R2 2
|
||||
0x60080010, // 0015 GETGBL R2 G16
|
||||
0x5C0C0200, // 0016 MOVE R3 R1
|
||||
0x7C080200, // 0017 CALL R2 1
|
||||
0xA8020016, // 0018 EXBLK 0 #0030
|
||||
0x5C0C0400, // 0019 MOVE R3 R2
|
||||
0x7C0C0000, // 001A CALL R3 0
|
||||
0x60100004, // 001B GETGBL R4 G4
|
||||
0x5C140600, // 001C MOVE R5 R3
|
||||
0x7C100200, // 001D CALL R4 1
|
||||
0x20100900, // 001E NE R4 R4 K0
|
||||
0x74120005, // 001F JMPT R4 #0026
|
||||
0x6010000F, // 0020 GETGBL R4 G15
|
||||
0x5C140600, // 0021 MOVE R5 R3
|
||||
0xB81A0800, // 0022 GETNGBL R6 K4
|
||||
0x88180D05, // 0023 GETMBR R6 R6 K5
|
||||
0x7C100400, // 0024 CALL R4 2
|
||||
0x74120000, // 0025 JMPT R4 #0027
|
||||
0xB0060306, // 0026 RAISE 1 K1 K6
|
||||
0x8C100107, // 0027 GETMET R4 R0 K7
|
||||
0x88180708, // 0028 GETMBR R6 R3 K8
|
||||
0x581C0009, // 0029 LDCONST R7 K9
|
||||
0x7C100600, // 002A CALL R4 3
|
||||
0x8C100107, // 002B GETMET R4 R0 K7
|
||||
0x8818070A, // 002C GETMBR R6 R3 K10
|
||||
0x581C0009, // 002D LDCONST R7 K9
|
||||
0x7C100600, // 002E CALL R4 3
|
||||
0x7001FFE8, // 002F JMP #0019
|
||||
0x5808000B, // 0030 LDCONST R2 K11
|
||||
0xAC080200, // 0031 CATCH R2 1 0
|
||||
0xB0080000, // 0032 RAISE 2 R0 R0
|
||||
0x80000000, // 0033 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: lv_point_arr
|
||||
********************************************************************/
|
||||
extern const bclass be_class_bytes;
|
||||
be_local_class(lv_point_arr,
|
||||
0,
|
||||
&be_class_bytes,
|
||||
be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key(init, -1), be_const_closure(lv_point_arr_init_closure) },
|
||||
})),
|
||||
be_str_weak(lv_point_arr)
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_style_prop_arr_init, /* 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[ 6]) { /* constants */
|
||||
/* K0 */ be_nested_str(instance),
|
||||
/* K1 */ be_nested_str(value_error),
|
||||
/* K2 */ be_nested_str(argument_X20must_X20be_X20a_X20list),
|
||||
/* K3 */ be_nested_str(init),
|
||||
/* K4 */ be_nested_str(add),
|
||||
/* K5 */ be_nested_str(stop_iteration),
|
||||
}),
|
||||
&be_const_str_init,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[38]) { /* code */
|
||||
0x60080004, // 0000 GETGBL R2 G4
|
||||
0x5C0C0200, // 0001 MOVE R3 R1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x20080500, // 0003 NE R2 R2 K0
|
||||
0x740A0004, // 0004 JMPT R2 #000A
|
||||
0x6008000F, // 0005 GETGBL R2 G15
|
||||
0x5C0C0200, // 0006 MOVE R3 R1
|
||||
0x60100012, // 0007 GETGBL R4 G18
|
||||
0x7C080400, // 0008 CALL R2 2
|
||||
0x740A0000, // 0009 JMPT R2 #000B
|
||||
0xB0060302, // 000A RAISE 1 K1 K2
|
||||
0x60080003, // 000B GETGBL R2 G3
|
||||
0x5C0C0000, // 000C MOVE R3 R0
|
||||
0x7C080200, // 000D CALL R2 1
|
||||
0x8C080503, // 000E GETMET R2 R2 K3
|
||||
0x6010000C, // 000F GETGBL R4 G12
|
||||
0x5C140200, // 0010 MOVE R5 R1
|
||||
0x7C100200, // 0011 CALL R4 1
|
||||
0x54160003, // 0012 LDINT R5 4
|
||||
0x08100805, // 0013 MUL R4 R4 R5
|
||||
0x7C080400, // 0014 CALL R2 2
|
||||
0x60080010, // 0015 GETGBL R2 G16
|
||||
0x5C0C0200, // 0016 MOVE R3 R1
|
||||
0x7C080200, // 0017 CALL R2 1
|
||||
0xA8020008, // 0018 EXBLK 0 #0022
|
||||
0x5C0C0400, // 0019 MOVE R3 R2
|
||||
0x7C0C0000, // 001A CALL R3 0
|
||||
0x8C100104, // 001B GETMET R4 R0 K4
|
||||
0x60180009, // 001C GETGBL R6 G9
|
||||
0x5C1C0600, // 001D MOVE R7 R3
|
||||
0x7C180200, // 001E CALL R6 1
|
||||
0x541E0003, // 001F LDINT R7 4
|
||||
0x7C100600, // 0020 CALL R4 3
|
||||
0x7001FFF6, // 0021 JMP #0019
|
||||
0x58080005, // 0022 LDCONST R2 K5
|
||||
0xAC080200, // 0023 CATCH R2 1 0
|
||||
0xB0080000, // 0024 RAISE 2 R0 R0
|
||||
0x80000000, // 0025 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: lv_style_prop_arr
|
||||
********************************************************************/
|
||||
extern const bclass be_class_bytes;
|
||||
be_local_class(lv_style_prop_arr,
|
||||
0,
|
||||
&be_class_bytes,
|
||||
be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key(init, -1), be_const_closure(lv_style_prop_arr_init_closure) },
|
||||
})),
|
||||
be_str_weak(lv_style_prop_arr)
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified module: lv_extra
|
||||
********************************************************************/
|
||||
be_local_module(lv_extra,
|
||||
"lv_extra",
|
||||
be_nested_map(4,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key(lv_style_prop_arr, -1), be_const_class(be_class_lv_style_prop_arr) },
|
||||
{ be_const_key(lv_coord_arr, -1), be_const_class(be_class_lv_coord_arr) },
|
||||
{ be_const_key(lv_point_arr, -1), be_const_class(be_class_lv_point_arr) },
|
||||
{ be_const_key(init, 0), be_const_closure(lv_extra__anonymous__closure) },
|
||||
}))
|
||||
);
|
||||
BE_EXPORT_VARIABLE be_define_const_native_module(lv_extra);
|
||||
/********************************************************************/
|
||||
#include "solidify/solidified_lvgl_extra.h"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,20 +1,21 @@
|
|||
#- ------------------------------------------------------------ -#
|
||||
# Module `lv` - allows to extend the soidified `lv` module
|
||||
# Module `lv` - allows to extend the solidified `lv` module
|
||||
#
|
||||
# When doing `import lv`, the function `lv_module_init` below
|
||||
# is ran, with the solidified `lv` module passed as argument.
|
||||
#
|
||||
# The solidified module is read-only and cannot be extended.
|
||||
# This is why we are dynamically creating a new `lv` module
|
||||
# object that can be written to, and we assign the same
|
||||
# `member` function as the solidified one to allow for
|
||||
# dynamic members resolution. The `lv` solidified module has only
|
||||
# dynamic members.
|
||||
#- ------------------------------------------------------------ -#
|
||||
lv = module("lv")
|
||||
|
||||
# rename `lv` to `lv_ntv` and replace `lv` with `lv_tasmota`
|
||||
#@ solidify:lv_module_init,weak
|
||||
def lv_module_init(lv_solidified)
|
||||
var lv_new = module("lv") # create a dynamic module
|
||||
lv_new.member = lv_solidified.member
|
||||
# lv_new.lv_solidified = lv_solidified
|
||||
return lv_new
|
||||
end
|
||||
|
||||
lv.init = lv_module_init
|
||||
|
||||
def lv0_member_ntv() end
|
||||
|
||||
lv.member = lv0_member_ntv
|
||||
|
||||
return lv
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# classes for extra components
|
||||
|
||||
#@ solidify:lv_extra,weak
|
||||
var lv_extra = module("lv_extra")
|
||||
|
||||
class lv_coord_arr : bytes
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#- embedded class for LVGL globals -#
|
||||
|
||||
#@ solidify:LVGL_glob,weak
|
||||
#- This class stores all globals used by LVGL and cannot be stored in the solidified module -#
|
||||
#- this limits the globals to a single value '_lvgl' -#
|
||||
class LVGL_glob
|
||||
|
@ -231,7 +232,7 @@ class LVGL_glob
|
|||
end
|
||||
end
|
||||
|
||||
_lvgl = LVGL_glob()
|
||||
# _lvgl = LVGL_glob()
|
||||
|
||||
# class lv_custom_widget : lv.lv_obj
|
||||
# # static widget_width_def
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/* Solidification of lv.h */
|
||||
/********************************************************************\
|
||||
* Generated code, don't edit *
|
||||
\********************************************************************/
|
||||
#include "be_constobj.h"
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: lv_module_init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_module_init, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* 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),
|
||||
/* K1 */ be_nested_str_weak(member),
|
||||
}),
|
||||
be_str_weak(lv_module_init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x6004000B, // 0000 GETGBL R1 G11
|
||||
0x58080000, // 0001 LDCONST R2 K0
|
||||
0x7C040200, // 0002 CALL R1 1
|
||||
0x88080101, // 0003 GETMBR R2 R0 K1
|
||||
0x90060202, // 0004 SETMBR R1 K1 R2
|
||||
0x80040200, // 0005 RET 1 R1
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
/********************************************************************/
|
||||
/* End of solidification */
|
|
@ -0,0 +1,420 @@
|
|||
/* Solidification of lvgl_extra.h */
|
||||
/********************************************************************\
|
||||
* Generated code, don't edit *
|
||||
\********************************************************************/
|
||||
#include "be_constobj.h"
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: _anonymous_
|
||||
********************************************************************/
|
||||
be_local_closure(lv_extra__anonymous_, /* name */
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(global),
|
||||
/* K1 */ be_nested_str_weak(lv),
|
||||
/* K2 */ be_nested_str_weak(lv_coord_arr),
|
||||
/* K3 */ be_nested_str_weak(lv_point_arr),
|
||||
/* K4 */ be_nested_str_weak(coord_arr),
|
||||
/* K5 */ be_nested_str_weak(point_arr),
|
||||
/* K6 */ be_nested_str_weak(style_prop_arr),
|
||||
/* K7 */ be_nested_str_weak(lv_style_prop_arr),
|
||||
}),
|
||||
be_str_weak(_anonymous_),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[13]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x88080301, // 0001 GETMBR R2 R1 K1
|
||||
0x880C0102, // 0002 GETMBR R3 R0 K2
|
||||
0x900A0403, // 0003 SETMBR R2 K2 R3
|
||||
0x880C0103, // 0004 GETMBR R3 R0 K3
|
||||
0x900A0603, // 0005 SETMBR R2 K3 R3
|
||||
0x880C0102, // 0006 GETMBR R3 R0 K2
|
||||
0x900A0803, // 0007 SETMBR R2 K4 R3
|
||||
0x880C0103, // 0008 GETMBR R3 R0 K3
|
||||
0x900A0A03, // 0009 SETMBR R2 K5 R3
|
||||
0x880C0107, // 000A GETMBR R3 R0 K7
|
||||
0x900A0C03, // 000B SETMBR R2 K6 R3
|
||||
0x80040000, // 000C RET 1 R0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_coord_arr_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
3, /* 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(instance),
|
||||
/* K1 */ be_nested_str_weak(init),
|
||||
/* K2 */ be_const_int(2),
|
||||
/* K3 */ be_nested_str_weak(add),
|
||||
/* K4 */ be_nested_str_weak(stop_iteration),
|
||||
/* K5 */ be_nested_str_weak(ptr),
|
||||
/* K6 */ be_nested_str_weak(int),
|
||||
/* K7 */ be_nested_str_weak(value_error),
|
||||
/* K8 */ be_nested_str_weak(argument_X20must_X20be_X20a_X20list_X20or_X20a_X20pointer_X2Bsize),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[56]) { /* code */
|
||||
0x600C0004, // 0000 GETGBL R3 G4
|
||||
0x5C100200, // 0001 MOVE R4 R1
|
||||
0x7C0C0200, // 0002 CALL R3 1
|
||||
0x1C0C0700, // 0003 EQ R3 R3 K0
|
||||
0x780E001E, // 0004 JMPF R3 #0024
|
||||
0x600C000F, // 0005 GETGBL R3 G15
|
||||
0x5C100200, // 0006 MOVE R4 R1
|
||||
0x60140012, // 0007 GETGBL R5 G18
|
||||
0x7C0C0400, // 0008 CALL R3 2
|
||||
0x780E0019, // 0009 JMPF R3 #0024
|
||||
0x600C0003, // 000A GETGBL R3 G3
|
||||
0x5C100000, // 000B MOVE R4 R0
|
||||
0x7C0C0200, // 000C CALL R3 1
|
||||
0x8C0C0701, // 000D GETMET R3 R3 K1
|
||||
0x6014000C, // 000E GETGBL R5 G12
|
||||
0x5C180200, // 000F MOVE R6 R1
|
||||
0x7C140200, // 0010 CALL R5 1
|
||||
0x08140B02, // 0011 MUL R5 R5 K2
|
||||
0x7C0C0400, // 0012 CALL R3 2
|
||||
0x600C0010, // 0013 GETGBL R3 G16
|
||||
0x5C100200, // 0014 MOVE R4 R1
|
||||
0x7C0C0200, // 0015 CALL R3 1
|
||||
0xA8020008, // 0016 EXBLK 0 #0020
|
||||
0x5C100600, // 0017 MOVE R4 R3
|
||||
0x7C100000, // 0018 CALL R4 0
|
||||
0x8C140103, // 0019 GETMET R5 R0 K3
|
||||
0x601C0009, // 001A GETGBL R7 G9
|
||||
0x5C200800, // 001B MOVE R8 R4
|
||||
0x7C1C0200, // 001C CALL R7 1
|
||||
0x58200002, // 001D LDCONST R8 K2
|
||||
0x7C140600, // 001E CALL R5 3
|
||||
0x7001FFF6, // 001F JMP #0017
|
||||
0x580C0004, // 0020 LDCONST R3 K4
|
||||
0xAC0C0200, // 0021 CATCH R3 1 0
|
||||
0xB0080000, // 0022 RAISE 2 R0 R0
|
||||
0x70020012, // 0023 JMP #0037
|
||||
0x600C0004, // 0024 GETGBL R3 G4
|
||||
0x5C100200, // 0025 MOVE R4 R1
|
||||
0x7C0C0200, // 0026 CALL R3 1
|
||||
0x1C0C0705, // 0027 EQ R3 R3 K5
|
||||
0x780E000C, // 0028 JMPF R3 #0036
|
||||
0x600C0004, // 0029 GETGBL R3 G4
|
||||
0x5C100400, // 002A MOVE R4 R2
|
||||
0x7C0C0200, // 002B CALL R3 1
|
||||
0x1C0C0706, // 002C EQ R3 R3 K6
|
||||
0x780E0007, // 002D JMPF R3 #0036
|
||||
0x600C0003, // 002E GETGBL R3 G3
|
||||
0x5C100000, // 002F MOVE R4 R0
|
||||
0x7C0C0200, // 0030 CALL R3 1
|
||||
0x8C0C0701, // 0031 GETMET R3 R3 K1
|
||||
0x5C140200, // 0032 MOVE R5 R1
|
||||
0x08180502, // 0033 MUL R6 R2 K2
|
||||
0x7C0C0600, // 0034 CALL R3 3
|
||||
0x70020000, // 0035 JMP #0037
|
||||
0xB0060F08, // 0036 RAISE 1 K7 K8
|
||||
0x80000000, // 0037 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: item
|
||||
********************************************************************/
|
||||
be_local_closure(lv_coord_arr_item, /* 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[ 2]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(get),
|
||||
/* K1 */ be_const_int(2),
|
||||
}),
|
||||
be_str_weak(item),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C080100, // 0000 GETMET R2 R0 K0
|
||||
0x08100301, // 0001 MUL R4 R1 K1
|
||||
0x58140001, // 0002 LDCONST R5 K1
|
||||
0x7C080600, // 0003 CALL R2 3
|
||||
0x80040400, // 0004 RET 1 R2
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: setitem
|
||||
********************************************************************/
|
||||
be_local_closure(lv_coord_arr_setitem, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
3, /* 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(set),
|
||||
/* K1 */ be_const_int(2),
|
||||
}),
|
||||
be_str_weak(setitem),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x8C0C0100, // 0000 GETMET R3 R0 K0
|
||||
0x08140301, // 0001 MUL R5 R1 K1
|
||||
0x5C180400, // 0002 MOVE R6 R2
|
||||
0x581C0001, // 0003 LDCONST R7 K1
|
||||
0x7C0C0800, // 0004 CALL R3 4
|
||||
0x80000000, // 0005 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: lv_coord_arr
|
||||
********************************************************************/
|
||||
extern const bclass be_class_bytes;
|
||||
be_local_class(lv_coord_arr,
|
||||
0,
|
||||
&be_class_bytes,
|
||||
be_nested_map(3,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(init, -1), be_const_closure(lv_coord_arr_init_closure) },
|
||||
{ be_const_key_weak(item, -1), be_const_closure(lv_coord_arr_item_closure) },
|
||||
{ be_const_key_weak(setitem, -1), be_const_closure(lv_coord_arr_setitem_closure) },
|
||||
})),
|
||||
be_str_weak(lv_coord_arr)
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_point_arr_init, /* 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[12]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(instance),
|
||||
/* K1 */ be_nested_str_weak(value_error),
|
||||
/* K2 */ be_nested_str_weak(argument_X20must_X20be_X20a_X20list),
|
||||
/* K3 */ be_nested_str_weak(init),
|
||||
/* K4 */ be_nested_str_weak(lv),
|
||||
/* K5 */ be_nested_str_weak(lv_point),
|
||||
/* K6 */ be_nested_str_weak(elements_X20must_X20be_X20a_X20lv_point),
|
||||
/* K7 */ be_nested_str_weak(add),
|
||||
/* K8 */ be_nested_str_weak(x),
|
||||
/* K9 */ be_const_int(2),
|
||||
/* K10 */ be_nested_str_weak(y),
|
||||
/* K11 */ be_nested_str_weak(stop_iteration),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[52]) { /* code */
|
||||
0x60080004, // 0000 GETGBL R2 G4
|
||||
0x5C0C0200, // 0001 MOVE R3 R1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x20080500, // 0003 NE R2 R2 K0
|
||||
0x740A0004, // 0004 JMPT R2 #000A
|
||||
0x6008000F, // 0005 GETGBL R2 G15
|
||||
0x5C0C0200, // 0006 MOVE R3 R1
|
||||
0x60100012, // 0007 GETGBL R4 G18
|
||||
0x7C080400, // 0008 CALL R2 2
|
||||
0x740A0000, // 0009 JMPT R2 #000B
|
||||
0xB0060302, // 000A RAISE 1 K1 K2
|
||||
0x60080003, // 000B GETGBL R2 G3
|
||||
0x5C0C0000, // 000C MOVE R3 R0
|
||||
0x7C080200, // 000D CALL R2 1
|
||||
0x8C080503, // 000E GETMET R2 R2 K3
|
||||
0x6010000C, // 000F GETGBL R4 G12
|
||||
0x5C140200, // 0010 MOVE R5 R1
|
||||
0x7C100200, // 0011 CALL R4 1
|
||||
0x54160003, // 0012 LDINT R5 4
|
||||
0x08100805, // 0013 MUL R4 R4 R5
|
||||
0x7C080400, // 0014 CALL R2 2
|
||||
0x60080010, // 0015 GETGBL R2 G16
|
||||
0x5C0C0200, // 0016 MOVE R3 R1
|
||||
0x7C080200, // 0017 CALL R2 1
|
||||
0xA8020016, // 0018 EXBLK 0 #0030
|
||||
0x5C0C0400, // 0019 MOVE R3 R2
|
||||
0x7C0C0000, // 001A CALL R3 0
|
||||
0x60100004, // 001B GETGBL R4 G4
|
||||
0x5C140600, // 001C MOVE R5 R3
|
||||
0x7C100200, // 001D CALL R4 1
|
||||
0x20100900, // 001E NE R4 R4 K0
|
||||
0x74120005, // 001F JMPT R4 #0026
|
||||
0x6010000F, // 0020 GETGBL R4 G15
|
||||
0x5C140600, // 0021 MOVE R5 R3
|
||||
0xB81A0800, // 0022 GETNGBL R6 K4
|
||||
0x88180D05, // 0023 GETMBR R6 R6 K5
|
||||
0x7C100400, // 0024 CALL R4 2
|
||||
0x74120000, // 0025 JMPT R4 #0027
|
||||
0xB0060306, // 0026 RAISE 1 K1 K6
|
||||
0x8C100107, // 0027 GETMET R4 R0 K7
|
||||
0x88180708, // 0028 GETMBR R6 R3 K8
|
||||
0x581C0009, // 0029 LDCONST R7 K9
|
||||
0x7C100600, // 002A CALL R4 3
|
||||
0x8C100107, // 002B GETMET R4 R0 K7
|
||||
0x8818070A, // 002C GETMBR R6 R3 K10
|
||||
0x581C0009, // 002D LDCONST R7 K9
|
||||
0x7C100600, // 002E CALL R4 3
|
||||
0x7001FFE8, // 002F JMP #0019
|
||||
0x5808000B, // 0030 LDCONST R2 K11
|
||||
0xAC080200, // 0031 CATCH R2 1 0
|
||||
0xB0080000, // 0032 RAISE 2 R0 R0
|
||||
0x80000000, // 0033 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: lv_point_arr
|
||||
********************************************************************/
|
||||
extern const bclass be_class_bytes;
|
||||
be_local_class(lv_point_arr,
|
||||
0,
|
||||
&be_class_bytes,
|
||||
be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(init, -1), be_const_closure(lv_point_arr_init_closure) },
|
||||
})),
|
||||
be_str_weak(lv_point_arr)
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_style_prop_arr_init, /* 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[ 6]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(instance),
|
||||
/* K1 */ be_nested_str_weak(value_error),
|
||||
/* K2 */ be_nested_str_weak(argument_X20must_X20be_X20a_X20list),
|
||||
/* K3 */ be_nested_str_weak(init),
|
||||
/* K4 */ be_nested_str_weak(add),
|
||||
/* K5 */ be_nested_str_weak(stop_iteration),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[38]) { /* code */
|
||||
0x60080004, // 0000 GETGBL R2 G4
|
||||
0x5C0C0200, // 0001 MOVE R3 R1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x20080500, // 0003 NE R2 R2 K0
|
||||
0x740A0004, // 0004 JMPT R2 #000A
|
||||
0x6008000F, // 0005 GETGBL R2 G15
|
||||
0x5C0C0200, // 0006 MOVE R3 R1
|
||||
0x60100012, // 0007 GETGBL R4 G18
|
||||
0x7C080400, // 0008 CALL R2 2
|
||||
0x740A0000, // 0009 JMPT R2 #000B
|
||||
0xB0060302, // 000A RAISE 1 K1 K2
|
||||
0x60080003, // 000B GETGBL R2 G3
|
||||
0x5C0C0000, // 000C MOVE R3 R0
|
||||
0x7C080200, // 000D CALL R2 1
|
||||
0x8C080503, // 000E GETMET R2 R2 K3
|
||||
0x6010000C, // 000F GETGBL R4 G12
|
||||
0x5C140200, // 0010 MOVE R5 R1
|
||||
0x7C100200, // 0011 CALL R4 1
|
||||
0x54160003, // 0012 LDINT R5 4
|
||||
0x08100805, // 0013 MUL R4 R4 R5
|
||||
0x7C080400, // 0014 CALL R2 2
|
||||
0x60080010, // 0015 GETGBL R2 G16
|
||||
0x5C0C0200, // 0016 MOVE R3 R1
|
||||
0x7C080200, // 0017 CALL R2 1
|
||||
0xA8020008, // 0018 EXBLK 0 #0022
|
||||
0x5C0C0400, // 0019 MOVE R3 R2
|
||||
0x7C0C0000, // 001A CALL R3 0
|
||||
0x8C100104, // 001B GETMET R4 R0 K4
|
||||
0x60180009, // 001C GETGBL R6 G9
|
||||
0x5C1C0600, // 001D MOVE R7 R3
|
||||
0x7C180200, // 001E CALL R6 1
|
||||
0x541E0003, // 001F LDINT R7 4
|
||||
0x7C100600, // 0020 CALL R4 3
|
||||
0x7001FFF6, // 0021 JMP #0019
|
||||
0x58080005, // 0022 LDCONST R2 K5
|
||||
0xAC080200, // 0023 CATCH R2 1 0
|
||||
0xB0080000, // 0024 RAISE 2 R0 R0
|
||||
0x80000000, // 0025 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: lv_style_prop_arr
|
||||
********************************************************************/
|
||||
extern const bclass be_class_bytes;
|
||||
be_local_class(lv_style_prop_arr,
|
||||
0,
|
||||
&be_class_bytes,
|
||||
be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(init, -1), be_const_closure(lv_style_prop_arr_init_closure) },
|
||||
})),
|
||||
be_str_weak(lv_style_prop_arr)
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified module: lv_extra
|
||||
********************************************************************/
|
||||
be_local_module(lv_extra,
|
||||
"lv_extra",
|
||||
be_nested_map(4,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(lv_style_prop_arr, -1), be_const_class(be_class_lv_style_prop_arr) },
|
||||
{ be_const_key_weak(lv_coord_arr, -1), be_const_class(be_class_lv_coord_arr) },
|
||||
{ be_const_key_weak(lv_point_arr, -1), be_const_class(be_class_lv_point_arr) },
|
||||
{ be_const_key_weak(init, 0), be_const_closure(lv_extra__anonymous__closure) },
|
||||
}))
|
||||
);
|
||||
BE_EXPORT_VARIABLE be_define_const_native_module(lv_extra);
|
||||
/********************************************************************/
|
||||
/********************************************************************/
|
||||
/* End of solidification */
|
File diff suppressed because it is too large
Load Diff
|
@ -817,42 +817,11 @@ print("""
|
|||
|
||||
const size_t lv0_constants_size = sizeof(lv0_constants)/sizeof(lv0_constants[0]);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: lv_module_init
|
||||
********************************************************************/
|
||||
be_local_closure(lv_lv_module_init, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* 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(lv),
|
||||
/* K1 */ be_nested_str(member),
|
||||
/* K2 */ be_nested_str(lv_solidified),
|
||||
}),
|
||||
&be_const_str_lv_module_init,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x6004000B, // 0000 GETGBL R1 G11
|
||||
0x58080000, // 0001 LDCONST R2 K0
|
||||
0x7C040200, // 0002 CALL R1 1
|
||||
0x88080101, // 0003 GETMBR R2 R0 K1
|
||||
0x90060202, // 0004 SETMBR R1 K1 R2
|
||||
0x90060400, // 0005 SETMBR R1 K2 R0
|
||||
0x80040200, // 0006 RET 1 R1
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
#include "../src/solidify/solidified_lv.h"
|
||||
|
||||
/* @const_object_info_begin
|
||||
module lv (scope: global, file: lv) {
|
||||
init, closure(lv_lv_module_init_closure)
|
||||
init, closure(lv_module_init_closure)
|
||||
member, func(lv0_member)
|
||||
}
|
||||
@const_object_info_end */
|
||||
|
|
|
@ -17,6 +17,6 @@ for filePath in fileList:
|
|||
# print("Deleting file : ", filePath)
|
||||
except:
|
||||
print("Error while deleting file : ", filePath)
|
||||
cmd = (env["PYTHONEXE"],join("tools","coc","coc"),"-o","generate","src","default",join("..","berry_tasmota","src"),join("..","berry_tasmota","src","solidify"),join("..","berry_mapping","src"),join("..","berry_int64","src"),join("..","..","libesp32_lvgl","lv_binding_berry","src"),join("..","..","libesp32_lvgl","lv_binding_berry","generate"),"-c",join("default","berry_conf.h"))
|
||||
cmd = (env["PYTHONEXE"],join("tools","coc","coc"),"-o","generate","src","default",join("..","berry_tasmota","src"),join("..","berry_tasmota","src","solidify"),join("..","berry_mapping","src"),join("..","berry_int64","src"),join("..","..","libesp32_lvgl","lv_binding_berry","src"),join("..","..","libesp32_lvgl","lv_binding_berry","src","solidify"),join("..","..","libesp32_lvgl","lv_binding_berry","generate"),"-c",join("default","berry_conf.h"))
|
||||
returncode = subprocess.call(cmd, shell=False)
|
||||
os.chdir(CURRENT_DIR)
|
||||
|
|
Loading…
Reference in New Issue