From 4406eb9f3b7ac797c78dab7352dc62dc3669c140 Mon Sep 17 00:00:00 2001
From: Stephan Hadinger
Date: Wed, 5 Jan 2022 09:50:38 +0100
Subject: [PATCH] Berry specific moved to berry_tasmota
---
lib/libesp32/berry/default/be_i2s_audio_lib.c | 113 -
lib/libesp32/berry/default/be_modtab.c | 2 +
lib/libesp32/berry/gen.sh | 2 +-
lib/libesp32/berry/generate/be_const_strtab.h | 9 +
.../berry/generate/be_const_strtab_def.h | 1929 +++++++++--------
.../be_fixed_be_class_audio_opus_decoder.h | 20 +
.../generate/be_fixed_be_class_audio_output.h | 13 +-
lib/libesp32/berry/library.json | 4 +-
.../berry_mapping/src/be_class_wrapper.c | 40 +-
lib/libesp32/berry_mapping/src/be_mapping.h | 2 +-
.../include/be_ctypes.h | 0
lib/libesp32/berry_tasmota/library.json | 17 +
.../src}/be_animate_lib.c | 0
.../berry_tasmota/src/be_audio_opus_lib.c | 88 +
.../src}/be_autoconf_lib.c | 0
.../src}/be_crypto_lib.c | 4 +-
.../default => berry_tasmota/src}/be_ctypes.c | 4 +-
.../src}/be_display_lib.c | 0
.../src}/be_driverlib.c | 0
.../src}/be_energy_ctypes_definitions.c | 0
.../src}/be_energylib.c | 0
.../src}/be_flash_lib.c | 2 +-
.../src}/be_gpio_lib.c | 2 +-
.../src}/be_i2c_axp192_lib.c | 0
.../src}/be_i2c_driverlib.c | 0
.../berry_tasmota/src/be_i2s_audio_lib.cpp | 245 +++
.../src}/be_leds_animator_lib.c | 0
.../src}/be_leds_lib.c | 0
.../src}/be_leds_ntv_lib.c | 0
.../src}/be_light_lib.c | 2 +-
.../src}/be_lv_tasmota_lib.c | 2 +-
.../src}/be_lvgl_clock_icon_lib.c | 0
.../src}/be_lvgl_signal_arcs_lib.c | 0
.../src}/be_lvgl_signal_bars_lib.c | 0
.../src}/be_lvgl_wifi_arcs_icon_lib.c | 0
.../src}/be_lvgl_wifi_arcs_lib.c | 0
.../src}/be_lvgl_wifi_bars_icon_lib.c | 0
.../src}/be_lvgl_wifi_bars_lib.c | 0
.../src}/be_md5_lib.c | 2 +-
.../berry_tasmota/src/be_modtab_tasmota.c | 2 +
.../src}/be_onewire_lib.c | 2 +-
.../src}/be_path_tasmota_lib.c | 2 +-
.../src}/be_persist_lib.c | 0
.../default => berry_tasmota/src}/be_port.cpp | 0
.../src}/be_python_compat.c | 0
.../default => berry_tasmota/src}/be_re_lib.c | 0
.../src}/be_serial_lib.c | 2 +-
.../src}/be_tapp_lib.c | 0
.../src}/be_tasmotalib.c | 3 +-
.../src}/be_tcpclient_lib.c | 2 +-
.../src}/be_timer_class.c | 0
.../src}/be_udp_lib.cpp | 2 +-
.../src}/be_unishox_lib.c | 0
.../src}/be_webclient_lib.c | 2 +-
.../src}/be_webserver_lib.c | 2 +-
.../src}/be_wirelib.c | 2 +-
.../berry_tasmota/src/berry_tasmota.h | 8 +
.../src}/embedded/Animate.be | 0
.../src}/embedded/Driver.be | 0
.../src}/embedded/Tasmota.be | 0
.../src}/embedded/Wire.be | 0
.../src}/embedded/autoconf.be | 0
.../src}/embedded/i2c_axp192.be | 0
.../src}/embedded/i2c_driver.be | 0
.../src}/embedded/leds.be | 0
.../src}/embedded/leds_animator.be | 0
.../src}/embedded/lv_clock_icon.be | 0
.../src}/embedded/lv_signal_arcs.be | 0
.../src}/embedded/lv_signal_bars.be | 0
.../src}/embedded/lv_tasmota.be | 0
.../src}/embedded/openhasp.be | 0
.../src}/embedded/openhasp/demo-all.jsonl | 0
.../src}/embedded/openhasp/demo1.jsonl | 0
.../src}/embedded/openhasp/demo2.jsonl | 0
.../src}/embedded/openhasp/demo3.jsonl | 0
.../src}/embedded/persist.be | 0
.../src}/embedded/tapp.be | 0
.../src}/embedded/test_crypto.be | 0
.../src}/static_block.hpp | 0
tasmota/xdrv_52_3_berry_tasmota.ino | 10 +
tasmota/xdrv_52_9_berry.ino | 4 +
81 files changed, 1441 insertions(+), 1104 deletions(-)
delete mode 100644 lib/libesp32/berry/default/be_i2s_audio_lib.c
create mode 100644 lib/libesp32/berry/generate/be_fixed_be_class_audio_opus_decoder.h
rename lib/libesp32/{berry => berry_tasmota}/include/be_ctypes.h (100%)
create mode 100644 lib/libesp32/berry_tasmota/library.json
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_animate_lib.c (100%)
create mode 100644 lib/libesp32/berry_tasmota/src/be_audio_opus_lib.c
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_autoconf_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_crypto_lib.c (92%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_ctypes.c (99%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_display_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_driverlib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_energy_ctypes_definitions.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_energylib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_flash_lib.c (93%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_gpio_lib.c (95%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_i2c_axp192_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_i2c_driverlib.c (100%)
create mode 100644 lib/libesp32/berry_tasmota/src/be_i2s_audio_lib.cpp
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_leds_animator_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_leds_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_leds_ntv_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_light_lib.c (91%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lv_tasmota_lib.c (98%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_clock_icon_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_signal_arcs_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_signal_bars_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_arcs_icon_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_arcs_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_bars_icon_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_bars_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_md5_lib.c (98%)
create mode 100644 lib/libesp32/berry_tasmota/src/be_modtab_tasmota.c
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_onewire_lib.c (96%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_path_tasmota_lib.c (97%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_persist_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_port.cpp (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_python_compat.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_re_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_serial_lib.c (96%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_tapp_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_tasmotalib.c (99%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_tcpclient_lib.c (95%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_timer_class.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_udp_lib.cpp (98%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_unishox_lib.c (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_webclient_lib.c (96%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_webserver_lib.c (97%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/be_wirelib.c (98%)
create mode 100644 lib/libesp32/berry_tasmota/src/berry_tasmota.h
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Animate.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Driver.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Tasmota.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Wire.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/autoconf.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/i2c_axp192.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/i2c_driver.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/leds.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/leds_animator.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_clock_icon.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_signal_arcs.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_signal_bars.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_tasmota.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo-all.jsonl (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo1.jsonl (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo2.jsonl (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo3.jsonl (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/persist.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/tapp.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/test_crypto.be (100%)
rename lib/libesp32/{berry/default => berry_tasmota/src}/static_block.hpp (100%)
diff --git a/lib/libesp32/berry/default/be_i2s_audio_lib.c b/lib/libesp32/berry/default/be_i2s_audio_lib.c
deleted file mode 100644
index ef8720b23..000000000
--- a/lib/libesp32/berry/default/be_i2s_audio_lib.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/********************************************************************
- * Tasmota I2S audio classes
- *
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_I2S
-#ifdef USE_I2S_AUDIO_BERRY
-
-extern int i2s_output_i2s_init(bvm *vm);
-extern int i2s_output_i2s_deinit(bvm *vm);
-extern int i2s_output_i2s_stop(bvm *vm);
-
-extern int i2s_generator_wav_init(bvm *vm);
-extern int i2s_generator_wav_deinit(bvm *vm);
-extern int i2s_generator_wav_begin(bvm *vm);
-extern int i2s_generator_wav_loop(bvm *vm);
-extern int i2s_generator_wav_stop(bvm *vm);
-extern int i2s_generator_wav_isrunning(bvm *vm);
-
-extern int i2s_generator_mp3_init(bvm *vm);
-extern int i2s_generator_mp3_deinit(bvm *vm);
-extern int i2s_generator_mp3_begin(bvm *vm);
-extern int i2s_generator_mp3_loop(bvm *vm);
-extern int i2s_generator_mp3_stop(bvm *vm);
-extern int i2s_generator_mp3_isrunning(bvm *vm);
-
-#ifdef USE_UFILESYS
-extern int i2s_file_source_fs_init(bvm *vm);
-extern int i2s_file_source_fs_deinit(bvm *vm);
-#endif // USE_UFILESYS
-
-
-#include "../generate/be_fixed_be_class_audio_output.h"
-#include "../generate/be_fixed_be_class_audio_output_i2s.h"
-#include "../generate/be_fixed_be_class_audio_generator.h"
-#include "../generate/be_fixed_be_class_audio_generator_wav.h"
-#include "../generate/be_fixed_be_class_audio_generator_mp3.h"
-#include "../generate/be_fixed_be_class_audio_file_source.h"
-#include "../generate/be_fixed_be_class_audio_file_source_fs.h"
-
-void be_load_driver_audio_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_audio_output);
- be_setglobal(vm, "AudioOutput");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_audio_output_i2s);
- be_setglobal(vm, "AudioOutputI2S");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_audio_generator_wav);
- be_setglobal(vm, "AudioGeneratorWAV");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_audio_generator_mp3);
- be_setglobal(vm, "AudioGeneratorMP3");
- be_pop(vm, 1);
-
-#ifdef USE_UFILESYS
- be_pushntvclass(vm, &be_class_audio_file_source_fs);
- be_setglobal(vm, "AudioFileSourceFS");
- be_pop(vm, 1);
-#endif // USE_UFILESYS
-}
-
-/* @const_object_info_begin
-
-class be_class_audio_output (scope: global, name: AudioOutput) {
- .p, var
-}
-
-class be_class_audio_generator (scope: global, name: AudioGenerator) {
- .p, var
-}
-
-class be_class_audio_file_source (scope: global, name: AudioFileSource) {
- .p, var
-}
-
-class be_class_audio_output_i2s (scope: global, name: AudioOutputI2S, super: be_class_audio_output) {
- init, func(i2s_output_i2s_init)
- deinit, func(i2s_output_i2s_deinit)
- stop, func(i2s_output_i2s_stop)
-}
-
-class be_class_audio_generator_wav (scope: global, name: AudioGeneratorWAV, super: be_class_audio_generator) {
- init, func(i2s_generator_wav_init)
- deinit, func(i2s_generator_wav_deinit)
- begin, func(i2s_generator_wav_begin)
- loop, func(i2s_generator_wav_loop)
- stop, func(i2s_generator_wav_stop)
- isrunning, func(i2s_generator_wav_isrunning)
-}
-
-class be_class_audio_generator_mp3 (scope: global, name: AudioGeneratorMP3, super: be_class_audio_generator) {
- init, func(i2s_generator_mp3_init)
- deinit, func(i2s_generator_mp3_deinit)
- begin, func(i2s_generator_mp3_begin)
- loop, func(i2s_generator_mp3_loop)
- stop, func(i2s_generator_mp3_stop)
- isrunning, func(i2s_generator_mp3_isrunning)
-}
-
-class be_class_audio_file_source_fs (scope: global, name: AudioFileSourceFS, super: be_class_audio_file_source) {
- init, func(i2s_file_source_fs_init)
- deinit, func(i2s_file_source_fs_deinit)
-}
-
-@const_object_info_end */
-
-#endif // USE_I2S_AUDIO_BERRY
-#endif // USE_I2S
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_modtab.c b/lib/libesp32/berry/default/be_modtab.c
index dd11c8461..05a882028 100644
--- a/lib/libesp32/berry/default/be_modtab.c
+++ b/lib/libesp32/berry/default/be_modtab.c
@@ -159,6 +159,7 @@ extern void be_load_ctypes_energy_definitions_lib(bvm *vm);
#ifdef USE_I2S_AUDIO_BERRY
extern void be_load_driver_audio_lib(bvm *vm);
+extern void be_load_driver_audio_opus_decoder(bvm *vm);
#endif
#ifdef USE_LVGL
@@ -214,6 +215,7 @@ BERRY_API void be_load_custom_libs(bvm *vm)
#endif // USE_WS2812
#ifdef USE_I2S_AUDIO_BERRY
be_load_driver_audio_lib(vm);
+ be_load_driver_audio_opus_decoder(vm);
#endif
#ifdef USE_LVGL
// LVGL
diff --git a/lib/libesp32/berry/gen.sh b/lib/libesp32/berry/gen.sh
index e52d74a28..f845935b8 100755
--- a/lib/libesp32/berry/gen.sh
+++ b/lib/libesp32/berry/gen.sh
@@ -1,2 +1,2 @@
#!/bin/bash
-python3 tools/pycoc/main.py -o generate src default ../berry_mapping/src ../../libesp32_lvgl/lv_berry/src ../../libesp32_lvgl/lv_berry/generate -c default/berry_conf.h
+python3 tools/pycoc/main.py -o generate src default ../berry_tasmota/src ../berry_mapping/src ../../libesp32_lvgl/lv_berry/src ../../libesp32_lvgl/lv_berry/generate -c default/berry_conf.h
diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h
index 8006a587a..459d1e002 100644
--- a/lib/libesp32/berry/generate/be_const_strtab.h
+++ b/lib/libesp32/berry/generate/be_const_strtab.h
@@ -51,6 +51,7 @@ extern const bcstring be_const_str_MD5;
extern const bcstring be_const_str_None;
extern const bcstring be_const_str_OPTION_A;
extern const bcstring be_const_str_OneWire;
+extern const bcstring be_const_str_OpusDecoder;
extern const bcstring be_const_str_PART_MAIN;
extern const bcstring be_const_str_POST;
extern const bcstring be_const_str_Parameter_X20error;
@@ -281,6 +282,9 @@ extern const bcstring be_const_str_connect;
extern const bcstring be_const_str_connected;
extern const bcstring be_const_str_connection_error;
extern const bcstring be_const_str_constructor_cb;
+extern const bcstring be_const_str_consume_mono;
+extern const bcstring be_const_str_consume_silence;
+extern const bcstring be_const_str_consume_stereo;
extern const bcstring be_const_str_contains;
extern const bcstring be_const_str_content_button;
extern const bcstring be_const_str_content_flush;
@@ -305,6 +309,7 @@ extern const bcstring be_const_str_ctypes_bytes_dyn;
extern const bcstring be_const_str_dac_voltage;
extern const bcstring be_const_str_day;
extern const bcstring be_const_str_debug;
+extern const bcstring be_const_str_decode;
extern const bcstring be_const_str_decompress;
extern const bcstring be_const_str_decrypt;
extern const bcstring be_const_str_def;
@@ -628,11 +633,14 @@ extern const bcstring be_const_str_serial;
extern const bcstring be_const_str_set;
extern const bcstring be_const_str_set_alternate;
extern const bcstring be_const_str_set_auth;
+extern const bcstring be_const_str_set_bits_per_sample;
extern const bcstring be_const_str_set_bri;
+extern const bcstring be_const_str_set_channels;
extern const bcstring be_const_str_set_chg_current;
extern const bcstring be_const_str_set_dc_voltage;
extern const bcstring be_const_str_set_dcdc_enable;
extern const bcstring be_const_str_set_first_time;
+extern const bcstring be_const_str_set_gain;
extern const bcstring be_const_str_set_height;
extern const bcstring be_const_str_set_ldo_enable;
extern const bcstring be_const_str_set_ldo_voltage;
@@ -641,6 +649,7 @@ extern const bcstring be_const_str_set_matrix_pixel_color;
extern const bcstring be_const_str_set_percentage;
extern const bcstring be_const_str_set_pixel_color;
extern const bcstring be_const_str_set_power;
+extern const bcstring be_const_str_set_rate;
extern const bcstring be_const_str_set_style_bg_color;
extern const bcstring be_const_str_set_style_line_color;
extern const bcstring be_const_str_set_style_pad_right;
diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h
index 73f596f1e..70d96bc94 100644
--- a/lib/libesp32/berry/generate/be_const_strtab_def.h
+++ b/lib/libesp32/berry/generate/be_const_strtab_def.h
@@ -1,740 +1,749 @@
-be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_target_search);
-be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str__X2D_X2D_X3A_X2D_X2D);
-be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str__drivers);
-be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, NULL);
-be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_COLOR_WHITE);
-be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_gamma);
-be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_f);
-be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str__available);
-be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_public_key);
-be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_get_object_from_ptr);
-be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, NULL);
+be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_begin_multicast);
+be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str_file);
+be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str_widget_group_def);
+be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str__X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B);
+be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_clear);
+be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_PART_MAIN);
+be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, NULL);
+be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str_call);
+be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, NULL);
+be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_read_bytes);
+be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_SERIAL_8O1);
be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, NULL);
-be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_content_flush);
-be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_introspect);
-be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_pixel_count);
-be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, NULL);
-be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_counters);
-be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_AudioFileSource);
-be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_json_fdump_any);
-be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_can_show);
-be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_read13);
-be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, NULL);
-be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_cb_obj);
-be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_group_def);
-be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_rule);
-be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str__request_from);
-be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_strptime);
-be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_begin);
-be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_b);
-be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_draw_arc);
-be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem);
-be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str_get_temp);
-be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_web_add_main_button);
+be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_return_X20code_X3D_X25i);
+be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_scan);
+be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27);
+be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str__energy);
+be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_add);
+be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_asin);
+be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_fromptr);
+be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_math);
+be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29);
+be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str_set_style_bg_color);
+be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_gamma8);
+be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, NULL);
+be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_ctypes_bytes_dyn);
+be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str_AudioOutput);
+be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, NULL);
+be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_pi);
+be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str__write);
+be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_OpusDecoder);
+be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, NULL);
+be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str__persist_X2Ejson);
+be_define_const_str(_X2F, "/", 705468254u, 0, 1, NULL);
be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, NULL);
-be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_tag);
-be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str__settings_ptr);
-be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_sqrt);
-be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_SERIAL_6E2);
-be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "
", 3546571739u, 0, 11, &be_const_str_keys);
-be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str__global_def);
-be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_OPTION_A);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_draw_line);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, &be_const_str_POST);
-be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_debug);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3E_X26_X23129668_X3B_X20Auto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 452285201u, 0, 120, &be_const_str_has);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "