Tasmota/lib/libesp32/berry/default/be_modtab.c

354 lines
9.9 KiB
C
Raw Normal View History

/********************************************************************
** Copyright (c) 2018-2020 Guan Wenliang
** This file is part of the Berry default interpreter.
** skiars@qq.com, https://github.com/Skiars/berry
** See Copyright Notice in the LICENSE file or at
** https://github.com/Skiars/berry/blob/master/LICENSE
********************************************************************/
#include "berry.h"
#include "../../berry_custom/src/modules.h"
/* this file contains the declaration of the module table. */
/* default modules declare */
be_extern_native_module(string);
be_extern_native_module(json);
be_extern_native_module(math);
be_extern_native_module(time);
be_extern_native_module(os);
2021-05-26 14:53:53 +01:00
be_extern_native_module(global);
be_extern_native_module(sys);
be_extern_native_module(debug);
be_extern_native_module(gc);
be_extern_native_module(solidify);
be_extern_native_module(introspect);
be_extern_native_module(strict);
2022-06-15 21:00:31 +01:00
be_extern_native_module(undefined);
2021-12-12 17:56:11 +00:00
/* Berry extensions */
be_extern_native_module(cb);
/* Tasmota specific */
be_extern_native_module(python_compat);
2021-11-25 21:57:37 +00:00
be_extern_native_module(re);
2022-02-15 20:58:05 +00:00
be_extern_native_module(mqtt);
be_extern_native_module(persist);
be_extern_native_module(autoconf);
be_extern_native_module(tapp);
2021-04-04 18:36:25 +01:00
be_extern_native_module(light);
2021-04-03 17:06:40 +01:00
be_extern_native_module(gpio);
be_extern_native_module(display);
2021-03-13 21:42:24 +00:00
be_extern_native_module(energy);
2021-05-28 21:37:06 +01:00
be_extern_native_module(webserver);
2021-06-03 12:23:25 +01:00
be_extern_native_module(flash);
2021-07-18 21:39:59 +01:00
be_extern_native_module(path);
2021-11-04 07:17:42 +00:00
be_extern_native_module(unishox);
be_extern_native_module(hue_ntv);
be_extern_native_module(hue_bridge);
2022-01-30 22:05:32 +00:00
be_extern_native_module(uuid);
2021-11-19 21:09:35 +00:00
be_extern_native_module(animate);
be_extern_native_module(partition_core);
2022-04-29 09:19:47 +01:00
be_extern_native_module(crc);
2022-06-07 20:59:27 +01:00
be_extern_native_module(crypto);
2022-07-02 20:30:04 +01:00
be_extern_native_module(ULP);
be_extern_native_module(TFL);
2022-11-27 17:08:53 +00:00
be_extern_native_module(mdns);
2022-05-24 21:45:04 +01:00
#ifdef USE_ZIGBEE
be_extern_native_module(zigbee);
be_extern_native_module(matter_zigbee);
2022-05-24 21:45:04 +01:00
#endif // USE_ZIGBEE
#ifdef USE_BERRY_CAM
be_extern_native_module(cam);
#endif // USE_BERRY_CAM
// BLE
be_extern_native_module(MI32);
be_extern_native_module(BLE);
#ifdef USE_LVGL
be_extern_native_module(lv);
2022-01-02 15:16:10 +00:00
be_extern_native_module(lv_extra);
2021-12-27 17:12:38 +00:00
be_extern_native_module(lv_tasmota);
2022-05-20 20:29:39 +01:00
#ifdef USE_LVGL_HASPMOTA
be_extern_native_module(haspmota);
#endif // USE_LVGL_HASPMOTA
#endif // USE_LVGL
#ifdef USE_MATTER_DEVICE
be_extern_native_module(matter);
#endif // USE_MATTER_DEVICE
/* user-defined modules declare start */
/* user-defined modules declare end */
/* module list declaration */
BERRY_LOCAL const bntvmodule_t* const be_module_table[] = {
/* default modules register */
#if BE_USE_STRING_MODULE
&be_native_module(string),
#endif
#if BE_USE_JSON_MODULE
&be_native_module(json),
#endif
#if BE_USE_MATH_MODULE
&be_native_module(math),
#endif
#if BE_USE_TIME_MODULE
&be_native_module(time),
#endif
#if BE_USE_OS_MODULE
&be_native_module(os),
#endif
2021-05-26 14:53:53 +01:00
#if BE_USE_GLOBAL_MODULE
&be_native_module(global),
#endif
#if BE_USE_SYS_MODULE
&be_native_module(sys),
#endif
#if BE_USE_DEBUG_MODULE
&be_native_module(debug),
#endif
#if BE_USE_GC_MODULE
&be_native_module(gc),
#endif
#if BE_USE_SOLIDIFY_MODULE
&be_native_module(solidify),
#endif
#if BE_USE_INTROSPECT_MODULE
&be_native_module(introspect),
#endif
#if BE_USE_STRICT_MODULE
&be_native_module(strict),
#endif
2022-06-15 21:00:31 +01:00
&be_native_module(undefined),
2021-12-12 17:56:11 +00:00
2022-09-12 21:02:25 +01:00
&be_native_module(re),
#ifdef TASMOTA
2021-12-12 17:56:11 +00:00
/* Berry extensions */
&be_native_module(cb),
/* user-defined modules register start */
2021-04-24 11:11:06 +01:00
&be_native_module(python_compat),
2021-07-18 21:39:59 +01:00
&be_native_module(path),
2022-02-15 20:58:05 +00:00
&be_native_module(mqtt),
&be_native_module(persist),
#ifdef USE_AUTOCONF
&be_native_module(autoconf),
#endif // USE_AUTOCONF
&be_native_module(tapp),
2021-04-03 17:06:40 +01:00
&be_native_module(gpio),
#ifdef USE_DISPLAY
&be_native_module(display),
#endif // USE_DISPLAY
2021-04-24 11:11:06 +01:00
#ifdef USE_LIGHT
2021-04-04 18:36:25 +01:00
&be_native_module(light),
2021-04-24 11:11:06 +01:00
#endif
#if defined(USE_EMULATION) && defined(USE_EMULATION_HUE)
&be_native_module(hue_ntv),
&be_native_module(hue_bridge),
#endif
2022-01-30 22:05:32 +00:00
&be_native_module(uuid),
2021-11-04 07:17:42 +00:00
#ifdef USE_UNISHOX_COMPRESSION
&be_native_module(unishox),
#endif // USE_UNISHOX_COMPRESSION
#if defined(USE_WS2812) && !defined(USE_WS2812_FORCE_NEOPIXELBUS)
2021-11-19 21:09:35 +00:00
&be_native_module(animate),
#endif // USE_WS2812
2021-11-04 07:17:42 +00:00
#ifdef USE_LVGL
&be_native_module(lv),
2022-01-02 15:16:10 +00:00
&be_native_module(lv_extra),
2021-12-27 17:12:38 +00:00
&be_native_module(lv_tasmota),
2022-05-20 20:29:39 +01:00
#ifdef USE_LVGL_HASPMOTA
&be_native_module(haspmota),
#endif // USE_LVGL_HASPMOTA
#endif // USE_LVGL
2021-04-24 11:11:06 +01:00
#ifdef USE_ENERGY_SENSOR
2021-03-13 21:42:24 +00:00
&be_native_module(energy),
2021-04-24 11:11:06 +01:00
#endif // USE_ENERGY_SENSOR
2021-05-28 21:37:06 +01:00
#ifdef USE_WEBSERVER
&be_native_module(webserver),
#endif // USE_WEBSERVER
2022-05-24 21:45:04 +01:00
#ifdef USE_ZIGBEE
&be_native_module(zigbee),
&be_native_module(matter_zigbee),
2022-05-24 21:45:04 +01:00
#endif // USE_ZIGBEE
2021-06-03 12:23:25 +01:00
&be_native_module(flash),
&be_native_module(partition_core),
2022-04-29 09:19:47 +01:00
&be_native_module(crc),
2022-06-07 20:59:27 +01:00
&be_native_module(crypto),
#if defined(USE_BERRY_ULP) && defined(CONFIG_ULP_COPROC_ENABLED)
2022-07-02 20:30:04 +01:00
&be_native_module(ULP),
#endif // USE_BERRY_ULP
#if defined(USE_BERRY_TF_LITE)
&be_native_module(TFL),
#endif //USE_BERRY_TF_LITE
#if defined(USE_MI_ESP32) && !defined(USE_BLE_ESP32)
&be_native_module(MI32),
&be_native_module(BLE),
#endif //USE_MI_ESP32
#ifdef USE_BERRY_CAM
&be_native_module(cam),
#endif
2022-11-27 17:08:53 +00:00
#ifdef USE_DISCOVERY
&be_native_module(mdns),
#endif // USE_DISCOVERY
#ifdef USE_MATTER_DEVICE
&be_native_module(matter),
#endif // USE_MATTER_DEVICE
2022-09-12 21:02:25 +01:00
#endif // TASMOTA
CUSTOM_NATIVE_MODULES
/* user-defined modules register end */
NULL /* do not remove */
};
2022-11-06 09:52:17 +00:00
be_extern_native_class(dyn);
be_extern_native_class(tasmota);
be_extern_native_class(Trigger);
be_extern_native_class(Driver);
be_extern_native_class(ctypes_bytes);
be_extern_native_class(ctypes_bytes_dyn);
be_extern_native_class(serial);
be_extern_native_class(ccronexpr);
be_extern_native_class(tasmota_log_reader);
be_extern_native_class(light_state);
be_extern_native_class(Wire);
be_extern_native_class(I2C_Driver);
be_extern_native_class(AXP192);
2022-09-18 22:12:57 +01:00
be_extern_native_class(AXP202);
be_extern_native_class(OneWire);
be_extern_native_class(Leds_ntv);
be_extern_native_class(Leds);
be_extern_native_class(AudioGenerator);
be_extern_native_class(AudioFileSource);
be_extern_native_class(AudioOutputI2S);
be_extern_native_class(AudioGeneratorWAV);
be_extern_native_class(AudioGeneratorMP3);
be_extern_native_class(AudioFileSourceFS);
be_extern_native_class(AudioOpusDecoder);
2023-09-25 22:31:32 +01:00
be_extern_native_class(AudioInputI2S);
be_extern_native_class(md5);
be_extern_native_class(udp);
be_extern_native_class(webclient);
be_extern_native_class(tcpclient);
be_extern_native_class(tcpclientasync);
be_extern_native_class(webserver_async);
2022-07-07 18:28:17 +01:00
be_extern_native_class(tcpserver);
2022-06-07 21:20:42 +01:00
be_extern_native_class(energy_struct);
// LVGL core classes
be_extern_native_class(lv_color);
be_extern_native_class(lv_font);
be_extern_native_class(LVGL_glob);
// LVGL custom classes
be_extern_native_class(lv_signal_bars);
be_extern_native_class(lv_wifi_bars);
be_extern_native_class(lv_wifi_bars_icon);
be_extern_native_class(lv_signal_arcs);
be_extern_native_class(lv_wifi_arcs);
be_extern_native_class(lv_wifi_arcs_icon);
2022-03-27 15:57:54 +01:00
be_extern_native_class(lv_clock);
be_extern_native_class(lv_clock_icon);
2022-03-21 18:35:57 +00:00
be_extern_native_class(int64);
#ifdef USE_BERRY_IMAGE
be_extern_native_class(img);
#endif // USE_BERRY_IMAGE
BERRY_LOCAL bclass_array be_class_table = {
2022-09-12 21:02:25 +01:00
#ifdef TASMOTA
/* first list are direct classes */
2022-11-06 09:52:17 +00:00
&be_native_class(dyn),
&be_native_class(tasmota),
&be_native_class(Trigger),
&be_native_class(Driver),
&be_native_class(serial),
&be_native_class(ccronexpr),
&be_native_class(ctypes_bytes),
&be_native_class(ctypes_bytes_dyn),
&be_native_class(tasmota_log_reader),
#ifdef USE_LIGHT
&be_native_class(light_state),
#endif
#if defined(USE_ONEWIRE) || defined(USE_DS18x20)
&be_native_class(OneWire),
#endif
#ifdef USE_I2C
&be_native_class(Wire),
&be_native_class(I2C_Driver),
&be_native_class(AXP192),
2022-09-18 22:12:57 +01:00
&be_native_class(AXP202),
#endif // USE_I2C
&be_native_class(md5),
#ifdef USE_WEBCLIENT
&be_native_class(udp),
&be_native_class(webclient),
&be_native_class(tcpclient),
&be_native_class(tcpclientasync),
#ifdef USE_BERRY_DEBUG
&be_native_class(webserver_async), // include only when USE_BERRY_DEBUG is enabled
#endif // USE_BERRY_DEBUG
#endif // USE_WEBCLIENT
2022-07-07 18:28:17 +01:00
#ifdef USE_BERRY_TCPSERVER
&be_native_class(tcpserver),
#endif // USE_BERRY_TCPSERVER
#if defined(USE_WS2812) && !defined(USE_WS2812_FORCE_NEOPIXELBUS)
&be_native_class(Leds_ntv),
&be_native_class(Leds),
#endif // USE_WS2812
2022-06-07 21:20:42 +01:00
#ifdef USE_ENERGY_SENSOR
&be_native_class(energy_struct),
#endif // USE_ENERGY_SENSOR
#ifdef USE_LVGL
&be_native_class(LVGL_glob),
&be_native_class(lv_signal_bars),
&be_native_class(lv_wifi_bars),
&be_native_class(lv_wifi_bars_icon),
&be_native_class(lv_signal_arcs),
&be_native_class(lv_wifi_arcs),
&be_native_class(lv_wifi_arcs_icon),
2022-03-27 15:57:54 +01:00
&be_native_class(lv_clock),
&be_native_class(lv_clock_icon),
#endif // USE_LVGL
#ifdef USE_BERRY_IMAGE
&be_native_class(img),
#endif // USE_BERRY_IMAGE
#if defined(USE_I2S_AUDIO_BERRY) && (ESP_IDF_VERSION_MAJOR >= 5)
&be_native_class(AudioGenerator),
&be_native_class(AudioFileSource),
&be_native_class(AudioOutputI2S),
&be_native_class(AudioGeneratorWAV),
&be_native_class(AudioGeneratorMP3),
#ifdef USE_UFILESYS
&be_native_class(AudioFileSourceFS),
#endif // USE_UFILESYS
&be_native_class(AudioOpusDecoder),
2023-09-25 22:31:32 +01:00
&be_native_class(AudioInputI2S),
#endif // defined(USE_I2S_AUDIO_BERRY) && (ESP_IDF_VERSION_MAJOR >= 5)
#endif // TASMOTA
2023-02-19 21:25:29 +00:00
#if defined(USE_BERRY_INT64) || defined(USE_MATTER_DEVICE)
2022-03-21 18:35:57 +00:00
&be_native_class(int64),
#endif
CUSTOM_NATIVE_CLASSES
NULL, /* do not remove */
};
extern void be_load_ctypes_energy_definitions_lib(bvm *vm);
/* this code loads the native class definitions */
BERRY_API void be_load_custom_libs(bvm *vm)
{
(void)vm; /* prevent a compiler warning */
/* add here custom libs */
#if !BE_USE_PRECOMPILED_OBJECT
/* be_load_xxxlib(vm); */
2022-02-02 21:03:58 +00:00
#endif
}