diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml index d7b4002..799f239 100644 --- a/.github/workflows/compile-examples.yml +++ b/.github/workflows/compile-examples.yml @@ -50,6 +50,7 @@ jobs: libraries: | # Install the library from the local path. - source-path: ./ + - name: lvgl # Additional library dependencies can be listed here. # See: https://github.com/arduino/compile-sketches#libraries sketch-paths: | diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b1babc9..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -extras/build diff --git a/README.md b/README.md index f2f536f..2eee7bc 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,6 @@ This library allows you to control and interact with the 6 DOF Braccio++ robot a * [Help Center](https://support.arduino.cc/) * [Forum](https://forum.arduino.cc) -### How-to-update precompiled `liblvgl` -```bash -git clone https://github.com/lvgl/lvgl -git clone https://github.com/arduino-libraries/Arduino_Braccio_plusplus -cd Arduino_Braccio_plusplus/extras -mkdir build && cd build -cmake -DCMAKE_BUILD_TYPE=Release .. -make -j8 -``` - ## :bug: Bugs & Issues If you want to report an issue with this library, you can submit it to the [issue tracker](https://github.com/arduino-libraries/Arduino_Braccio_plusplus/issues) of this repository. Remember to include as much detail as you can about your hardware set-up, code and steps for reproducing the issue. Make sure you're using an original Arduino board. diff --git a/extras/CMakeLists.txt b/extras/CMakeLists.txt deleted file mode 100644 index b2a22b7..0000000 --- a/extras/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -########################################################################## -cmake_minimum_required(VERSION 3.16) -########################################################################## -project(lvgl) -########################################################################## -set(CMAKE_C_COMPILER arm-none-eabi-gcc) -set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -########################################################################## -add_library(${PROJECT_NAME} STATIC "") -########################################################################## -set(LVGL_ROOT_DIR ${CMAKE_SOURCE_DIR}/../../lvgl) -set(LV_CONF_DIR ${CMAKE_SOURCE_DIR}/../src) -########################################################################## -target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC ${LVGL_ROOT_DIR} ${LV_CONF_DIR}) -########################################################################## -file(GLOB_RECURSE LVGL_SOURCES ${LVGL_ROOT_DIR}/src/*.c) -target_sources(${PROJECT_NAME} PUBLIC ${LVGL_SOURCES}) -########################################################################## -target_compile_options(${PROJECT_NAME} PRIVATE -mcpu=cortex-m0plus -fPIC) -########################################################################## -file(WRITE ${CMAKE_BINARY_DIR}/cp-lvgl-hdr.cmake - "file(COPY ${LVGL_ROOT_DIR}/src DESTINATION ../../src/lib/lvgl FILES_MATCHING PATTERN *.h)\n" -) -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND cp ${CMAKE_BINARY_DIR}/liblvgl.a ../../src/cortex-m0plus/liblvgl.a COMMENT "Copying libvgl.a") -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND cp ${LVGL_ROOT_DIR}/lvgl.h ../../src/lib/lvgl COMMENT "Copying lvgl.h") -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cp-lvgl-hdr.cmake COMMENT "Copying lvgl/src/*.h") -########################################################################## diff --git a/library.properties b/library.properties index 2551ccc..ebf7ed1 100644 --- a/library.properties +++ b/library.properties @@ -7,6 +7,5 @@ paragraph=This library allows you to control the Arduino Braccio++ 6-DOF 2nd gen category=Communication url=https://github.com/arduino-libraries/Arduino_Braccio_plusplus architectures=mbed,mbed_nano -precompiled=true -ldflags=-llvgl includes=Braccio++.h +depends=lvgl diff --git a/src/Braccio++.h b/src/Braccio++.h index 5ba6db9..4e5ecf9 100644 --- a/src/Braccio++.h +++ b/src/Braccio++.h @@ -33,7 +33,7 @@ #include "drivers/Ticker.h" #include "lib/TFT_eSPI/TFT_eSPI.h" // Hardware-specific library -#include "lib/lvgl/lvgl.h" +#include #include using namespace std::chrono; diff --git a/src/cortex-m0plus/liblvgl.a b/src/cortex-m0plus/liblvgl.a deleted file mode 100644 index 6d9797a..0000000 Binary files a/src/cortex-m0plus/liblvgl.a and /dev/null differ diff --git a/src/gif.c b/src/gif.c index 78bf383..c795050 100644 --- a/src/gif.c +++ b/src/gif.c @@ -18,7 +18,7 @@ * USA. */ -#include "lib/lvgl/lvgl.h" +#include #ifndef LV_ATTRIBUTE_MEM_ALIGN #define LV_ATTRIBUTE_MEM_ALIGN diff --git a/src/lib/lvgl/lvgl.h b/src/lib/lvgl/lvgl.h deleted file mode 100644 index cafe51c..0000000 --- a/src/lib/lvgl/lvgl.h +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @file lvgl.h - * Include all LVGL related headers - */ - -#ifndef LVGL_H -#define LVGL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************** - * CURRENT VERSION OF LVGL - ***************************/ -#define LVGL_VERSION_MAJOR 8 -#define LVGL_VERSION_MINOR 3 -#define LVGL_VERSION_PATCH 0 -#define LVGL_VERSION_INFO "dev" - -/********************* - * INCLUDES - *********************/ - -#include "src/misc/lv_log.h" -#include "src/misc/lv_timer.h" -#include "src/misc/lv_math.h" -#include "src/misc/lv_mem.h" -#include "src/misc/lv_async.h" -#include "src/misc/lv_anim_timeline.h" -#include "src/misc/lv_printf.h" - -#include "src/hal/lv_hal.h" - -#include "src/core/lv_obj.h" -#include "src/core/lv_group.h" -#include "src/core/lv_indev.h" -#include "src/core/lv_refr.h" -#include "src/core/lv_disp.h" -#include "src/core/lv_theme.h" - -#include "src/font/lv_font.h" -#include "src/font/lv_font_loader.h" -#include "src/font/lv_font_fmt_txt.h" - -#include "src/widgets/lv_arc.h" -#include "src/widgets/lv_btn.h" -#include "src/widgets/lv_img.h" -#include "src/widgets/lv_label.h" -#include "src/widgets/lv_line.h" -#include "src/widgets/lv_table.h" -#include "src/widgets/lv_checkbox.h" -#include "src/widgets/lv_bar.h" -#include "src/widgets/lv_slider.h" -#include "src/widgets/lv_btnmatrix.h" -#include "src/widgets/lv_dropdown.h" -#include "src/widgets/lv_roller.h" -#include "src/widgets/lv_textarea.h" -#include "src/widgets/lv_canvas.h" -#include "src/widgets/lv_switch.h" - -#include "src/draw/lv_draw.h" - -#include "src/lv_api_map.h" - -/*----------------- - * EXTRAS - *----------------*/ -#include "src/extra/lv_extra.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -/** Gives 1 if the x.y.z version is supported in the current version - * Usage: - * - * - Require v6 - * #if LV_VERSION_CHECK(6,0,0) - * new_func_in_v6(); - * #endif - * - * - * - Require at least v5.3 - * #if LV_VERSION_CHECK(5,3,0) - * new_feature_from_v5_3(); - * #endif - * - * - * - Require v5.3.2 bugfixes - * #if LV_VERSION_CHECK(5,3,2) - * bugfix_in_v5_3_2(); - * #endif - * - */ -#define LV_VERSION_CHECK(x,y,z) (x == LVGL_VERSION_MAJOR && (y < LVGL_VERSION_MINOR || (y == LVGL_VERSION_MINOR && z <= LVGL_VERSION_PATCH))) - -/** - * Wrapper functions for VERSION macros - */ - -static inline int lv_version_major(void) -{ - return LVGL_VERSION_MAJOR; -} - -static inline int lv_version_minor(void) -{ - return LVGL_VERSION_MINOR; -} - -static inline int lv_version_patch(void) -{ - return LVGL_VERSION_PATCH; -} - -static inline const char *lv_version_info(void) -{ - return LVGL_VERSION_INFO; -} - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LVGL_H*/ diff --git a/src/lib/lvgl/src/core/lv_disp.h b/src/lib/lvgl/src/core/lv_disp.h deleted file mode 100644 index 3b58e62..0000000 --- a/src/lib/lvgl/src/core/lv_disp.h +++ /dev/null @@ -1,250 +0,0 @@ -/** - * @file lv_disp.h - * - */ - -#ifndef LV_DISP_H -#define LV_DISP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../hal/lv_hal.h" -#include "lv_obj.h" -#include "lv_theme.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef enum { - LV_SCR_LOAD_ANIM_NONE, - LV_SCR_LOAD_ANIM_OVER_LEFT, - LV_SCR_LOAD_ANIM_OVER_RIGHT, - LV_SCR_LOAD_ANIM_OVER_TOP, - LV_SCR_LOAD_ANIM_OVER_BOTTOM, - LV_SCR_LOAD_ANIM_MOVE_LEFT, - LV_SCR_LOAD_ANIM_MOVE_RIGHT, - LV_SCR_LOAD_ANIM_MOVE_TOP, - LV_SCR_LOAD_ANIM_MOVE_BOTTOM, - LV_SCR_LOAD_ANIM_FADE_IN, - LV_SCR_LOAD_ANIM_FADE_ON = LV_SCR_LOAD_ANIM_FADE_IN, /*For backward compatibility*/ - LV_SCR_LOAD_ANIM_FADE_OUT, - LV_SCR_LOAD_ANIM_OUT_LEFT, - LV_SCR_LOAD_ANIM_OUT_RIGHT, - LV_SCR_LOAD_ANIM_OUT_TOP, - LV_SCR_LOAD_ANIM_OUT_BOTTOM, -} lv_scr_load_anim_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Return with a pointer to the active screen - * @param disp pointer to display which active screen should be get. (NULL to use the default - * screen) - * @return pointer to the active screen object (loaded by 'lv_scr_load()') - */ -lv_obj_t * lv_disp_get_scr_act(lv_disp_t * disp); - -/** - * Return with a pointer to the previous screen. Only used during screen transitions. - * @param disp pointer to display which previous screen should be get. (NULL to use the default - * screen) - * @return pointer to the previous screen object or NULL if not used now - */ -lv_obj_t * lv_disp_get_scr_prev(lv_disp_t * disp); - -/** - * Make a screen active - * @param scr pointer to a screen - */ -void lv_disp_load_scr(lv_obj_t * scr); - -/** - * Return with the top layer. (Same on every screen and it is above the normal screen layer) - * @param disp pointer to display which top layer should be get. (NULL to use the default screen) - * @return pointer to the top layer object (transparent screen sized lv_obj) - */ -lv_obj_t * lv_disp_get_layer_top(lv_disp_t * disp); - -/** - * Return with the sys. layer. (Same on every screen and it is above the normal screen and the top - * layer) - * @param disp pointer to display which sys. layer should be retrieved. (NULL to use the default screen) - * @return pointer to the sys layer object (transparent screen sized lv_obj) - */ -lv_obj_t * lv_disp_get_layer_sys(lv_disp_t * disp); - -/** - * Set the theme of a display - * @param disp pointer to a display - */ -void lv_disp_set_theme(lv_disp_t * disp, lv_theme_t * th); - -/** - * Get the theme of a display - * @param disp pointer to a display - * @return the display's theme (can be NULL) - */ -lv_theme_t * lv_disp_get_theme(lv_disp_t * disp); - -/** - * Set the background color of a display - * @param disp pointer to a display - * @param color color of the background - */ -void lv_disp_set_bg_color(lv_disp_t * disp, lv_color_t color); - -/** - * Set the background image of a display - * @param disp pointer to a display - * @param img_src path to file or pointer to an `lv_img_dsc_t` variable - */ -void lv_disp_set_bg_image(lv_disp_t * disp, const void * img_src); - -/** - * Set opacity of the background - * @param disp pointer to a display - * @param opa opacity (0..255) - */ -void lv_disp_set_bg_opa(lv_disp_t * disp, lv_opa_t opa); - -/** - * Switch screen with animation - * @param scr pointer to the new screen to load - * @param anim_type type of the animation from `lv_scr_load_anim_t`, e.g. `LV_SCR_LOAD_ANIM_MOVE_LEFT` - * @param time time of the animation - * @param delay delay before the transition - * @param auto_del true: automatically delete the old screen - */ -void lv_scr_load_anim(lv_obj_t * scr, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool auto_del); - -/** - * Get elapsed time since last user activity on a display (e.g. click) - * @param disp pointer to a display (NULL to get the overall smallest inactivity) - * @return elapsed ticks (milliseconds) since the last activity - */ -uint32_t lv_disp_get_inactive_time(const lv_disp_t * disp); - -/** - * Manually trigger an activity on a display - * @param disp pointer to a display (NULL to use the default display) - */ -void lv_disp_trig_activity(lv_disp_t * disp); - -/** - * Clean any CPU cache that is related to the display. - * @param disp pointer to a display (NULL to use the default display) - */ -void lv_disp_clean_dcache(lv_disp_t * disp); - -/** - * Get a pointer to the screen refresher timer to - * modify its parameters with `lv_timer_...` functions. - * @param disp pointer to a display - * @return pointer to the display refresher timer. (NULL on error) - */ -lv_timer_t * _lv_disp_get_refr_timer(lv_disp_t * disp); - -/*------------------------------------------------ - * To improve backward compatibility - * Recommended only if you have one display - *------------------------------------------------*/ - -/** - * Get the active screen of the default display - * @return pointer to the active screen - */ -static inline lv_obj_t * lv_scr_act(void) -{ - return lv_disp_get_scr_act(lv_disp_get_default()); -} - -/** - * Get the top layer of the default display - * @return pointer to the top layer - */ -static inline lv_obj_t * lv_layer_top(void) -{ - return lv_disp_get_layer_top(lv_disp_get_default()); -} - -/** - * Get the active screen of the default display - * @return pointer to the sys layer - */ -static inline lv_obj_t * lv_layer_sys(void) -{ - return lv_disp_get_layer_sys(lv_disp_get_default()); -} - -static inline void lv_scr_load(lv_obj_t * scr) -{ - lv_disp_load_scr(scr); -} - -/********************** - * MACROS - **********************/ - -/*------------------------------------------------ - * To improve backward compatibility - * Recommended only if you have one display - *------------------------------------------------*/ - -#ifndef LV_HOR_RES -/** - * The horizontal resolution of the currently active display. - */ -#define LV_HOR_RES lv_disp_get_hor_res(lv_disp_get_default()) -#endif - -#ifndef LV_VER_RES -/** - * The vertical resolution of the currently active display. - */ -#define LV_VER_RES lv_disp_get_ver_res(lv_disp_get_default()) -#endif - -/** - * Scale the given number of pixels (a distance or size) relative to a 160 DPI display - * considering the DPI of the default display. - * It ensures that e.g. `lv_dpx(100)` will have the same physical size regardless to the - * DPI of the display. - * @param n the number of pixels to scale - * @return `n x current_dpi/160` - */ -static inline lv_coord_t lv_dpx(lv_coord_t n) -{ - return LV_DPX(n); -} - -/** - * Scale the given number of pixels (a distance or size) relative to a 160 DPI display - * considering the DPI of the given display. - * It ensures that e.g. `lv_dpx(100)` will have the same physical size regardless to the - * DPI of the display. - * @param obj a display whose dpi should be considered - * @param n the number of pixels to scale - * @return `n x current_dpi/160` - */ -static inline lv_coord_t lv_disp_dpx(const lv_disp_t * disp, lv_coord_t n) -{ - return _LV_DPX_CALC(lv_disp_get_dpi(disp), n); -} - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DISP_H*/ diff --git a/src/lib/lvgl/src/core/lv_event.h b/src/lib/lvgl/src/core/lv_event.h deleted file mode 100644 index 038570b..0000000 --- a/src/lib/lvgl/src/core/lv_event.h +++ /dev/null @@ -1,363 +0,0 @@ -/** - * @file lv_event.h - * - */ - -#ifndef LV_EVENT_H -#define LV_EVENT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_event_dsc_t; - -/** - * Type of event being sent to the object. - */ -typedef enum { - LV_EVENT_ALL = 0, - - /** Input device events*/ - LV_EVENT_PRESSED, /**< The object has been pressed*/ - LV_EVENT_PRESSING, /**< The object is being pressed (called continuously while pressing)*/ - LV_EVENT_PRESS_LOST, /**< The object is still being pressed but slid cursor/finger off of the object */ - LV_EVENT_SHORT_CLICKED, /**< The object was pressed for a short period of time, then released it. Not called if scrolled.*/ - LV_EVENT_LONG_PRESSED, /**< Object has been pressed for at least `long_press_time`. Not called if scrolled.*/ - LV_EVENT_LONG_PRESSED_REPEAT, /**< Called after `long_press_time` in every `long_press_repeat_time` ms. Not called if scrolled.*/ - LV_EVENT_CLICKED, /**< Called on release if not scrolled (regardless to long press)*/ - LV_EVENT_RELEASED, /**< Called in every cases when the object has been released*/ - LV_EVENT_SCROLL_BEGIN, /**< Scrolling begins*/ - LV_EVENT_SCROLL_END, /**< Scrolling ends*/ - LV_EVENT_SCROLL, /**< Scrolling*/ - LV_EVENT_GESTURE, /**< A gesture is detected. Get the gesture with `lv_indev_get_gesture_dir(lv_indev_get_act());` */ - LV_EVENT_KEY, /**< A key is sent to the object. Get the key with `lv_indev_get_key(lv_indev_get_act());`*/ - LV_EVENT_FOCUSED, /**< The object is focused*/ - LV_EVENT_DEFOCUSED, /**< The object is defocused*/ - LV_EVENT_LEAVE, /**< The object is defocused but still selected*/ - LV_EVENT_HIT_TEST, /**< Perform advanced hit-testing*/ - - /** Drawing events*/ - LV_EVENT_COVER_CHECK, /**< Check if the object fully covers an area. The event parameter is `lv_cover_check_info_t *`.*/ - LV_EVENT_REFR_EXT_DRAW_SIZE, /**< Get the required extra draw area around the object (e.g. for shadow). The event parameter is `lv_coord_t *` to store the size.*/ - LV_EVENT_DRAW_MAIN_BEGIN, /**< Starting the main drawing phase*/ - LV_EVENT_DRAW_MAIN, /**< Perform the main drawing*/ - LV_EVENT_DRAW_MAIN_END, /**< Finishing the main drawing phase*/ - LV_EVENT_DRAW_POST_BEGIN, /**< Starting the post draw phase (when all children are drawn)*/ - LV_EVENT_DRAW_POST, /**< Perform the post draw phase (when all children are drawn)*/ - LV_EVENT_DRAW_POST_END, /**< Finishing the post draw phase (when all children are drawn)*/ - LV_EVENT_DRAW_PART_BEGIN, /**< Starting to draw a part. The event parameter is `lv_obj_draw_dsc_t *`. */ - LV_EVENT_DRAW_PART_END, /**< Finishing to draw a part. The event parameter is `lv_obj_draw_dsc_t *`. */ - - /** Special events*/ - LV_EVENT_VALUE_CHANGED, /**< The object's value has changed (i.e. slider moved)*/ - LV_EVENT_INSERT, /**< A text is inserted to the object. The event data is `char *` being inserted.*/ - LV_EVENT_REFRESH, /**< Notify the object to refresh something on it (for the user)*/ - LV_EVENT_READY, /**< A process has finished*/ - LV_EVENT_CANCEL, /**< A process has been cancelled */ - - /** Other events*/ - LV_EVENT_DELETE, /**< Object is being deleted*/ - LV_EVENT_CHILD_CHANGED, /**< Child was removed, added, or its size, position were changed */ - LV_EVENT_CHILD_CREATED, /**< Child was created, always bubbles up to all parents*/ - LV_EVENT_CHILD_DELETED, /**< Child was deleted, always bubbles up to all parents*/ - LV_EVENT_SCREEN_UNLOAD_START, /**< A screen unload started, fired immediately when scr_load is called*/ - LV_EVENT_SCREEN_LOAD_START, /**< A screen load started, fired when the screen change delay is expired*/ - LV_EVENT_SCREEN_LOADED, /**< A screen was loaded*/ - LV_EVENT_SCREEN_UNLOADED, /**< A screen was unloaded*/ - LV_EVENT_SIZE_CHANGED, /**< Object coordinates/size have changed*/ - LV_EVENT_STYLE_CHANGED, /**< Object's style has changed*/ - LV_EVENT_LAYOUT_CHANGED, /**< The children position has changed due to a layout recalculation*/ - LV_EVENT_GET_SELF_SIZE, /**< Get the internal size of a widget*/ - - _LV_EVENT_LAST, /** Number of default events*/ - - - LV_EVENT_PREPROCESS = 0x80, /** This is a flag that can be set with an event so it's processed - before the class default event processing */ -} lv_event_code_t; - -typedef struct _lv_event_t { - struct _lv_obj_t * target; - struct _lv_obj_t * current_target; - lv_event_code_t code; - void * user_data; - void * param; - struct _lv_event_t * prev; - uint8_t deleted : 1; - uint8_t stop_processing : 1; - uint8_t stop_bubbling : 1; -} lv_event_t; - -/** - * @brief Event callback. - * Events are used to notify the user of some action being taken on the object. - * For details, see ::lv_event_t. - */ -typedef void (*lv_event_cb_t)(lv_event_t * e); - -/** - * Used as the event parameter of ::LV_EVENT_HIT_TEST to check if an `point` can click the object or not. - * `res` should be set like this: - * - If already set to `false` an other event wants that point non clickable. If you want to respect it leave it as `false` or set `true` to overwrite it. - * - If already set `true` and `point` shouldn't be clickable set to `false` - * - If already set to `true` you agree that `point` can click the object leave it as `true` - */ -typedef struct { - const lv_point_t * point; /**< A point relative to screen to check if it can click the object or not*/ - bool res; /**< true: `point` can click the object; false: it cannot*/ -} lv_hit_test_info_t; - -/** - * Used as the event parameter of ::LV_EVENT_COVER_CHECK to check if an area is covered by the object or not. - * In the event use `const lv_area_t * area = lv_event_get_cover_area(e)` to get the area to check - * and `lv_event_set_cover_res(e, res)` to set the result. - */ -typedef struct { - lv_cover_res_t res; - const lv_area_t * area; -} lv_cover_check_info_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Send an event to the object - * @param obj pointer to an object - * @param event_code the type of the event from `lv_event_t` - * @param param arbitrary data depending on the widget type and the event. (Usually `NULL`) - * @return LV_RES_OK: `obj` was not deleted in the event; LV_RES_INV: `obj` was deleted in the event_code - */ -lv_res_t lv_event_send(struct _lv_obj_t * obj, lv_event_code_t event_code, void * param); - -/** - * Used by the widgets internally to call the ancestor widget types's event handler - * @param class_p pointer to the class of the widget (NOT the ancestor class) - * @param e pointer to the event descriptor - * @return LV_RES_OK: the target object was not deleted in the event; LV_RES_INV: it was deleted in the event_code - */ -lv_res_t lv_obj_event_base(const lv_obj_class_t * class_p, lv_event_t * e); - -/** - * Get the object originally targeted by the event. It's the same even if the event is bubbled. - * @param e pointer to the event descriptor - * @return the target of the event_code - */ -struct _lv_obj_t * lv_event_get_target(lv_event_t * e); - -/** - * Get the current target of the event. It's the object which event handler being called. - * If the event is not bubbled it's the same as "normal" target. - * @param e pointer to the event descriptor - * @return pointer to the current target of the event_code - */ -struct _lv_obj_t * lv_event_get_current_target(lv_event_t * e); - -/** - * Get the event code of an event - * @param e pointer to the event descriptor - * @return the event code. (E.g. `LV_EVENT_CLICKED`, `LV_EVENT_FOCUSED`, etc) - */ -lv_event_code_t lv_event_get_code(lv_event_t * e); - -/** - * Get the parameter passed when the event was sent - * @param e pointer to the event descriptor - * @return pointer to the parameter - */ -void * lv_event_get_param(lv_event_t * e); - -/** - * Get the user_data passed when the event was registered on the object - * @param e pointer to the event descriptor - * @return pointer to the user_data - */ -void * lv_event_get_user_data(lv_event_t * e); - -/** - * Stop the event from bubbling. - * This is only valid when called in the middle of an event processing chain. - * @param e pointer to the event descriptor - */ -void lv_event_stop_bubbling(lv_event_t * e); - -/** - * Stop processing this event. - * This is only valid when called in the middle of an event processing chain. - * @param e pointer to the event descriptor - */ -void lv_event_stop_processing(lv_event_t * e); - -/** - * Register a new, custom event ID. - * It can be used the same way as e.g. `LV_EVENT_CLICKED` to send custom events - * @return the new event id - * @example - * uint32_t LV_EVENT_MINE = 0; - * ... - * e = lv_event_register_id(); - * ... - * lv_event_send(obj, LV_EVENT_MINE, &some_data); - */ -uint32_t lv_event_register_id(void); - -/** - * Nested events can be called and one of them might belong to an object that is being deleted. - * Mark this object's `event_temp_data` deleted to know that its `lv_event_send` should return `LV_RES_INV` - * @param obj pointer to an object to mark as deleted - */ -void _lv_event_mark_deleted(struct _lv_obj_t * obj); - - -/** - * Add an event handler function for an object. - * Used by the user to react on event which happens with the object. - * An object can have multiple event handler. They will be called in the same order as they were added. - * @param obj pointer to an object - * @param filter and event code (e.g. `LV_EVENT_CLICKED`) on which the event should be called. `LV_EVENT_ALL` can be sued the receive all the events. - * @param event_cb the new event function - * @param user_data custom data data will be available in `event_cb` - * @return a pointer the event descriptor. Can be used in ::lv_obj_remove_event_dsc - */ -struct _lv_event_dsc_t * lv_obj_add_event_cb(struct _lv_obj_t * obj, lv_event_cb_t event_cb, lv_event_code_t filter, - void * user_data); - -/** - * Remove an event handler function for an object. - * @param obj pointer to an object - * @param event_cb the event function to remove, or `NULL` to remove the firstly added event callback - * @return true if any event handlers were removed - */ -bool lv_obj_remove_event_cb(struct _lv_obj_t * obj, lv_event_cb_t event_cb); - -/** - * Remove an event handler function with a specific user_data from an object. - * @param obj pointer to an object - * @param event_cb the event function to remove, or `NULL` only `user_data` matters. - * @param event_user_data the user_data specified in ::lv_obj_add_event_cb - * @return true if any event handlers were removed - */ -bool lv_obj_remove_event_cb_with_user_data(struct _lv_obj_t * obj, lv_event_cb_t event_cb, - const void * event_user_data); - -/** - * DEPRECATED because doesn't work if multiple event handlers are added to an object. - * Remove an event handler function for an object. - * @param obj pointer to an object - * @param event_dsc pointer to an event descriptor to remove (returned by ::lv_obj_add_event_cb) - * @return true if any event handlers were removed - */ -bool lv_obj_remove_event_dsc(struct _lv_obj_t * obj, struct _lv_event_dsc_t * event_dsc); - -/** - * The user data of an event object event callback. Always the first match with `event_cb` will be returned. - * @param obj pointer to an object - * @param event_cb the event function - * @return the user_data - */ -void * lv_obj_get_event_user_data(struct _lv_obj_t * obj, lv_event_cb_t event_cb); - -/** - * Get the input device passed as parameter to indev related events. - * @param e pointer to an event - * @return the indev that triggered the event or NULL if called on a not indev related event - */ -lv_indev_t * lv_event_get_indev(lv_event_t * e); - -/** - * Get the part draw descriptor passed as parameter to `LV_EVENT_DRAW_PART_BEGIN/END`. - * @param e pointer to an event - * @return the part draw descriptor to hook the drawing or NULL if called on an unrelated event - */ -lv_obj_draw_part_dsc_t * lv_event_get_draw_part_dsc(lv_event_t * e); - -/** - * Get the draw context which should be the first parameter of the draw functions. - * Namely: `LV_EVENT_DRAW_MAIN/POST`, `LV_EVENT_DRAW_MAIN/POST_BEGIN`, `LV_EVENT_DRAW_MAIN/POST_END` - * @param e pointer to an event - * @return pointer to a draw context or NULL if called on an unrelated event - */ -lv_draw_ctx_t * lv_event_get_draw_ctx(lv_event_t * e); - -/** - * Get the old area of the object before its size was changed. Can be used in `LV_EVENT_SIZE_CHANGED` - * @param e pointer to an event - * @return the old absolute area of the object or NULL if called on an unrelated event - */ -const lv_area_t * lv_event_get_old_size(lv_event_t * e); - -/** - * Get the key passed as parameter to an event. Can be used in `LV_EVENT_KEY` - * @param e pointer to an event - * @return the triggering key or NULL if called on an unrelated event - */ -uint32_t lv_event_get_key(lv_event_t * e); - -/** - * Get the animation descriptor of a scrolling. Can be used in `LV_EVENT_SCROLL_BEGIN` - * @param e pointer to an event - * @return the animation that will scroll the object. (can be modified as required) - */ -lv_anim_t * lv_event_get_scroll_anim(lv_event_t * e); - -/** - * Set the new extra draw size. Can be used in `LV_EVENT_REFR_EXT_DRAW_SIZE` - * @param e pointer to an event - * @param size The new extra draw size - */ -void lv_event_set_ext_draw_size(lv_event_t * e, lv_coord_t size); - -/** - * Get a pointer to an `lv_point_t` variable in which the self size should be saved (width in `point->x` and height `point->y`). - * Can be used in `LV_EVENT_GET_SELF_SIZE` - * @param e pointer to an event - * @return pointer to `lv_point_t` or NULL if called on an unrelated event - */ -lv_point_t * lv_event_get_self_size_info(lv_event_t * e); - -/** - * Get a pointer to an `lv_hit_test_info_t` variable in which the hit test result should be saved. Can be used in `LV_EVENT_HIT_TEST` - * @param e pointer to an event - * @return pointer to `lv_hit_test_info_t` or NULL if called on an unrelated event - */ -lv_hit_test_info_t * lv_event_get_hit_test_info(lv_event_t * e); - -/** - * Get a pointer to an area which should be examined whether the object fully covers it or not. - * Can be used in `LV_EVENT_HIT_TEST` - * @param e pointer to an event - * @return an area with absolute coordinates to check - */ -const lv_area_t * lv_event_get_cover_area(lv_event_t * e); - -/** - * Set the result of cover checking. Can be used in `LV_EVENT_COVER_CHECK` - * @param e pointer to an event - * @param res an element of ::lv_cover_check_info_t - */ -void lv_event_set_cover_res(lv_event_t * e, lv_cover_res_t res); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_EVENT_H*/ diff --git a/src/lib/lvgl/src/core/lv_group.h b/src/lib/lvgl/src/core/lv_group.h deleted file mode 100644 index ecf88df..0000000 --- a/src/lib/lvgl/src/core/lv_group.h +++ /dev/null @@ -1,246 +0,0 @@ -/** - * @file lv_group.h - * - */ - -#ifndef LV_GROUP_H -#define LV_GROUP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../lv_conf_internal.h" - -#include -#include -#include "../misc/lv_ll.h" -#include "../misc/lv_types.h" - -/********************* - * DEFINES - *********************/ -/*Predefined keys to control the focused object via lv_group_send(group, c)*/ - -enum { - LV_KEY_UP = 17, /*0x11*/ - LV_KEY_DOWN = 18, /*0x12*/ - LV_KEY_RIGHT = 19, /*0x13*/ - LV_KEY_LEFT = 20, /*0x14*/ - LV_KEY_ESC = 27, /*0x1B*/ - LV_KEY_DEL = 127, /*0x7F*/ - LV_KEY_BACKSPACE = 8, /*0x08*/ - LV_KEY_ENTER = 10, /*0x0A, '\n'*/ - LV_KEY_NEXT = 9, /*0x09, '\t'*/ - LV_KEY_PREV = 11, /*0x0B, '*/ - LV_KEY_HOME = 2, /*0x02, STX*/ - LV_KEY_END = 3, /*0x03, ETX*/ -}; -typedef uint8_t lv_key_t; - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_group_t; - -typedef void (*lv_group_focus_cb_t)(struct _lv_group_t *); - -/** - * Groups can be used to logically hold objects so that they can be individually focused. - * They are NOT for laying out objects on a screen (try layouts for that). - */ -typedef struct _lv_group_t { - lv_ll_t obj_ll; /**< Linked list to store the objects in the group*/ - struct _lv_obj_t ** obj_focus; /**< The object in focus*/ - - lv_group_focus_cb_t focus_cb; /**< A function to call when a new object is focused (optional)*/ -#if LV_USE_USER_DATA - void * user_data; -#endif - - uint8_t frozen : 1; /**< 1: can't focus to new object*/ - uint8_t editing : 1; /**< 1: Edit mode, 0: Navigate mode*/ - uint8_t refocus_policy : 1; /**< 1: Focus prev if focused on deletion. 0: Focus next if focused on - deletion.*/ - uint8_t wrap : 1; /**< 1: Focus next/prev can wrap at end of list. 0: Focus next/prev stops at end - of list.*/ -} lv_group_t; - - -typedef enum { - LV_GROUP_REFOCUS_POLICY_NEXT = 0, - LV_GROUP_REFOCUS_POLICY_PREV = 1 -} lv_group_refocus_policy_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Init. the group module - * @remarks Internal function, do not call directly. - */ -void _lv_group_init(void); - -/** - * Create a new object group - * @return pointer to the new object group - */ -lv_group_t * lv_group_create(void); - -/** - * Delete a group object - * @param group pointer to a group - */ -void lv_group_del(lv_group_t * group); - -/** - * Set a default group. New object are added to this group if it's enabled in their class with `add_to_def_group = true` - * @param group pointer to a group (can be `NULL`) - */ -void lv_group_set_default(lv_group_t * group); - -/** - * Get the default group - * @return pointer to the default group - */ -lv_group_t * lv_group_get_default(void); - -/** - * Add an object to a group - * @param group pointer to a group - * @param obj pointer to an object to add - */ -void lv_group_add_obj(lv_group_t * group, struct _lv_obj_t * obj); - -/** - * Swap 2 object in a group. The object must be in the same group - * @param obj1 pointer to an object - * @param obj2 pointer to an other object - */ -void lv_group_swap_obj(struct _lv_obj_t * obj1, struct _lv_obj_t * obj2); - -/** - * Remove an object from its group - * @param obj pointer to an object to remove - */ -void lv_group_remove_obj(struct _lv_obj_t * obj); - -/** - * Remove all objects from a group - * @param group pointer to a group - */ -void lv_group_remove_all_objs(lv_group_t * group); - -/** - * Focus on an object (defocus the current) - * @param obj pointer to an object to focus on - */ -void lv_group_focus_obj(struct _lv_obj_t * obj); - -/** - * Focus the next object in a group (defocus the current) - * @param group pointer to a group - */ -void lv_group_focus_next(lv_group_t * group); - -/** - * Focus the previous object in a group (defocus the current) - * @param group pointer to a group - */ -void lv_group_focus_prev(lv_group_t * group); - -/** - * Do not let to change the focus from the current object - * @param group pointer to a group - * @param en true: freeze, false: release freezing (normal mode) - */ -void lv_group_focus_freeze(lv_group_t * group, bool en); - -/** - * Send a control character to the focuses object of a group - * @param group pointer to a group - * @param c a character (use LV_KEY_.. to navigate) - * @return result of focused object in group. - */ -lv_res_t lv_group_send_data(lv_group_t * group, uint32_t c); - -/** - * Set a function for a group which will be called when a new object is focused - * @param group pointer to a group - * @param focus_cb the call back function or NULL if unused - */ -void lv_group_set_focus_cb(lv_group_t * group, lv_group_focus_cb_t focus_cb); - -/** - * Set whether the next or previous item in a group is focused if the currently focused obj is - * deleted. - * @param group pointer to a group - * @param policy new refocus policy enum - */ -void lv_group_set_refocus_policy(lv_group_t * group, lv_group_refocus_policy_t policy); - -/** - * Manually set the current mode (edit or navigate). - * @param group pointer to group - * @param edit true: edit mode; false: navigate mode - */ -void lv_group_set_editing(lv_group_t * group, bool edit); - -/** - * Set whether focus next/prev will allow wrapping from first->last or last->first object. - * @param group pointer to group - * @param en true: wrapping enabled; false: wrapping disabled - */ -void lv_group_set_wrap(lv_group_t * group, bool en); - -/** - * Get the focused object or NULL if there isn't one - * @param group pointer to a group - * @return pointer to the focused object - */ -struct _lv_obj_t * lv_group_get_focused(const lv_group_t * group); - -/** - * Get the focus callback function of a group - * @param group pointer to a group - * @return the call back function or NULL if not set - */ -lv_group_focus_cb_t lv_group_get_focus_cb(const lv_group_t * group); - -/** - * Get the current mode (edit or navigate). - * @param group pointer to group - * @return true: edit mode; false: navigate mode - */ -bool lv_group_get_editing(const lv_group_t * group); - -/** - * Get whether focus next/prev will allow wrapping from first->last or last->first object. - * @param group pointer to group - * @param en true: wrapping enabled; false: wrapping disabled - */ -bool lv_group_get_wrap(lv_group_t * group); - -/** - * Get the number of object in the group - * @param group pointer to a group - * @return number of objects in the group - */ -uint32_t lv_group_get_obj_count(lv_group_t * group); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_GROUP_H*/ diff --git a/src/lib/lvgl/src/core/lv_indev.h b/src/lib/lvgl/src/core/lv_indev.h deleted file mode 100644 index a98df86..0000000 --- a/src/lib/lvgl/src/core/lv_indev.h +++ /dev/null @@ -1,176 +0,0 @@ -/** - * @file lv_indev.h - * - */ - -#ifndef LV_INDEV_H -#define LV_INDEV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_obj.h" -#include "../hal/lv_hal_indev.h" -#include "lv_group.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Called periodically to read the input devices - * @param timer pointer to a timer to read - */ -void lv_indev_read_timer_cb(lv_timer_t * timer); - -/** - * Enable or disable one or all input devices (default enabled) - * @param indev pointer to an input device or NULL to enable/disable all of them - * @param en true to enable, false to disable - */ -void lv_indev_enable(lv_indev_t * indev, bool en); - -/** - * Get the currently processed input device. Can be used in action functions too. - * @return pointer to the currently processed input device or NULL if no input device processing - * right now - */ -lv_indev_t * lv_indev_get_act(void); - -/** - * Get the type of an input device - * @param indev pointer to an input device - * @return the type of the input device from `lv_hal_indev_type_t` (`LV_INDEV_TYPE_...`) - */ -lv_indev_type_t lv_indev_get_type(const lv_indev_t * indev); - -/** - * Reset one or all input devices - * @param indev pointer to an input device to reset or NULL to reset all of them - * @param obj pointer to an object which triggers the reset. - */ -void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj); - -/** - * Reset the long press state of an input device - * @param indev pointer to an input device - */ -void lv_indev_reset_long_press(lv_indev_t * indev); - -/** - * Set a cursor for a pointer input device (for LV_INPUT_TYPE_POINTER and LV_INPUT_TYPE_BUTTON) - * @param indev pointer to an input device - * @param cur_obj pointer to an object to be used as cursor - */ -void lv_indev_set_cursor(lv_indev_t * indev, lv_obj_t * cur_obj); - -/** - * Set a destination group for a keypad input device (for LV_INDEV_TYPE_KEYPAD) - * @param indev pointer to an input device - * @param group point to a group - */ -void lv_indev_set_group(lv_indev_t * indev, lv_group_t * group); - -/** - * Set the an array of points for LV_INDEV_TYPE_BUTTON. - * These points will be assigned to the buttons to press a specific point on the screen - * @param indev pointer to an input device - * @param group point to a group - */ -void lv_indev_set_button_points(lv_indev_t * indev, const lv_point_t points[]); - -/** - * Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON) - * @param indev pointer to an input device - * @param point pointer to a point to store the result - */ -void lv_indev_get_point(const lv_indev_t * indev, lv_point_t * point); - -/** -* Get the current gesture direct -* @param indev pointer to an input device -* @return current gesture direct -*/ -lv_dir_t lv_indev_get_gesture_dir(const lv_indev_t * indev); - -/** - * Get the last pressed key of an input device (for LV_INDEV_TYPE_KEYPAD) - * @param indev pointer to an input device - * @return the last pressed key (0 on error) - */ -uint32_t lv_indev_get_key(const lv_indev_t * indev); - -/** - * Check the current scroll direction of an input device (for LV_INDEV_TYPE_POINTER and - * LV_INDEV_TYPE_BUTTON) - * @param indev pointer to an input device - * @return LV_DIR_NONE: no scrolling now - * LV_DIR_HOR/VER - */ -lv_dir_t lv_indev_get_scroll_dir(const lv_indev_t * indev); - -/** - * Get the currently scrolled object (for LV_INDEV_TYPE_POINTER and - * LV_INDEV_TYPE_BUTTON) - * @param indev pointer to an input device - * @return pointer to the currently scrolled object or NULL if no scrolling by this indev - */ -lv_obj_t * lv_indev_get_scroll_obj(const lv_indev_t * indev); - -/** - * Get the movement vector of an input device (for LV_INDEV_TYPE_POINTER and - * LV_INDEV_TYPE_BUTTON) - * @param indev pointer to an input device - * @param point pointer to a point to store the types.pointer.vector - */ -void lv_indev_get_vect(const lv_indev_t * indev, lv_point_t * point); - -/** - * Do nothing until the next release - * @param indev pointer to an input device - */ -void lv_indev_wait_release(lv_indev_t * indev); - -/** - * Gets a pointer to the currently active object in the currently processed input device. - * @return pointer to currently active object or NULL if no active object - */ -lv_obj_t * lv_indev_get_obj_act(void); - -/** - * Get a pointer to the indev read timer to - * modify its parameters with `lv_timer_...` functions. - * @param indev pointer to an input device - * @return pointer to the indev read refresher timer. (NULL on error) - */ -lv_timer_t * lv_indev_get_read_timer(lv_disp_t * indev); - -/** - * Search the most top, clickable object by a point - * @param obj pointer to a start object, typically the screen - * @param point pointer to a point for searching the most top child - * @return pointer to the found object or NULL if there was no suitable object - */ -lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_INDEV_H*/ diff --git a/src/lib/lvgl/src/core/lv_indev_scroll.h b/src/lib/lvgl/src/core/lv_indev_scroll.h deleted file mode 100644 index 76c64d1..0000000 --- a/src/lib/lvgl/src/core/lv_indev_scroll.h +++ /dev/null @@ -1,65 +0,0 @@ -/** - * @file lv_indev_scroll.h - * - */ - -#ifndef LV_INDEV_SCROLL_H -#define LV_INDEV_SCROLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Handle scrolling. Called by LVGL during input device processing - * @param proc pointer to an input device's proc field - */ -void _lv_indev_scroll_handler(_lv_indev_proc_t * proc); - -/** - * Handle throwing after scrolling. Called by LVGL during input device processing - * @param proc pointer to an input device's proc field - */ -void _lv_indev_scroll_throw_handler(_lv_indev_proc_t * proc); - -/** - * Predict where would a scroll throw end - * @param indev pointer to an input device - * @param dir ` LV_DIR_VER` or `LV_DIR_HOR` - * @return the difference compared to the current position when the throw would be finished - */ -lv_coord_t lv_indev_scroll_throw_predict(lv_indev_t * indev, lv_dir_t dir); - -/** - * Get the distance of the nearest snap point - * @param obj the object on which snap points should be found - * @param p save the distance of the found snap point there - */ -void lv_indev_scroll_get_snap_dist(lv_obj_t * obj, lv_point_t * p); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_INDEV_SCROLL_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj.h b/src/lib/lvgl/src/core/lv_obj.h deleted file mode 100644 index e9c6d7f..0000000 --- a/src/lib/lvgl/src/core/lv_obj.h +++ /dev/null @@ -1,408 +0,0 @@ -/** - * @file lv_obj.h - * - */ - -#ifndef LV_OBJ_H -#define LV_OBJ_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include -#include "../misc/lv_style.h" -#include "../misc/lv_types.h" -#include "../misc/lv_area.h" -#include "../misc/lv_color.h" -#include "../misc/lv_assert.h" -#include "../hal/lv_hal.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; - -/** - * Possible states of a widget. - * OR-ed values are possible - */ -enum { - LV_STATE_DEFAULT = 0x0000, - LV_STATE_CHECKED = 0x0001, - LV_STATE_FOCUSED = 0x0002, - LV_STATE_FOCUS_KEY = 0x0004, - LV_STATE_EDITED = 0x0008, - LV_STATE_HOVERED = 0x0010, - LV_STATE_PRESSED = 0x0020, - LV_STATE_SCROLLED = 0x0040, - LV_STATE_DISABLED = 0x0080, - - LV_STATE_USER_1 = 0x1000, - LV_STATE_USER_2 = 0x2000, - LV_STATE_USER_3 = 0x4000, - LV_STATE_USER_4 = 0x8000, - - LV_STATE_ANY = 0xFFFF, /**< Special value can be used in some functions to target all states*/ -}; - -typedef uint16_t lv_state_t; - -/** - * The possible parts of widgets. - * The parts can be considered as the internal building block of the widgets. - * E.g. slider = background + indicator + knob - * Not all parts are used by every widget - */ -enum { - LV_PART_MAIN = 0x000000, /**< A background like rectangle*/ - LV_PART_SCROLLBAR = 0x010000, /**< The scrollbar(s)*/ - LV_PART_INDICATOR = 0x020000, /**< Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox*/ - LV_PART_KNOB = 0x030000, /**< Like handle to grab to adjust the value*/ - LV_PART_SELECTED = 0x040000, /**< Indicate the currently selected option or section*/ - LV_PART_ITEMS = 0x050000, /**< Used if the widget has multiple similar elements (e.g. table cells)*/ - LV_PART_TICKS = 0x060000, /**< Ticks on scale e.g. for a chart or meter*/ - LV_PART_CURSOR = 0x070000, /**< Mark a specific place e.g. for text area's cursor or on a chart*/ - - LV_PART_CUSTOM_FIRST = 0x080000, /**< Extension point for custom widgets*/ - - LV_PART_ANY = 0x0F0000, /**< Special value can be used in some functions to target all parts*/ -}; - -typedef uint32_t lv_part_t; - -/** - * On/Off features controlling the object's behavior. - * OR-ed values are possible - */ -enum { - LV_OBJ_FLAG_HIDDEN = (1L << 0), /**< Make the object hidden. (Like it wasn't there at all)*/ - LV_OBJ_FLAG_CLICKABLE = (1L << 1), /**< Make the object clickable by the input devices*/ - LV_OBJ_FLAG_CLICK_FOCUSABLE = (1L << 2), /**< Add focused state to the object when clicked*/ - LV_OBJ_FLAG_CHECKABLE = (1L << 3), /**< Toggle checked state when the object is clicked*/ - LV_OBJ_FLAG_SCROLLABLE = (1L << 4), /**< Make the object scrollable*/ - LV_OBJ_FLAG_SCROLL_ELASTIC = (1L << 5), /**< Allow scrolling inside but with slower speed*/ - LV_OBJ_FLAG_SCROLL_MOMENTUM = (1L << 6), /**< Make the object scroll further when "thrown"*/ - LV_OBJ_FLAG_SCROLL_ONE = (1L << 7), /**< Allow scrolling only one snappable children*/ - LV_OBJ_FLAG_SCROLL_CHAIN_HOR = (1L << 8), /**< Allow propagating the horizontal scroll to a parent*/ - LV_OBJ_FLAG_SCROLL_CHAIN_VER = (1L << 9), /**< Allow propagating the vertical scroll to a parent*/ - LV_OBJ_FLAG_SCROLL_CHAIN = (LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER), - LV_OBJ_FLAG_SCROLL_ON_FOCUS = (1L << 10), /**< Automatically scroll object to make it visible when focused*/ - LV_OBJ_FLAG_SCROLL_WITH_ARROW = (1L << 11), /**< Allow scrolling the focused object with arrow keys*/ - LV_OBJ_FLAG_SNAPPABLE = (1L << 12), /**< If scroll snap is enabled on the parent it can snap to this object*/ - LV_OBJ_FLAG_PRESS_LOCK = (1L << 13), /**< Keep the object pressed even if the press slid from the object*/ - LV_OBJ_FLAG_EVENT_BUBBLE = (1L << 14), /**< Propagate the events to the parent too*/ - LV_OBJ_FLAG_GESTURE_BUBBLE = (1L << 15), /**< Propagate the gestures to the parent*/ - LV_OBJ_FLAG_ADV_HITTEST = (1L << 16), /**< Allow performing more accurate hit (click) test. E.g. consider rounded corners.*/ - LV_OBJ_FLAG_IGNORE_LAYOUT = (1L << 17), /**< Make the object position-able by the layouts*/ - LV_OBJ_FLAG_FLOATING = (1L << 18), /**< Do not scroll the object when the parent scrolls and ignore layout*/ - LV_OBJ_FLAG_OVERFLOW_VISIBLE = (1L << 19), /**< Do not clip the children's content to the parent's boundary*/ - - LV_OBJ_FLAG_LAYOUT_1 = (1L << 23), /**< Custom flag, free to use by layouts*/ - LV_OBJ_FLAG_LAYOUT_2 = (1L << 24), /**< Custom flag, free to use by layouts*/ - - LV_OBJ_FLAG_WIDGET_1 = (1L << 25), /**< Custom flag, free to use by widget*/ - LV_OBJ_FLAG_WIDGET_2 = (1L << 26), /**< Custom flag, free to use by widget*/ - LV_OBJ_FLAG_USER_1 = (1L << 27), /**< Custom flag, free to use by user*/ - LV_OBJ_FLAG_USER_2 = (1L << 28), /**< Custom flag, free to use by user*/ - LV_OBJ_FLAG_USER_3 = (1L << 29), /**< Custom flag, free to use by user*/ - LV_OBJ_FLAG_USER_4 = (1L << 30), /**< Custom flag, free to use by user*/ - -}; - - -typedef uint32_t lv_obj_flag_t; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_obj_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_OBJ_DRAW_PART_RECTANGLE, /**< The main rectangle*/ - LV_OBJ_DRAW_PART_BORDER_POST,/**< The border if style_border_post = true*/ - LV_OBJ_DRAW_PART_SCROLLBAR, /**< The scrollbar*/ -} lv_obj_draw_part_type_t; - -#include "lv_obj_tree.h" -#include "lv_obj_pos.h" -#include "lv_obj_scroll.h" -#include "lv_obj_style.h" -#include "lv_obj_draw.h" -#include "lv_obj_class.h" -#include "lv_event.h" -#include "lv_group.h" - -/** - * Make the base object's class publicly available. - */ -extern const lv_obj_class_t lv_obj_class; - -/** - * Special, rarely used attributes. - * They are allocated automatically if any elements is set. - */ -typedef struct { - struct _lv_obj_t ** children; /**< Store the pointer of the children in an array.*/ - uint32_t child_cnt; /**< Number of children*/ - lv_group_t * group_p; - - struct _lv_event_dsc_t * event_dsc; /**< Dynamically allocated event callback and user data array*/ - lv_point_t scroll; /**< The current X/Y scroll offset*/ - - lv_coord_t ext_click_pad; /**< Extra click padding in all direction*/ - lv_coord_t ext_draw_size; /**< EXTend the size in every direction for drawing.*/ - - lv_scrollbar_mode_t scrollbar_mode : 2; /**< How to display scrollbars*/ - lv_scroll_snap_t scroll_snap_x : 2; /**< Where to align the snappable children horizontally*/ - lv_scroll_snap_t scroll_snap_y : 2; /**< Where to align the snappable children vertically*/ - lv_dir_t scroll_dir : 4; /**< The allowed scroll direction(s)*/ - uint8_t event_dsc_cnt; /**< Number of event callbacks stored in `event_dsc` array*/ -} _lv_obj_spec_attr_t; - -typedef struct _lv_obj_t { - const lv_obj_class_t * class_p; - struct _lv_obj_t * parent; - _lv_obj_spec_attr_t * spec_attr; - _lv_obj_style_t * styles; -#if LV_USE_USER_DATA - void * user_data; -#endif - lv_area_t coords; - lv_obj_flag_t flags; - lv_state_t state; - uint16_t layout_inv : 1; - uint16_t scr_layout_inv : 1; - uint16_t skip_trans : 1; - uint16_t style_cnt : 6; - uint16_t h_layout : 1; - uint16_t w_layout : 1; -} lv_obj_t; - - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize LVGL library. - * Should be called before any other LVGL related function. - */ -void lv_init(void); - -#if LV_ENABLE_GC || !LV_MEM_CUSTOM - -/** - * Deinit the 'lv' library - * Currently only implemented when not using custom allocators, or GC is enabled. - */ -void lv_deinit(void); - -#endif - -/** - * Returns whether the 'lv' library is currently initialized - */ -bool lv_is_initialized(void); - -/** - * Create a base object (a rectangle) - * @param parent pointer to a parent object. If NULL then a screen will be created. - * @return pointer to the new object - */ -lv_obj_t * lv_obj_create(lv_obj_t * parent); - - -/*===================== - * Setter functions - *====================*/ - -/** - * Set one or more flags - * @param obj pointer to an object - * @param f R-ed values from `lv_obj_flag_t` to set. - */ -void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f); - -/** - * Clear one or more flags - * @param obj pointer to an object - * @param f OR-ed values from `lv_obj_flag_t` to set. - */ -void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t f); - - -/** - * Add one or more states to the object. The other state bits will remain unchanged. - * If specified in the styles, transition animation will be started from the previous state to the current. - * @param obj pointer to an object - * @param state the states to add. E.g `LV_STATE_PRESSED | LV_STATE_FOCUSED` - */ -void lv_obj_add_state(lv_obj_t * obj, lv_state_t state); - -/** - * Remove one or more states to the object. The other state bits will remain unchanged. - * If specified in the styles, transition animation will be started from the previous state to the current. - * @param obj pointer to an object - * @param state the states to add. E.g `LV_STATE_PRESSED | LV_STATE_FOCUSED` - */ -void lv_obj_clear_state(lv_obj_t * obj, lv_state_t state); - -/** - * Set the user_data field of the object - * @param obj pointer to an object - * @param user_data pointer to the new user_data. - */ -#if LV_USE_USER_DATA -static inline void lv_obj_set_user_data(lv_obj_t * obj, void * user_data) -{ - obj->user_data = user_data; -} -#endif - -/*======================= - * Getter functions - *======================*/ - -/** - * Check if a given flag or all the given flags are set on an object. - * @param obj pointer to an object - * @param f the flag(s) to check (OR-ed values can be used) - * @return true: all flags are set; false: not all flags are set - */ -bool lv_obj_has_flag(const lv_obj_t * obj, lv_obj_flag_t f); - -/** - * Check if a given flag or any of the flags are set on an object. - * @param obj pointer to an object - * @param f the flag(s) to check (OR-ed values can be used) - * @return true: at lest one flag flag is set; false: none of the flags are set - */ -bool lv_obj_has_flag_any(const lv_obj_t * obj, lv_obj_flag_t f); - -/** - * Get the state of an object - * @param obj pointer to an object - * @return the state (OR-ed values from `lv_state_t`) - */ -lv_state_t lv_obj_get_state(const lv_obj_t * obj); - -/** - * Check if the object is in a given state or not. - * @param obj pointer to an object - * @param state a state or combination of states to check - * @return true: `obj` is in `state`; false: `obj` is not in `state` - */ -bool lv_obj_has_state(const lv_obj_t * obj, lv_state_t state); - -/** - * Get the group of the object - * @param obj pointer to an object - * @return the pointer to group of the object - */ -void * lv_obj_get_group(const lv_obj_t * obj); - -/** - * Get the user_data field of the object - * @param obj pointer to an object - * @return the pointer to the user_data of the object - */ -#if LV_USE_USER_DATA -static inline void * lv_obj_get_user_data(lv_obj_t * obj) -{ - return obj->user_data; -} -#endif - -/*======================= - * Other functions - *======================*/ - -/** - * Allocate special data for an object if not allocated yet. - * @param obj pointer to an object - */ -void lv_obj_allocate_spec_attr(lv_obj_t * obj); - -/** - * Check the type of obj. - * @param obj pointer to an object - * @param class_p a class to check (e.g. `lv_slider_class`) - * @return true: `class_p` is the `obj` class. - */ -bool lv_obj_check_type(const lv_obj_t * obj, const lv_obj_class_t * class_p); - -/** - * Check if any object has a given class (type). - * It checks the ancestor classes too. - * @param obj pointer to an object - * @param class_p a class to check (e.g. `lv_slider_class`) - * @return true: `obj` has the given class - */ -bool lv_obj_has_class(const lv_obj_t * obj, const lv_obj_class_t * class_p); - -/** - * Get the class (type) of the object - * @param obj pointer to an object - * @return the class (type) of the object - */ -const lv_obj_class_t * lv_obj_get_class(const lv_obj_t * obj); - -/** - * Check if any object is still "alive". - * @param obj pointer to an object - * @return true: valid - */ -bool lv_obj_is_valid(const lv_obj_t * obj); - -/** - * Scale the given number of pixels (a distance or size) relative to a 160 DPI display - * considering the DPI of the `obj`'s display. - * It ensures that e.g. `lv_dpx(100)` will have the same physical size regardless to the - * DPI of the display. - * @param obj an object whose display's dpi should be considered - * @param n the number of pixels to scale - * @return `n x current_dpi/160` - */ -static inline lv_coord_t lv_obj_dpx(const lv_obj_t * obj, lv_coord_t n) -{ - return _LV_DPX_CALC(lv_disp_get_dpi(lv_obj_get_disp(obj)), n); -} - -/********************** - * MACROS - **********************/ - -#if LV_USE_ASSERT_OBJ -# define LV_ASSERT_OBJ(obj_p, obj_class) \ - do { \ - LV_ASSERT_MSG(obj_p != NULL, "The object is NULL"); \ - LV_ASSERT_MSG(lv_obj_has_class(obj_p, obj_class) == true, "Incompatible object type."); \ - LV_ASSERT_MSG(lv_obj_is_valid(obj_p) == true, "The object is invalid, deleted or corrupted?"); \ - } while(0) -# else -# define LV_ASSERT_OBJ(obj_p, obj_class) do{}while(0) -#endif - -#if LV_USE_LOG && LV_LOG_TRACE_OBJ_CREATE -# define LV_TRACE_OBJ_CREATE(...) LV_LOG_TRACE(__VA_ARGS__) -#else -# define LV_TRACE_OBJ_CREATE(...) -#endif - - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj_class.h b/src/lib/lvgl/src/core/lv_obj_class.h deleted file mode 100644 index 01a7248..0000000 --- a/src/lib/lvgl/src/core/lv_obj_class.h +++ /dev/null @@ -1,94 +0,0 @@ -/** - * @file lv_obj_class.h - * - */ - -#ifndef LV_OBJ_CLASS_H -#define LV_OBJ_CLASS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include - -/********************* - * DEFINES - *********************/ - - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_obj_class_t; -struct _lv_event_t; - -typedef enum { - LV_OBJ_CLASS_EDITABLE_INHERIT, /**< Check the base class. Must have 0 value to let zero initialized class inherit*/ - LV_OBJ_CLASS_EDITABLE_TRUE, - LV_OBJ_CLASS_EDITABLE_FALSE, -} lv_obj_class_editable_t; - -typedef enum { - LV_OBJ_CLASS_GROUP_DEF_INHERIT, /**< Check the base class. Must have 0 value to let zero initialized class inherit*/ - LV_OBJ_CLASS_GROUP_DEF_TRUE, - LV_OBJ_CLASS_GROUP_DEF_FALSE, -} lv_obj_class_group_def_t; - -typedef void (*lv_obj_class_event_cb_t)(struct _lv_obj_class_t * class_p, struct _lv_event_t * e); -/** - * Describe the common methods of every object. - * Similar to a C++ class. - */ -typedef struct _lv_obj_class_t { - const struct _lv_obj_class_t * base_class; - void (*constructor_cb)(const struct _lv_obj_class_t * class_p, struct _lv_obj_t * obj); - void (*destructor_cb)(const struct _lv_obj_class_t * class_p, struct _lv_obj_t * obj); -#if LV_USE_USER_DATA - void * user_data; -#endif - void (*event_cb)(const struct _lv_obj_class_t * class_p, - struct _lv_event_t * e); /**< Widget type specific event function*/ - lv_coord_t width_def; - lv_coord_t height_def; - uint32_t editable : 2; /**< Value from ::lv_obj_class_editable_t*/ - uint32_t group_def : 2; /**< Value from ::lv_obj_class_group_def_t*/ - uint32_t instance_size : 16; -} lv_obj_class_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create an object form a class descriptor - * @param class_p pointer to a class - * @param parent pointer to an object where the new object should be created - * @return pointer to the created object - */ -struct _lv_obj_t * lv_obj_class_create_obj(const struct _lv_obj_class_t * class_p, struct _lv_obj_t * parent); - -void lv_obj_class_init_obj(struct _lv_obj_t * obj); - -void _lv_obj_destruct(struct _lv_obj_t * obj); - -bool lv_obj_is_editable(struct _lv_obj_t * obj); - -bool lv_obj_is_group_def(struct _lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_CLASS_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj_draw.h b/src/lib/lvgl/src/core/lv_obj_draw.h deleted file mode 100644 index 311ba6b..0000000 --- a/src/lib/lvgl/src/core/lv_obj_draw.h +++ /dev/null @@ -1,163 +0,0 @@ -/** - * @file lv_obj_draw.h - * - */ - -#ifndef LV_OBJ_DRAW_H -#define LV_OBJ_DRAW_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../draw/lv_draw.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_obj_class_t; - -/** Cover check results.*/ -typedef enum { - LV_COVER_RES_COVER = 0, - LV_COVER_RES_NOT_COVER = 1, - LV_COVER_RES_MASKED = 2, -} lv_cover_res_t; - -typedef struct { - lv_draw_ctx_t * draw_ctx; /**< Draw context*/ - const struct _lv_obj_class_t * class_p; /**< The class that sent the event */ - uint32_t type; /**< The type if part being draw. Element of `lv__draw_part_type_t` */ - lv_area_t * draw_area; /**< The area of the part being drawn*/ - lv_draw_rect_dsc_t * - rect_dsc; /**< A draw descriptor that can be modified to changed what LVGL will draw. Set only for rectangle-like parts*/ - lv_draw_label_dsc_t * - label_dsc; /**< A draw descriptor that can be modified to changed what LVGL will draw. Set only for text-like parts*/ - lv_draw_line_dsc_t * - line_dsc; /**< A draw descriptor that can be modified to changed what LVGL will draw. Set only for line-like parts*/ - lv_draw_img_dsc_t * - img_dsc; /**< A draw descriptor that can be modified to changed what LVGL will draw. Set only for image-like parts*/ - lv_draw_arc_dsc_t * - arc_dsc; /**< A draw descriptor that can be modified to changed what LVGL will draw. Set only for arc-like parts*/ - const lv_point_t * - p1; /**< A point calculated during drawing. E.g. a point of chart or the center of an arc.*/ - const lv_point_t * p2; /**< A point calculated during drawing. E.g. a point of chart.*/ - char * text; /**< A text calculated during drawing. Can be modified. E.g. tick labels on a chart axis.*/ - uint32_t text_length; /**< Size of the text buffer containing null-terminated text string calculated during drawing.*/ - uint32_t part; /**< The current part for which the event is sent*/ - uint32_t id; /**< The index of the part. E.g. a button's index on button matrix or table cell index.*/ - lv_coord_t radius; /**< E.g. the radius of an arc (not the corner radius).*/ - int32_t value; /**< A value calculated during drawing. E.g. Chart's tick line value.*/ - const void * sub_part_ptr; /**< A pointer the identifies something in the part. E.g. chart series. */ -} lv_obj_draw_part_dsc_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize a rectangle draw descriptor from an object's styles in its current state - * @param obj pointer to an object - * @param part part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc - * @param draw_dsc the descriptor to initialize. - * If an `..._opa` field is set to `LV_OPA_TRANSP` the related properties won't be initialized. - * Should be initialized with `lv_draw_rect_dsc_init(draw_dsc)`. - * @note Only the relevant fields will be set. - * E.g. if `border width == 0` the other border properties won't be evaluated. - */ -void lv_obj_init_draw_rect_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_rect_dsc_t * draw_dsc); - -/** - * Initialize a label draw descriptor from an object's styles in its current state - * @param obj pointer to an object - * @param part part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc - * @param draw_dsc the descriptor to initialize. - * If the `opa` field is set to or the property is equal to `LV_OPA_TRANSP` the rest won't be initialized. - * Should be initialized with `lv_draw_label_dsc_init(draw_dsc)`. - */ -void lv_obj_init_draw_label_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_label_dsc_t * draw_dsc); - -/** - * Initialize an image draw descriptor from an object's styles in its current state - * @param obj pointer to an object - * @param part part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc - * @param draw_dsc the descriptor to initialize. - * Should be initialized with `lv_draw_image_dsc_init(draw_dsc)`. - */ -void lv_obj_init_draw_img_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_img_dsc_t * draw_dsc); - - -/** - * Initialize a line draw descriptor from an object's styles in its current state - * @param obj pointer to an object - * @param part part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc - * @param draw_dsc the descriptor to initialize. - * Should be initialized with `lv_draw_line_dsc_init(draw_dsc)`. - */ -void lv_obj_init_draw_line_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_line_dsc_t * draw_dsc); - -/** - * Initialize an arc draw descriptor from an object's styles in its current state - * @param obj pointer to an object - * @param part part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc - * @param draw_dsc the descriptor to initialize. - * Should be initialized with `lv_draw_arc_dsc_init(draw_dsc)`. - */ -void lv_obj_init_draw_arc_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_arc_dsc_t * draw_dsc); - -/** - * Get the required extra size (around the object's part) to draw shadow, outline, value etc. - * @param obj pointer to an object - * @param part part of the object - * @return the extra size required around the object - */ -lv_coord_t lv_obj_calculate_ext_draw_size(struct _lv_obj_t * obj, uint32_t part); - -/** - * Initialize a draw descriptor used in events. - * @param dsc pointer to a descriptor. Later it should be passed as parameter to an `LV_EVENT_DRAW_PART_BEGIN/END` event. - * @param draw the current draw context. (usually returned by `lv_event_get_draw_ctx(e)`) - */ -void lv_obj_draw_dsc_init(lv_obj_draw_part_dsc_t * dsc, lv_draw_ctx_t * draw_ctx); - -/** - * Check the type obj a part draw descriptor - * @param dsc the descriptor (normally the event parameter) - * @param class_p pointer to class to which `type` is related - * @param type element of `lv__draw_part_type_t` - * @return true if ::dsc is related to ::class_p and ::type - */ -bool lv_obj_draw_part_check_type(lv_obj_draw_part_dsc_t * dsc, const struct _lv_obj_class_t * class_p, uint32_t type); - -/** - * Send a 'LV_EVENT_REFR_EXT_DRAW_SIZE' Call the ancestor's event handler to the object to refresh the value of the extended draw size. - * The result will be saved in `obj`. - * @param obj pointer to an object - */ -void lv_obj_refresh_ext_draw_size(struct _lv_obj_t * obj); - -/** - * Get the extended draw area of an object. - * @param obj pointer to an object - * @return the size extended draw area around the real coordinates - */ -lv_coord_t _lv_obj_get_ext_draw_size(const struct _lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_DRAW_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj_pos.h b/src/lib/lvgl/src/core/lv_obj_pos.h deleted file mode 100644 index 6013039..0000000 --- a/src/lib/lvgl/src/core/lv_obj_pos.h +++ /dev/null @@ -1,431 +0,0 @@ -/** - * @file lv_obj_pos.h - * - */ - -#ifndef LV_OBJ_POS_H -#define LV_OBJ_POS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../misc/lv_area.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -struct _lv_obj_t; - -typedef void (*lv_layout_update_cb_t)(struct _lv_obj_t *, void * user_data); -typedef struct { - lv_layout_update_cb_t cb; - void * user_data; -} lv_layout_dsc_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Set the position of an object relative to the set alignment. - * @param obj pointer to an object - * @param x new x coordinate - * @param y new y coordinate - * @note With default alignment it's the distance from the top left corner - * @note E.g. LV_ALIGN_CENTER alignment it's the offset from the center of the parent - * @note The position is interpreted on the content area of the parent - * @note The values can be set in pixel or in percentage of parent size with `lv_pct(v)` - */ -void lv_obj_set_pos(struct _lv_obj_t * obj, lv_coord_t x, lv_coord_t y); - -/** - * Set the x coordinate of an object - * @param obj pointer to an object - * @param x new x coordinate - * @note With default alignment it's the distance from the top left corner - * @note E.g. LV_ALIGN_CENTER alignment it's the offset from the center of the parent - * @note The position is interpreted on the content area of the parent - * @note The values can be set in pixel or in percentage of parent size with `lv_pct(v)` - */ -void lv_obj_set_x(struct _lv_obj_t * obj, lv_coord_t x); - -/** - * Set the y coordinate of an object - * @param obj pointer to an object - * @param y new y coordinate - * @note With default alignment it's the distance from the top left corner - * @note E.g. LV_ALIGN_CENTER alignment it's the offset from the center of the parent - * @note The position is interpreted on the content area of the parent - * @note The values can be set in pixel or in percentage of parent size with `lv_pct(v)` - */ -void lv_obj_set_y(struct _lv_obj_t * obj, lv_coord_t y); - -/** - * Set the size of an object. - * @param obj pointer to an object - * @param w the new width - * @param h the new height - * @note possible values are: - * pixel simple set the size accordingly - * LV_SIZE_CONTENT set the size to involve all children in the given direction - * LV_SIZE_PCT(x) to set size in percentage of the parent's content area size (the size without paddings). - * x should be in [0..1000]% range - */ -void lv_obj_set_size(struct _lv_obj_t * obj, lv_coord_t w, lv_coord_t h); - -/** - * Recalculate the size of the object - * @param obj pointer to an object - * @return true: the size has been changed - */ -bool lv_obj_refr_size(struct _lv_obj_t * obj); - -/** - * Set the width of an object - * @param obj pointer to an object - * @param w the new width - * @note possible values are: - * pixel simple set the size accordingly - * LV_SIZE_CONTENT set the size to involve all children in the given direction - * lv_pct(x) to set size in percentage of the parent's content area size (the size without paddings). - * x should be in [0..1000]% range - */ -void lv_obj_set_width(struct _lv_obj_t * obj, lv_coord_t w); - -/** - * Set the height of an object - * @param obj pointer to an object - * @param h the new height - * @note possible values are: - * pixel simple set the size accordingly - * LV_SIZE_CONTENT set the size to involve all children in the given direction - * lv_pct(x) to set size in percentage of the parent's content area size (the size without paddings). - * x should be in [0..1000]% range - */ -void lv_obj_set_height(struct _lv_obj_t * obj, lv_coord_t h); - -/** - * Set the width reduced by the left and right padding and the border width. - * @param obj pointer to an object - * @param w the width without paddings in pixels - */ -void lv_obj_set_content_width(struct _lv_obj_t * obj, lv_coord_t w); - -/** - * Set the height reduced by the top and bottom padding and the border width. - * @param obj pointer to an object - * @param h the height without paddings in pixels - */ -void lv_obj_set_content_height(struct _lv_obj_t * obj, lv_coord_t h); - -/** - * Set a layout for an object - * @param obj pointer to an object - * @param layout pointer to a layout descriptor to set - */ -void lv_obj_set_layout(struct _lv_obj_t * obj, uint32_t layout); - -/** - * Test whether the and object is positioned by a layout or not - * @param obj pointer to an object to test - * @return true: positioned by a layout; false: not positioned by a layout - */ -bool lv_obj_is_layout_positioned(const struct _lv_obj_t * obj); - -/** - * Mark the object for layout update. - * @param obj pointer to an object whose children needs to be updated - */ -void lv_obj_mark_layout_as_dirty(struct _lv_obj_t * obj); - -/** - * Update the layout of an object. - * @param obj pointer to an object whose children needs to be updated - */ -void lv_obj_update_layout(const struct _lv_obj_t * obj); - -/** - * Register a new layout - * @param cb the layout update callback - * @param user_data custom data that will be passed to `cb` - * @return the ID of the new layout - */ -uint32_t lv_layout_register(lv_layout_update_cb_t cb, void * user_data); - -/** - * Change the alignment of an object. - * @param obj pointer to an object to align - * @param align type of alignment (see 'lv_align_t' enum) `LV_ALIGN_OUT_...` can't be used. - */ -void lv_obj_set_align(struct _lv_obj_t * obj, lv_align_t align); - -/** - * Change the alignment of an object and set new coordinates. - * Equivalent to: - * lv_obj_set_align(obj, align); - * lv_obj_set_pos(obj, x_ofs, y_ofs); - * @param obj pointer to an object to align - * @param align type of alignment (see 'lv_align_t' enum) `LV_ALIGN_OUT_...` can't be used. - * @param x_ofs x coordinate offset after alignment - * @param y_ofs y coordinate offset after alignment - */ -void lv_obj_align(struct _lv_obj_t * obj, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs); - -/** - * Align an object to an other object. - * @param obj pointer to an object to align - * @param base pointer to an other object (if NULL `obj`s parent is used). 'obj' will be aligned to it. - * @param align type of alignment (see 'lv_align_t' enum) - * @param x_ofs x coordinate offset after alignment - * @param y_ofs y coordinate offset after alignment - * @note if the position or size of `base` changes `obj` needs to be aligned manually again - */ -void lv_obj_align_to(struct _lv_obj_t * obj, const struct _lv_obj_t * base, lv_align_t align, lv_coord_t x_ofs, - lv_coord_t y_ofs); - -/** - * Align an object to the center on its parent. - * @param obj pointer to an object to align - * @note if the parent size changes `obj` needs to be aligned manually again - */ -static inline void lv_obj_center(struct _lv_obj_t * obj) -{ - lv_obj_align(obj, LV_ALIGN_CENTER, 0, 0); -} - - -/** - * Copy the coordinates of an object to an area - * @param obj pointer to an object - * @param coords pointer to an area to store the coordinates - */ -void lv_obj_get_coords(const struct _lv_obj_t * obj, lv_area_t * coords); - -/** - * Get the x coordinate of object. - * @param obj pointer to an object - * @return distance of `obj` from the left side of its parent plus the parent's left padding - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @note Zero return value means the object is on the left padding of the parent, and not on the left edge. - * @note Scrolling of the parent doesn't change the returned value. - * @note The returned value is always the distance from the parent even if `obj` is positioned by a layout. - */ -lv_coord_t lv_obj_get_x(const struct _lv_obj_t * obj); - -/** - * Get the x2 coordinate of object. - * @param obj pointer to an object - * @return distance of `obj` from the right side of its parent plus the parent's right padding - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @note Zero return value means the object is on the right padding of the parent, and not on the right edge. - * @note Scrolling of the parent doesn't change the returned value. - * @note The returned value is always the distance from the parent even if `obj` is positioned by a layout. - */ -lv_coord_t lv_obj_get_x2(const struct _lv_obj_t * obj); - -/** - * Get the y coordinate of object. - * @param obj pointer to an object - * @return distance of `obj` from the top side of its parent plus the parent's top padding - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @note Zero return value means the object is on the top padding of the parent, and not on the top edge. - * @note Scrolling of the parent doesn't change the returned value. - * @note The returned value is always the distance from the parent even if `obj` is positioned by a layout. - */ -lv_coord_t lv_obj_get_y(const struct _lv_obj_t * obj); - -/** - * Get the y2 coordinate of object. - * @param obj pointer to an object - * @return distance of `obj` from the bottom side of its parent plus the parent's bottom padding - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @note Zero return value means the object is on the bottom padding of the parent, and not on the bottom edge. - * @note Scrolling of the parent doesn't change the returned value. - * @note The returned value is always the distance from the parent even if `obj` is positioned by a layout. - */ -lv_coord_t lv_obj_get_y2(const struct _lv_obj_t * obj); - -/** - * Get the actually set x coordinate of object, i.e. the offset form the set alignment - * @param obj pointer to an object - * @return the set x coordinate - */ -lv_coord_t lv_obj_get_x_aligned(const struct _lv_obj_t * obj); - -/** - * Get the actually set y coordinate of object, i.e. the offset form the set alignment - * @param obj pointer to an object - * @return the set y coordinate - */ -lv_coord_t lv_obj_get_y_aligned(const struct _lv_obj_t * obj); - -/** - * Get the width of an object - * @param obj pointer to an object - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @return the width in pixels - */ -lv_coord_t lv_obj_get_width(const struct _lv_obj_t * obj); - -/** - * Get the height of an object - * @param obj pointer to an object - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @return the height in pixels - */ -lv_coord_t lv_obj_get_height(const struct _lv_obj_t * obj); - -/** - * Get the width reduced by the left and right padding and the border width. - * @param obj pointer to an object - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @return the width which still fits into its parent without causing overflow (making the parent scrollable) - */ -lv_coord_t lv_obj_get_content_width(const struct _lv_obj_t * obj); - -/** - * Get the height reduced by the top and bottom padding and the border width. - * @param obj pointer to an object - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @return the height which still fits into the parent without causing overflow (making the parent scrollable) - */ -lv_coord_t lv_obj_get_content_height(const struct _lv_obj_t * obj); - -/** - * Get the area reduced by the paddings and the border width. - * @param obj pointer to an object - * @note The position of the object is recalculated only on the next redraw. To force coordinate recalculation - * call `lv_obj_update_layout(obj)`. - * @param area the area which still fits into the parent without causing overflow (making the parent scrollable) - */ -void lv_obj_get_content_coords(const struct _lv_obj_t * obj, lv_area_t * area); - -/** - * Get the width occupied by the "parts" of the widget. E.g. the width of all columns of a table. - * @param obj pointer to an objects - * @return the width of the virtually drawn content - * @note This size independent from the real size of the widget. - * It just tells how large the internal ("virtual") content is. - */ -lv_coord_t lv_obj_get_self_width(const struct _lv_obj_t * obj); - -/** - * Get the height occupied by the "parts" of the widget. E.g. the height of all rows of a table. - * @param obj pointer to an objects - * @return the width of the virtually drawn content - * @note This size independent from the real size of the widget. - * It just tells how large the internal ("virtual") content is. - */ -lv_coord_t lv_obj_get_self_height(const struct _lv_obj_t * obj); - -/** - * Handle if the size of the internal ("virtual") content of an object has changed. - * @param obj pointer to an object - * @return false: nothing happened; true: refresh happened - */ -bool lv_obj_refresh_self_size(struct _lv_obj_t * obj); - -void lv_obj_refr_pos(struct _lv_obj_t * obj); - -void lv_obj_move_to(struct _lv_obj_t * obj, lv_coord_t x, lv_coord_t y); - - -void lv_obj_move_children_by(struct _lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_diff, bool ignore_floating); - -/** - * Mark an area of an object as invalid. - * The area will be truncated to the object's area and marked for redraw. - * @param obj pointer to an object - * @param area the area to redraw - */ -void lv_obj_invalidate_area(const struct _lv_obj_t * obj, const lv_area_t * area); - -/** - * Mark the object as invalid to redrawn its area - * @param obj pointer to an object - */ -void lv_obj_invalidate(const struct _lv_obj_t * obj); - -/** - * Tell whether an area of an object is visible (even partially) now or not - * @param obj pointer to an object - * @param area the are to check. The visible part of the area will be written back here. - * @return true visible; false not visible (hidden, out of parent, on other screen, etc) - */ -bool lv_obj_area_is_visible(const struct _lv_obj_t * obj, lv_area_t * area); - -/** - * Tell whether an object is visible (even partially) now or not - * @param obj pointer to an object - * @return true: visible; false not visible (hidden, out of parent, on other screen, etc) - */ -bool lv_obj_is_visible(const struct _lv_obj_t * obj); - -/** - * Set the size of an extended clickable area - * @param obj pointer to an object - * @param size extended clickable area in all 4 directions [px] - */ -void lv_obj_set_ext_click_area(struct _lv_obj_t * obj, lv_coord_t size); - -/** - * Get the an area where to object can be clicked. - * It's the object's normal area plus the extended click area. - * @param obj pointer to an object - * @param area store the result area here - */ -void lv_obj_get_click_area(const struct _lv_obj_t * obj, lv_area_t * area); - -/** - * Hit-test an object given a particular point in screen space. - * @param obj object to hit-test - * @param point screen-space point (absolute coordinate) - * @return true: if the object is considered under the point - */ -bool lv_obj_hit_test(struct _lv_obj_t * obj, const lv_point_t * point); - -/** - * Clamp a width between min and max width. If the min/max width is in percentage value use the ref_width - * @param width width to clamp - * @param min_width the minimal width - * @param max_width the maximal width - * @param ref_width the reference width used when min/max width is in percentage - * @return the clamped width - */ -lv_coord_t lv_clamp_width(lv_coord_t width, lv_coord_t min_width, lv_coord_t max_width, lv_coord_t ref_width); - -/** - * Clamp a height between min and max height. If the min/max height is in percentage value use the ref_height - * @param height height to clamp - * @param min_height the minimal height - * @param max_height the maximal height - * @param ref_height the reference height used when min/max height is in percentage - * @return the clamped height - */ -lv_coord_t lv_clamp_height(lv_coord_t height, lv_coord_t min_height, lv_coord_t max_height, lv_coord_t ref_height); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_POS_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj_scroll.h b/src/lib/lvgl/src/core/lv_obj_scroll.h deleted file mode 100644 index c9fdd72..0000000 --- a/src/lib/lvgl/src/core/lv_obj_scroll.h +++ /dev/null @@ -1,294 +0,0 @@ -/** - * @file lv_obj_scroll.h - * - */ - -#ifndef LV_OBJ_SCROLL_H -#define LV_OBJ_SCROLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../misc/lv_area.h" -#include "../misc/lv_anim.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/*Can't include lv_obj.h because it includes this header file*/ -struct _lv_obj_t; - -/** Scrollbar modes: shows when should the scrollbars be visible*/ -enum { - LV_SCROLLBAR_MODE_OFF, /**< Never show scrollbars*/ - LV_SCROLLBAR_MODE_ON, /**< Always show scrollbars*/ - LV_SCROLLBAR_MODE_ACTIVE, /**< Show scroll bars when object is being scrolled*/ - LV_SCROLLBAR_MODE_AUTO, /**< Show scroll bars when the content is large enough to be scrolled*/ -}; -typedef uint8_t lv_scrollbar_mode_t; - - -/** Scroll span align options. Tells where to align the snappable children when scroll stops.*/ -enum { - LV_SCROLL_SNAP_NONE, /**< Do not align, leave where it is*/ - LV_SCROLL_SNAP_START, /**< Align to the left/top*/ - LV_SCROLL_SNAP_END, /**< Align to the right/bottom*/ - LV_SCROLL_SNAP_CENTER /**< Align to the center*/ -}; -typedef uint8_t lv_scroll_snap_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/*===================== - * Setter functions - *====================*/ - -/** - * Set how the scrollbars should behave. - * @param obj pointer to an object - * @param mode LV_SCROLL_MODE_ON/OFF/AUTO/ACTIVE - */ -void lv_obj_set_scrollbar_mode(struct _lv_obj_t * obj, lv_scrollbar_mode_t mode); - -/** - * Set the object in which directions can be scrolled - * @param obj pointer to an object - * @param dir the allow scroll directions. An element or OR-ed values of `lv_dir_t` - */ -void lv_obj_set_scroll_dir(struct _lv_obj_t * obj, lv_dir_t dir); - -/** - * Set where to snap the children when scrolling ends horizontally - * @param obj pointer to an object - * @param align the snap align to set from `lv_scroll_snap_t` - */ -void lv_obj_set_scroll_snap_x(struct _lv_obj_t * obj, lv_scroll_snap_t align); - -/** - * Set where to snap the children when scrolling ends vertically - * @param obj pointer to an object - * @param align the snap align to set from `lv_scroll_snap_t` - */ -void lv_obj_set_scroll_snap_y(struct _lv_obj_t * obj, lv_scroll_snap_t align); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the current scroll mode (when to hide the scrollbars) - * @param obj pointer to an object - * @return the current scroll mode from `lv_scrollbar_mode_t` - */ -lv_scrollbar_mode_t lv_obj_get_scrollbar_mode(const struct _lv_obj_t * obj); - -/** - * Get the object in which directions can be scrolled - * @param obj pointer to an object - * @param dir the allow scroll directions. An element or OR-ed values of `lv_dir_t` - */ -lv_dir_t lv_obj_get_scroll_dir(const struct _lv_obj_t * obj); - -/** - * Get where to snap the children when scrolling ends horizontally - * @param obj pointer to an object - * @return the current snap align from `lv_scroll_snap_t` - */ -lv_scroll_snap_t lv_obj_get_scroll_snap_x(const struct _lv_obj_t * obj); - -/** - * Get where to snap the children when scrolling ends vertically - * @param obj pointer to an object - * @return the current snap align from `lv_scroll_snap_t` - */ -lv_scroll_snap_t lv_obj_get_scroll_snap_y(const struct _lv_obj_t * obj); - -/** - * Get current X scroll position. - * @param obj pointer to an object - * @return the current scroll position from the left edge. - * If the object is not scrolled return 0 - * If scrolled return > 0 - * If scrolled in (elastic scroll) return < 0 - */ -lv_coord_t lv_obj_get_scroll_x(const struct _lv_obj_t * obj); - -/** - * Get current Y scroll position. - * @param obj pointer to an object - * @return the current scroll position from the top edge. - * If the object is not scrolled return 0 - * If scrolled return > 0 - * If scrolled inside return < 0 - */ -lv_coord_t lv_obj_get_scroll_y(const struct _lv_obj_t * obj); - -/** - * Return the height of the area above the object. - * That is the number of pixels the object can be scrolled down. - * Normally positive but can be negative when scrolled inside. - * @param obj pointer to an object - * @return the scrollable area above the object in pixels - */ -lv_coord_t lv_obj_get_scroll_top(struct _lv_obj_t * obj); - -/** - * Return the height of the area below the object. - * That is the number of pixels the object can be scrolled down. - * Normally positive but can be negative when scrolled inside. - * @param obj pointer to an object - * @return the scrollable area below the object in pixels - */ -lv_coord_t lv_obj_get_scroll_bottom(struct _lv_obj_t * obj); - -/** - * Return the width of the area on the left the object. - * That is the number of pixels the object can be scrolled down. - * Normally positive but can be negative when scrolled inside. - * @param obj pointer to an object - * @return the scrollable area on the left the object in pixels - */ -lv_coord_t lv_obj_get_scroll_left(struct _lv_obj_t * obj); - -/** - * Return the width of the area on the right the object. - * That is the number of pixels the object can be scrolled down. - * Normally positive but can be negative when scrolled inside. - * @param obj pointer to an object - * @return the scrollable area on the right the object in pixels - */ -lv_coord_t lv_obj_get_scroll_right(struct _lv_obj_t * obj); - -/** - * Get the X and Y coordinates where the scrolling will end for this object if a scrolling animation is in progress. - * If no scrolling animation, give the current `x` or `y` scroll position. - * @param obj pointer to an object - * @param end pointer to store the result - */ -void lv_obj_get_scroll_end(struct _lv_obj_t * obj, lv_point_t * end); - -/*===================== - * Other functions - *====================*/ - -/** - * Scroll by a given amount of pixels - * @param obj pointer to an object to scroll - * @param dx pixels to scroll horizontally - * @param dy pixels to scroll vertically - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - * @note > 0 value means scroll right/bottom (show the more content on the right/bottom) - * @note e.g. dy = -20 means scroll down 20 px - */ -void lv_obj_scroll_by(struct _lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable_t anim_en); - -/** - * Scroll by a given amount of pixels. - * `dx` and `dy` will be limited internally to allow scrolling only on the content area. - * @param obj pointer to an object to scroll - * @param dx pixels to scroll horizontally - * @param dy pixels to scroll vertically - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - * @note e.g. dy = -20 means scroll down 20 px - */ -void lv_obj_scroll_by_bounded(struct _lv_obj_t * obj, lv_coord_t dx, lv_coord_t dy, lv_anim_enable_t anim_en); - -/** - * Scroll to a given coordinate on an object. - * `x` and `y` will be limited internally to allow scrolling only on the content area. - * @param obj pointer to an object to scroll - * @param x pixels to scroll horizontally - * @param y pixels to scroll vertically - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - */ -void lv_obj_scroll_to(struct _lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable_t anim_en); - -/** - * Scroll to a given X coordinate on an object. - * `x` will be limited internally to allow scrolling only on the content area. - * @param obj pointer to an object to scroll - * @param x pixels to scroll horizontally - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - */ -void lv_obj_scroll_to_x(struct _lv_obj_t * obj, lv_coord_t x, lv_anim_enable_t anim_en); - -/** - * Scroll to a given Y coordinate on an object - * `y` will be limited internally to allow scrolling only on the content area. - * @param obj pointer to an object to scroll - * @param y pixels to scroll vertically - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - */ -void lv_obj_scroll_to_y(struct _lv_obj_t * obj, lv_coord_t y, lv_anim_enable_t anim_en); - -/** - * Scroll to an object until it becomes visible on its parent - * @param obj pointer to an object to scroll into view - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - */ -void lv_obj_scroll_to_view(struct _lv_obj_t * obj, lv_anim_enable_t anim_en); - -/** - * Scroll to an object until it becomes visible on its parent. - * Do the same on the parent's parent, and so on. - * Therefore the object will be scrolled into view even it has nested scrollable parents - * @param obj pointer to an object to scroll into view - * @param anim_en LV_ANIM_ON: scroll with animation; LV_ANIM_OFF: scroll immediately - */ -void lv_obj_scroll_to_view_recursive(struct _lv_obj_t * obj, lv_anim_enable_t anim_en); - -/** - * Tell whether an object is being scrolled or not at this moment - * @param obj pointer to an object - * @return true: `obj` is being scrolled - */ -bool lv_obj_is_scrolling(const struct _lv_obj_t * obj); - -/** - * Check the children of `obj` and scroll `obj` to fulfill the scroll_snap settings - * @param obj an object whose children needs to checked and snapped - * @param anim_en LV_ANIM_ON/OFF - */ -void lv_obj_update_snap(struct _lv_obj_t * obj, lv_anim_enable_t anim_en); - -/** - * Get the area of the scrollbars - * @param obj pointer to an object - * @param hor pointer to store the area of the horizontal scrollbar - * @param ver pointer to store the area of the vertical scrollbar - */ -void lv_obj_get_scrollbar_area(struct _lv_obj_t * obj, lv_area_t * hor, lv_area_t * ver); - -/** - * Invalidate the area of the scrollbars - * @param obj pointer to an object - */ -void lv_obj_scrollbar_invalidate(struct _lv_obj_t * obj); - -/** - * Checked if the content is scrolled "in" and adjusts it to a normal position. - * @param obj pointer to an object - * @param anim_en LV_ANIM_ON/OFF - */ -void lv_obj_readjust_scroll(struct _lv_obj_t * obj, lv_anim_enable_t anim_en); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_SCROLL_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj_style.h b/src/lib/lvgl/src/core/lv_obj_style.h deleted file mode 100644 index 329ca91..0000000 --- a/src/lib/lvgl/src/core/lv_obj_style.h +++ /dev/null @@ -1,245 +0,0 @@ -/** - * @file lv_obj_style.h - * - */ - -#ifndef LV_OBJ_STYLE_H -#define LV_OBJ_STYLE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include -#include "../misc/lv_bidi.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -/*Can't include lv_obj.h because it includes this header file*/ -struct _lv_obj_t; - -typedef enum { - _LV_STYLE_STATE_CMP_SAME, /*The style properties in the 2 states are identical*/ - _LV_STYLE_STATE_CMP_DIFF_REDRAW, /*The differences can be shown with a simple redraw*/ - _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD, /*The differences can be shown with a simple redraw*/ - _LV_STYLE_STATE_CMP_DIFF_LAYOUT, /*The differences can be shown with a simple redraw*/ -} _lv_style_state_cmp_t; - -typedef uint32_t lv_style_selector_t; - -typedef struct { - lv_style_t * style; - uint32_t selector : 24; - uint32_t is_local : 1; - uint32_t is_trans : 1; -} _lv_obj_style_t; - -typedef struct { - uint16_t time; - uint16_t delay; - lv_style_selector_t selector; - lv_style_prop_t prop; - lv_anim_path_cb_t path_cb; -#if LV_USE_USER_DATA - void * user_data; -#endif -} _lv_obj_style_transition_dsc_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the object related style manager module. - * Called by LVGL in `lv_init()` - */ -void _lv_obj_style_init(void); - -/** - * Add a style to an object. - * @param obj pointer to an object - * @param style pointer to a style to add - * @param selector OR-ed value of parts and state to which the style should be added - * @example lv_obj_add_style(btn, &style_btn, 0); //Default button style - * @example lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED); //Overwrite only some colors to red when pressed - */ -void lv_obj_add_style(struct _lv_obj_t * obj, lv_style_t * style, lv_style_selector_t selector); - -/** - * Add a style to an object. - * @param obj pointer to an object - * @param style pointer to a style to remove. Can be NULL to check only the selector - * @param selector OR-ed values of states and a part to remove only styles with matching selectors. LV_STATE_ANY and LV_PART_ANY can be used - * @example lv_obj_remove_style(obj, &style, LV_PART_ANY | LV_STATE_ANY); //Remove a specific style - * @example lv_obj_remove_style(obj, NULL, LV_PART_MAIN | LV_STATE_ANY); //Remove all styles from the main part - * @example lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); //Remove all styles - */ -void lv_obj_remove_style(struct _lv_obj_t * obj, lv_style_t * style, lv_style_selector_t selector); - -/** - * Remove all styles from an object - * @param obj pointer to an object - */ -static inline void lv_obj_remove_style_all(struct _lv_obj_t * obj) -{ - lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); -} - -/** - * Notify all object if a style is modified - * @param style pointer to a style. Only the objects with this style will be notified - * (NULL to notify all objects) - */ -void lv_obj_report_style_change(lv_style_t * style); - -/** - * Notify an object and its children about its style is modified. - * @param obj pointer to an object - * @param part the part whose style was changed. E.g. `LV_PART_ANY`, `LV_PART_MAIN` - * @param prop `LV_STYLE_PROP_ANY` or an `LV_STYLE_...` property. - * It is used to optimize what needs to be refreshed. - * `LV_STYLE_PROP_INV` to perform only a style cache update - */ -void lv_obj_refresh_style(struct _lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop); - -/** - * Enable or disable automatic style refreshing when a new style is added/removed to/from an object - * or any other style change happens. - * @param en true: enable refreshing; false: disable refreshing - */ -void lv_obj_enable_style_refresh(bool en); - -/** - * Get the value of a style property. The current state of the object will be considered. - * Inherited properties will be inherited. - * If a property is not set a default value will be returned. - * @param obj pointer to an object - * @param part a part from which the property should be get - * @param prop the property to get - * @return the value of the property. - * Should be read from the correct field of the `lv_style_value_t` according to the type of the property. - */ -lv_style_value_t lv_obj_get_style_prop(const struct _lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop); - -/** - * Set local style property on an object's part and state. - * @param obj pointer to an object - * @param prop the property - * @param value value of the property. The correct element should be set according to the type of the property - * @param selector OR-ed value of parts and state for which the style should be set - */ -void lv_obj_set_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t value, - lv_style_selector_t selector); - -lv_res_t lv_obj_get_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t * value, - lv_style_selector_t selector); - -/** - * Remove a local style property from a part of an object with a given state. - * @param obj pointer to an object - * @param prop a style property to remove. - * @param selector OR-ed value of parts and state for which the style should be removed - * @return true the property was found and removed; false: the property was not found - */ -bool lv_obj_remove_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_selector_t selector); - -/** - * Used internally for color filtering - */ -lv_style_value_t _lv_obj_style_apply_color_filter(const struct _lv_obj_t * obj, uint32_t part, lv_style_value_t v); - -/** - * Used internally to create a style transition - * @param obj - * @param part - * @param prev_state - * @param new_state - * @param tr - */ -void _lv_obj_style_create_transition(struct _lv_obj_t * obj, lv_part_t part, lv_state_t prev_state, - lv_state_t new_state, const _lv_obj_style_transition_dsc_t * tr); - -/** - * Used internally to compare the appearance of an object in 2 states - * @param obj - * @param state1 - * @param state2 - * @return - */ -_lv_style_state_cmp_t _lv_obj_style_state_compare(struct _lv_obj_t * obj, lv_state_t state1, lv_state_t state2); - -/** - * Fade in an an object and all its children. - * @param obj the object to fade in - * @param time time of fade - * @param delay delay to start the animation - */ -void lv_obj_fade_in(struct _lv_obj_t * obj, uint32_t time, uint32_t delay); - -/** - * Fade out an an object and all its children. - * @param obj the object to fade out - * @param time time of fade - * @param delay delay to start the animation - */ -void lv_obj_fade_out(struct _lv_obj_t * obj, uint32_t time, uint32_t delay); - -lv_state_t lv_obj_style_get_selector_state(lv_style_selector_t selector); - -lv_part_t lv_obj_style_get_selector_part(lv_style_selector_t selector); - -#include "lv_obj_style_gen.h" - -static inline void lv_obj_set_style_pad_all(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) -{ - lv_obj_set_style_pad_left(obj, value, selector); - lv_obj_set_style_pad_right(obj, value, selector); - lv_obj_set_style_pad_top(obj, value, selector); - lv_obj_set_style_pad_bottom(obj, value, selector); -} - -static inline void lv_obj_set_style_pad_hor(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) -{ - lv_obj_set_style_pad_left(obj, value, selector); - lv_obj_set_style_pad_right(obj, value, selector); -} - -static inline void lv_obj_set_style_pad_ver(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) -{ - lv_obj_set_style_pad_top(obj, value, selector); - lv_obj_set_style_pad_bottom(obj, value, selector); -} - -static inline void lv_obj_set_style_pad_gap(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) -{ - lv_obj_set_style_pad_row(obj, value, selector); - lv_obj_set_style_pad_column(obj, value, selector); -} - -static inline void lv_obj_set_style_size(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) -{ - lv_obj_set_style_width(obj, value, selector); - lv_obj_set_style_height(obj, value, selector); -} - -lv_text_align_t lv_obj_calculate_style_text_align(const struct _lv_obj_t * obj, lv_part_t part, const char * txt); - - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_STYLE_H*/ diff --git a/src/lib/lvgl/src/core/lv_obj_style_gen.h b/src/lib/lvgl/src/core/lv_obj_style_gen.h deleted file mode 100644 index 4a72a5a..0000000 --- a/src/lib/lvgl/src/core/lv_obj_style_gen.h +++ /dev/null @@ -1,634 +0,0 @@ -static inline lv_coord_t lv_obj_get_style_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_min_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_max_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_height(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_min_height(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_HEIGHT); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_max_height(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_HEIGHT); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_x(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_X); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_y(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_Y); - return (lv_coord_t)v.num; -} - -static inline lv_align_t lv_obj_get_style_align(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ALIGN); - return (lv_align_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_transform_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_transform_height(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_translate_x(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_X); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_translate_y(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_Y); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_transform_zoom(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ZOOM); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_transform_angle(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_pad_bottom(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_pad_right(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_pad_row(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_ROW); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - return (lv_coord_t)v.num; -} - -static inline lv_color_t lv_obj_get_style_bg_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_bg_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_bg_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_color_t lv_obj_get_style_bg_grad_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_bg_grad_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_COLOR)); - return v.color; -} - -static inline lv_grad_dir_t lv_obj_get_style_bg_grad_dir(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_DIR); - return (lv_grad_dir_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_bg_main_stop(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_MAIN_STOP); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_bg_grad_stop(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_STOP); - return (lv_coord_t)v.num; -} - -static inline const lv_grad_dsc_t * lv_obj_get_style_bg_grad(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD); - return (const lv_grad_dsc_t *)v.ptr; -} - -static inline lv_dither_mode_t lv_obj_get_style_bg_dither_mode(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_DITHER_MODE); - return (lv_dither_mode_t)v.num; -} - -static inline const void * lv_obj_get_style_bg_img_src(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_SRC); - return (const void *)v.ptr; -} - -static inline lv_opa_t lv_obj_get_style_bg_img_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_color_t lv_obj_get_style_bg_img_recolor(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_bg_img_recolor_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_bg_img_recolor_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR_OPA); - return (lv_opa_t)v.num; -} - -static inline bool lv_obj_get_style_bg_img_tiled(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_TILED); - return (bool)v.num; -} - -static inline lv_color_t lv_obj_get_style_border_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_border_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_border_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_border_side_t lv_obj_get_style_border_side(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_SIDE); - return (lv_border_side_t)v.num; -} - -static inline bool lv_obj_get_style_border_post(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_POST); - return (bool)v.num; -} - -static inline lv_coord_t lv_obj_get_style_outline_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_color_t lv_obj_get_style_outline_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_outline_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_outline_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_outline_pad(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_PAD); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_shadow_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_shadow_ofs_x(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OFS_X); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_shadow_ofs_y(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OFS_Y); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_shadow_spread(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_SPREAD); - return (lv_coord_t)v.num; -} - -static inline lv_color_t lv_obj_get_style_shadow_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_shadow_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_shadow_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_opa_t lv_obj_get_style_img_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_color_t lv_obj_get_style_img_recolor(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_img_recolor_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_img_recolor_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_line_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_line_dash_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_DASH_WIDTH); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_line_dash_gap(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_DASH_GAP); - return (lv_coord_t)v.num; -} - -static inline bool lv_obj_get_style_line_rounded(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_ROUNDED); - return (bool)v.num; -} - -static inline lv_color_t lv_obj_get_style_line_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_line_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_line_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_arc_width(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_WIDTH); - return (lv_coord_t)v.num; -} - -static inline bool lv_obj_get_style_arc_rounded(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_ROUNDED); - return (bool)v.num; -} - -static inline lv_color_t lv_obj_get_style_arc_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_arc_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_arc_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_OPA); - return (lv_opa_t)v.num; -} - -static inline const void * lv_obj_get_style_arc_img_src(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_IMG_SRC); - return (const void *)v.ptr; -} - -static inline lv_color_t lv_obj_get_style_text_color(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR); - return v.color; -} - -static inline lv_color_t lv_obj_get_style_text_color_filtered(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR)); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_text_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_OPA); - return (lv_opa_t)v.num; -} - -static inline const lv_font_t * lv_obj_get_style_text_font(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - return (const lv_font_t *)v.ptr; -} - -static inline lv_coord_t lv_obj_get_style_text_letter_space(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_text_line_space(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - return (lv_coord_t)v.num; -} - -static inline lv_text_decor_t lv_obj_get_style_text_decor(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_DECOR); - return (lv_text_decor_t)v.num; -} - -static inline lv_text_align_t lv_obj_get_style_text_align(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); - return (lv_text_align_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_radius(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_RADIUS); - return (lv_coord_t)v.num; -} - -static inline bool lv_obj_get_style_clip_corner(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_CLIP_CORNER); - return (bool)v.num; -} - -static inline lv_opa_t lv_obj_get_style_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OPA); - return (lv_opa_t)v.num; -} - -static inline const lv_color_filter_dsc_t * lv_obj_get_style_color_filter_dsc(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_DSC); - return (const lv_color_filter_dsc_t *)v.ptr; -} - -static inline lv_opa_t lv_obj_get_style_color_filter_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_OPA); - return (lv_opa_t)v.num; -} - -static inline const lv_anim_t * lv_obj_get_style_anim(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM); - return (const lv_anim_t *)v.ptr; -} - -static inline uint32_t lv_obj_get_style_anim_time(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); - return (uint32_t)v.num; -} - -static inline uint32_t lv_obj_get_style_anim_speed(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_SPEED); - return (uint32_t)v.num; -} - -static inline const lv_style_transition_dsc_t * lv_obj_get_style_transition(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSITION); - return (const lv_style_transition_dsc_t *)v.ptr; -} - -static inline lv_blend_mode_t lv_obj_get_style_blend_mode(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BLEND_MODE); - return (lv_blend_mode_t)v.num; -} - -static inline uint16_t lv_obj_get_style_layout(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); - return (uint16_t)v.num; -} - -static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - return (lv_base_dir_t)v.num; -} - -void lv_obj_set_style_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_min_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_max_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_height(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_min_height(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_max_height(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_x(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_align(struct _lv_obj_t * obj, lv_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_transform_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_transform_height(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_translate_x(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_translate_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_transform_zoom(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_transform_angle(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_pad_top(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_pad_bottom(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_pad_left(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_pad_right(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_pad_row(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_pad_column(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_grad_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_grad_dir(struct _lv_obj_t * obj, lv_grad_dir_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_main_stop(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_grad_stop(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_grad(struct _lv_obj_t * obj, const lv_grad_dsc_t * value, lv_style_selector_t selector); -void lv_obj_set_style_bg_dither_mode(struct _lv_obj_t * obj, lv_dither_mode_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_img_src(struct _lv_obj_t * obj, const void * value, lv_style_selector_t selector); -void lv_obj_set_style_bg_img_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_img_recolor(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_img_recolor_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_bg_img_tiled(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector); -void lv_obj_set_style_border_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_border_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_border_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_border_side(struct _lv_obj_t * obj, lv_border_side_t value, lv_style_selector_t selector); -void lv_obj_set_style_border_post(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector); -void lv_obj_set_style_outline_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_outline_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_outline_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_outline_pad(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_shadow_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_shadow_ofs_x(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_shadow_ofs_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_shadow_spread(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_shadow_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_shadow_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_img_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_img_recolor(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_img_recolor_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_line_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_line_dash_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_line_dash_gap(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_line_rounded(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector); -void lv_obj_set_style_line_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_line_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_arc_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_arc_rounded(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector); -void lv_obj_set_style_arc_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_arc_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_arc_img_src(struct _lv_obj_t * obj, const void * value, lv_style_selector_t selector); -void lv_obj_set_style_text_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector); -void lv_obj_set_style_text_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_text_font(struct _lv_obj_t * obj, const lv_font_t * value, lv_style_selector_t selector); -void lv_obj_set_style_text_letter_space(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_text_line_space(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_text_decor(struct _lv_obj_t * obj, lv_text_decor_t value, lv_style_selector_t selector); -void lv_obj_set_style_text_align(struct _lv_obj_t * obj, lv_text_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_radius(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_clip_corner(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector); -void lv_obj_set_style_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_color_filter_dsc(struct _lv_obj_t * obj, const lv_color_filter_dsc_t * value, lv_style_selector_t selector); -void lv_obj_set_style_color_filter_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector); -void lv_obj_set_style_anim(struct _lv_obj_t * obj, const lv_anim_t * value, lv_style_selector_t selector); -void lv_obj_set_style_anim_time(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector); -void lv_obj_set_style_anim_speed(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector); -void lv_obj_set_style_transition(struct _lv_obj_t * obj, const lv_style_transition_dsc_t * value, lv_style_selector_t selector); -void lv_obj_set_style_blend_mode(struct _lv_obj_t * obj, lv_blend_mode_t value, lv_style_selector_t selector); -void lv_obj_set_style_layout(struct _lv_obj_t * obj, uint16_t value, lv_style_selector_t selector); -void lv_obj_set_style_base_dir(struct _lv_obj_t * obj, lv_base_dir_t value, lv_style_selector_t selector); diff --git a/src/lib/lvgl/src/core/lv_obj_tree.h b/src/lib/lvgl/src/core/lv_obj_tree.h deleted file mode 100644 index bee9e16..0000000 --- a/src/lib/lvgl/src/core/lv_obj_tree.h +++ /dev/null @@ -1,172 +0,0 @@ -/** - * @file struct _lv_obj_tree.h - * - */ - -#ifndef LV_OBJ_TREE_H -#define LV_OBJ_TREE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include - -/********************* - * DEFINES - *********************/ - - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_obj_class_t; - -typedef enum { - LV_OBJ_TREE_WALK_NEXT, - LV_OBJ_TREE_WALK_SKIP_CHILDREN, - LV_OBJ_TREE_WALK_END, -} lv_obj_tree_walk_res_t; - -typedef lv_obj_tree_walk_res_t (*lv_obj_tree_walk_cb_t)(struct _lv_obj_t *, void *); - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Delete an object and all of its children. - * Also remove the objects from their group and remove all animations (if any). - * Send `LV_EVENT_DELETED` to deleted objects. - * @param obj pointer to an object - */ -void lv_obj_del(struct _lv_obj_t * obj); - -/** - * Delete all children of an object. - * Also remove the objects from their group and remove all animations (if any). - * Send `LV_EVENT_DELETED` to deleted objects. - * @param obj pointer to an object - */ -void lv_obj_clean(struct _lv_obj_t * obj); - -/** - * Delete an object after some delay - * @param obj pointer to an object - * @param delay_ms time to wait before delete in milliseconds - */ -void lv_obj_del_delayed(struct _lv_obj_t * obj, uint32_t delay_ms); - -/** - * A function to be easily used in animation ready callback to delete an object when the animation is ready - * @param a pointer to the animation - */ -void lv_obj_del_anim_ready_cb(lv_anim_t * a); - -/** - * Helper function for asynchronously deleting objects. - * Useful for cases where you can't delete an object directly in an `LV_EVENT_DELETE` handler (i.e. parent). - * @param obj object to delete - * @see lv_async_call - */ -void lv_obj_del_async(struct _lv_obj_t * obj); - -/** - * Move the parent of an object. The relative coordinates will be kept. - * - * @param obj pointer to an object whose parent needs to be changed - * @param parent pointer to the new parent - */ -void lv_obj_set_parent(struct _lv_obj_t * obj, struct _lv_obj_t * parent); - -/** - * Swap the positions of two objects. - * When used in listboxes, it can be used to sort the listbox items. - * @param obj1 pointer to the first object - * @param obj2 pointer to the second object - */ -void lv_obj_swap(struct _lv_obj_t * obj1, struct _lv_obj_t * obj2); - -/** - * moves the object to the given index in its parent. - * When used in listboxes, it can be used to sort the listbox items. - * @param obj pointer to the object to be moved. - * @param index new index in parent. -1 to count from the back - * @note to move to the background: lv_obj_move_to_index(obj, 0) - * @note to move forward (up): lv_obj_move_to_index(obj, lv_obj_get_index(obj) - 1) - */ -void lv_obj_move_to_index(struct _lv_obj_t * obj, int32_t index); - -/** - * Get the screen of an object - * @param obj pointer to an object - * @return pointer to the object's screen - */ -struct _lv_obj_t * lv_obj_get_screen(const struct _lv_obj_t * obj); - -/** - * Get the display of the object - * @param obj pointer to an object - * @return pointer to the object's display - */ -lv_disp_t * lv_obj_get_disp(const struct _lv_obj_t * obj); - -/** - * Get the parent of an object - * @param obj pointer to an object - * @return the parent of the object. (NULL if `obj` was a screen) - */ -struct _lv_obj_t * lv_obj_get_parent(const struct _lv_obj_t * obj); - -/** - * Get the child of an object by the child's index. - * @param obj pointer to an object whose child should be get - * @param id the index of the child. - * 0: the oldest (firstly created) child - * 1: the second oldest - * child count-1: the youngest - * -1: the youngest - * -2: the second youngest - * @return pointer to the child or NULL if the index was invalid - */ -struct _lv_obj_t * lv_obj_get_child(const struct _lv_obj_t * obj, int32_t id); - -/** - * Get the number of children - * @param obj pointer to an object - * @return the number of children - */ -uint32_t lv_obj_get_child_cnt(const struct _lv_obj_t * obj); - -/** - * Get the index of a child. - * @param obj pointer to an object - * @return the child index of the object. - * E.g. 0: the oldest (firstly created child) - */ -uint32_t lv_obj_get_index(const struct _lv_obj_t * obj); - -/** - * Iterate through all children of any object. - * @param start_obj start integrating from this object - * @param cb call this callback on the objects - * @param user_data pointer to any user related data (will be passed to `cb`) - */ -void lv_obj_tree_walk(struct _lv_obj_t * start_obj, lv_obj_tree_walk_cb_t cb, void * user_data); - -/********************** - * MACROS - **********************/ - - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OBJ_TREE_H*/ diff --git a/src/lib/lvgl/src/core/lv_refr.h b/src/lib/lvgl/src/core/lv_refr.h deleted file mode 100644 index 984168a..0000000 --- a/src/lib/lvgl/src/core/lv_refr.h +++ /dev/null @@ -1,115 +0,0 @@ -/** - * @file lv_refr.h - * - */ - -#ifndef LV_REFR_H -#define LV_REFR_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_obj.h" -#include - -/********************* - * DEFINES - *********************/ - -#define LV_REFR_TASK_PRIO LV_TASK_PRIO_MID - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * STATIC PROTOTYPES - **********************/ - -/********************** - * STATIC VARIABLES - **********************/ - -/********************** - * MACROS - **********************/ - -/********************** - * GLOBAL FUNCTIONS - **********************/ - -/** - * Initialize the screen refresh subsystem - */ -void _lv_refr_init(void); - -/** - * Redraw the invalidated areas now. - * Normally the redrawing is periodically executed in `lv_timer_handler` but a long blocking process - * can prevent the call of `lv_timer_handler`. In this case if the GUI is updated in the process - * (e.g. progress bar) this function can be called when the screen should be updated. - * @param disp pointer to display to refresh. NULL to refresh all displays. - */ -void lv_refr_now(lv_disp_t * disp); - -/** - * Redrawn on object an all its children using the passed draw context - * @param draw pointer to an initialized draw context - * @param obj the start object from the redraw should start - */ -void lv_refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj); - -/** - * Invalidate an area on display to redraw it - * @param area_p pointer to area which should be invalidated (NULL: delete the invalidated areas) - * @param disp pointer to display where the area should be invalidated (NULL can be used if there is - * only one display) - */ -void _lv_inv_area(lv_disp_t * disp, const lv_area_t * area_p); - -/** - * Get the display which is being refreshed - * @return the display being refreshed - */ -lv_disp_t * _lv_refr_get_disp_refreshing(void); - -/** - * Set the display which is being refreshed. - * It shouldn't be used directly by the user. - * It can be used to trick the drawing functions about there is an active display. - * @param the display being refreshed - */ -void _lv_refr_set_disp_refreshing(lv_disp_t * disp); - -#if LV_USE_PERF_MONITOR -/** - * Reset FPS counter - */ -void lv_refr_reset_fps_counter(void); - -/** - * Get the average FPS - * @return the average FPS - */ -uint32_t lv_refr_get_fps_avg(void); -#endif - -/** - * Called periodically to handle the refreshing - * @param timer pointer to the timer itself - */ -void _lv_disp_refr_timer(lv_timer_t * timer); - -/********************** - * STATIC FUNCTIONS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_REFR_H*/ diff --git a/src/lib/lvgl/src/core/lv_theme.h b/src/lib/lvgl/src/core/lv_theme.h deleted file mode 100644 index ef46336..0000000 --- a/src/lib/lvgl/src/core/lv_theme.h +++ /dev/null @@ -1,120 +0,0 @@ -/** - *@file lv_theme.h - * - */ - -#ifndef LV_THEME_H -#define LV_THEME_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_theme_t; -struct _lv_disp_t; - -typedef void (*lv_theme_apply_cb_t)(struct _lv_theme_t *, lv_obj_t *); - -typedef struct _lv_theme_t { - lv_theme_apply_cb_t apply_cb; - struct _lv_theme_t * parent; /**< Apply the current theme's style on top of this theme.*/ - void * user_data; - struct _lv_disp_t * disp; - lv_color_t color_primary; - lv_color_t color_secondary; - const lv_font_t * font_small; - const lv_font_t * font_normal; - const lv_font_t * font_large; - uint32_t flags; /*Any custom flag used by the theme*/ -} lv_theme_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Get the theme assigned to the display of the object - * @param obj pointer to a theme object - * @return the theme of the object's display (can be NULL) - */ -lv_theme_t * lv_theme_get_from_obj(lv_obj_t * obj); - -/** - * Apply the active theme on an object - * @param obj pointer to an object - */ -void lv_theme_apply(lv_obj_t * obj); - -/** - * Set a base theme for a theme. - * The styles from the base them will be added before the styles of the current theme. - * Arbitrary long chain of themes can be created by setting base themes. - * @param new_theme pointer to theme which base should be set - * @param parent pointer to the base theme - */ -void lv_theme_set_parent(lv_theme_t * new_theme, lv_theme_t * parent); - -/** - * Set an apply callback for a theme. - * The apply callback is used to add styles to different objects - * @param theme pointer to theme which callback should be set - * @param apply_cb pointer to the callback - */ -void lv_theme_set_apply_cb(lv_theme_t * theme, lv_theme_apply_cb_t apply_cb); - -/** - * Get the small font of the theme - * @param obj pointer to an object - * @return pointer to the font - */ -const lv_font_t * lv_theme_get_font_small(lv_obj_t * obj); -/** - * Get the normal font of the theme - * @param obj pointer to an object - * @return pointer to the font - */ -const lv_font_t * lv_theme_get_font_normal(lv_obj_t * obj); - -/** - * Get the subtitle font of the theme - * @param obj pointer to an object - * @return pointer to the font - */ -const lv_font_t * lv_theme_get_font_large(lv_obj_t * obj); - -/** - * Get the primary color of the theme - * @param obj pointer to an object - * @return the color - */ -lv_color_t lv_theme_get_color_primary(lv_obj_t * obj); - -/** - * Get the secondary color of the theme - * @param obj pointer to an object - * @return the color - */ -lv_color_t lv_theme_get_color_secondary(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_THEME_H*/ diff --git a/src/lib/lvgl/src/draw/arm2d/lv_gpu_arm2d.h b/src/lib/lvgl/src/draw/arm2d/lv_gpu_arm2d.h deleted file mode 100644 index 50fa5a8..0000000 --- a/src/lib/lvgl/src/draw/arm2d/lv_gpu_arm2d.h +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @file lv_gpu_arm2d.h - * - */ - -#ifndef LV_GPU_ARM2D_H -#define LV_GPU_ARM2D_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../misc/lv_color.h" -#include "../../hal/lv_hal_disp.h" -#include "../sw/lv_draw_sw.h" - -#if LV_USE_GPU_ARM2D - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef lv_draw_sw_ctx_t lv_draw_arm2d_ctx_t; - -struct _lv_disp_drv_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_arm2d_ctx_init(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); - -void lv_draw_arm2d_ctx_deinit(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_ARM2D*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_GPU_ARM2D_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw.h b/src/lib/lvgl/src/draw/lv_draw.h deleted file mode 100644 index 9995330..0000000 --- a/src/lib/lvgl/src/draw/lv_draw.h +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @file lv_draw.h - * - */ - -#ifndef LV_DRAW_H -#define LV_DRAW_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include "../misc/lv_style.h" -#include "../misc/lv_txt.h" -#include "lv_img_decoder.h" -#include "lv_img_cache.h" - -#include "lv_draw_rect.h" -#include "lv_draw_label.h" -#include "lv_draw_img.h" -#include "lv_draw_line.h" -#include "lv_draw_triangle.h" -#include "lv_draw_arc.h" -#include "lv_draw_mask.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - void * user_data; -} lv_draw_mask_t; - - -typedef struct _lv_draw_ctx_t { - /** - * Pointer to a buffer to draw into - */ - void * buf; - - /** - * The position and size of `buf` (absolute coordinates) - */ - lv_area_t * buf_area; - - /** - * The current clip area with absolute coordinates, always the same or smaller than `buf_area` - */ - const lv_area_t * clip_area; - - - void (*draw_rect)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords); - - void (*draw_arc)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, const lv_point_t * center, - uint16_t radius, uint16_t start_angle, uint16_t end_angle); - - void (*draw_img_decoded)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, - const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t color_format); - - lv_res_t (*draw_img)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, const void * src); - - void (*draw_letter)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, - uint32_t letter); - - - void (*draw_line)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, - const lv_point_t * point2); - - - void (*draw_polygon)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, - const lv_point_t * points, uint16_t point_cnt); - - /** - * Replace the buffer with a rect without decoration like radius or borders - */ - void (*draw_bg)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, const lv_area_t * coords); - - /** - * Wait until all background operations are finished. (E.g. GPU operations) - */ - void (*wait_for_finish)(struct _lv_draw_ctx_t * draw_ctx); - - /** - * Copy an area from buffer to an other - * @param draw_ctx pointer to a draw context - * @param dest_buf copy the buffer into this buffer - * @param dest_stride the width of the dest_buf in pixels - * @param dest_area the destination area - * @param src_buf copy from this buffer - * @param src_stride the width of src_buf in pixels - * @param src_area the source area. - * - * @note dest_area and src_area must have the same width and height - * but can have different x and y position. - * @note dest_area and src_area must be clipped to the real dimensions of the buffers - */ - void (*buffer_copy)(struct _lv_draw_ctx_t * draw_ctx, void * dest_buf, lv_coord_t dest_stride, - const lv_area_t * dest_area, - void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); -#if LV_USE_USER_DATA - void * user_data; -#endif - -} lv_draw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_init(void); - -/********************** - * GLOBAL VARIABLES - **********************/ - -/********************** - * MACROS - **********************/ - -/********************** - * POST INCLUDES - *********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_arc.h b/src/lib/lvgl/src/draw/lv_draw_arc.h deleted file mode 100644 index 8783f13..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_arc.h +++ /dev/null @@ -1,83 +0,0 @@ -/** - * @file lv_draw_arc.h - * - */ - -#ifndef LV_DRAW_ARC_H -#define LV_DRAW_ARC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "../misc/lv_color.h" -#include "../misc/lv_area.h" -#include "../misc/lv_style.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef struct { - lv_color_t color; - lv_coord_t width; - uint16_t start_angle; - uint16_t end_angle; - const void * img_src; - lv_opa_t opa; - lv_blend_mode_t blend_mode : 2; - uint8_t rounded : 1; -} lv_draw_arc_dsc_t; - -struct _lv_draw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_arc_dsc_init(lv_draw_arc_dsc_t * dsc); - -/** - * Draw an arc. (Can draw pie too with great thickness.) - * @param center_x the x coordinate of the center of the arc - * @param center_y the y coordinate of the center of the arc - * @param radius the radius of the arc - * @param mask the arc will be drawn only in this mask - * @param start_angle the start angle of the arc (0 deg on the bottom, 90 deg on the right) - * @param end_angle the end angle of the arc - * @param clip_area the arc will be drawn only in this area - * @param dsc pointer to an initialized `lv_draw_line_dsc_t` variable - */ -void lv_draw_arc(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, const lv_point_t * center, - uint16_t radius, uint16_t start_angle, uint16_t end_angle); - -/** - * Get an area the should be invalidated when the arcs angle changed between start_angle and end_ange - * @param x the x coordinate of the center of the arc - * @param y the y coordinate of the center of the arc - * @param radius the radius of the arc - * @param start_angle the start angle of the arc (0 deg on the bottom, 90 deg on the right) - * @param end_angle the end angle of the arc - * @param w width of the arc - * @param rounded true: the arc is rounded - * @param area store the area to invalidate here - */ -void lv_draw_arc_get_area(lv_coord_t x, lv_coord_t y, uint16_t radius, uint16_t start_angle, uint16_t end_angle, - lv_coord_t w, bool rounded, lv_area_t * area); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_ARC_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_img.h b/src/lib/lvgl/src/draw/lv_draw_img.h deleted file mode 100644 index 504beda..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_img.h +++ /dev/null @@ -1,104 +0,0 @@ -/** - * @file lv_draw_img.h - * - */ - -#ifndef LV_DRAW_IMG_H -#define LV_DRAW_IMG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_img_decoder.h" -#include "lv_img_buf.h" -#include "../misc/lv_style.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * MACROS - **********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - - uint16_t angle; - uint16_t zoom; - lv_point_t pivot; - - lv_color_t recolor; - lv_opa_t recolor_opa; - - lv_opa_t opa; - lv_blend_mode_t blend_mode : 4; - - int32_t frame_id; - uint8_t antialias : 1; -} lv_draw_img_dsc_t; - -struct _lv_draw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_img_dsc_init(lv_draw_img_dsc_t * dsc); -/** - * Draw an image - * @param coords the coordinates of the image - * @param mask the image will be drawn only in this area - * @param src pointer to a lv_color_t array which contains the pixels of the image - * @param dsc pointer to an initialized `lv_draw_img_dsc_t` variable - */ -void lv_draw_img(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, const lv_area_t * coords, - const void * src); - - -void lv_draw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, - const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t color_format); - -/** - * Get the type of an image source - * @param src pointer to an image source: - * - pointer to an 'lv_img_t' variable (image stored internally and compiled into the code) - * - a path to a file (e.g. "S:/folder/image.bin") - * - or a symbol (e.g. LV_SYMBOL_CLOSE) - * @return type of the image source LV_IMG_SRC_VARIABLE/FILE/SYMBOL/UNKNOWN - */ -lv_img_src_t lv_img_src_get_type(const void * src); - -/** - * Get the pixel size of a color format in bits - * @param cf a color format (`LV_IMG_CF_...`) - * @return the pixel size in bits - */ -uint8_t lv_img_cf_get_px_size(lv_img_cf_t cf); - -/** - * Check if a color format is chroma keyed or not - * @param cf a color format (`LV_IMG_CF_...`) - * @return true: chroma keyed; false: not chroma keyed - */ -bool lv_img_cf_is_chroma_keyed(lv_img_cf_t cf); - -/** - * Check if a color format has alpha channel or not - * @param cf a color format (`LV_IMG_CF_...`) - * @return true: has alpha channel; false: doesn't have alpha channel - */ -bool lv_img_cf_has_alpha(lv_img_cf_t cf); - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_IMG_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_label.h b/src/lib/lvgl/src/draw/lv_draw_label.h deleted file mode 100644 index de72edd..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_label.h +++ /dev/null @@ -1,100 +0,0 @@ -/** - * @file lv_draw_label.h - * - */ - -#ifndef LV_DRAW_LABEL_H -#define LV_DRAW_LABEL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../misc/lv_bidi.h" -#include "../misc/lv_txt.h" -#include "../misc/lv_color.h" -#include "../misc/lv_style.h" - -/********************* - * DEFINES - *********************/ -#define LV_DRAW_LABEL_NO_TXT_SEL (0xFFFF) - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - const lv_font_t * font; - uint32_t sel_start; - uint32_t sel_end; - lv_color_t color; - lv_color_t sel_color; - lv_color_t sel_bg_color; - lv_coord_t line_space; - lv_coord_t letter_space; - lv_coord_t ofs_x; - lv_coord_t ofs_y; - lv_opa_t opa; - lv_base_dir_t bidi_dir; - lv_text_align_t align; - lv_text_flag_t flag; - lv_text_decor_t decor : 3; - lv_blend_mode_t blend_mode: 3; -} lv_draw_label_dsc_t; - -/** Store some info to speed up drawing of very large texts - * It takes a lot of time to get the first visible character because - * all the previous characters needs to be checked to calculate the positions. - * This structure stores an earlier (e.g. at -1000 px) coordinate and the index of that line. - * Therefore the calculations can start from here.*/ -typedef struct _lv_draw_label_hint_t { - /** Index of the line at `y` coordinate*/ - int32_t line_start; - - /** Give the `y` coordinate of the first letter at `line start` index. Relative to the label's coordinates*/ - int32_t y; - - /** The 'y1' coordinate of the label when the hint was saved. - * Used to invalidate the hint if the label has moved too much.*/ - int32_t coord_y; -} lv_draw_label_hint_t; - -struct _lv_draw_ctx_t; -/********************** - * GLOBAL PROTOTYPES - **********************/ - -LV_ATTRIBUTE_FAST_MEM void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc); - -/** - * Write a text - * @param coords coordinates of the label - * @param mask the label will be drawn only in this area - * @param dsc pointer to draw descriptor - * @param txt `\0` terminated text to write - * @param hint pointer to a `lv_draw_label_hint_t` variable. - * It is managed by the draw to speed up the drawing of very long texts (thousands of lines). - */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_label(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, - const lv_area_t * coords, const char * txt, lv_draw_label_hint_t * hint); - -void lv_draw_letter(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, - uint32_t letter); - -/*********************** - * GLOBAL VARIABLES - ***********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_LABEL_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_line.h b/src/lib/lvgl/src/draw/lv_draw_line.h deleted file mode 100644 index d82ea51..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_line.h +++ /dev/null @@ -1,67 +0,0 @@ -/** - * @file lv_draw_line.h - * - */ - -#ifndef LV_DRAW_LINE_H -#define LV_DRAW_LINE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "../misc/lv_color.h" -#include "../misc/lv_area.h" -#include "../misc/lv_style.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef struct { - lv_color_t color; - lv_coord_t width; - lv_coord_t dash_width; - lv_coord_t dash_gap; - lv_opa_t opa; - lv_blend_mode_t blend_mode : 2; - uint8_t round_start : 1; - uint8_t round_end : 1; - uint8_t raw_end : 1; /*Do not bother with perpendicular line ending if it's not visible for any reason*/ -} lv_draw_line_dsc_t; - -struct _lv_draw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc); - -/** - * Draw a line - * @param point1 first point of the line - * @param point2 second point of the line - * @param clip the line will be drawn only in this area - * @param dsc pointer to an initialized `lv_draw_line_dsc_t` variable - */ -void lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, - const lv_point_t * point2); - - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_LINE_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_mask.h b/src/lib/lvgl/src/draw/lv_draw_mask.h deleted file mode 100644 index b7e4e1c..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_mask.h +++ /dev/null @@ -1,394 +0,0 @@ -/** - * @file lv_draw_mask.h - * - */ - -#ifndef LV_DRAW_MASK_H -#define LV_DRAW_MASK_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/********************* - * INCLUDES - *********************/ -#include -#include "../misc/lv_area.h" -#include "../misc/lv_color.h" -#include "../misc/lv_math.h" - -/********************* - * DEFINES - *********************/ -#define LV_MASK_ID_INV (-1) -#if LV_DRAW_COMPLEX -# define _LV_MASK_MAX_NUM 16 -#else -# define _LV_MASK_MAX_NUM 1 -#endif - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_DRAW_MASK_RES_TRANSP, - LV_DRAW_MASK_RES_FULL_COVER, - LV_DRAW_MASK_RES_CHANGED, - LV_DRAW_MASK_RES_UNKNOWN -}; - -typedef uint8_t lv_draw_mask_res_t; - -typedef struct { - void * param; - void * custom_id; -} _lv_draw_mask_saved_t; - -typedef _lv_draw_mask_saved_t _lv_draw_mask_saved_arr_t[_LV_MASK_MAX_NUM]; - - - -#if LV_DRAW_COMPLEX == 0 -static inline uint8_t lv_draw_mask_get_cnt(void) -{ - return 0; -} - -static inline bool lv_draw_mask_is_any(const lv_area_t * a) -{ - LV_UNUSED(a); - return false; -} - -#endif - -#if LV_DRAW_COMPLEX - -enum { - LV_DRAW_MASK_TYPE_LINE, - LV_DRAW_MASK_TYPE_ANGLE, - LV_DRAW_MASK_TYPE_RADIUS, - LV_DRAW_MASK_TYPE_FADE, - LV_DRAW_MASK_TYPE_MAP, - LV_DRAW_MASK_TYPE_POLYGON, -}; - -typedef uint8_t lv_draw_mask_type_t; - -enum { - LV_DRAW_MASK_LINE_SIDE_LEFT = 0, - LV_DRAW_MASK_LINE_SIDE_RIGHT, - LV_DRAW_MASK_LINE_SIDE_TOP, - LV_DRAW_MASK_LINE_SIDE_BOTTOM, -}; - -/** - * A common callback type for every mask type. - * Used internally by the library. - */ -typedef lv_draw_mask_res_t (*lv_draw_mask_xcb_t)(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len, - void * p); - -typedef uint8_t lv_draw_mask_line_side_t; - -typedef struct { - lv_draw_mask_xcb_t cb; - lv_draw_mask_type_t type; -} _lv_draw_mask_common_dsc_t; - -typedef struct { - /*The first element must be the common descriptor*/ - _lv_draw_mask_common_dsc_t dsc; - - struct { - /*First point*/ - lv_point_t p1; - - /*Second point*/ - lv_point_t p2; - - /*Which side to keep?*/ - lv_draw_mask_line_side_t side : 2; - } cfg; - - /*A point of the line*/ - lv_point_t origo; - - /*X / (1024*Y) steepness (X is 0..1023 range). What is the change of X in 1024 Y?*/ - int32_t xy_steep; - - /*Y / (1024*X) steepness (Y is 0..1023 range). What is the change of Y in 1024 X?*/ - int32_t yx_steep; - - /*Helper which stores yx_steep for flat lines and xy_steep for steep (non flat) lines*/ - int32_t steep; - - /*Steepness in 1 px in 0..255 range. Used only by flat lines.*/ - int32_t spx; - - /*1: It's a flat line? (Near to horizontal)*/ - uint8_t flat : 1; - - /*Invert the mask. The default is: Keep the left part. - *It is used to select left/right/top/bottom*/ - uint8_t inv: 1; -} lv_draw_mask_line_param_t; - -typedef struct { - /*The first element must be the common descriptor*/ - _lv_draw_mask_common_dsc_t dsc; - - struct { - lv_point_t vertex_p; - lv_coord_t start_angle; - lv_coord_t end_angle; - } cfg; - - lv_draw_mask_line_param_t start_line; - lv_draw_mask_line_param_t end_line; - uint16_t delta_deg; -} lv_draw_mask_angle_param_t; - -typedef struct { - uint8_t * buf; - lv_opa_t * cir_opa; /*Opacity of values on the circumference of an 1/4 circle*/ - uint16_t * x_start_on_y; /*The x coordinate of the circle for each y value*/ - uint16_t * opa_start_on_y; /*The index of `cir_opa` for each y value*/ - int32_t life; /*How many times the entry way used*/ - uint32_t used_cnt; /*Like a semaphore to count the referencing masks*/ - lv_coord_t radius; /*The radius of the entry*/ -} _lv_draw_mask_radius_circle_dsc_t; - -typedef _lv_draw_mask_radius_circle_dsc_t _lv_draw_mask_radius_circle_dsc_arr_t[LV_CIRCLE_CACHE_SIZE]; - -typedef struct { - /*The first element must be the common descriptor*/ - _lv_draw_mask_common_dsc_t dsc; - - struct { - lv_area_t rect; - lv_coord_t radius; - /*Invert the mask. 0: Keep the pixels inside.*/ - uint8_t outer: 1; - } cfg; - - _lv_draw_mask_radius_circle_dsc_t * circle; -} lv_draw_mask_radius_param_t; - - -typedef struct { - /*The first element must be the common descriptor*/ - _lv_draw_mask_common_dsc_t dsc; - - struct { - lv_area_t coords; - lv_coord_t y_top; - lv_coord_t y_bottom; - lv_opa_t opa_top; - lv_opa_t opa_bottom; - } cfg; - -} lv_draw_mask_fade_param_t; - - -typedef struct _lv_draw_mask_map_param_t { - /*The first element must be the common descriptor*/ - _lv_draw_mask_common_dsc_t dsc; - - struct { - lv_area_t coords; - const lv_opa_t * map; - } cfg; -} lv_draw_mask_map_param_t; - -typedef struct { - /*The first element must be the common descriptor*/ - _lv_draw_mask_common_dsc_t dsc; - - struct { - lv_point_t * points; - uint16_t point_cnt; - } cfg; -} lv_draw_mask_polygon_param_t; - - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Add a draw mask. Everything drawn after it (until removing the mask) will be affected by the mask. - * @param param an initialized mask parameter. Only the pointer is saved. - * @param custom_id a custom pointer to identify the mask. Used in `lv_draw_mask_remove_custom`. - * @return the an integer, the ID of the mask. Can be used in `lv_draw_mask_remove_id`. - */ -int16_t lv_draw_mask_add(void * param, void * custom_id); - -//! @cond Doxygen_Suppress - -/** - * Apply the added buffers on a line. Used internally by the library's drawing routines. - * @param mask_buf store the result mask here. Has to be `len` byte long. Should be initialized with `0xFF`. - * @param abs_x absolute X coordinate where the line to calculate start - * @param abs_y absolute Y coordinate where the line to calculate start - * @param len length of the line to calculate (in pixel count) - * @return One of these values: - * - `LV_DRAW_MASK_RES_FULL_TRANSP`: the whole line is transparent. `mask_buf` is not set to zero - * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged - * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line - */ -LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len); - -/** - * Apply the specified buffers on a line. Used internally by the library's drawing routines. - * @param mask_buf store the result mask here. Has to be `len` byte long. Should be initialized with `0xFF`. - * @param abs_x absolute X coordinate where the line to calculate start - * @param abs_y absolute Y coordinate where the line to calculate start - * @param len length of the line to calculate (in pixel count) - * @param ids ID array of added buffers - * @param ids_count number of ID array - * @return One of these values: - * - `LV_DRAW_MASK_RES_FULL_TRANSP`: the whole line is transparent. `mask_buf` is not set to zero - * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged - * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line - */ -LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply_ids(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len, const int16_t * ids, int16_t ids_count); - -//! @endcond - -/** - * Remove a mask with a given ID - * @param id the ID of the mask. Returned by `lv_draw_mask_add` - * @return the parameter of the removed mask. - * If more masks have `custom_id` ID then the last mask's parameter will be returned - */ -void * lv_draw_mask_remove_id(int16_t id); - -/** - * Remove all mask with a given custom ID - * @param custom_id a pointer used in `lv_draw_mask_add` - * @return return the parameter of the removed mask. - * If more masks have `custom_id` ID then the last mask's parameter will be returned - */ -void * lv_draw_mask_remove_custom(void * custom_id); - -/** - * Free the data from the parameter. - * It's called inside `lv_draw_mask_remove_id` and `lv_draw_mask_remove_custom` - * Needs to be called only in special cases when the mask is not added by `lv_draw_mask_add` - * and not removed by `lv_draw_mask_remove_id` or `lv_draw_mask_remove_custom` - * @param p pointer to a mask parameter - */ -void lv_draw_mask_free_param(void * p); - -/** - * Called by LVGL the rendering of a screen is ready to clean up - * the temporal (cache) data of the masks - */ -void _lv_draw_mask_cleanup(void); - -//! @cond Doxygen_Suppress - -/** - * Count the currently added masks - * @return number of active masks - */ -LV_ATTRIBUTE_FAST_MEM uint8_t lv_draw_mask_get_cnt(void); - - -/** - * Check if there is any added draw mask - * @param a an area to test for affecting masks. - * @return true: there is t least 1 draw mask; false: there are no draw masks - */ -bool lv_draw_mask_is_any(const lv_area_t * a); - -//! @endcond - -/** - *Initialize a line mask from two points. - * @param param pointer to a `lv_draw_mask_param_t` to initialize - * @param p1x X coordinate of the first point of the line - * @param p1y Y coordinate of the first point of the line - * @param p2x X coordinate of the second point of the line - * @param p2y y coordinate of the second point of the line - * @param side and element of `lv_draw_mask_line_side_t` to describe which side to keep. - * With `LV_DRAW_MASK_LINE_SIDE_LEFT/RIGHT` and horizontal line all pixels are kept - * With `LV_DRAW_MASK_LINE_SIDE_TOP/BOTTOM` and vertical line all pixels are kept - */ -void lv_draw_mask_line_points_init(lv_draw_mask_line_param_t * param, lv_coord_t p1x, lv_coord_t p1y, lv_coord_t p2x, - lv_coord_t p2y, lv_draw_mask_line_side_t side); - -/** - *Initialize a line mask from a point and an angle. - * @param param pointer to a `lv_draw_mask_param_t` to initialize - * @param px X coordinate of a point of the line - * @param py X coordinate of a point of the line - * @param angle right 0 deg, bottom: 90 - * @param side and element of `lv_draw_mask_line_side_t` to describe which side to keep. - * With `LV_DRAW_MASK_LINE_SIDE_LEFT/RIGHT` and horizontal line all pixels are kept - * With `LV_DRAW_MASK_LINE_SIDE_TOP/BOTTOM` and vertical line all pixels are kept - */ -void lv_draw_mask_line_angle_init(lv_draw_mask_line_param_t * param, lv_coord_t p1x, lv_coord_t py, int16_t angle, - lv_draw_mask_line_side_t side); - -/** - * Initialize an angle mask. - * @param param pointer to a `lv_draw_mask_param_t` to initialize - * @param vertex_x X coordinate of the angle vertex (absolute coordinates) - * @param vertex_y Y coordinate of the angle vertex (absolute coordinates) - * @param start_angle start angle in degrees. 0 deg on the right, 90 deg, on the bottom - * @param end_angle end angle - */ -void lv_draw_mask_angle_init(lv_draw_mask_angle_param_t * param, lv_coord_t vertex_x, lv_coord_t vertex_y, - lv_coord_t start_angle, lv_coord_t end_angle); - -/** - * Initialize a fade mask. - * @param param pointer to an `lv_draw_mask_radius_param_t` to initialize - * @param rect coordinates of the rectangle to affect (absolute coordinates) - * @param radius radius of the rectangle - * @param inv true: keep the pixels inside the rectangle; keep the pixels outside of the rectangle - */ -void lv_draw_mask_radius_init(lv_draw_mask_radius_param_t * param, const lv_area_t * rect, lv_coord_t radius, bool inv); - -/** - * Initialize a fade mask. - * @param param pointer to a `lv_draw_mask_param_t` to initialize - * @param coords coordinates of the area to affect (absolute coordinates) - * @param opa_top opacity on the top - * @param y_top at which coordinate start to change to opacity to `opa_bottom` - * @param opa_bottom opacity at the bottom - * @param y_bottom at which coordinate reach `opa_bottom`. - */ -void lv_draw_mask_fade_init(lv_draw_mask_fade_param_t * param, const lv_area_t * coords, lv_opa_t opa_top, - lv_coord_t y_top, - lv_opa_t opa_bottom, lv_coord_t y_bottom); - -/** - * Initialize a map mask. - * @param param pointer to a `lv_draw_mask_param_t` to initialize - * @param coords coordinates of the map (absolute coordinates) - * @param map array of bytes with the mask values - */ -void lv_draw_mask_map_init(lv_draw_mask_map_param_t * param, const lv_area_t * coords, const lv_opa_t * map); - -void lv_draw_mask_polygon_init(lv_draw_mask_polygon_param_t * param, const lv_point_t * points, uint16_t point_cnt); - -#endif /*LV_DRAW_COMPLEX*/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_MASK_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_rect.h b/src/lib/lvgl/src/draw/lv_draw_rect.h deleted file mode 100644 index 1583e3e..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_rect.h +++ /dev/null @@ -1,96 +0,0 @@ -/** - * @file lv_draw_rect.h - * - */ - -#ifndef LV_DRAW_RECT_H -#define LV_DRAW_RECT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "../misc/lv_color.h" -#include "../misc/lv_area.h" -#include "../misc/lv_style.h" -#include "sw/lv_draw_sw_gradient.h" - -/********************* - * DEFINES - *********************/ -#define LV_RADIUS_CIRCLE 0x7FFF /**< A very big radius to always draw as circle*/ -LV_EXPORT_CONST_INT(LV_RADIUS_CIRCLE); - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_coord_t radius; - lv_blend_mode_t blend_mode; - - /*Background*/ - lv_opa_t bg_opa; - lv_color_t bg_color; /**< First element of a gradient is a color, so it maps well here*/ - lv_grad_dsc_t bg_grad; - - /*Background img*/ - const void * bg_img_src; - const void * bg_img_symbol_font; - lv_color_t bg_img_recolor; - lv_opa_t bg_img_opa; - lv_opa_t bg_img_recolor_opa; - uint8_t bg_img_tiled; - - /*Border*/ - lv_color_t border_color; - lv_coord_t border_width; - lv_opa_t border_opa; - uint8_t border_post : 1; /*There is a border it will be drawn later.*/ - lv_border_side_t border_side : 5; - - /*Outline*/ - lv_color_t outline_color; - lv_coord_t outline_width; - lv_coord_t outline_pad; - lv_opa_t outline_opa; - - /*Shadow*/ - lv_color_t shadow_color; - lv_coord_t shadow_width; - lv_coord_t shadow_ofs_x; - lv_coord_t shadow_ofs_y; - lv_coord_t shadow_spread; - lv_opa_t shadow_opa; -} lv_draw_rect_dsc_t; - -struct _lv_draw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -LV_ATTRIBUTE_FAST_MEM void lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc); - - -/** - * Draw a rectangle - * @param coords the coordinates of the rectangle - * @param clip the rectangle will be drawn only in this area - * @param dsc pointer to an initialized `lv_draw_rect_dsc_t` variable - */ -void lv_draw_rect(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_RECT_H*/ diff --git a/src/lib/lvgl/src/draw/lv_draw_triangle.h b/src/lib/lvgl/src/draw/lv_draw_triangle.h deleted file mode 100644 index e8d8575..0000000 --- a/src/lib/lvgl/src/draw/lv_draw_triangle.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - * @file lv_draw_triangle.h - * - */ - -#ifndef LV_DRAW_TRIANGLE_H -#define LV_DRAW_TRIANGLE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_draw_rect.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_polygon(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, const lv_point_t points[], - uint16_t point_cnt); - -void lv_draw_triangle(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, const lv_point_t points[]); -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_TRIANGLE_H*/ diff --git a/src/lib/lvgl/src/draw/lv_img_buf.h b/src/lib/lvgl/src/draw/lv_img_buf.h deleted file mode 100644 index de8819c..0000000 --- a/src/lib/lvgl/src/draw/lv_img_buf.h +++ /dev/null @@ -1,310 +0,0 @@ -/** - * @file lv_img_buf.h - * - */ - -#ifndef LV_IMG_BUF_H -#define LV_IMG_BUF_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include "../misc/lv_color.h" -#include "../misc/lv_area.h" - -/********************* - * DEFINES - *********************/ -/*If image pixels contains alpha we need to know how much byte is a pixel*/ -#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 -#define LV_IMG_PX_SIZE_ALPHA_BYTE 2 -#elif LV_COLOR_DEPTH == 16 -#define LV_IMG_PX_SIZE_ALPHA_BYTE 3 -#elif LV_COLOR_DEPTH == 32 -#define LV_IMG_PX_SIZE_ALPHA_BYTE 4 -#endif - -#define LV_IMG_BUF_SIZE_TRUE_COLOR(w, h) ((LV_COLOR_SIZE / 8) * w * h) -#define LV_IMG_BUF_SIZE_TRUE_COLOR_CHROMA_KEYED(w, h) ((LV_COLOR_SIZE / 8) * w * h) -#define LV_IMG_BUF_SIZE_TRUE_COLOR_ALPHA(w, h) (LV_IMG_PX_SIZE_ALPHA_BYTE * w * h) - -/*+ 1: to be sure no fractional row*/ -#define LV_IMG_BUF_SIZE_ALPHA_1BIT(w, h) ((((w / 8) + 1) * h)) -#define LV_IMG_BUF_SIZE_ALPHA_2BIT(w, h) ((((w / 4) + 1) * h)) -#define LV_IMG_BUF_SIZE_ALPHA_4BIT(w, h) ((((w / 2) + 1) * h)) -#define LV_IMG_BUF_SIZE_ALPHA_8BIT(w, h) ((w * h)) - -/*4 * X: for palette*/ -#define LV_IMG_BUF_SIZE_INDEXED_1BIT(w, h) (LV_IMG_BUF_SIZE_ALPHA_1BIT(w, h) + 4 * 2) -#define LV_IMG_BUF_SIZE_INDEXED_2BIT(w, h) (LV_IMG_BUF_SIZE_ALPHA_2BIT(w, h) + 4 * 4) -#define LV_IMG_BUF_SIZE_INDEXED_4BIT(w, h) (LV_IMG_BUF_SIZE_ALPHA_4BIT(w, h) + 4 * 16) -#define LV_IMG_BUF_SIZE_INDEXED_8BIT(w, h) (LV_IMG_BUF_SIZE_ALPHA_8BIT(w, h) + 4 * 256) - -#define _LV_TRANSFORM_TRIGO_SHIFT 10 -#define _LV_ZOOM_INV_UPSCALE 5 - -/********************** - * TYPEDEFS - **********************/ - -/*Image color format*/ -enum { - LV_IMG_CF_UNKNOWN = 0, - - LV_IMG_CF_RAW, /**< Contains the file as it is. Needs custom decoder function*/ - LV_IMG_CF_RAW_ALPHA, /**< Contains the file as it is. The image has alpha. Needs custom decoder - function*/ - LV_IMG_CF_RAW_CHROMA_KEYED, /**< Contains the file as it is. The image is chroma keyed. Needs - custom decoder function*/ - - LV_IMG_CF_TRUE_COLOR, /**< Color format and depth should match with LV_COLOR settings*/ - LV_IMG_CF_TRUE_COLOR_ALPHA, /**< Same as `LV_IMG_CF_TRUE_COLOR` but every pixel has an alpha byte*/ - LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, /**< Same as `LV_IMG_CF_TRUE_COLOR` but LV_COLOR_TRANSP pixels - will be transparent*/ - - LV_IMG_CF_INDEXED_1BIT, /**< Can have 2 different colors in a palette (can't be chroma keyed)*/ - LV_IMG_CF_INDEXED_2BIT, /**< Can have 4 different colors in a palette (can't be chroma keyed)*/ - LV_IMG_CF_INDEXED_4BIT, /**< Can have 16 different colors in a palette (can't be chroma keyed)*/ - LV_IMG_CF_INDEXED_8BIT, /**< Can have 256 different colors in a palette (can't be chroma keyed)*/ - - LV_IMG_CF_ALPHA_1BIT, /**< Can have one color and it can be drawn or not*/ - LV_IMG_CF_ALPHA_2BIT, /**< Can have one color but 4 different alpha value*/ - LV_IMG_CF_ALPHA_4BIT, /**< Can have one color but 16 different alpha value*/ - LV_IMG_CF_ALPHA_8BIT, /**< Can have one color but 256 different alpha value*/ - - LV_IMG_CF_RESERVED_15, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_16, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_17, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_18, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_19, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_20, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_21, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_22, /**< Reserved for further use.*/ - LV_IMG_CF_RESERVED_23, /**< Reserved for further use.*/ - - LV_IMG_CF_USER_ENCODED_0, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_1, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_2, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_3, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_4, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_5, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_6, /**< User holder encoding format.*/ - LV_IMG_CF_USER_ENCODED_7, /**< User holder encoding format.*/ -}; -typedef uint8_t lv_img_cf_t; - - -/** - * The first 8 bit is very important to distinguish the different source types. - * For more info see `lv_img_get_src_type()` in lv_img.c - * On big endian systems the order is reversed so cf and always_zero must be at - * the end of the struct. - */ -#if LV_BIG_ENDIAN_SYSTEM -typedef struct { - - uint32_t h : 11; /*Height of the image map*/ - uint32_t w : 11; /*Width of the image map*/ - uint32_t reserved : 2; /*Reserved to be used later*/ - uint32_t always_zero : 3; /*It the upper bits of the first byte. Always zero to look like a - non-printable character*/ - uint32_t cf : 5; /*Color format: See `lv_img_color_format_t`*/ - -} lv_img_header_t; -#else -typedef struct { - - uint32_t cf : 5; /*Color format: See `lv_img_color_format_t`*/ - uint32_t always_zero : 3; /*It the upper bits of the first byte. Always zero to look like a - non-printable character*/ - - uint32_t reserved : 2; /*Reserved to be used later*/ - - uint32_t w : 11; /*Width of the image map*/ - uint32_t h : 11; /*Height of the image map*/ -} lv_img_header_t; -#endif - -/** Image header it is compatible with - * the result from image converter utility*/ -typedef struct { - lv_img_header_t header; /**< A header describing the basics of the image*/ - uint32_t data_size; /**< Size of the image in bytes*/ - const uint8_t * data; /**< Pointer to the data of the image*/ -} lv_img_dsc_t; - -typedef struct { - struct { - const void * src; /*image source (array of pixels)*/ - lv_coord_t src_w; /*width of the image source*/ - lv_coord_t src_h; /*height of the image source*/ - lv_coord_t pivot_x; /*pivot x*/ - lv_coord_t pivot_y; /*pivot y*/ - int16_t angle; /*angle to rotate*/ - uint16_t zoom; /*256 no zoom, 128 half size, 512 double size*/ - lv_color_t color; /*a color used for `LV_IMG_CF_INDEXED_1/2/4/8BIT` color formats*/ - lv_img_cf_t cf; /*color format of the image to rotate*/ - bool antialias; - } cfg; - - struct { - lv_color_t color; - lv_opa_t opa; - } res; - - struct { - lv_img_dsc_t img_dsc; - int32_t pivot_x_256; - int32_t pivot_y_256; - int32_t sinma; - int32_t cosma; - - uint8_t chroma_keyed : 1; - uint8_t has_alpha : 1; - uint8_t native_color : 1; - - uint32_t zoom_inv; - - /*Runtime data*/ - lv_coord_t xs; - lv_coord_t ys; - lv_coord_t xs_int; - lv_coord_t ys_int; - uint32_t pxi; - uint8_t px_size; - } tmp; -} lv_img_transform_dsc_t; - - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Allocate an image buffer in RAM - * @param w width of image - * @param h height of image - * @param cf a color format (`LV_IMG_CF_...`) - * @return an allocated image, or NULL on failure - */ -lv_img_dsc_t * lv_img_buf_alloc(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf); - -/** - * Get the color of an image's pixel - * @param dsc an image descriptor - * @param x x coordinate of the point to get - * @param y x coordinate of the point to get - * @param color the color of the image. In case of `LV_IMG_CF_ALPHA_1/2/4/8` this color is used. - * Not used in other cases. - * @param safe true: check out of bounds - * @return color of the point - */ -lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color); - -/** - * Get the alpha value of an image's pixel - * @param dsc pointer to an image descriptor - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param safe true: check out of bounds - * @return alpha value of the point - */ -lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y); - -/** - * Set the color of a pixel of an image. The alpha channel won't be affected. - * @param dsc pointer to an image descriptor - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param c color of the point - * @param safe true: check out of bounds - */ -void lv_img_buf_set_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t c); - -/** - * Set the alpha value of a pixel of an image. The color won't be affected - * @param dsc pointer to an image descriptor - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param opa the desired opacity - * @param safe true: check out of bounds - */ -void lv_img_buf_set_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_opa_t opa); - -/** - * Set the palette color of an indexed image. Valid only for `LV_IMG_CF_INDEXED1/2/4/8` - * @param dsc pointer to an image descriptor - * @param id the palette color to set: - * - for `LV_IMG_CF_INDEXED1`: 0..1 - * - for `LV_IMG_CF_INDEXED2`: 0..3 - * - for `LV_IMG_CF_INDEXED4`: 0..15 - * - for `LV_IMG_CF_INDEXED8`: 0..255 - * @param c the color to set - */ -void lv_img_buf_set_palette(lv_img_dsc_t * dsc, uint8_t id, lv_color_t c); - -/** - * Free an allocated image buffer - * @param dsc image buffer to free - */ -void lv_img_buf_free(lv_img_dsc_t * dsc); - -/** - * Get the memory consumption of a raw bitmap, given color format and dimensions. - * @param w width - * @param h height - * @param cf color format - * @return size in bytes - */ -uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf); - -#if LV_DRAW_COMPLEX -/** - * Initialize a descriptor to rotate an image - * @param dsc pointer to an `lv_img_transform_dsc_t` variable whose `cfg` field is initialized - */ -void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc); - -/** - * Continue transformation by taking the neighbors into account - * @param dsc pointer to the transformation descriptor - */ -bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc); - -/** - * Get which color and opa would come to a pixel if it were rotated - * @param dsc a descriptor initialized by `lv_img_buf_rotate_init` - * @param x the coordinate which color and opa should be get - * @param y the coordinate which color and opa should be get - * @return true: there is valid pixel on these x/y coordinates; false: the rotated pixel was out of the image - * @note the result is written back to `dsc->res_color` and `dsc->res_opa` - */ -bool _lv_img_buf_transform(lv_img_transform_dsc_t * dsc, lv_coord_t x, lv_coord_t y); - -#endif -/** - * Get the area of a rectangle if its rotated and scaled - * @param res store the coordinates here - * @param w width of the rectangle to transform - * @param h height of the rectangle to transform - * @param angle angle of rotation - * @param zoom zoom, (256 no zoom) - * @param pivot x,y pivot coordinates of rotation - */ -void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t h, int16_t angle, uint16_t zoom, - const lv_point_t * pivot); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_IMG_BUF_H*/ diff --git a/src/lib/lvgl/src/draw/lv_img_cache.h b/src/lib/lvgl/src/draw/lv_img_cache.h deleted file mode 100644 index dc0c5d9..0000000 --- a/src/lib/lvgl/src/draw/lv_img_cache.h +++ /dev/null @@ -1,78 +0,0 @@ -/** - * @file lv_img_cache.h - * - */ - -#ifndef LV_IMG_CACHE_H -#define LV_IMG_CACHE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_img_decoder.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** - * When loading images from the network it can take a long time to download and decode the image. - * - * To avoid repeating this heavy load images can be cached. - */ -typedef struct { - lv_img_decoder_dsc_t dec_dsc; /**< Image information*/ - - /** Count the cache entries's life. Add `time_to_open` to `life` when the entry is used. - * Decrement all lifes by one every in every ::lv_img_cache_open. - * If life == 0 the entry can be reused*/ - int32_t life; -} _lv_img_cache_entry_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Open an image using the image decoder interface and cache it. - * The image will be left open meaning if the image decoder open callback allocated memory then it will remain. - * The image is closed if a new image is opened and the new image takes its place in the cache. - * @param src source of the image. Path to file or pointer to an `lv_img_dsc_t` variable - * @param color The color of the image with `LV_IMG_CF_ALPHA_...` - * @param frame_id the index of the frame. Used only with animated images, set 0 for normal images - * @return pointer to the cache entry or NULL if can open the image - */ -_lv_img_cache_entry_t * _lv_img_cache_open(const void * src, lv_color_t color, int32_t frame_id); - -/** - * Set the number of images to be cached. - * More cached images mean more opened image at same time which might mean more memory usage. - * E.g. if 20 PNG or JPG images are open in the RAM they consume memory while opened in the cache. - * @param new_entry_cnt number of image to cache - */ -void lv_img_cache_set_size(uint16_t new_slot_num); - -/** - * Invalidate an image source in the cache. - * Useful if the image source is updated therefore it needs to be cached again. - * @param src an image source path to a file or pointer to an `lv_img_dsc_t` variable. - */ -void lv_img_cache_invalidate_src(const void * src); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_IMG_CACHE_H*/ diff --git a/src/lib/lvgl/src/draw/lv_img_decoder.h b/src/lib/lvgl/src/draw/lv_img_decoder.h deleted file mode 100644 index f00f95d..0000000 --- a/src/lib/lvgl/src/draw/lv_img_decoder.h +++ /dev/null @@ -1,274 +0,0 @@ -/** - * @file lv_img_decoder.h - * - */ - -#ifndef LV_IMG_DECODER_H -#define LV_IMG_DECODER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include "lv_img_buf.h" -#include "../misc/lv_fs.h" -#include "../misc/lv_types.h" -#include "../misc/lv_area.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** - * Source of image.*/ -enum { - LV_IMG_SRC_VARIABLE, /** Binary/C variable*/ - LV_IMG_SRC_FILE, /** File in filesystem*/ - LV_IMG_SRC_SYMBOL, /** Symbol (@ref lv_symbol_def.h)*/ - LV_IMG_SRC_UNKNOWN, /** Unknown source*/ -}; - -typedef uint8_t lv_img_src_t; - -/*Decoder function definitions*/ -struct _lv_img_decoder_dsc_t; -struct _lv_img_decoder_t; - -/** - * Get info from an image and store in the `header` - * @param src the image source. Can be a pointer to a C array or a file name (Use - * `lv_img_src_get_type` to determine the type) - * @param header store the info here - * @return LV_RES_OK: info written correctly; LV_RES_INV: failed - */ -typedef lv_res_t (*lv_img_decoder_info_f_t)(struct _lv_img_decoder_t * decoder, const void * src, - lv_img_header_t * header); - -/** - * Open an image for decoding. Prepare it as it is required to read it later - * @param decoder pointer to the decoder the function associated with - * @param dsc pointer to decoder descriptor. `src`, `color` are already initialized in it. - */ -typedef lv_res_t (*lv_img_decoder_open_f_t)(struct _lv_img_decoder_t * decoder, struct _lv_img_decoder_dsc_t * dsc); - -/** - * Decode `len` pixels starting from the given `x`, `y` coordinates and store them in `buf`. - * Required only if the "open" function can't return with the whole decoded pixel array. - * @param decoder pointer to the decoder the function associated with - * @param dsc pointer to decoder descriptor - * @param x start x coordinate - * @param y start y coordinate - * @param len number of pixels to decode - * @param buf a buffer to store the decoded pixels - * @return LV_RES_OK: ok; LV_RES_INV: failed - */ -typedef lv_res_t (*lv_img_decoder_read_line_f_t)(struct _lv_img_decoder_t * decoder, struct _lv_img_decoder_dsc_t * dsc, - lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf); - -/** - * Close the pending decoding. Free resources etc. - * @param decoder pointer to the decoder the function associated with - * @param dsc pointer to decoder descriptor - */ -typedef void (*lv_img_decoder_close_f_t)(struct _lv_img_decoder_t * decoder, struct _lv_img_decoder_dsc_t * dsc); - - -typedef struct _lv_img_decoder_t { - lv_img_decoder_info_f_t info_cb; - lv_img_decoder_open_f_t open_cb; - lv_img_decoder_read_line_f_t read_line_cb; - lv_img_decoder_close_f_t close_cb; - -#if LV_USE_USER_DATA - void * user_data; -#endif -} lv_img_decoder_t; - - -/**Describe an image decoding session. Stores data about the decoding*/ -typedef struct _lv_img_decoder_dsc_t { - /**The decoder which was able to open the image source*/ - lv_img_decoder_t * decoder; - - /**The image source. A file path like "S:my_img.png" or pointer to an `lv_img_dsc_t` variable*/ - const void * src; - - /**Color to draw the image. USed when the image has alpha channel only*/ - lv_color_t color; - - /**Frame of the image, using with animated images*/ - int32_t frame_id; - - /**Type of the source: file or variable. Can be set in `open` function if required*/ - lv_img_src_t src_type; - - /**Info about the opened image: color format, size, etc. MUST be set in `open` function*/ - lv_img_header_t header; - - /** Pointer to a buffer where the image's data (pixels) are stored in a decoded, plain format. - * MUST be set in `open` function*/ - const uint8_t * img_data; - - /** How much time did it take to open the image. [ms] - * If not set `lv_img_cache` will measure and set the time to open*/ - uint32_t time_to_open; - - /**A text to display instead of the image when the image can't be opened. - * Can be set in `open` function or set NULL.*/ - const char * error_msg; - - /**Store any custom data here is required*/ - void * user_data; -} lv_img_decoder_dsc_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the image decoder module - */ -void _lv_img_decoder_init(void); - -/** - * Get information about an image. - * Try the created image decoder one by one. Once one is able to get info that info will be used. - * @param src the image source. Can be - * 1) File name: E.g. "S:folder/img1.png" (The drivers needs to registered via `lv_fs_add_drv()`) - * 2) Variable: Pointer to an `lv_img_dsc_t` variable - * 3) Symbol: E.g. `LV_SYMBOL_OK` - * @param header the image info will be stored here - * @return LV_RES_OK: success; LV_RES_INV: wasn't able to get info about the image - */ -lv_res_t lv_img_decoder_get_info(const void * src, lv_img_header_t * header); - -/** - * Open an image. - * Try the created image decoders one by one. Once one is able to open the image that decoder is saved in `dsc` - * @param dsc describes a decoding session. Simply a pointer to an `lv_img_decoder_dsc_t` variable. - * @param src the image source. Can be - * 1) File name: E.g. "S:folder/img1.png" (The drivers needs to registered via `lv_fs_add_drv()`) - * 2) Variable: Pointer to an `lv_img_dsc_t` variable - * 3) Symbol: E.g. `LV_SYMBOL_OK` - * @param color The color of the image with `LV_IMG_CF_ALPHA_...` - * @param frame_id the index of the frame. Used only with animated images, set 0 for normal images - * @return LV_RES_OK: opened the image. `dsc->img_data` and `dsc->header` are set. - * LV_RES_INV: none of the registered image decoders were able to open the image. - */ -lv_res_t lv_img_decoder_open(lv_img_decoder_dsc_t * dsc, const void * src, lv_color_t color, int32_t frame_id); - -/** - * Read a line from an opened image - * @param dsc pointer to `lv_img_decoder_dsc_t` used in `lv_img_decoder_open` - * @param x start X coordinate (from left) - * @param y start Y coordinate (from top) - * @param len number of pixels to read - * @param buf store the data here - * @return LV_RES_OK: success; LV_RES_INV: an error occurred - */ -lv_res_t lv_img_decoder_read_line(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, - uint8_t * buf); - -/** - * Close a decoding session - * @param dsc pointer to `lv_img_decoder_dsc_t` used in `lv_img_decoder_open` - */ -void lv_img_decoder_close(lv_img_decoder_dsc_t * dsc); - -/** - * Create a new image decoder - * @return pointer to the new image decoder - */ -lv_img_decoder_t * lv_img_decoder_create(void); - -/** - * Delete an image decoder - * @param decoder pointer to an image decoder - */ -void lv_img_decoder_delete(lv_img_decoder_t * decoder); - -/** - * Set a callback to get information about the image - * @param decoder pointer to an image decoder - * @param info_cb a function to collect info about an image (fill an `lv_img_header_t` struct) - */ -void lv_img_decoder_set_info_cb(lv_img_decoder_t * decoder, lv_img_decoder_info_f_t info_cb); - -/** - * Set a callback to open an image - * @param decoder pointer to an image decoder - * @param open_cb a function to open an image - */ -void lv_img_decoder_set_open_cb(lv_img_decoder_t * decoder, lv_img_decoder_open_f_t open_cb); - -/** - * Set a callback to a decoded line of an image - * @param decoder pointer to an image decoder - * @param read_line_cb a function to read a line of an image - */ -void lv_img_decoder_set_read_line_cb(lv_img_decoder_t * decoder, lv_img_decoder_read_line_f_t read_line_cb); - -/** - * Set a callback to close a decoding session. E.g. close files and free other resources. - * @param decoder pointer to an image decoder - * @param close_cb a function to close a decoding session - */ -void lv_img_decoder_set_close_cb(lv_img_decoder_t * decoder, lv_img_decoder_close_f_t close_cb); - -/** - * Get info about a built-in image - * @param decoder the decoder where this function belongs - * @param src the image source: pointer to an `lv_img_dsc_t` variable, a file path or a symbol - * @param header store the image data here - * @return LV_RES_OK: the info is successfully stored in `header`; LV_RES_INV: unknown format or other error. - */ -lv_res_t lv_img_decoder_built_in_info(lv_img_decoder_t * decoder, const void * src, lv_img_header_t * header); - -/** - * Open a built in image - * @param decoder the decoder where this function belongs - * @param dsc pointer to decoder descriptor. `src`, `style` are already initialized in it. - * @return LV_RES_OK: the info is successfully stored in `header`; LV_RES_INV: unknown format or other error. - */ -lv_res_t lv_img_decoder_built_in_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc); - -/** - * Decode `len` pixels starting from the given `x`, `y` coordinates and store them in `buf`. - * Required only if the "open" function can't return with the whole decoded pixel array. - * @param decoder pointer to the decoder the function associated with - * @param dsc pointer to decoder descriptor - * @param x start x coordinate - * @param y start y coordinate - * @param len number of pixels to decode - * @param buf a buffer to store the decoded pixels - * @return LV_RES_OK: ok; LV_RES_INV: failed - */ -lv_res_t lv_img_decoder_built_in_read_line(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc, lv_coord_t x, - lv_coord_t y, lv_coord_t len, uint8_t * buf); - -/** - * Close the pending decoding. Free resources etc. - * @param decoder pointer to the decoder the function associated with - * @param dsc pointer to decoder descriptor - */ -void lv_img_decoder_built_in_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_IMG_DECODER_H*/ diff --git a/src/lib/lvgl/src/draw/nxp_pxp/lv_gpu_nxp_pxp.h b/src/lib/lvgl/src/draw/nxp_pxp/lv_gpu_nxp_pxp.h deleted file mode 100644 index 8d81288..0000000 --- a/src/lib/lvgl/src/draw/nxp_pxp/lv_gpu_nxp_pxp.h +++ /dev/null @@ -1,193 +0,0 @@ -/** - * @file lv_gpu_nxp_pxp.h - * - */ - -/** - * MIT License - * - * Copyright (c) 2020 NXP - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next paragraph) - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef LV_SRC_LV_GPU_LV_GPU_NXP_PXP_H_ -#define LV_SRC_LV_GPU_LV_GPU_NXP_PXP_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_NXP_PXP - -#include "../misc/lv_area.h" -#include "../misc/lv_color.h" - -/********************* - * DEFINES - *********************/ - -/** PXP module instance to use*/ -#define LV_GPU_NXP_PXP_ID PXP - -/** PXP interrupt line I*/ -#define LV_GPU_NXP_PXP_IRQ_ID PXP_IRQn - -#ifndef LV_GPU_NXP_PXP_BLIT_SIZE_LIMIT -/** Minimum area (in pixels) for image copy with 100% opacity to be handled by PXP*/ -#define LV_GPU_NXP_PXP_BLIT_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_PXP_BLIT_OPA_SIZE_LIMIT -/** Minimum area (in pixels) for image copy with transparency to be handled by PXP*/ -#define LV_GPU_NXP_PXP_BLIT_OPA_SIZE_LIMIT 16 -#endif - -#ifndef LV_GPU_NXP_PXP_BUFF_SYNC_BLIT_SIZE_LIMIT -/** Minimum invalidated area (in pixels) to be synchronized by PXP during buffer sync */ -#define LV_GPU_NXP_PXP_BUFF_SYNC_BLIT_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_PXP_FILL_SIZE_LIMIT -/** Minimum area (in pixels) to be filled by PXP with 100% opacity*/ -#define LV_GPU_NXP_PXP_FILL_SIZE_LIMIT 64 -#endif - -#ifndef LV_GPU_NXP_PXP_FILL_OPA_SIZE_LIMIT -/** Minimum area (in pixels) to be filled by PXP with transparency*/ -#define LV_GPU_NXP_PXP_FILL_OPA_SIZE_LIMIT 32 -#endif - -/********************** - * TYPEDEFS - **********************/ -/** - * NXP PXP device configuration - call-backs used for - * interrupt init/wait/deinit. - */ -typedef struct { - /** Callback for PXP interrupt initialization*/ - lv_res_t (*pxp_interrupt_init)(void); - - /** Callback for PXP interrupt de-initialization*/ - void (*pxp_interrupt_deinit)(void); - - /** Callback that should start PXP and wait for operation complete*/ - void (*pxp_run)(void); -} lv_nxp_pxp_cfg_t; - -/********************** - * STATIC VARIABLES - **********************/ - -/********************** - * MACROS - **********************/ - -/********************** - * GLOBAL FUNCTIONS - **********************/ - -/** - * Reset and initialize PXP device. This function should be called as a part - * of display init sequence. - * - * @return LV_RES_OK: PXP init ok; LV_RES_INV: init error. See error log for more information. - */ -lv_res_t lv_gpu_nxp_pxp_init(lv_nxp_pxp_cfg_t * cfg); - -/** - * Disable PXP device. Should be called during display deinit sequence. - */ -void lv_gpu_nxp_pxp_deinit(void); - -/** - * Fill area, with optional opacity. - * - * @param[in/out] dest_buf destination buffer - * @param[in] dest_width width (stride) of destination buffer in pixels - * @param[in] fill_area area to fill - * @param[in] color color - * @param[in] opa transparency of the color - */ -void lv_gpu_nxp_pxp_fill(lv_color_t * dest_buf, lv_coord_t dest_width, const lv_area_t * fill_area, lv_color_t color, - lv_opa_t opa); - -/** - * @brief BLock Image Transfer - copy rectangular image from src buffer to dst buffer with effects. - * - * By default, image is copied directly, with optional opacity configured by \p opa. - * Color keying can be enabled by calling lv_gpu_nxp_pxp_enable_color_key() before calling this function. - * Recoloring can be enabled by calling lv_gpu_nxp_pxp_enable_recolor() before calling this function. - * Note that color keying and recoloring at the same time is not supported and black rectangle is rendered. - * - * @param[in/out] dest destination buffer - * @param[in] dest_width width (stride) of destination buffer in pixels - * @param[in] src source buffer - * @param[in] src_with width (stride) of source buffer in pixels - * @param[in] copy_w width of area to be copied from src to dest - * @param[in] copy_h height of area to be copied from src to dest - * @param[in] opa opacity of the result - */ -void lv_gpu_nxp_pxp_blit(lv_color_t * dest, lv_coord_t dest_width, const lv_color_t * src, lv_coord_t src_width, - lv_coord_t copy_width, lv_coord_t copy_height, lv_opa_t opa); - -/** - * @brief Enable color keying for subsequent calls to lv_gpu_nxp_pxp_blit() - * - * Color key is defined by LV_COLOR_TRANSP symbol in lv_conf.h - */ -void lv_gpu_nxp_pxp_enable_color_key(void); - -/** - * @brief Disable color keying for subsequent calls to lv_gpu_nxp_pxp_blit() - * - */ -void lv_gpu_nxp_pxp_disable_color_key(void); - -/** - * @brief Enable recolor feature for subsequent calls to lv_gpu_nxp_pxp_blit() - * - * @param[in] color recolor value - * @param[in] opa effect opacity - */ -void lv_gpu_nxp_pxp_enable_recolor(lv_color_t color, lv_opa_t opa); - -/** - * @brief Disable recolor feature for subsequent calls to lv_gpu_nxp_pxp_blit() - */ -void lv_gpu_nxp_pxp_disable_recolor(void); - -/********************** - * STATIC FUNCTIONS - **********************/ - -#endif /*LV_USE_GPU_NXP_PXP*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SRC_LV_GPU_LV_GPU_NXP_PXP_H_*/ diff --git a/src/lib/lvgl/src/draw/nxp_pxp/lv_gpu_nxp_pxp_osa.h b/src/lib/lvgl/src/draw/nxp_pxp/lv_gpu_nxp_pxp_osa.h deleted file mode 100644 index 89524da..0000000 --- a/src/lib/lvgl/src/draw/nxp_pxp/lv_gpu_nxp_pxp_osa.h +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @file lv_gpu_nxp_pxp_osa.h - * - */ - -/** - * MIT License - * - * Copyright (c) 2020 NXP - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next paragraph) - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef LV_SRC_LV_GPU_LV_GPU_NXP_PXP_OSA_H_ -#define LV_SRC_LV_GPU_LV_GPU_NXP_PXP_OSA_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_NXP_PXP && LV_USE_GPU_NXP_PXP_AUTO_INIT -extern lv_nxp_pxp_cfg_t pxp_default_cfg; -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SRC_LV_GPU_LV_GPU_NXP_PXP_OSA_H_*/ diff --git a/src/lib/lvgl/src/draw/nxp_vglite/lv_gpu_nxp_vglite.h b/src/lib/lvgl/src/draw/nxp_vglite/lv_gpu_nxp_vglite.h deleted file mode 100644 index 26f4c3f..0000000 --- a/src/lib/lvgl/src/draw/nxp_vglite/lv_gpu_nxp_vglite.h +++ /dev/null @@ -1,145 +0,0 @@ -/** - * @file lv_gpu_nxp_vglite.h - * - */ - -/** - * MIT License - * - * Copyright (c) 2020 NXP - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next paragraph) - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef LV_SRC_LV_GPU_LV_GPU_NXP_VGLITE_H_ -#define LV_SRC_LV_GPU_LV_GPU_NXP_VGLITE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_NXP_VG_LITE - -/********************* - * DEFINES - *********************/ - -/** Use this symbol as limit to disable feature (value has to be larger than supported resolution) */ -#define LV_GPU_NXP_VG_LITE_FEATURE_DISABLED (1920*1080+1) - -/** Stride in px required by VG-Lite HW. Don't change this. */ -#define LV_GPU_NXP_VG_LITE_STRIDE_ALIGN_PX 16U - -#ifndef LV_GPU_NXP_VG_LITE_FILL_SIZE_LIMIT -/** Minimum area (in pixels) to be filled by VG-Lite with 100% opacity*/ -#define LV_GPU_NXP_VG_LITE_FILL_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_VG_LITE_FILL_OPA_SIZE_LIMIT -/** Minimum area (in pixels) to be filled by VG-Lite with transparency*/ -#define LV_GPU_NXP_VG_LITE_FILL_OPA_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_VG_LITE_BLIT_SIZE_LIMIT -/** Minimum area (in pixels) for image copy with 100% opacity to be handled by VG-Lite*/ -#define LV_GPU_NXP_VG_LITE_BLIT_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_VG_LITE_BUFF_SYNC_BLIT_SIZE_LIMIT -/** Minimum invalidated area (in pixels) to be synchronized by VG-Lite during buffer sync */ -#define LV_GPU_NXP_VG_LITE_BUFF_SYNC_BLIT_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_VG_LITE_BLIT_OPA_SIZE_LIMIT -/** Minimum area (in pixels) for image copy with transparency to be handled by VG-Lite*/ -#define LV_GPU_NXP_VG_LITE_BLIT_OPA_SIZE_LIMIT 32 -#endif - -#ifndef LV_GPU_NXP_VG_LITE_LOG_ERRORS -/** Enable logging of VG-Lite errors (\see LV_LOG_ERROR)*/ -#define LV_GPU_NXP_VG_LITE_LOG_ERRORS 1 -#endif - -/********************** - * TYPEDEFS - **********************/ - -/** - * BLock Image Transfer descriptor structure - */ -typedef struct { - - const lv_color_t * src; /**< Source buffer pointer (must be aligned on 32 bytes)*/ - lv_area_t src_area; /**< Area to be copied from source*/ - lv_coord_t src_width; /**< Source buffer width*/ - lv_coord_t src_height; /**< Source buffer height*/ - uint32_t src_stride; /**< Source buffer stride in bytes (must be aligned on 16 px)*/ - - const lv_color_t * dst; /**< Destination buffer pointer (must be aligned on 32 bytes)*/ - lv_area_t dst_area; /**< Target area in destination buffer (must be the same as src_area)*/ - lv_coord_t dst_width; /**< Destination buffer width*/ - lv_coord_t dst_height; /**< Destination buffer height*/ - uint32_t dst_stride; /**< Destination buffer stride in bytes (must be aligned on 16 px)*/ - - lv_opa_t opa; /**< Opacity - alpha mix (0 = source not copied, 255 = 100% opaque)*/ - -} lv_gpu_nxp_vglite_blit_info_t; - -/********************** - * MACROS - **********************/ - -/********************** - * GLOBAL FUNCTIONS - **********************/ - -/*** - * Fills rectangular area in buffer. - * @param[in] dest_buf Destination buffer pointer (must be aligned on 32 bytes) - * @param[in] dest_width Destination buffer width in pixels ((must be aligned on 16 px) - * @param[in] dest_height Destination buffer height in pixels - * @param[in] fill_area Area to be filled - * @param[in] color Fill color - * @param[in] opa Opacity (255 = full, 128 = 50% background/50% color, 0 = no fill) - * @retval LV_RES_OK Fill completed - * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) - */ -lv_res_t lv_gpu_nxp_vglite_fill(lv_color_t * dest_buf, lv_coord_t dest_width, lv_coord_t dest_height, - const lv_area_t * fill_area, lv_color_t color, lv_opa_t opa); - -/*** - * BLock Image Transfer. - * @param[in] blit Description of the transfer - * @retval LV_RES_OK Transfer complete - * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) - */ -lv_res_t lv_gpu_nxp_vglite_blit(lv_gpu_nxp_vglite_blit_info_t * blit); - -#endif /*LV_USE_GPU_NXP_VG_LITE*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SRC_LV_GPU_LV_GPU_NXP_VGLITE_H_*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl.h deleted file mode 100644 index 9b44a7b..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl.h +++ /dev/null @@ -1,96 +0,0 @@ -/** - * @file lv_draw_sdl.h - * - */ - -#ifndef LV_DRAW_SDL_H -#define LV_DRAW_SDL_H - - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_SDL - -#include LV_GPU_SDL_INCLUDE_PATH - -#include "../lv_draw.h" -#include "../../core/lv_disp.h" - -/********************* - * DEFINES - *********************/ - -#if SDL_BYTEORDER == SDL_BIG_ENDIAN -#define LV_DRAW_SDL_TEXTURE_FORMAT SDL_PIXELFORMAT_ARGB8888 -#else -#define LV_DRAW_SDL_TEXTURE_FORMAT SDL_PIXELFORMAT_RGBA8888 -#endif - -/********************** - * TYPEDEFS - **********************/ - -struct lv_draw_sdl_context_internals_t; - -typedef struct { - /** - * Render for display driver - */ - SDL_Renderer * renderer; - void * user_data; -} lv_draw_sdl_drv_param_t; - -typedef struct { - lv_draw_ctx_t base_draw; - SDL_Renderer * renderer; - struct lv_draw_sdl_context_internals_t * internals; -} lv_draw_sdl_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_sdl_init_ctx(lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx); - -/** - * @brief Free caches - * - */ -void lv_draw_sdl_deinit_ctx(lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx); - -SDL_Texture * lv_draw_sdl_create_screen_texture(SDL_Renderer * renderer, lv_coord_t hor, lv_coord_t ver); - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/*===================== - * Getter functions - *====================*/ - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_SDL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_composite.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_composite.h deleted file mode 100644 index 3050815..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_composite.h +++ /dev/null @@ -1,72 +0,0 @@ -/** - * @file lv_draw_sdl_composite.h - * - */ - -#ifndef LV_DRAW_SDL_COMPOSITE_H -#define LV_DRAW_SDL_COMPOSITE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../lv_conf_internal.h" - -#include LV_GPU_SDL_INCLUDE_PATH - -#include "lv_draw_sdl.h" -#include "../../misc/lv_area.h" -#include "../../misc/lv_color.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef enum lv_draw_sdl_composite_texture_id_t { - LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM0, - LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, - LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0, - LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET1, -} lv_draw_sdl_composite_texture_id_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Begin drawing with mask. Render target will be switched to a temporary texture, - * and drawing coordinates may get clipped or translated - * @param coords_in Original coordinates - * @param clip_in Original clip area - * @param extension Useful for shadows or outlines, can be NULL - * @param coords_out Translated coords - * @param clip_out Translated clip area - * @param apply_area Area of actual composited texture will be drawn - * @return true if there are any mask needs to be drawn, false otherwise - */ -bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords_in, const lv_area_t * clip_in, - const lv_area_t * extension, lv_blend_mode_t blend_mode, lv_area_t * coords_out, - lv_area_t * clip_out, lv_area_t * apply_area); - -void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_area, lv_blend_mode_t blend_mode); - -SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_composite_texture_id_t id, - lv_coord_t w, lv_coord_t h); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_COMPOSITE_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_img.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_img.h deleted file mode 100644 index 0e27027..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_img.h +++ /dev/null @@ -1,72 +0,0 @@ -/** - * @file lv_draw_sdl_img.h - * - */ - -#ifndef LV_DRAW_SDL_IMG_H -#define LV_DRAW_SDL_IMG_H - - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_SDL - -#include LV_GPU_SDL_INCLUDE_PATH - -#include "../lv_draw.h" - -#include "lv_draw_sdl_texture_cache.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct lv_draw_sdl_img_header_t { - lv_img_header_t base; - SDL_Rect rect; -} lv_draw_sdl_img_header_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/*===================== - * Getter functions - *====================*/ - -/*===================== - * Other functions - *====================*/ -bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key_head_img_t * key, size_t key_size, - const void * src, int32_t frame_id, SDL_Texture ** texture, - lv_draw_sdl_img_header_t ** header); -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_SDL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_IMG_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_mask.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_mask.h deleted file mode 100644 index a562d73..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_mask.h +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @file lv_draw_sdl_mask.h - * - */ - -#ifndef LV_DRAW_SDL_MASK_H -#define LV_DRAW_SDL_MASK_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../lv_conf_internal.h" - -#include LV_GPU_SDL_INCLUDE_PATH - -#include "lv_draw_sdl.h" -#include "../../misc/lv_area.h" -#include "../../misc/lv_color.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_opa_t * lv_draw_sdl_mask_dump_opa(const lv_area_t * coords, const int16_t * ids, int16_t ids_count); - -SDL_Texture * lv_draw_sdl_mask_dump_texture(SDL_Renderer * renderer, const lv_area_t * coords, const int16_t * ids, - int16_t ids_count); - - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_MASK_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_priv.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_priv.h deleted file mode 100644 index 1f44c22..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_priv.h +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file lv_draw_sdl_priv.h - * - */ - -#ifndef LV_DRAW_SDL_PRIV_H -#define LV_DRAW_SDL_PRIV_H - - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_SDL - -#include LV_GPU_SDL_INCLUDE_PATH - -#include "../lv_draw.h" -#include "../../misc/lv_lru.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct lv_draw_sdl_context_internals_t { - lv_lru_t * texture_cache; - SDL_Texture * mask; - SDL_Texture * composition; -} lv_draw_sdl_context_internals_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/*===================== - * Getter functions - *====================*/ - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_SDL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_PRIV_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_rect.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_rect.h deleted file mode 100644 index 1e9be34..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_rect.h +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @file lv_draw_sdl_rect.h - * - */ - -#ifndef LV_DRAW_SDL_RECT_H -#define LV_DRAW_SDL_RECT_H - - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_SDL - -#include LV_GPU_SDL_INCLUDE_PATH - -#include "../lv_draw.h" - -#include "lv_draw_sdl_texture_cache.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct lv_draw_sdl_rect_header_t { - lv_img_header_t base; - SDL_Rect rect; -} lv_draw_sdl_rect_header_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/*===================== - * Getter functions - *====================*/ - -/*===================== - * Other functions - *====================*/ - -SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius); - -void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture * frag, lv_coord_t frag_size, - const lv_area_t * coords, const lv_area_t * clip, bool full); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_SDL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_RECT_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_stack_blur.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_stack_blur.h deleted file mode 100644 index 413b1c9..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_stack_blur.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file lv_draw_sdl_stack_blur.h - * - */ -#ifndef LV_DRAW_SDL_STACK_BLUR_H -#define LV_DRAW_SDL_STACK_BLUR_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_SDL - -#include "../../misc/lv_color.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_stack_blur_grayscale(lv_opa_t * buf, uint16_t w, uint16_t h, uint16_t r); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_SDL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_STACK_BLUR_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_texture_cache.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_texture_cache.h deleted file mode 100644 index dc8b578..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_texture_cache.h +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @file lv_draw_sdl_texture_cache.h - * - */ - -#ifndef LV_DRAW_SDL_TEXTURE_CACHE_H -#define LV_DRAW_SDL_TEXTURE_CACHE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../lv_conf_internal.h" - -#if LV_USE_GPU_SDL - -#include LV_GPU_SDL_INCLUDE_PATH -#include "lv_draw_sdl.h" -#include "lv_draw_sdl_priv.h" -#include "../../draw/lv_img_decoder.h" -#include "../../misc/lv_area.h" - -/********************* - * DEFINES - *********************/ - -#define LV_DRAW_SDL_DEC_DSC_TEXTURE_HEAD "@LVSDLTex" - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - char head[8]; - SDL_Texture * texture; - SDL_Rect rect; - bool texture_managed; - bool texture_referenced; -} lv_draw_sdl_dec_dsc_userdata_t; - -typedef enum { - LV_GPU_CACHE_KEY_MAGIC_ARC = 0x01, - LV_GPU_CACHE_KEY_MAGIC_IMG = 0x11, - LV_GPU_CACHE_KEY_MAGIC_IMG_ROUNDED_CORNERS = 0x12, - LV_GPU_CACHE_KEY_MAGIC_LINE = 0x21, - LV_GPU_CACHE_KEY_MAGIC_RECT_BG = 0x31, - LV_GPU_CACHE_KEY_MAGIC_RECT_SHADOW = 0x32, - LV_GPU_CACHE_KEY_MAGIC_RECT_BORDER = 0x33, - LV_GPU_CACHE_KEY_MAGIC_FONT_GLYPH = 0x41, - LV_GPU_CACHE_KEY_MAGIC_MASK = 0x51, -} lv_sdl_cache_key_magic_t; - -typedef enum { - LV_DRAW_SDL_CACHE_FLAG_NONE = 0, - LV_DRAW_SDL_CACHE_FLAG_MANAGED = 1, -} lv_draw_sdl_cache_flag_t; - -typedef struct { - lv_sdl_cache_key_magic_t magic; - lv_img_src_t type; - int32_t frame_id; -} lv_draw_sdl_cache_key_head_img_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_sdl_texture_cache_init(lv_draw_sdl_ctx_t * ctx); - -void lv_draw_sdl_texture_cache_deinit(lv_draw_sdl_ctx_t * ctx); - -/** - * Find cached texture by key. The texture can be destroyed during usage. - */ -SDL_Texture * lv_draw_sdl_texture_cache_get(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, bool * found); - -SDL_Texture * lv_draw_sdl_texture_cache_get_with_userdata(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, - bool * found, void ** userdata); - -void lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture); - -void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, - SDL_Texture * texture, void * userdata, void userdata_free(void *), - lv_draw_sdl_cache_flag_t flags); - -lv_draw_sdl_cache_key_head_img_t * lv_draw_sdl_texture_img_key_create(const void * src, int32_t frame_id, - size_t * size); - -/********************** - * MACROS - **********************/ -#endif /*LV_USE_GPU_SDL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_TEXTURE_CACHE_H*/ diff --git a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_utils.h b/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_utils.h deleted file mode 100644 index 9afae68..0000000 --- a/src/lib/lvgl/src/draw/sdl/lv_draw_sdl_utils.h +++ /dev/null @@ -1,65 +0,0 @@ -/** - * @file lv_draw_sdl_utils.h - * - */ -#ifndef LV_DRAW_SDL_UTILS_H -#define LV_DRAW_SDL_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../lv_conf_internal.h" -#if LV_USE_GPU_SDL - -#include "lv_draw_sdl.h" -#include "../../misc/lv_color.h" -#include "../../misc/lv_area.h" - -#include LV_GPU_SDL_INCLUDE_PATH - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void _lv_draw_sdl_utils_init(); - -void _lv_draw_sdl_utils_deinit(); - -void lv_area_to_sdl_rect(const lv_area_t * in, SDL_Rect * out); - -void lv_color_to_sdl_color(const lv_color_t * in, SDL_Color * out); - -void lv_area_zoom_to_sdl_rect(const lv_area_t * in, SDL_Rect * out, uint16_t zoom, const lv_point_t * pivot); - -SDL_Palette * lv_sdl_alloc_palette_for_bpp(const uint8_t * mapping, uint8_t bpp); - -SDL_Surface * lv_sdl_create_opa_surface(lv_opa_t * opa, lv_coord_t width, lv_coord_t height, lv_coord_t stride); - -SDL_Texture * lv_sdl_create_opa_texture(SDL_Renderer * renderer, lv_opa_t * pixels, lv_coord_t width, - lv_coord_t height, lv_coord_t stride); - -void lv_sdl_to_8bpp(uint8_t * dest, const uint8_t * src, int width, int height, int stride, uint8_t bpp); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_SDL*/ -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SDL_UTILS_H*/ diff --git a/src/lib/lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h b/src/lib/lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h deleted file mode 100644 index fa7070e..0000000 --- a/src/lib/lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file lv_gpu_stm32_dma2d.h - * - */ - -#ifndef LV_GPU_STM32_DMA2D_H -#define LV_GPU_STM32_DMA2D_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../misc/lv_color.h" -#include "../../hal/lv_hal_disp.h" -#include "../sw/lv_draw_sw.h" - -#if LV_USE_GPU_STM32_DMA2D - -/********************* - * DEFINES - *********************/ - -#define LV_DMA2D_ARGB8888 0 -#define LV_DMA2D_RGB888 1 -#define LV_DMA2D_RGB565 2 -#define LV_DMA2D_ARGB1555 3 -#define LV_DMA2D_ARGB4444 4 - -/********************** - * TYPEDEFS - **********************/ -typedef lv_draw_sw_ctx_t lv_draw_stm32_dma2d_ctx_t; - -struct _lv_disp_drv_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Turn on the peripheral and set output color mode, this only needs to be done once - */ -void lv_draw_stm32_dma2d_init(void); - -void lv_draw_stm32_dma2d_ctx_init(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); - -void lv_draw_stm32_dma2d_ctx_deinit(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); - -void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); - -void lv_draw_stm32_dma2d_buffer_copy(lv_draw_ctx_t * draw_ctx, - void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, - void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); - -void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GPU_STM32_DMA2D*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_GPU_STM32_DMA2D_H*/ diff --git a/src/lib/lvgl/src/draw/sw/lv_draw_sw.h b/src/lib/lvgl/src/draw/sw/lv_draw_sw.h deleted file mode 100644 index 323783e..0000000 --- a/src/lib/lvgl/src/draw/sw/lv_draw_sw.h +++ /dev/null @@ -1,81 +0,0 @@ -/** - * @file lv_draw_sw.h - * - */ - -#ifndef LV_DRAW_SW_H -#define LV_DRAW_SW_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_draw_sw_blend.h" -#include "../lv_draw.h" -#include "../../misc/lv_area.h" -#include "../../misc/lv_color.h" -#include "../../hal/lv_hal_disp.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_disp_drv_t; - -typedef struct { - lv_draw_ctx_t base_draw; - - /** Fill an area of the destination buffer with a color*/ - void (*blend)(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); -} lv_draw_sw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_draw_sw_init_ctx(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); -void lv_draw_sw_deinit_ctx(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); - -void lv_draw_sw_wait_for_finish(lv_draw_ctx_t * draw_ctx); - -void lv_draw_sw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, const lv_point_t * center, uint16_t radius, - uint16_t start_angle, uint16_t end_angle); - -void lv_draw_sw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords); - -void lv_draw_sw_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords); -void lv_draw_sw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, - uint32_t letter); - -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t cf); - -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, - const lv_point_t * point1, const lv_point_t * point2); - -void lv_draw_sw_polygon(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, - const lv_point_t * points, uint16_t point_cnt); - -void lv_draw_sw_buffer_copy(lv_draw_ctx_t * draw_ctx, - void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, - void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); -/*********************** - * GLOBAL VARIABLES - ***********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SW_H*/ diff --git a/src/lib/lvgl/src/draw/sw/lv_draw_sw_blend.h b/src/lib/lvgl/src/draw/sw/lv_draw_sw_blend.h deleted file mode 100644 index 9a00e53..0000000 --- a/src/lib/lvgl/src/draw/sw/lv_draw_sw_blend.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * @file lv_draw_sw_blend.h - * - */ - -#ifndef LV_DRAW_SW_BLEND_H -#define LV_DRAW_SW_BLEND_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../misc/lv_color.h" -#include "../../misc/lv_area.h" -#include "../../misc/lv_style.h" -#include "../lv_draw_mask.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - const lv_area_t * blend_area; /**< The area with absolute coordinates to draw on `draw_ctx->buf` - * will be clipped to `draw_ctx->clip_area` */ - const lv_color_t * src_buf; /**< Pointer to an image to blend. If set `fill_color` is ignored */ - lv_color_t color; /**< Fill color*/ - lv_opa_t * mask_buf; /**< NULL if ignored, or an alpha mask to apply on `blend_area`*/ - lv_draw_mask_res_t mask_res; /**< The result of the previous mask operation */ - const lv_area_t * mask_area; /**< The area of `mask_buf` with absolute coordinates*/ - lv_opa_t opa; /**< The overall opacity*/ - lv_blend_mode_t blend_mode; /**< E.g. LV_BLEND_MODE_ADDITIVE*/ -} lv_draw_sw_blend_dsc_t; - -struct _lv_draw_ctx_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Call the blend function of the `draw_ctx`. - * @param draw_ctx pointer to a draw context - * @param dsc pointer to an initialized blend descriptor - */ -void lv_draw_sw_blend(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); - -/** - * The basic blend function used with software rendering. - * @param draw_ctx pointer to a draw context - * @param dsc pointer to an initialized blend descriptor - */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_SW_BLEND_H*/ diff --git a/src/lib/lvgl/src/draw/sw/lv_draw_sw_dither.h b/src/lib/lvgl/src/draw/sw/lv_draw_sw_dither.h deleted file mode 100644 index 6362c5a..0000000 --- a/src/lib/lvgl/src/draw/sw/lv_draw_sw_dither.h +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file lv_draw_sw_dither.h - * - */ - -#ifndef LV_DRAW_SW_DITHER_H -#define LV_DRAW_SW_DITHER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../core/lv_obj_pos.h" - - -/********************* - * DEFINES - *********************/ -#if LV_COLOR_DEPTH < 32 && LV_DITHER_GRADIENT == 1 -#define _DITHER_GRADIENT 1 -#else -#define _DITHER_GRADIENT 0 -#endif - -/********************** - * TYPEDEFS - **********************/ -#if _DITHER_GRADIENT -/*A signed error color component*/ -typedef struct { - int8_t r, g, b; -} lv_scolor24_t; - -struct _lv_gradient_cache_t; -typedef void (*lv_dither_func_t)(struct _lv_gradient_cache_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w); - -#endif - - -/********************** - * PROTOTYPES - **********************/ -#if LV_DRAW_COMPLEX -#if _DITHER_GRADIENT -LV_ATTRIBUTE_FAST_MEM void lv_dither_none(struct _lv_gradient_cache_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w); - -LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); -LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); - -#if LV_DITHER_ERROR_DIFFUSION == 1 -LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); -LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); -#endif /* LV_DITHER_ERROR_DIFFUSION */ - -#endif /* _DITHER_GRADIENT */ -#endif - - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/draw/sw/lv_draw_sw_gradient.h b/src/lib/lvgl/src/draw/sw/lv_draw_sw_gradient.h deleted file mode 100644 index f5f3215..0000000 --- a/src/lib/lvgl/src/draw/sw/lv_draw_sw_gradient.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file lv_draw_sw_gradient.h - * - */ - -#ifndef LV_DRAW_SW_GRADIENT_H -#define LV_DRAW_SW_GRADIENT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../misc/lv_color.h" -#include "../../misc/lv_style.h" -#include "lv_draw_sw_dither.h" - -/********************* - * DEFINES - *********************/ -#if LV_GRADIENT_MAX_STOPS < 2 -#error LVGL needs at least 2 stops for gradients. Please increase the LV_GRADIENT_MAX_STOPS -#endif - - -/********************** - * TYPEDEFS - **********************/ -#if _DITHER_GRADIENT -typedef lv_color32_t lv_grad_color_t; -#else -typedef lv_color_t lv_grad_color_t; -#endif - -/** To avoid recomputing gradient for each draw operation, - * it's possible to cache the computation in this structure instance. - * Whenever possible, this structure is reused instead of recomputing the gradient map */ -typedef struct _lv_gradient_cache_t { - uint32_t key; /**< A discriminating key that's built from the drawing operation. - * If the key does not match, the cache item is not used */ - uint32_t life : 30; /**< A life counter that's incremented on usage. Higher counter is - * less likely to be evicted from the cache */ - uint32_t filled : 1; /**< Used to skip dithering in it if already done */ - uint32_t not_cached: 1; /**< The cache was too small so this item is not managed by the cache*/ - lv_color_t * map; /**< The computed gradient low bitdepth color map, points into the - * cache's buffer, no free needed */ - lv_coord_t alloc_size; /**< The map allocated size in colors */ - lv_coord_t size; /**< The computed gradient color map size, in colors */ -#if _DITHER_GRADIENT - lv_color32_t * hmap; /**< If dithering, we need to store the current, high bitdepth gradient - * map too, points to the cache's buffer, no free needed */ -#if LV_DITHER_ERROR_DIFFUSION == 1 - lv_scolor24_t * error_acc; /**< Error diffusion dithering algorithm requires storing the last error - * drawn, points to the cache's buffer, no free needed */ - lv_coord_t w; /**< The error array width in pixels */ -#endif -#endif -} lv_grad_t; - - -/********************** - * PROTOTYPES - **********************/ -/** Compute the color in the given gradient and fraction - * Gradient are specified in a virtual [0-255] range, so this function scales the virtual range to the given range - * @param dsc The gradient descriptor to use - * @param range The range to use in computation. - * @param frac The current part used in the range. frac is in [0; range] - */ -LV_ATTRIBUTE_FAST_MEM lv_grad_color_t lv_gradient_calculate(const lv_grad_dsc_t * dsc, lv_coord_t range, - lv_coord_t frac); - -/** - * Set the gradient cache size - * @param max_bytes Max cahce size - */ -void lv_gradient_set_cache_size(size_t max_bytes); - -/** Free the gradient cache */ -void lv_gradient_free_cache(void); - -/** Get a gradient cache from the given parameters */ -lv_grad_t * lv_gradient_get(const lv_grad_dsc_t * gradient, lv_coord_t w, lv_coord_t h); - -/** - * Clean up the gradient item after it was get with `lv_grad_get_from_cache`. - * @param grad pointer to a gradient - */ -void lv_gradient_cleanup(lv_grad_t * grad); - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DRAW_GRADIENT_H*/ diff --git a/src/lib/lvgl/src/extra/layouts/flex/lv_flex.h b/src/lib/lvgl/src/extra/layouts/flex/lv_flex.h deleted file mode 100644 index 139fd48..0000000 --- a/src/lib/lvgl/src/extra/layouts/flex/lv_flex.h +++ /dev/null @@ -1,153 +0,0 @@ -/** - * @file lv_flex.h - * - */ - -#ifndef LV_FLEX_H -#define LV_FLEX_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" -#if LV_USE_FLEX - -/********************* - * DEFINES - *********************/ - -#define LV_OBJ_FLAG_FLEX_IN_NEW_TRACK LV_OBJ_FLAG_LAYOUT_1 -LV_EXPORT_CONST_INT(LV_OBJ_FLAG_FLEX_IN_NEW_TRACK); - -#define _LV_FLEX_COLUMN (1 << 0) -#define _LV_FLEX_WRAP (1 << 2) -#define _LV_FLEX_REVERSE (1 << 3) - -/********************** - * TYPEDEFS - **********************/ - -/*Can't include lv_obj.h because it includes this header file*/ -struct _lv_obj_t; - -typedef enum { - LV_FLEX_ALIGN_START, - LV_FLEX_ALIGN_END, - LV_FLEX_ALIGN_CENTER, - LV_FLEX_ALIGN_SPACE_EVENLY, - LV_FLEX_ALIGN_SPACE_AROUND, - LV_FLEX_ALIGN_SPACE_BETWEEN, -} lv_flex_align_t; - -typedef enum { - LV_FLEX_FLOW_ROW = 0x00, - LV_FLEX_FLOW_COLUMN = _LV_FLEX_COLUMN, - LV_FLEX_FLOW_ROW_WRAP = LV_FLEX_FLOW_ROW | _LV_FLEX_WRAP, - LV_FLEX_FLOW_ROW_REVERSE = LV_FLEX_FLOW_ROW | _LV_FLEX_REVERSE, - LV_FLEX_FLOW_ROW_WRAP_REVERSE = LV_FLEX_FLOW_ROW | _LV_FLEX_WRAP | _LV_FLEX_REVERSE, - LV_FLEX_FLOW_COLUMN_WRAP = LV_FLEX_FLOW_COLUMN | _LV_FLEX_WRAP, - LV_FLEX_FLOW_COLUMN_REVERSE = LV_FLEX_FLOW_COLUMN | _LV_FLEX_REVERSE, - LV_FLEX_FLOW_COLUMN_WRAP_REVERSE = LV_FLEX_FLOW_COLUMN | _LV_FLEX_WRAP | _LV_FLEX_REVERSE, -} lv_flex_flow_t; - -/********************** - * GLOBAL VARIABLES - **********************/ -extern uint32_t LV_LAYOUT_FLEX; -extern lv_style_prop_t LV_STYLE_FLEX_FLOW; -extern lv_style_prop_t LV_STYLE_FLEX_MAIN_PLACE; -extern lv_style_prop_t LV_STYLE_FLEX_CROSS_PLACE; -extern lv_style_prop_t LV_STYLE_FLEX_TRACK_PLACE; -extern lv_style_prop_t LV_STYLE_FLEX_GROW; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize a flex layout the default values - * @param flex pointer to a flex layout descriptor - */ -void lv_flex_init(void); - -/** - * Set hot the item should flow - * @param flex pointer to a flex layout descriptor - * @param flow an element of `lv_flex_flow_t`. - */ -void lv_obj_set_flex_flow(lv_obj_t * obj, lv_flex_flow_t flow); - -/** - * Set how to place (where to align) the items and tracks - * @param flex pointer: to a flex layout descriptor - * @param main_place where to place the items on main axis (in their track). Any value of `lv_flex_align_t`. - * @param cross_place where to place the item in their track on the cross axis. `LV_FLEX_ALIGN_START/END/CENTER` - * @param track_place where to place the tracks in the cross direction. Any value of `lv_flex_align_t`. - */ -void lv_obj_set_flex_align(lv_obj_t * obj, lv_flex_align_t main_place, lv_flex_align_t cross_place, - lv_flex_align_t track_cross_place); - -/** - * Sets the width or height (on main axis) to grow the object in order fill the free space - * @param obj pointer to an object. The parent must have flex layout else nothing will happen. - * @param grow a value to set how much free space to take proportionally to other growing items. - */ -void lv_obj_set_flex_grow(lv_obj_t * obj, uint8_t grow); - -void lv_style_set_flex_flow(lv_style_t * style, lv_flex_flow_t value); -void lv_style_set_flex_main_place(lv_style_t * style, lv_flex_align_t value); -void lv_style_set_flex_cross_place(lv_style_t * style, lv_flex_align_t value); -void lv_style_set_flex_track_place(lv_style_t * style, lv_flex_align_t value); -void lv_style_set_flex_grow(lv_style_t * style, uint8_t value); -void lv_obj_set_style_flex_flow(lv_obj_t * obj, lv_flex_flow_t value, lv_style_selector_t selector); -void lv_obj_set_style_flex_main_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_flex_cross_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_flex_track_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_flex_grow(lv_obj_t * obj, uint8_t value, lv_style_selector_t selector); - -static inline lv_flex_flow_t lv_obj_get_style_flex_flow(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_FLOW); - return (lv_flex_flow_t)v.num; -} - -static inline lv_flex_align_t lv_obj_get_style_flex_main_place(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_MAIN_PLACE); - return (lv_flex_align_t)v.num; -} - -static inline lv_flex_align_t lv_obj_get_style_flex_cross_place(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_CROSS_PLACE); - return (lv_flex_align_t)v.num; -} - -static inline lv_flex_align_t lv_obj_get_style_flex_track_place(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_TRACK_PLACE); - return (lv_flex_align_t)v.num; -} - -static inline uint8_t lv_obj_get_style_flex_grow(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_GROW); - return (uint8_t)v.num; -} - - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_FLEX*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_FLEX_H*/ diff --git a/src/lib/lvgl/src/extra/layouts/grid/lv_grid.h b/src/lib/lvgl/src/extra/layouts/grid/lv_grid.h deleted file mode 100644 index cd2510e..0000000 --- a/src/lib/lvgl/src/extra/layouts/grid/lv_grid.h +++ /dev/null @@ -1,194 +0,0 @@ -/** - * @file lv_grid.h - * - */ - -#ifndef LV_GRID_H -#define LV_GRID_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" -#if LV_USE_GRID - -/********************* - * DEFINES - *********************/ -/** - * Can be used track size to make the track fill the free space. - * @param x how much space to take proportionally to other FR tracks - * @return a special track size - */ -#define LV_GRID_FR(x) (LV_COORD_MAX - 100 + x) - -#define LV_GRID_CONTENT (LV_COORD_MAX - 101) -LV_EXPORT_CONST_INT(LV_GRID_CONTENT); - -#define LV_GRID_TEMPLATE_LAST (LV_COORD_MAX) -LV_EXPORT_CONST_INT(LV_GRID_TEMPLATE_LAST); - -/********************** - * TYPEDEFS - **********************/ - -/*Can't include lv_obj.h because it includes this header file*/ -struct _lv_obj_t; - -typedef enum { - LV_GRID_ALIGN_START, - LV_GRID_ALIGN_CENTER, - LV_GRID_ALIGN_END, - LV_GRID_ALIGN_STRETCH, - LV_GRID_ALIGN_SPACE_EVENLY, - LV_GRID_ALIGN_SPACE_AROUND, - LV_GRID_ALIGN_SPACE_BETWEEN, -} lv_grid_align_t; - -/********************** - * GLOBAL VARIABLES - **********************/ - -extern uint32_t LV_LAYOUT_GRID; -extern lv_style_prop_t LV_STYLE_GRID_COLUMN_DSC_ARRAY; -extern lv_style_prop_t LV_STYLE_GRID_COLUMN_ALIGN; -extern lv_style_prop_t LV_STYLE_GRID_ROW_DSC_ARRAY; -extern lv_style_prop_t LV_STYLE_GRID_ROW_ALIGN; -extern lv_style_prop_t LV_STYLE_GRID_CELL_COLUMN_POS; -extern lv_style_prop_t LV_STYLE_GRID_CELL_COLUMN_SPAN; -extern lv_style_prop_t LV_STYLE_GRID_CELL_X_ALIGN; -extern lv_style_prop_t LV_STYLE_GRID_CELL_ROW_POS; -extern lv_style_prop_t LV_STYLE_GRID_CELL_ROW_SPAN; -extern lv_style_prop_t LV_STYLE_GRID_CELL_Y_ALIGN; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_grid_init(void); - -void lv_obj_set_grid_dsc_array(lv_obj_t * obj, const lv_coord_t col_dsc[], const lv_coord_t row_dsc[]); - -void lv_obj_set_grid_align(lv_obj_t * obj, lv_grid_align_t column_align, lv_grid_align_t row_align); - -/** - * Set the cell of an object. The object's parent needs to have grid layout, else nothing will happen - * @param obj pointer to an object - * @param column_align the vertical alignment in the cell. `LV_GRID_START/END/CENTER/STRETCH` - * @param col_pos column ID - * @param col_span number of columns to take (>= 1) - * @param row_align the horizontal alignment in the cell. `LV_GRID_START/END/CENTER/STRETCH` - * @param row_pos row ID - * @param row_span number of rows to take (>= 1) - */ -void lv_obj_set_grid_cell(lv_obj_t * obj, lv_grid_align_t column_align, uint8_t col_pos, uint8_t col_span, - lv_grid_align_t row_align, uint8_t row_pos, uint8_t row_span); - -/** - * Just a wrapper to `LV_GRID_FR` for bindings. - */ -static inline lv_coord_t lv_grid_fr(uint8_t x) -{ - return LV_GRID_FR(x); -} - -void lv_style_set_grid_row_dsc_array(lv_style_t * style, const lv_coord_t value[]); -void lv_style_set_grid_column_dsc_array(lv_style_t * style, const lv_coord_t value[]); -void lv_style_set_grid_row_align(lv_style_t * style, lv_grid_align_t value); -void lv_style_set_grid_column_align(lv_style_t * style, lv_grid_align_t value); -void lv_style_set_grid_cell_column_pos(lv_style_t * style, lv_coord_t value); -void lv_style_set_grid_cell_column_span(lv_style_t * style, lv_coord_t value); -void lv_style_set_grid_cell_row_pos(lv_style_t * style, lv_coord_t value); -void lv_style_set_grid_cell_row_span(lv_style_t * style, lv_coord_t value); -void lv_style_set_grid_cell_x_align(lv_style_t * style, lv_coord_t value); -void lv_style_set_grid_cell_y_align(lv_style_t * style, lv_coord_t value); - -void lv_obj_set_style_grid_row_dsc_array(lv_obj_t * obj, const lv_coord_t value[], lv_style_selector_t selector); -void lv_obj_set_style_grid_column_dsc_array(lv_obj_t * obj, const lv_coord_t value[], lv_style_selector_t selector); -void lv_obj_set_style_grid_row_align(lv_obj_t * obj, lv_grid_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_column_align(lv_obj_t * obj, lv_grid_align_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_cell_column_pos(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_cell_column_span(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_cell_row_pos(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_cell_row_span(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_cell_x_align(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); -void lv_obj_set_style_grid_cell_y_align(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); - -static inline const lv_coord_t * lv_obj_get_style_grid_row_dsc_array(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_ROW_DSC_ARRAY); - return (const lv_coord_t *)v.ptr; -} - -static inline const lv_coord_t * lv_obj_get_style_grid_column_dsc_array(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_COLUMN_DSC_ARRAY); - return (const lv_coord_t *)v.ptr; -} - -static inline lv_grid_align_t lv_obj_get_style_grid_row_align(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_ROW_ALIGN); - return (lv_grid_align_t)v.num; -} - -static inline lv_grid_align_t lv_obj_get_style_grid_column_align(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_COLUMN_ALIGN); - return (lv_grid_align_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_grid_cell_column_pos(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_COLUMN_POS); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_grid_cell_column_span(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_COLUMN_SPAN); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_grid_cell_row_pos(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_ROW_POS); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_grid_cell_row_span(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_ROW_SPAN); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_grid_cell_x_align(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_X_ALIGN); - return (lv_coord_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_grid_cell_y_align(const lv_obj_t * obj, uint32_t part) -{ - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_Y_ALIGN); - return (lv_coord_t)v.num; -} - -/********************** - * GLOBAL VARIABLES - **********************/ - -/********************** - * MACROS - **********************/ -#endif /*LV_USE_GRID*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_GRID_H*/ diff --git a/src/lib/lvgl/src/extra/layouts/lv_layouts.h b/src/lib/lvgl/src/extra/layouts/lv_layouts.h deleted file mode 100644 index 9c1e958..0000000 --- a/src/lib/lvgl/src/extra/layouts/lv_layouts.h +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @file lv_layouts.h - * - */ - -#ifndef LV_LAYOUTS_H -#define LV_LAYOUTS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "flex/lv_flex.h" -#include "grid/lv_grid.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ -#if LV_USE_LOG && LV_LOG_TRACE_LAYOUT -# define LV_TRACE_LAYOUT(...) LV_LOG_TRACE(__VA_ARGS__) -#else -# define LV_TRACE_LAYOUT(...) -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LAYOUTS_H*/ diff --git a/src/lib/lvgl/src/extra/libs/bmp/lv_bmp.h b/src/lib/lvgl/src/extra/libs/bmp/lv_bmp.h deleted file mode 100644 index db1e540..0000000 --- a/src/lib/lvgl/src/extra/libs/bmp/lv_bmp.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - * @file lv_bmp.h - * - */ - -#ifndef LV_BMP_H -#define LV_BMP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lv_conf_internal.h" -#if LV_USE_BMP - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ -void lv_bmp_init(void); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_BMP*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_BMP_H*/ diff --git a/src/lib/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.h b/src/lib/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.h deleted file mode 100644 index 8c7fc26..0000000 --- a/src/lib/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.h +++ /dev/null @@ -1,104 +0,0 @@ -/** - * @file lv_ffmpeg.h - * - */ -#ifndef LV_FFMPEG_H -#define LV_FFMPEG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" -#if LV_USE_FFMPEG != 0 - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -struct ffmpeg_context_s; - -extern const lv_obj_class_t lv_ffmpeg_player_class; - -typedef struct { - lv_img_t img; - lv_timer_t * timer; - lv_img_dsc_t imgdsc; - bool auto_restart; - struct ffmpeg_context_s * ffmpeg_ctx; -} lv_ffmpeg_player_t; - -typedef enum { - LV_FFMPEG_PLAYER_CMD_START, - LV_FFMPEG_PLAYER_CMD_STOP, - LV_FFMPEG_PLAYER_CMD_PAUSE, - LV_FFMPEG_PLAYER_CMD_RESUME, - _LV_FFMPEG_PLAYER_CMD_LAST -} lv_ffmpeg_player_cmd_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Register FFMPEG image decoder - */ -void lv_ffmpeg_init(void); - -/** - * Get the number of frames contained in the file - * @param path image or video file name - * @return Number of frames, less than 0 means failed - */ -int lv_ffmpeg_get_frame_num(const char * path); - -/** - * Create ffmpeg_player object - * @param parent pointer to an object, it will be the parent of the new player - * @return pointer to the created ffmpeg_player - */ -lv_obj_t * lv_ffmpeg_player_create(lv_obj_t * parent); - -/** - * Set the path of the file to be played - * @param obj pointer to a ffmpeg_player object - * @param path video file path - * @return LV_RES_OK: no error; LV_RES_INV: can't get the info. - */ -lv_res_t lv_ffmpeg_player_set_src(lv_obj_t * obj, const char * path); - -/** - * Set command control video player - * @param obj pointer to a ffmpeg_player object - * @param cmd control commands - */ -void lv_ffmpeg_player_set_cmd(lv_obj_t * obj, lv_ffmpeg_player_cmd_t cmd); - -/** - * Set the video to automatically replay - * @param obj pointer to a ffmpeg_player object - * @param en true: enable the auto restart - */ -void lv_ffmpeg_player_set_auto_restart(lv_obj_t * obj, bool en); - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_FFMPEG*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_FFMPEG_H*/ diff --git a/src/lib/lvgl/src/extra/libs/freetype/lv_freetype.h b/src/lib/lvgl/src/extra/libs/freetype/lv_freetype.h deleted file mode 100644 index 247a7fb..0000000 --- a/src/lib/lvgl/src/extra/libs/freetype/lv_freetype.h +++ /dev/null @@ -1,83 +0,0 @@ -/** - * @file lv_freetype.h - * - */ -#ifndef LV_FREETYPE_H -#define LV_FREETYPE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" -#if LV_USE_FREETYPE - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef enum { - FT_FONT_STYLE_NORMAL = 0, - FT_FONT_STYLE_ITALIC = 1 << 0, - FT_FONT_STYLE_BOLD = 1 << 1 -} LV_FT_FONT_STYLE; - -typedef struct { - const char * name; /* The name of the font file */ - const void * mem; /* The pointer of the font file */ - size_t mem_size; /* The size of the memory */ - lv_font_t * font; /* point to lvgl font */ - uint16_t weight; /* font size */ - uint16_t style; /* font style */ -} lv_ft_info_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * init freetype library - * @param max_faces Maximum number of opened FT_Face objects managed by this cache instance. Use 0 for defaults. - * @param max_sizes Maximum number of opened FT_Size objects managed by this cache instance. Use 0 for defaults. - * @param max_bytes Maximum number of bytes to use for cached data nodes. Use 0 for defaults. - * Note that this value does not account for managed FT_Face and FT_Size objects. - * @return true on success, otherwise false. - */ -bool lv_freetype_init(uint16_t max_faces, uint16_t max_sizes, uint32_t max_bytes); - -/** - * Destroy freetype library - */ -void lv_freetype_destroy(void); - -/** - * Creates a font with info parameter specified. - * @param info See lv_ft_info_t for details. - * when success, lv_ft_info_t->font point to the font you created. - * @return true on success, otherwise false. - */ -bool lv_ft_font_init(lv_ft_info_t * info); - -/** - * Destroy a font that has been created. - * @param font pointer to font. - */ -void lv_ft_font_destroy(lv_font_t * font); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_FREETYPE*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* LV_FREETYPE_H */ diff --git a/src/lib/lvgl/src/extra/libs/fsdrv/lv_fsdrv.h b/src/lib/lvgl/src/extra/libs/fsdrv/lv_fsdrv.h deleted file mode 100644 index 285d598..0000000 --- a/src/lib/lvgl/src/extra/libs/fsdrv/lv_fsdrv.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * @file lv_fsdrv.h - * - */ - -#ifndef LV_FSDRV_H -#define LV_FSDRV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lv_conf_internal.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -#if LV_USE_FS_FATFS != '\0' -void lv_fs_fatfs_init(void); -#endif - -#if LV_USE_FS_STDIO != '\0' -void lv_fs_stdio_init(void); -#endif - -#if LV_USE_FS_POSIX != '\0' -void lv_fs_posix_init(void); -#endif - -#if LV_USE_FS_WIN32 != '\0' -void lv_fs_win32_init(void); -#endif - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_FSDRV_H*/ - diff --git a/src/lib/lvgl/src/extra/libs/gif/gifdec.h b/src/lib/lvgl/src/extra/libs/gif/gifdec.h deleted file mode 100644 index 00f17c1..0000000 --- a/src/lib/lvgl/src/extra/libs/gif/gifdec.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef GIFDEC_H -#define GIFDEC_H - -#include -#include "../../../misc/lv_fs.h" - -#if LV_USE_GIF - -typedef struct gd_Palette { - int size; - uint8_t colors[0x100 * 3]; -} gd_Palette; - -typedef struct gd_GCE { - uint16_t delay; - uint8_t tindex; - uint8_t disposal; - int input; - int transparency; -} gd_GCE; - - - -typedef struct gd_GIF { - lv_fs_file_t fd; - const char * data; - uint8_t is_file; - uint32_t f_rw_p; - int32_t anim_start; - uint16_t width, height; - uint16_t depth; - uint16_t loop_count; - gd_GCE gce; - gd_Palette *palette; - gd_Palette lct, gct; - void (*plain_text)( - struct gd_GIF *gif, uint16_t tx, uint16_t ty, - uint16_t tw, uint16_t th, uint8_t cw, uint8_t ch, - uint8_t fg, uint8_t bg - ); - void (*comment)(struct gd_GIF *gif); - void (*application)(struct gd_GIF *gif, char id[8], char auth[3]); - uint16_t fx, fy, fw, fh; - uint8_t bgindex; - uint8_t *canvas, *frame; -} gd_GIF; - -gd_GIF * gd_open_gif_file(const char *fname); - -gd_GIF * gd_open_gif_data(const void *data); - -void gd_render_frame(gd_GIF *gif, uint8_t *buffer); - -int gd_get_frame(gd_GIF *gif); -void gd_rewind(gd_GIF *gif); -void gd_close_gif(gd_GIF *gif); - -#endif /*LV_USE_GIF*/ - -#endif /* GIFDEC_H */ diff --git a/src/lib/lvgl/src/extra/libs/gif/lv_gif.h b/src/lib/lvgl/src/extra/libs/gif/lv_gif.h deleted file mode 100644 index d8c93db..0000000 --- a/src/lib/lvgl/src/extra/libs/gif/lv_gif.h +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @file lv_gif.h - * - */ - -#ifndef LV_GIF_H -#define LV_GIF_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../../../lvgl.h" -#if LV_USE_GIF - -#include "gifdec.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_img_t img; - gd_GIF * gif; - lv_timer_t * timer; - lv_img_dsc_t imgdsc; - uint32_t last_call; -} lv_gif_t; - -extern const lv_obj_class_t lv_gif_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_obj_t * lv_gif_create(lv_obj_t * parent); -void lv_gif_set_src(lv_obj_t * obj, const void * src); -void lv_gif_restart(lv_obj_t * gif); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_GIF*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_GIF_H*/ diff --git a/src/lib/lvgl/src/extra/libs/lv_libs.h b/src/lib/lvgl/src/extra/libs/lv_libs.h deleted file mode 100644 index 6782b1d..0000000 --- a/src/lib/lvgl/src/extra/libs/lv_libs.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file lv_libs.h - * - */ - -#ifndef LV_LIBS_H -#define LV_LIBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "bmp/lv_bmp.h" -#include "fsdrv/lv_fsdrv.h" -#include "png/lv_png.h" -#include "gif/lv_gif.h" -#include "qrcode/lv_qrcode.h" -#include "sjpg/lv_sjpg.h" -#include "freetype/lv_freetype.h" -#include "rlottie/lv_rlottie.h" -#include "ffmpeg/lv_ffmpeg.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LIBS_H*/ diff --git a/src/lib/lvgl/src/extra/libs/png/lodepng.h b/src/lib/lvgl/src/extra/libs/png/lodepng.h deleted file mode 100644 index dbfed72..0000000 --- a/src/lib/lvgl/src/extra/libs/png/lodepng.h +++ /dev/null @@ -1,1981 +0,0 @@ -/* -LodePNG version 20201017 - -Copyright (c) 2005-2020 Lode Vandevenne - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source - distribution. -*/ - -#ifndef LODEPNG_H -#define LODEPNG_H - -#include /*for size_t*/ - -#include "../../../lvgl.h" -#if LV_USE_PNG -extern const char* LODEPNG_VERSION_STRING; - -/* -The following #defines are used to create code sections. They can be disabled -to disable code sections, which can give faster compile time and smaller binary. -The "NO_COMPILE" defines are designed to be used to pass as defines to the -compiler command to disable them without modifying this header, e.g. --DLODEPNG_NO_COMPILE_ZLIB for gcc. -In addition to those below, you can also define LODEPNG_NO_COMPILE_CRC to -allow implementing a custom lodepng_crc32. -*/ -/*deflate & zlib. If disabled, you must specify alternative zlib functions in -the custom_zlib field of the compress and decompress settings*/ -#ifndef LODEPNG_NO_COMPILE_ZLIB -#define LODEPNG_COMPILE_ZLIB -#endif - -/*png encoder and png decoder*/ -#ifndef LODEPNG_NO_COMPILE_PNG -#define LODEPNG_COMPILE_PNG -#endif - -/*deflate&zlib decoder and png decoder*/ -#ifndef LODEPNG_NO_COMPILE_DECODER -#define LODEPNG_COMPILE_DECODER -#endif - -/*deflate&zlib encoder and png encoder*/ -#ifndef LODEPNG_NO_COMPILE_ENCODER -#define LODEPNG_COMPILE_ENCODER -#endif - -/*the optional built in harddisk file loading and saving functions*/ -#ifndef LODEPNG_NO_COMPILE_DISK -#define LODEPNG_COMPILE_DISK -#endif - -/*support for chunks other than IHDR, IDAT, PLTE, tRNS, IEND: ancillary and unknown chunks*/ -#ifndef LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS -#define LODEPNG_COMPILE_ANCILLARY_CHUNKS -#endif - -/*ability to convert error numerical codes to English text string*/ -#ifndef LODEPNG_NO_COMPILE_ERROR_TEXT -#define LODEPNG_COMPILE_ERROR_TEXT -#endif - -/*Compile the default allocators (C's free, malloc and realloc). If you disable this, -you can define the functions lodepng_free, lodepng_malloc and lodepng_realloc in your -source files with custom allocators.*/ -#ifndef LODEPNG_NO_COMPILE_ALLOCATORS -#define LODEPNG_COMPILE_ALLOCATORS -#endif - -/*compile the C++ version (you can disable the C++ wrapper here even when compiling for C++)*/ -#ifdef __cplusplus -#ifndef LODEPNG_NO_COMPILE_CPP -#define LODEPNG_COMPILE_CPP -#endif -#endif - -#ifdef LODEPNG_COMPILE_CPP -#include -#include -#endif /*LODEPNG_COMPILE_CPP*/ - -#ifdef LODEPNG_COMPILE_PNG -/*The PNG color types (also used for raw image).*/ -typedef enum LodePNGColorType { - LCT_GREY = 0, /*grayscale: 1,2,4,8,16 bit*/ - LCT_RGB = 2, /*RGB: 8,16 bit*/ - LCT_PALETTE = 3, /*palette: 1,2,4,8 bit*/ - LCT_GREY_ALPHA = 4, /*grayscale with alpha: 8,16 bit*/ - LCT_RGBA = 6, /*RGB with alpha: 8,16 bit*/ - /*LCT_MAX_OCTET_VALUE lets the compiler allow this enum to represent any invalid - byte value from 0 to 255 that could be present in an invalid PNG file header. Do - not use, compare with or set the name LCT_MAX_OCTET_VALUE, instead either use - the valid color type names above, or numeric values like 1 or 7 when checking for - particular disallowed color type byte values, or cast to integer to print it.*/ - LCT_MAX_OCTET_VALUE = 255 -} LodePNGColorType; - -#ifdef LODEPNG_COMPILE_DECODER -/* -Converts PNG data in memory to raw pixel data. -out: Output parameter. Pointer to buffer that will contain the raw pixel data. - After decoding, its size is w * h * (bytes per pixel) bytes larger than - initially. Bytes per pixel depends on colortype and bitdepth. - Must be freed after usage with free(*out). - Note: for 16-bit per channel colors, uses big endian format like PNG does. -w: Output parameter. Pointer to width of pixel data. -h: Output parameter. Pointer to height of pixel data. -in: Memory buffer with the PNG file. -insize: size of the in buffer. -colortype: the desired color type for the raw output image. See explanation on PNG color types. -bitdepth: the desired bit depth for the raw output image. See explanation on PNG color types. -Return value: LodePNG error code (0 means no error). -*/ -unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, - const unsigned char* in, size_t insize, - LodePNGColorType colortype, unsigned bitdepth); - -/*Same as lodepng_decode_memory, but always decodes to 32-bit RGBA raw image*/ -unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, - const unsigned char* in, size_t insize); - -/*Same as lodepng_decode_memory, but always decodes to 24-bit RGB raw image*/ -unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, - const unsigned char* in, size_t insize); - -#ifdef LODEPNG_COMPILE_DISK -/* -Load PNG from disk, from file with given name. -Same as the other decode functions, but instead takes a filename as input. -*/ -unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, - const char* filename, - LodePNGColorType colortype, unsigned bitdepth); - -/*Same as lodepng_decode_file, but always decodes to 32-bit RGBA raw image.*/ -unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, - const char* filename); - -/*Same as lodepng_decode_file, but always decodes to 24-bit RGB raw image.*/ -unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, - const char* filename); -#endif /*LODEPNG_COMPILE_DISK*/ -#endif /*LODEPNG_COMPILE_DECODER*/ - - -#ifdef LODEPNG_COMPILE_ENCODER -/* -Converts raw pixel data into a PNG image in memory. The colortype and bitdepth - of the output PNG image cannot be chosen, they are automatically determined - by the colortype, bitdepth and content of the input pixel data. - Note: for 16-bit per channel colors, needs big endian format like PNG does. -out: Output parameter. Pointer to buffer that will contain the PNG image data. - Must be freed after usage with free(*out). -outsize: Output parameter. Pointer to the size in bytes of the out buffer. -image: The raw pixel data to encode. The size of this buffer should be - w * h * (bytes per pixel), bytes per pixel depends on colortype and bitdepth. -w: width of the raw pixel data in pixels. -h: height of the raw pixel data in pixels. -colortype: the color type of the raw input image. See explanation on PNG color types. -bitdepth: the bit depth of the raw input image. See explanation on PNG color types. -Return value: LodePNG error code (0 means no error). -*/ -unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, - const unsigned char* image, unsigned w, unsigned h, - LodePNGColorType colortype, unsigned bitdepth); - -/*Same as lodepng_encode_memory, but always encodes from 32-bit RGBA raw image.*/ -unsigned lodepng_encode32(unsigned char** out, size_t* outsize, - const unsigned char* image, unsigned w, unsigned h); - -/*Same as lodepng_encode_memory, but always encodes from 24-bit RGB raw image.*/ -unsigned lodepng_encode24(unsigned char** out, size_t* outsize, - const unsigned char* image, unsigned w, unsigned h); - -#ifdef LODEPNG_COMPILE_DISK -/* -Converts raw pixel data into a PNG file on disk. -Same as the other encode functions, but instead takes a filename as output. -NOTE: This overwrites existing files without warning! -*/ -unsigned lodepng_encode_file(const char* filename, - const unsigned char* image, unsigned w, unsigned h, - LodePNGColorType colortype, unsigned bitdepth); - -/*Same as lodepng_encode_file, but always encodes from 32-bit RGBA raw image.*/ -unsigned lodepng_encode32_file(const char* filename, - const unsigned char* image, unsigned w, unsigned h); - -/*Same as lodepng_encode_file, but always encodes from 24-bit RGB raw image.*/ -unsigned lodepng_encode24_file(const char* filename, - const unsigned char* image, unsigned w, unsigned h); -#endif /*LODEPNG_COMPILE_DISK*/ -#endif /*LODEPNG_COMPILE_ENCODER*/ - - -#ifdef LODEPNG_COMPILE_CPP -namespace lodepng { -#ifdef LODEPNG_COMPILE_DECODER -/*Same as lodepng_decode_memory, but decodes to an std::vector. The colortype -is the format to output the pixels to. Default is RGBA 8-bit per channel.*/ -unsigned decode(std::vector& out, unsigned& w, unsigned& h, - const unsigned char* in, size_t insize, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -unsigned decode(std::vector& out, unsigned& w, unsigned& h, - const std::vector& in, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -#ifdef LODEPNG_COMPILE_DISK -/* -Converts PNG file from disk to raw pixel data in memory. -Same as the other decode functions, but instead takes a filename as input. -*/ -unsigned decode(std::vector& out, unsigned& w, unsigned& h, - const std::string& filename, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -#endif /* LODEPNG_COMPILE_DISK */ -#endif /* LODEPNG_COMPILE_DECODER */ - -#ifdef LODEPNG_COMPILE_ENCODER -/*Same as lodepng_encode_memory, but encodes to an std::vector. colortype -is that of the raw input data. The output PNG color type will be auto chosen.*/ -unsigned encode(std::vector& out, - const unsigned char* in, unsigned w, unsigned h, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -unsigned encode(std::vector& out, - const std::vector& in, unsigned w, unsigned h, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -#ifdef LODEPNG_COMPILE_DISK -/* -Converts 32-bit RGBA raw pixel data into a PNG file on disk. -Same as the other encode functions, but instead takes a filename as output. -NOTE: This overwrites existing files without warning! -*/ -unsigned encode(const std::string& filename, - const unsigned char* in, unsigned w, unsigned h, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -unsigned encode(const std::string& filename, - const std::vector& in, unsigned w, unsigned h, - LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); -#endif /* LODEPNG_COMPILE_DISK */ -#endif /* LODEPNG_COMPILE_ENCODER */ -} /* namespace lodepng */ -#endif /*LODEPNG_COMPILE_CPP*/ -#endif /*LODEPNG_COMPILE_PNG*/ - -#ifdef LODEPNG_COMPILE_ERROR_TEXT -/*Returns an English description of the numerical error code.*/ -const char* lodepng_error_text(unsigned code); -#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ - -#ifdef LODEPNG_COMPILE_DECODER -/*Settings for zlib decompression*/ -typedef struct LodePNGDecompressSettings LodePNGDecompressSettings; -struct LodePNGDecompressSettings { - /* Check LodePNGDecoderSettings for more ignorable errors such as ignore_crc */ - unsigned ignore_adler32; /*if 1, continue and don't give an error message if the Adler32 checksum is corrupted*/ - unsigned ignore_nlen; /*ignore complement of len checksum in uncompressed blocks*/ - - /*Maximum decompressed size, beyond this the decoder may (and is encouraged to) stop decoding, - return an error, output a data size > max_output_size and all the data up to that point. This is - not hard limit nor a guarantee, but can prevent excessive memory usage. This setting is - ignored by the PNG decoder, but is used by the deflate/zlib decoder and can be used by custom ones. - Set to 0 to impose no limit (the default).*/ - size_t max_output_size; - - /*use custom zlib decoder instead of built in one (default: null). - Should return 0 if success, any non-0 if error (numeric value not exposed).*/ - unsigned (*custom_zlib)(unsigned char**, size_t*, - const unsigned char*, size_t, - const LodePNGDecompressSettings*); - /*use custom deflate decoder instead of built in one (default: null) - if custom_zlib is not null, custom_inflate is ignored (the zlib format uses deflate). - Should return 0 if success, any non-0 if error (numeric value not exposed).*/ - unsigned (*custom_inflate)(unsigned char**, size_t*, - const unsigned char*, size_t, - const LodePNGDecompressSettings*); - - const void* custom_context; /*optional custom settings for custom functions*/ -}; - -extern const LodePNGDecompressSettings lodepng_default_decompress_settings; -void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings); -#endif /*LODEPNG_COMPILE_DECODER*/ - -#ifdef LODEPNG_COMPILE_ENCODER -/* -Settings for zlib compression. Tweaking these settings tweaks the balance -between speed and compression ratio. -*/ -typedef struct LodePNGCompressSettings LodePNGCompressSettings; -struct LodePNGCompressSettings /*deflate = compress*/ { - /*LZ77 related settings*/ - unsigned btype; /*the block type for LZ (0, 1, 2 or 3, see zlib standard). Should be 2 for proper compression.*/ - unsigned use_lz77; /*whether or not to use LZ77. Should be 1 for proper compression.*/ - unsigned windowsize; /*must be a power of two <= 32768. higher compresses more but is slower. Default value: 2048.*/ - unsigned minmatch; /*minimum lz77 length. 3 is normally best, 6 can be better for some PNGs. Default: 0*/ - unsigned nicematch; /*stop searching if >= this length found. Set to 258 for best compression. Default: 128*/ - unsigned lazymatching; /*use lazy matching: better compression but a bit slower. Default: true*/ - - /*use custom zlib encoder instead of built in one (default: null)*/ - unsigned (*custom_zlib)(unsigned char**, size_t*, - const unsigned char*, size_t, - const LodePNGCompressSettings*); - /*use custom deflate encoder instead of built in one (default: null) - if custom_zlib is used, custom_deflate is ignored since only the built in - zlib function will call custom_deflate*/ - unsigned (*custom_deflate)(unsigned char**, size_t*, - const unsigned char*, size_t, - const LodePNGCompressSettings*); - - const void* custom_context; /*optional custom settings for custom functions*/ -}; - -extern const LodePNGCompressSettings lodepng_default_compress_settings; -void lodepng_compress_settings_init(LodePNGCompressSettings* settings); -#endif /*LODEPNG_COMPILE_ENCODER*/ - -#ifdef LODEPNG_COMPILE_PNG -/* -Color mode of an image. Contains all information required to decode the pixel -bits to RGBA colors. This information is the same as used in the PNG file -format, and is used both for PNG and raw image data in LodePNG. -*/ -typedef struct LodePNGColorMode { - /*header (IHDR)*/ - LodePNGColorType colortype; /*color type, see PNG standard or documentation further in this header file*/ - unsigned bitdepth; /*bits per sample, see PNG standard or documentation further in this header file*/ - - /* - palette (PLTE and tRNS) - - Dynamically allocated with the colors of the palette, including alpha. - This field may not be allocated directly, use lodepng_color_mode_init first, - then lodepng_palette_add per color to correctly initialize it (to ensure size - of exactly 1024 bytes). - - The alpha channels must be set as well, set them to 255 for opaque images. - - When decoding, by default you can ignore this palette, since LodePNG already - fills the palette colors in the pixels of the raw RGBA output. - - The palette is only supported for color type 3. - */ - unsigned char* palette; /*palette in RGBARGBA... order. Must be either 0, or when allocated must have 1024 bytes*/ - size_t palettesize; /*palette size in number of colors (amount of used bytes is 4 * palettesize)*/ - - /* - transparent color key (tRNS) - - This color uses the same bit depth as the bitdepth value in this struct, which can be 1-bit to 16-bit. - For grayscale PNGs, r, g and b will all 3 be set to the same. - - When decoding, by default you can ignore this information, since LodePNG sets - pixels with this key to transparent already in the raw RGBA output. - - The color key is only supported for color types 0 and 2. - */ - unsigned key_defined; /*is a transparent color key given? 0 = false, 1 = true*/ - unsigned key_r; /*red/grayscale component of color key*/ - unsigned key_g; /*green component of color key*/ - unsigned key_b; /*blue component of color key*/ -} LodePNGColorMode; - -/*init, cleanup and copy functions to use with this struct*/ -void lodepng_color_mode_init(LodePNGColorMode* info); -void lodepng_color_mode_cleanup(LodePNGColorMode* info); -/*return value is error code (0 means no error)*/ -unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source); -/* Makes a temporary LodePNGColorMode that does not need cleanup (no palette) */ -LodePNGColorMode lodepng_color_mode_make(LodePNGColorType colortype, unsigned bitdepth); - -void lodepng_palette_clear(LodePNGColorMode* info); -/*add 1 color to the palette*/ -unsigned lodepng_palette_add(LodePNGColorMode* info, - unsigned char r, unsigned char g, unsigned char b, unsigned char a); - -/*get the total amount of bits per pixel, based on colortype and bitdepth in the struct*/ -unsigned lodepng_get_bpp(const LodePNGColorMode* info); -/*get the amount of color channels used, based on colortype in the struct. -If a palette is used, it counts as 1 channel.*/ -unsigned lodepng_get_channels(const LodePNGColorMode* info); -/*is it a grayscale type? (only colortype 0 or 4)*/ -unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info); -/*has it got an alpha channel? (only colortype 2 or 6)*/ -unsigned lodepng_is_alpha_type(const LodePNGColorMode* info); -/*has it got a palette? (only colortype 3)*/ -unsigned lodepng_is_palette_type(const LodePNGColorMode* info); -/*only returns true if there is a palette and there is a value in the palette with alpha < 255. -Loops through the palette to check this.*/ -unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info); -/* -Check if the given color info indicates the possibility of having non-opaque pixels in the PNG image. -Returns true if the image can have translucent or invisible pixels (it still be opaque if it doesn't use such pixels). -Returns false if the image can only have opaque pixels. -In detail, it returns true only if it's a color type with alpha, or has a palette with non-opaque values, -or if "key_defined" is true. -*/ -unsigned lodepng_can_have_alpha(const LodePNGColorMode* info); -/*Returns the byte size of a raw image buffer with given width, height and color mode*/ -size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color); - -#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS -/*The information of a Time chunk in PNG.*/ -typedef struct LodePNGTime { - unsigned year; /*2 bytes used (0-65535)*/ - unsigned month; /*1-12*/ - unsigned day; /*1-31*/ - unsigned hour; /*0-23*/ - unsigned minute; /*0-59*/ - unsigned second; /*0-60 (to allow for leap seconds)*/ -} LodePNGTime; -#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ - -/*Information about the PNG image, except pixels, width and height.*/ -typedef struct LodePNGInfo { - /*header (IHDR), palette (PLTE) and transparency (tRNS) chunks*/ - unsigned compression_method;/*compression method of the original file. Always 0.*/ - unsigned filter_method; /*filter method of the original file*/ - unsigned interlace_method; /*interlace method of the original file: 0=none, 1=Adam7*/ - LodePNGColorMode color; /*color type and bits, palette and transparency of the PNG file*/ - -#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS - /* - Suggested background color chunk (bKGD) - - This uses the same color mode and bit depth as the PNG (except no alpha channel), - with values truncated to the bit depth in the unsigned integer. - - For grayscale and palette PNGs, the value is stored in background_r. The values - in background_g and background_b are then unused. - - So when decoding, you may get these in a different color mode than the one you requested - for the raw pixels. - - When encoding with auto_convert, you must use the color model defined in info_png.color for - these values. The encoder normally ignores info_png.color when auto_convert is on, but will - use it to interpret these values (and convert copies of them to its chosen color model). - - When encoding, avoid setting this to an expensive color, such as a non-gray value - when the image is gray, or the compression will be worse since it will be forced to - write the PNG with a more expensive color mode (when auto_convert is on). - - The decoder does not use this background color to edit the color of pixels. This is a - completely optional metadata feature. - */ - unsigned background_defined; /*is a suggested background color given?*/ - unsigned background_r; /*red/gray/palette component of suggested background color*/ - unsigned background_g; /*green component of suggested background color*/ - unsigned background_b; /*blue component of suggested background color*/ - - /* - Non-international text chunks (tEXt and zTXt) - - The char** arrays each contain num strings. The actual messages are in - text_strings, while text_keys are keywords that give a short description what - the actual text represents, e.g. Title, Author, Description, or anything else. - - All the string fields below including strings, keys, names and language tags are null terminated. - The PNG specification uses null characters for the keys, names and tags, and forbids null - characters to appear in the main text which is why we can use null termination everywhere here. - - A keyword is minimum 1 character and maximum 79 characters long (plus the - additional null terminator). It's discouraged to use a single line length - longer than 79 characters for texts. - - Don't allocate these text buffers yourself. Use the init/cleanup functions - correctly and use lodepng_add_text and lodepng_clear_text. - - Standard text chunk keywords and strings are encoded using Latin-1. - */ - size_t text_num; /*the amount of texts in these char** buffers (there may be more texts in itext)*/ - char** text_keys; /*the keyword of a text chunk (e.g. "Comment")*/ - char** text_strings; /*the actual text*/ - - /* - International text chunks (iTXt) - Similar to the non-international text chunks, but with additional strings - "langtags" and "transkeys", and the following text encodings are used: - keys: Latin-1, langtags: ASCII, transkeys and strings: UTF-8. - keys must be 1-79 characters (plus the additional null terminator), the other - strings are any length. - */ - size_t itext_num; /*the amount of international texts in this PNG*/ - char** itext_keys; /*the English keyword of the text chunk (e.g. "Comment")*/ - char** itext_langtags; /*language tag for this text's language, ISO/IEC 646 string, e.g. ISO 639 language tag*/ - char** itext_transkeys; /*keyword translated to the international language - UTF-8 string*/ - char** itext_strings; /*the actual international text - UTF-8 string*/ - - /*time chunk (tIME)*/ - unsigned time_defined; /*set to 1 to make the encoder generate a tIME chunk*/ - LodePNGTime time; - - /*phys chunk (pHYs)*/ - unsigned phys_defined; /*if 0, there is no pHYs chunk and the values below are undefined, if 1 else there is one*/ - unsigned phys_x; /*pixels per unit in x direction*/ - unsigned phys_y; /*pixels per unit in y direction*/ - unsigned phys_unit; /*may be 0 (unknown unit) or 1 (metre)*/ - - /* - Color profile related chunks: gAMA, cHRM, sRGB, iCPP - - LodePNG does not apply any color conversions on pixels in the encoder or decoder and does not interpret these color - profile values. It merely passes on the information. If you wish to use color profiles and convert colors, please - use these values with a color management library. - - See the PNG, ICC and sRGB specifications for more information about the meaning of these values. - */ - - /* gAMA chunk: optional, overridden by sRGB or iCCP if those are present. */ - unsigned gama_defined; /* Whether a gAMA chunk is present (0 = not present, 1 = present). */ - unsigned gama_gamma; /* Gamma exponent times 100000 */ - - /* cHRM chunk: optional, overridden by sRGB or iCCP if those are present. */ - unsigned chrm_defined; /* Whether a cHRM chunk is present (0 = not present, 1 = present). */ - unsigned chrm_white_x; /* White Point x times 100000 */ - unsigned chrm_white_y; /* White Point y times 100000 */ - unsigned chrm_red_x; /* Red x times 100000 */ - unsigned chrm_red_y; /* Red y times 100000 */ - unsigned chrm_green_x; /* Green x times 100000 */ - unsigned chrm_green_y; /* Green y times 100000 */ - unsigned chrm_blue_x; /* Blue x times 100000 */ - unsigned chrm_blue_y; /* Blue y times 100000 */ - - /* - sRGB chunk: optional. May not appear at the same time as iCCP. - If gAMA is also present gAMA must contain value 45455. - If cHRM is also present cHRM must contain respectively 31270,32900,64000,33000,30000,60000,15000,6000. - */ - unsigned srgb_defined; /* Whether an sRGB chunk is present (0 = not present, 1 = present). */ - unsigned srgb_intent; /* Rendering intent: 0=perceptual, 1=rel. colorimetric, 2=saturation, 3=abs. colorimetric */ - - /* - iCCP chunk: optional. May not appear at the same time as sRGB. - - LodePNG does not parse or use the ICC profile (except its color space header field for an edge case), a - separate library to handle the ICC data (not included in LodePNG) format is needed to use it for color - management and conversions. - - For encoding, if iCCP is present, gAMA and cHRM are recommended to be added as well with values that match the ICC - profile as closely as possible, if you wish to do this you should provide the correct values for gAMA and cHRM and - enable their '_defined' flags since LodePNG will not automatically compute them from the ICC profile. - - For encoding, the ICC profile is required by the PNG specification to be an "RGB" profile for non-gray - PNG color types and a "GRAY" profile for gray PNG color types. If you disable auto_convert, you must ensure - the ICC profile type matches your requested color type, else the encoder gives an error. If auto_convert is - enabled (the default), and the ICC profile is not a good match for the pixel data, this will result in an encoder - error if the pixel data has non-gray pixels for a GRAY profile, or a silent less-optimal compression of the pixel - data if the pixels could be encoded as grayscale but the ICC profile is RGB. - - To avoid this do not set an ICC profile in the image unless there is a good reason for it, and when doing so - make sure you compute it carefully to avoid the above problems. - */ - unsigned iccp_defined; /* Whether an iCCP chunk is present (0 = not present, 1 = present). */ - char* iccp_name; /* Null terminated string with profile name, 1-79 bytes */ - /* - The ICC profile in iccp_profile_size bytes. - Don't allocate this buffer yourself. Use the init/cleanup functions - correctly and use lodepng_set_icc and lodepng_clear_icc. - */ - unsigned char* iccp_profile; - unsigned iccp_profile_size; /* The size of iccp_profile in bytes */ - - /* End of color profile related chunks */ - - - /* - unknown chunks: chunks not known by LodePNG, passed on byte for byte. - - There are 3 buffers, one for each position in the PNG where unknown chunks can appear. - Each buffer contains all unknown chunks for that position consecutively. - The 3 positions are: - 0: between IHDR and PLTE, 1: between PLTE and IDAT, 2: between IDAT and IEND. - - For encoding, do not store critical chunks or known chunks that are enabled with a "_defined" flag - above in here, since the encoder will blindly follow this and could then encode an invalid PNG file - (such as one with two IHDR chunks or the disallowed combination of sRGB with iCCP). But do use - this if you wish to store an ancillary chunk that is not supported by LodePNG (such as sPLT or hIST), - or any non-standard PNG chunk. - - Do not allocate or traverse this data yourself. Use the chunk traversing functions declared - later, such as lodepng_chunk_next and lodepng_chunk_append, to read/write this struct. - */ - unsigned char* unknown_chunks_data[3]; - size_t unknown_chunks_size[3]; /*size in bytes of the unknown chunks, given for protection*/ -#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ -} LodePNGInfo; - -/*init, cleanup and copy functions to use with this struct*/ -void lodepng_info_init(LodePNGInfo* info); -void lodepng_info_cleanup(LodePNGInfo* info); -/*return value is error code (0 means no error)*/ -unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source); - -#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS -unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str); /*push back both texts at once*/ -void lodepng_clear_text(LodePNGInfo* info); /*use this to clear the texts again after you filled them in*/ - -unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, - const char* transkey, const char* str); /*push back the 4 texts of 1 chunk at once*/ -void lodepng_clear_itext(LodePNGInfo* info); /*use this to clear the itexts again after you filled them in*/ - -/*replaces if exists*/ -unsigned lodepng_set_icc(LodePNGInfo* info, const char* name, const unsigned char* profile, unsigned profile_size); -void lodepng_clear_icc(LodePNGInfo* info); /*use this to clear the texts again after you filled them in*/ -#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ - -/* -Converts raw buffer from one color type to another color type, based on -LodePNGColorMode structs to describe the input and output color type. -See the reference manual at the end of this header file to see which color conversions are supported. -return value = LodePNG error code (0 if all went ok, an error if the conversion isn't supported) -The out buffer must have size (w * h * bpp + 7) / 8, where bpp is the bits per pixel -of the output color type (lodepng_get_bpp). -For < 8 bpp images, there should not be padding bits at the end of scanlines. -For 16-bit per channel colors, uses big endian format like PNG does. -Return value is LodePNG error code -*/ -unsigned lodepng_convert(unsigned char* out, const unsigned char* in, - const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, - unsigned w, unsigned h); - -#ifdef LODEPNG_COMPILE_DECODER -/* -Settings for the decoder. This contains settings for the PNG and the Zlib -decoder, but not the Info settings from the Info structs. -*/ -typedef struct LodePNGDecoderSettings { - LodePNGDecompressSettings zlibsettings; /*in here is the setting to ignore Adler32 checksums*/ - - /* Check LodePNGDecompressSettings for more ignorable errors such as ignore_adler32 */ - unsigned ignore_crc; /*ignore CRC checksums*/ - unsigned ignore_critical; /*ignore unknown critical chunks*/ - unsigned ignore_end; /*ignore issues at end of file if possible (missing IEND chunk, too large chunk, ...)*/ - /* TODO: make a system involving warnings with levels and a strict mode instead. Other potentially recoverable - errors: srgb rendering intent value, size of content of ancillary chunks, more than 79 characters for some - strings, placement/combination rules for ancillary chunks, crc of unknown chunks, allowed characters - in string keys, etc... */ - - unsigned color_convert; /*whether to convert the PNG to the color type you want. Default: yes*/ - -#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS - unsigned read_text_chunks; /*if false but remember_unknown_chunks is true, they're stored in the unknown chunks*/ - - /*store all bytes from unknown chunks in the LodePNGInfo (off by default, useful for a png editor)*/ - unsigned remember_unknown_chunks; - - /* maximum size for decompressed text chunks. If a text chunk's text is larger than this, an error is returned, - unless reading text chunks is disabled or this limit is set higher or disabled. Set to 0 to allow any size. - By default it is a value that prevents unreasonably large strings from hogging memory. */ - size_t max_text_size; - - /* maximum size for compressed ICC chunks. If the ICC profile is larger than this, an error will be returned. Set to - 0 to allow any size. By default this is a value that prevents ICC profiles that would be much larger than any - legitimate profile could be to hog memory. */ - size_t max_icc_size; -#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ -} LodePNGDecoderSettings; - -void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings); -#endif /*LODEPNG_COMPILE_DECODER*/ - -#ifdef LODEPNG_COMPILE_ENCODER -/*automatically use color type with less bits per pixel if losslessly possible. Default: AUTO*/ -typedef enum LodePNGFilterStrategy { - /*every filter at zero*/ - LFS_ZERO = 0, - /*every filter at 1, 2, 3 or 4 (paeth), unlike LFS_ZERO not a good choice, but for testing*/ - LFS_ONE = 1, - LFS_TWO = 2, - LFS_THREE = 3, - LFS_FOUR = 4, - /*Use filter that gives minimum sum, as described in the official PNG filter heuristic.*/ - LFS_MINSUM, - /*Use the filter type that gives smallest Shannon entropy for this scanline. Depending - on the image, this is better or worse than minsum.*/ - LFS_ENTROPY, - /* - Brute-force-search PNG filters by compressing each filter for each scanline. - Experimental, very slow, and only rarely gives better compression than MINSUM. - */ - LFS_BRUTE_FORCE, - /*use predefined_filters buffer: you specify the filter type for each scanline*/ - LFS_PREDEFINED -} LodePNGFilterStrategy; - -/*Gives characteristics about the integer RGBA colors of the image (count, alpha channel usage, bit depth, ...), -which helps decide which color model to use for encoding. -Used internally by default if "auto_convert" is enabled. Public because it's useful for custom algorithms.*/ -typedef struct LodePNGColorStats { - unsigned colored; /*not grayscale*/ - unsigned key; /*image is not opaque and color key is possible instead of full alpha*/ - unsigned short key_r; /*key values, always as 16-bit, in 8-bit case the byte is duplicated, e.g. 65535 means 255*/ - unsigned short key_g; - unsigned short key_b; - unsigned alpha; /*image is not opaque and alpha channel or alpha palette required*/ - unsigned numcolors; /*amount of colors, up to 257. Not valid if bits == 16 or allow_palette is disabled.*/ - unsigned char palette[1024]; /*Remembers up to the first 256 RGBA colors, in no particular order, only valid when numcolors is valid*/ - unsigned bits; /*bits per channel (not for palette). 1,2 or 4 for grayscale only. 16 if 16-bit per channel required.*/ - size_t numpixels; - - /*user settings for computing/using the stats*/ - unsigned allow_palette; /*default 1. if 0, disallow choosing palette colortype in auto_choose_color, and don't count numcolors*/ - unsigned allow_greyscale; /*default 1. if 0, choose RGB or RGBA even if the image only has gray colors*/ -} LodePNGColorStats; - -void lodepng_color_stats_init(LodePNGColorStats* stats); - -/*Get a LodePNGColorStats of the image. The stats must already have been inited. -Returns error code (e.g. alloc fail) or 0 if ok.*/ -unsigned lodepng_compute_color_stats(LodePNGColorStats* stats, - const unsigned char* image, unsigned w, unsigned h, - const LodePNGColorMode* mode_in); - -/*Settings for the encoder.*/ -typedef struct LodePNGEncoderSettings { - LodePNGCompressSettings zlibsettings; /*settings for the zlib encoder, such as window size, ...*/ - - unsigned auto_convert; /*automatically choose output PNG color type. Default: true*/ - - /*If true, follows the official PNG heuristic: if the PNG uses a palette or lower than - 8 bit depth, set all filters to zero. Otherwise use the filter_strategy. Note that to - completely follow the official PNG heuristic, filter_palette_zero must be true and - filter_strategy must be LFS_MINSUM*/ - unsigned filter_palette_zero; - /*Which filter strategy to use when not using zeroes due to filter_palette_zero. - Set filter_palette_zero to 0 to ensure always using your chosen strategy. Default: LFS_MINSUM*/ - LodePNGFilterStrategy filter_strategy; - /*used if filter_strategy is LFS_PREDEFINED. In that case, this must point to a buffer with - the same length as the amount of scanlines in the image, and each value must <= 5. You - have to cleanup this buffer, LodePNG will never free it. Don't forget that filter_palette_zero - must be set to 0 to ensure this is also used on palette or low bitdepth images.*/ - const unsigned char* predefined_filters; - - /*force creating a PLTE chunk if colortype is 2 or 6 (= a suggested palette). - If colortype is 3, PLTE is _always_ created.*/ - unsigned force_palette; -#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS - /*add LodePNG identifier and version as a text chunk, for debugging*/ - unsigned add_id; - /*encode text chunks as zTXt chunks instead of tEXt chunks, and use compression in iTXt chunks*/ - unsigned text_compression; -#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ -} LodePNGEncoderSettings; - -void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings); -#endif /*LODEPNG_COMPILE_ENCODER*/ - - -#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) -/*The settings, state and information for extended encoding and decoding.*/ -typedef struct LodePNGState { -#ifdef LODEPNG_COMPILE_DECODER - LodePNGDecoderSettings decoder; /*the decoding settings*/ -#endif /*LODEPNG_COMPILE_DECODER*/ -#ifdef LODEPNG_COMPILE_ENCODER - LodePNGEncoderSettings encoder; /*the encoding settings*/ -#endif /*LODEPNG_COMPILE_ENCODER*/ - LodePNGColorMode info_raw; /*specifies the format in which you would like to get the raw pixel buffer*/ - LodePNGInfo info_png; /*info of the PNG image obtained after decoding*/ - unsigned error; -} LodePNGState; - -/*init, cleanup and copy functions to use with this struct*/ -void lodepng_state_init(LodePNGState* state); -void lodepng_state_cleanup(LodePNGState* state); -void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source); -#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ - -#ifdef LODEPNG_COMPILE_DECODER -/* -Same as lodepng_decode_memory, but uses a LodePNGState to allow custom settings and -getting much more information about the PNG image and color mode. -*/ -unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, - LodePNGState* state, - const unsigned char* in, size_t insize); - -/* -Read the PNG header, but not the actual data. This returns only the information -that is in the IHDR chunk of the PNG, such as width, height and color type. The -information is placed in the info_png field of the LodePNGState. -*/ -unsigned lodepng_inspect(unsigned* w, unsigned* h, - LodePNGState* state, - const unsigned char* in, size_t insize); -#endif /*LODEPNG_COMPILE_DECODER*/ - -/* -Reads one metadata chunk (other than IHDR) of the PNG file and outputs what it -read in the state. Returns error code on failure. -Use lodepng_inspect first with a new state, then e.g. lodepng_chunk_find_const -to find the desired chunk type, and if non null use lodepng_inspect_chunk (with -chunk_pointer - start_of_file as pos). -Supports most metadata chunks from the PNG standard (gAMA, bKGD, tEXt, ...). -Ignores unsupported, unknown, non-metadata or IHDR chunks (without error). -Requirements: &in[pos] must point to start of a chunk, must use regular -lodepng_inspect first since format of most other chunks depends on IHDR, and if -there is a PLTE chunk, that one must be inspected before tRNS or bKGD. -*/ -unsigned lodepng_inspect_chunk(LodePNGState* state, size_t pos, - const unsigned char* in, size_t insize); - -#ifdef LODEPNG_COMPILE_ENCODER -/*This function allocates the out buffer with standard malloc and stores the size in *outsize.*/ -unsigned lodepng_encode(unsigned char** out, size_t* outsize, - const unsigned char* image, unsigned w, unsigned h, - LodePNGState* state); -#endif /*LODEPNG_COMPILE_ENCODER*/ - -/* -The lodepng_chunk functions are normally not needed, except to traverse the -unknown chunks stored in the LodePNGInfo struct, or add new ones to it. -It also allows traversing the chunks of an encoded PNG file yourself. - -The chunk pointer always points to the beginning of the chunk itself, that is -the first byte of the 4 length bytes. - -In the PNG file format, chunks have the following format: --4 bytes length: length of the data of the chunk in bytes (chunk itself is 12 bytes longer) --4 bytes chunk type (ASCII a-z,A-Z only, see below) --length bytes of data (may be 0 bytes if length was 0) --4 bytes of CRC, computed on chunk name + data - -The first chunk starts at the 8th byte of the PNG file, the entire rest of the file -exists out of concatenated chunks with the above format. - -PNG standard chunk ASCII naming conventions: --First byte: uppercase = critical, lowercase = ancillary --Second byte: uppercase = public, lowercase = private --Third byte: must be uppercase --Fourth byte: uppercase = unsafe to copy, lowercase = safe to copy -*/ - -/* -Gets the length of the data of the chunk. Total chunk length has 12 bytes more. -There must be at least 4 bytes to read from. If the result value is too large, -it may be corrupt data. -*/ -unsigned lodepng_chunk_length(const unsigned char* chunk); - -/*puts the 4-byte type in null terminated string*/ -void lodepng_chunk_type(char type[5], const unsigned char* chunk); - -/*check if the type is the given type*/ -unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type); - -/*0: it's one of the critical chunk types, 1: it's an ancillary chunk (see PNG standard)*/ -unsigned char lodepng_chunk_ancillary(const unsigned char* chunk); - -/*0: public, 1: private (see PNG standard)*/ -unsigned char lodepng_chunk_private(const unsigned char* chunk); - -/*0: the chunk is unsafe to copy, 1: the chunk is safe to copy (see PNG standard)*/ -unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk); - -/*get pointer to the data of the chunk, where the input points to the header of the chunk*/ -unsigned char* lodepng_chunk_data(unsigned char* chunk); -const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk); - -/*returns 0 if the crc is correct, 1 if it's incorrect (0 for OK as usual!)*/ -unsigned lodepng_chunk_check_crc(const unsigned char* chunk); - -/*generates the correct CRC from the data and puts it in the last 4 bytes of the chunk*/ -void lodepng_chunk_generate_crc(unsigned char* chunk); - -/* -Iterate to next chunks, allows iterating through all chunks of the PNG file. -Input must be at the beginning of a chunk (result of a previous lodepng_chunk_next call, -or the 8th byte of a PNG file which always has the first chunk), or alternatively may -point to the first byte of the PNG file (which is not a chunk but the magic header, the -function will then skip over it and return the first real chunk). -Will output pointer to the start of the next chunk, or at or beyond end of the file if there -is no more chunk after this or possibly if the chunk is corrupt. -Start this process at the 8th byte of the PNG file. -In a non-corrupt PNG file, the last chunk should have name "IEND". -*/ -unsigned char* lodepng_chunk_next(unsigned char* chunk, unsigned char* end); -const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk, const unsigned char* end); - -/*Finds the first chunk with the given type in the range [chunk, end), or returns NULL if not found.*/ -unsigned char* lodepng_chunk_find(unsigned char* chunk, unsigned char* end, const char type[5]); -const unsigned char* lodepng_chunk_find_const(const unsigned char* chunk, const unsigned char* end, const char type[5]); - -/* -Appends chunk to the data in out. The given chunk should already have its chunk header. -The out variable and outsize are updated to reflect the new reallocated buffer. -Returns error code (0 if it went ok) -*/ -unsigned lodepng_chunk_append(unsigned char** out, size_t* outsize, const unsigned char* chunk); - -/* -Appends new chunk to out. The chunk to append is given by giving its length, type -and data separately. The type is a 4-letter string. -The out variable and outsize are updated to reflect the new reallocated buffer. -Returne error code (0 if it went ok) -*/ -unsigned lodepng_chunk_create(unsigned char** out, size_t* outsize, unsigned length, - const char* type, const unsigned char* data); - - -/*Calculate CRC32 of buffer*/ -unsigned lodepng_crc32(const unsigned char* buf, size_t len); -#endif /*LODEPNG_COMPILE_PNG*/ - - -#ifdef LODEPNG_COMPILE_ZLIB -/* -This zlib part can be used independently to zlib compress and decompress a -buffer. It cannot be used to create gzip files however, and it only supports the -part of zlib that is required for PNG, it does not support dictionaries. -*/ - -#ifdef LODEPNG_COMPILE_DECODER -/*Inflate a buffer. Inflate is the decompression step of deflate. Out buffer must be freed after use.*/ -unsigned lodepng_inflate(unsigned char** out, size_t* outsize, - const unsigned char* in, size_t insize, - const LodePNGDecompressSettings* settings); - -/* -Decompresses Zlib data. Reallocates the out buffer and appends the data. The -data must be according to the zlib specification. -Either, *out must be NULL and *outsize must be 0, or, *out must be a valid -buffer and *outsize its size in bytes. out must be freed by user after usage. -*/ -unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, - const unsigned char* in, size_t insize, - const LodePNGDecompressSettings* settings); -#endif /*LODEPNG_COMPILE_DECODER*/ - -#ifdef LODEPNG_COMPILE_ENCODER -/* -Compresses data with Zlib. Reallocates the out buffer and appends the data. -Zlib adds a small header and trailer around the deflate data. -The data is output in the format of the zlib specification. -Either, *out must be NULL and *outsize must be 0, or, *out must be a valid -buffer and *outsize its size in bytes. out must be freed by user after usage. -*/ -unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, - const unsigned char* in, size_t insize, - const LodePNGCompressSettings* settings); - -/* -Find length-limited Huffman code for given frequencies. This function is in the -public interface only for tests, it's used internally by lodepng_deflate. -*/ -unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, - size_t numcodes, unsigned maxbitlen); - -/*Compress a buffer with deflate. See RFC 1951. Out buffer must be freed after use.*/ -unsigned lodepng_deflate(unsigned char** out, size_t* outsize, - const unsigned char* in, size_t insize, - const LodePNGCompressSettings* settings); - -#endif /*LODEPNG_COMPILE_ENCODER*/ -#endif /*LODEPNG_COMPILE_ZLIB*/ - -#ifdef LODEPNG_COMPILE_DISK -/* -Load a file from disk into buffer. The function allocates the out buffer, and -after usage you should free it. -out: output parameter, contains pointer to loaded buffer. -outsize: output parameter, size of the allocated out buffer -filename: the path to the file to load -return value: error code (0 means ok) -*/ -unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename); - -/* -Save a file from buffer to disk. Warning, if it exists, this function overwrites -the file without warning! -buffer: the buffer to write -buffersize: size of the buffer to write -filename: the path to the file to save to -return value: error code (0 means ok) -*/ -unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename); -#endif /*LODEPNG_COMPILE_DISK*/ - -#ifdef LODEPNG_COMPILE_CPP -/* The LodePNG C++ wrapper uses std::vectors instead of manually allocated memory buffers. */ -namespace lodepng { -#ifdef LODEPNG_COMPILE_PNG -class State : public LodePNGState { - public: - State(); - State(const State& other); - ~State(); - State& operator=(const State& other); -}; - -#ifdef LODEPNG_COMPILE_DECODER -/* Same as other lodepng::decode, but using a State for more settings and information. */ -unsigned decode(std::vector& out, unsigned& w, unsigned& h, - State& state, - const unsigned char* in, size_t insize); -unsigned decode(std::vector& out, unsigned& w, unsigned& h, - State& state, - const std::vector& in); -#endif /*LODEPNG_COMPILE_DECODER*/ - -#ifdef LODEPNG_COMPILE_ENCODER -/* Same as other lodepng::encode, but using a State for more settings and information. */ -unsigned encode(std::vector& out, - const unsigned char* in, unsigned w, unsigned h, - State& state); -unsigned encode(std::vector& out, - const std::vector& in, unsigned w, unsigned h, - State& state); -#endif /*LODEPNG_COMPILE_ENCODER*/ - -#ifdef LODEPNG_COMPILE_DISK -/* -Load a file from disk into an std::vector. -return value: error code (0 means ok) -*/ -unsigned load_file(std::vector& buffer, const std::string& filename); - -/* -Save the binary data in an std::vector to a file on disk. The file is overwritten -without warning. -*/ -unsigned save_file(const std::vector& buffer, const std::string& filename); -#endif /* LODEPNG_COMPILE_DISK */ -#endif /* LODEPNG_COMPILE_PNG */ - -#ifdef LODEPNG_COMPILE_ZLIB -#ifdef LODEPNG_COMPILE_DECODER -/* Zlib-decompress an unsigned char buffer */ -unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, - const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); - -/* Zlib-decompress an std::vector */ -unsigned decompress(std::vector& out, const std::vector& in, - const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); -#endif /* LODEPNG_COMPILE_DECODER */ - -#ifdef LODEPNG_COMPILE_ENCODER -/* Zlib-compress an unsigned char buffer */ -unsigned compress(std::vector& out, const unsigned char* in, size_t insize, - const LodePNGCompressSettings& settings = lodepng_default_compress_settings); - -/* Zlib-compress an std::vector */ -unsigned compress(std::vector& out, const std::vector& in, - const LodePNGCompressSettings& settings = lodepng_default_compress_settings); -#endif /* LODEPNG_COMPILE_ENCODER */ -#endif /* LODEPNG_COMPILE_ZLIB */ -} /* namespace lodepng */ -#endif /*LODEPNG_COMPILE_CPP*/ - -/* -TODO: -[.] test if there are no memory leaks or security exploits - done a lot but needs to be checked often -[.] check compatibility with various compilers - done but needs to be redone for every newer version -[X] converting color to 16-bit per channel types -[X] support color profile chunk types (but never let them touch RGB values by default) -[ ] support all public PNG chunk types (almost done except sBIT, sPLT and hIST) -[ ] make sure encoder generates no chunks with size > (2^31)-1 -[ ] partial decoding (stream processing) -[X] let the "isFullyOpaque" function check color keys and transparent palettes too -[X] better name for the variables "codes", "codesD", "codelengthcodes", "clcl" and "lldl" -[ ] allow treating some errors like warnings, when image is recoverable (e.g. 69, 57, 58) -[ ] make warnings like: oob palette, checksum fail, data after iend, wrong/unknown crit chunk, no null terminator in text, ... -[ ] error messages with line numbers (and version) -[ ] errors in state instead of as return code? -[ ] new errors/warnings like suspiciously big decompressed ztxt or iccp chunk -[ ] let the C++ wrapper catch exceptions coming from the standard library and return LodePNG error codes -[ ] allow user to provide custom color conversion functions, e.g. for premultiplied alpha, padding bits or not, ... -[ ] allow user to give data (void*) to custom allocator -[X] provide alternatives for C library functions not present on some platforms (memcpy, ...) -*/ - -#endif /*LV_USE_PNG*/ - -#endif /*LODEPNG_H inclusion guard*/ - -/* -LodePNG Documentation ---------------------- - -0. table of contents --------------------- - - 1. about - 1.1. supported features - 1.2. features not supported - 2. C and C++ version - 3. security - 4. decoding - 5. encoding - 6. color conversions - 6.1. PNG color types - 6.2. color conversions - 6.3. padding bits - 6.4. A note about 16-bits per channel and endianness - 7. error values - 8. chunks and PNG editing - 9. compiler support - 10. examples - 10.1. decoder C++ example - 10.2. decoder C example - 11. state settings reference - 12. changes - 13. contact information - - -1. about --------- - -PNG is a file format to store raster images losslessly with good compression, -supporting different color types and alpha channel. - -LodePNG is a PNG codec according to the Portable Network Graphics (PNG) -Specification (Second Edition) - W3C Recommendation 10 November 2003. - -The specifications used are: - -*) Portable Network Graphics (PNG) Specification (Second Edition): - http://www.w3.org/TR/2003/REC-PNG-20031110 -*) RFC 1950 ZLIB Compressed Data Format version 3.3: - http://www.gzip.org/zlib/rfc-zlib.html -*) RFC 1951 DEFLATE Compressed Data Format Specification ver 1.3: - http://www.gzip.org/zlib/rfc-deflate.html - -The most recent version of LodePNG can currently be found at -http://lodev.org/lodepng/ - -LodePNG works both in C (ISO C90) and C++, with a C++ wrapper that adds -extra functionality. - -LodePNG exists out of two files: --lodepng.h: the header file for both C and C++ --lodepng.c(pp): give it the name lodepng.c or lodepng.cpp (or .cc) depending on your usage - -If you want to start using LodePNG right away without reading this doc, get the -examples from the LodePNG website to see how to use it in code, or check the -smaller examples in chapter 13 here. - -LodePNG is simple but only supports the basic requirements. To achieve -simplicity, the following design choices were made: There are no dependencies -on any external library. There are functions to decode and encode a PNG with -a single function call, and extended versions of these functions taking a -LodePNGState struct allowing to specify or get more information. By default -the colors of the raw image are always RGB or RGBA, no matter what color type -the PNG file uses. To read and write files, there are simple functions to -convert the files to/from buffers in memory. - -This all makes LodePNG suitable for loading textures in games, demos and small -programs, ... It's less suitable for full fledged image editors, loading PNGs -over network (it requires all the image data to be available before decoding can -begin), life-critical systems, ... - -1.1. supported features ------------------------ - -The following features are supported by the decoder: - -*) decoding of PNGs with any color type, bit depth and interlace mode, to a 24- or 32-bit color raw image, - or the same color type as the PNG -*) encoding of PNGs, from any raw image to 24- or 32-bit color, or the same color type as the raw image -*) Adam7 interlace and deinterlace for any color type -*) loading the image from harddisk or decoding it from a buffer from other sources than harddisk -*) support for alpha channels, including RGBA color model, translucent palettes and color keying -*) zlib decompression (inflate) -*) zlib compression (deflate) -*) CRC32 and ADLER32 checksums -*) colorimetric color profile conversions: currently experimentally available in lodepng_util.cpp only, - plus alternatively ability to pass on chroma/gamma/ICC profile information to other color management system. -*) handling of unknown chunks, allowing making a PNG editor that stores custom and unknown chunks. -*) the following chunks are supported by both encoder and decoder: - IHDR: header information - PLTE: color palette - IDAT: pixel data - IEND: the final chunk - tRNS: transparency for palettized images - tEXt: textual information - zTXt: compressed textual information - iTXt: international textual information - bKGD: suggested background color - pHYs: physical dimensions - tIME: modification time - cHRM: RGB chromaticities - gAMA: RGB gamma correction - iCCP: ICC color profile - sRGB: rendering intent - -1.2. features not supported ---------------------------- - -The following features are _not_ supported: - -*) some features needed to make a conformant PNG-Editor might be still missing. -*) partial loading/stream processing. All data must be available and is processed in one call. -*) The following public chunks are not (yet) supported but treated as unknown chunks by LodePNG: - sBIT - hIST - sPLT - - -2. C and C++ version --------------------- - -The C version uses buffers allocated with alloc that you need to free() -yourself. You need to use init and cleanup functions for each struct whenever -using a struct from the C version to avoid exploits and memory leaks. - -The C++ version has extra functions with std::vectors in the interface and the -lodepng::State class which is a LodePNGState with constructor and destructor. - -These files work without modification for both C and C++ compilers because all -the additional C++ code is in "#ifdef __cplusplus" blocks that make C-compilers -ignore it, and the C code is made to compile both with strict ISO C90 and C++. - -To use the C++ version, you need to rename the source file to lodepng.cpp -(instead of lodepng.c), and compile it with a C++ compiler. - -To use the C version, you need to rename the source file to lodepng.c (instead -of lodepng.cpp), and compile it with a C compiler. - - -3. Security ------------ - -Even if carefully designed, it's always possible that LodePNG contains possible -exploits. If you discover one, please let me know, and it will be fixed. - -When using LodePNG, care has to be taken with the C version of LodePNG, as well -as the C-style structs when working with C++. The following conventions are used -for all C-style structs: - --if a struct has a corresponding init function, always call the init function when making a new one --if a struct has a corresponding cleanup function, call it before the struct disappears to avoid memory leaks --if a struct has a corresponding copy function, use the copy function instead of "=". - The destination must also be inited already. - - -4. Decoding ------------ - -Decoding converts a PNG compressed image to a raw pixel buffer. - -Most documentation on using the decoder is at its declarations in the header -above. For C, simple decoding can be done with functions such as -lodepng_decode32, and more advanced decoding can be done with the struct -LodePNGState and lodepng_decode. For C++, all decoding can be done with the -various lodepng::decode functions, and lodepng::State can be used for advanced -features. - -When using the LodePNGState, it uses the following fields for decoding: -*) LodePNGInfo info_png: it stores extra information about the PNG (the input) in here -*) LodePNGColorMode info_raw: here you can say what color mode of the raw image (the output) you want to get -*) LodePNGDecoderSettings decoder: you can specify a few extra settings for the decoder to use - -LodePNGInfo info_png --------------------- - -After decoding, this contains extra information of the PNG image, except the actual -pixels, width and height because these are already gotten directly from the decoder -functions. - -It contains for example the original color type of the PNG image, text comments, -suggested background color, etc... More details about the LodePNGInfo struct are -at its declaration documentation. - -LodePNGColorMode info_raw -------------------------- - -When decoding, here you can specify which color type you want -the resulting raw image to be. If this is different from the colortype of the -PNG, then the decoder will automatically convert the result. This conversion -always works, except if you want it to convert a color PNG to grayscale or to -a palette with missing colors. - -By default, 32-bit color is used for the result. - -LodePNGDecoderSettings decoder ------------------------------- - -The settings can be used to ignore the errors created by invalid CRC and Adler32 -chunks, and to disable the decoding of tEXt chunks. - -There's also a setting color_convert, true by default. If false, no conversion -is done, the resulting data will be as it was in the PNG (after decompression) -and you'll have to puzzle the colors of the pixels together yourself using the -color type information in the LodePNGInfo. - - -5. Encoding ------------ - -Encoding converts a raw pixel buffer to a PNG compressed image. - -Most documentation on using the encoder is at its declarations in the header -above. For C, simple encoding can be done with functions such as -lodepng_encode32, and more advanced decoding can be done with the struct -LodePNGState and lodepng_encode. For C++, all encoding can be done with the -various lodepng::encode functions, and lodepng::State can be used for advanced -features. - -Like the decoder, the encoder can also give errors. However it gives less errors -since the encoder input is trusted, the decoder input (a PNG image that could -be forged by anyone) is not trusted. - -When using the LodePNGState, it uses the following fields for encoding: -*) LodePNGInfo info_png: here you specify how you want the PNG (the output) to be. -*) LodePNGColorMode info_raw: here you say what color type of the raw image (the input) has -*) LodePNGEncoderSettings encoder: you can specify a few settings for the encoder to use - -LodePNGInfo info_png --------------------- - -When encoding, you use this the opposite way as when decoding: for encoding, -you fill in the values you want the PNG to have before encoding. By default it's -not needed to specify a color type for the PNG since it's automatically chosen, -but it's possible to choose it yourself given the right settings. - -The encoder will not always exactly match the LodePNGInfo struct you give, -it tries as close as possible. Some things are ignored by the encoder. The -encoder uses, for example, the following settings from it when applicable: -colortype and bitdepth, text chunks, time chunk, the color key, the palette, the -background color, the interlace method, unknown chunks, ... - -When encoding to a PNG with colortype 3, the encoder will generate a PLTE chunk. -If the palette contains any colors for which the alpha channel is not 255 (so -there are translucent colors in the palette), it'll add a tRNS chunk. - -LodePNGColorMode info_raw -------------------------- - -You specify the color type of the raw image that you give to the input here, -including a possible transparent color key and palette you happen to be using in -your raw image data. - -By default, 32-bit color is assumed, meaning your input has to be in RGBA -format with 4 bytes (unsigned chars) per pixel. - -LodePNGEncoderSettings encoder ------------------------------- - -The following settings are supported (some are in sub-structs): -*) auto_convert: when this option is enabled, the encoder will -automatically choose the smallest possible color mode (including color key) that -can encode the colors of all pixels without information loss. -*) btype: the block type for LZ77. 0 = uncompressed, 1 = fixed huffman tree, - 2 = dynamic huffman tree (best compression). Should be 2 for proper - compression. -*) use_lz77: whether or not to use LZ77 for compressed block types. Should be - true for proper compression. -*) windowsize: the window size used by the LZ77 encoder (1 - 32768). Has value - 2048 by default, but can be set to 32768 for better, but slow, compression. -*) force_palette: if colortype is 2 or 6, you can make the encoder write a PLTE - chunk if force_palette is true. This can used as suggested palette to convert - to by viewers that don't support more than 256 colors (if those still exist) -*) add_id: add text chunk "Encoder: LodePNG " to the image. -*) text_compression: default 1. If 1, it'll store texts as zTXt instead of tEXt chunks. - zTXt chunks use zlib compression on the text. This gives a smaller result on - large texts but a larger result on small texts (such as a single program name). - It's all tEXt or all zTXt though, there's no separate setting per text yet. - - -6. color conversions --------------------- - -An important thing to note about LodePNG, is that the color type of the PNG, and -the color type of the raw image, are completely independent. By default, when -you decode a PNG, you get the result as a raw image in the color type you want, -no matter whether the PNG was encoded with a palette, grayscale or RGBA color. -And if you encode an image, by default LodePNG will automatically choose the PNG -color type that gives good compression based on the values of colors and amount -of colors in the image. It can be configured to let you control it instead as -well, though. - -To be able to do this, LodePNG does conversions from one color mode to another. -It can convert from almost any color type to any other color type, except the -following conversions: RGB to grayscale is not supported, and converting to a -palette when the palette doesn't have a required color is not supported. This is -not supported on purpose: this is information loss which requires a color -reduction algorithm that is beyond the scope of a PNG encoder (yes, RGB to gray -is easy, but there are multiple ways if you want to give some channels more -weight). - -By default, when decoding, you get the raw image in 32-bit RGBA or 24-bit RGB -color, no matter what color type the PNG has. And by default when encoding, -LodePNG automatically picks the best color model for the output PNG, and expects -the input image to be 32-bit RGBA or 24-bit RGB. So, unless you want to control -the color format of the images yourself, you can skip this chapter. - -6.1. PNG color types --------------------- - -A PNG image can have many color types, ranging from 1-bit color to 64-bit color, -as well as palettized color modes. After the zlib decompression and unfiltering -in the PNG image is done, the raw pixel data will have that color type and thus -a certain amount of bits per pixel. If you want the output raw image after -decoding to have another color type, a conversion is done by LodePNG. - -The PNG specification gives the following color types: - -0: grayscale, bit depths 1, 2, 4, 8, 16 -2: RGB, bit depths 8 and 16 -3: palette, bit depths 1, 2, 4 and 8 -4: grayscale with alpha, bit depths 8 and 16 -6: RGBA, bit depths 8 and 16 - -Bit depth is the amount of bits per pixel per color channel. So the total amount -of bits per pixel is: amount of channels * bitdepth. - -6.2. color conversions ----------------------- - -As explained in the sections about the encoder and decoder, you can specify -color types and bit depths in info_png and info_raw to change the default -behaviour. - -If, when decoding, you want the raw image to be something else than the default, -you need to set the color type and bit depth you want in the LodePNGColorMode, -or the parameters colortype and bitdepth of the simple decoding function. - -If, when encoding, you use another color type than the default in the raw input -image, you need to specify its color type and bit depth in the LodePNGColorMode -of the raw image, or use the parameters colortype and bitdepth of the simple -encoding function. - -If, when encoding, you don't want LodePNG to choose the output PNG color type -but control it yourself, you need to set auto_convert in the encoder settings -to false, and specify the color type you want in the LodePNGInfo of the -encoder (including palette: it can generate a palette if auto_convert is true, -otherwise not). - -If the input and output color type differ (whether user chosen or auto chosen), -LodePNG will do a color conversion, which follows the rules below, and may -sometimes result in an error. - -To avoid some confusion: --the decoder converts from PNG to raw image --the encoder converts from raw image to PNG --the colortype and bitdepth in LodePNGColorMode info_raw, are those of the raw image --the colortype and bitdepth in the color field of LodePNGInfo info_png, are those of the PNG --when encoding, the color type in LodePNGInfo is ignored if auto_convert - is enabled, it is automatically generated instead --when decoding, the color type in LodePNGInfo is set by the decoder to that of the original - PNG image, but it can be ignored since the raw image has the color type you requested instead --if the color type of the LodePNGColorMode and PNG image aren't the same, a conversion - between the color types is done if the color types are supported. If it is not - supported, an error is returned. If the types are the same, no conversion is done. --even though some conversions aren't supported, LodePNG supports loading PNGs from any - colortype and saving PNGs to any colortype, sometimes it just requires preparing - the raw image correctly before encoding. --both encoder and decoder use the same color converter. - -The function lodepng_convert does the color conversion. It is available in the -interface but normally isn't needed since the encoder and decoder already call -it. - -Non supported color conversions: --color to grayscale when non-gray pixels are present: no error is thrown, but -the result will look ugly because only the red channel is taken (it assumes all -three channels are the same in this case so ignores green and blue). The reason -no error is given is to allow converting from three-channel grayscale images to -one-channel even if there are numerical imprecisions. --anything to palette when the palette does not have an exact match for a from-color -in it: in this case an error is thrown - -Supported color conversions: --anything to 8-bit RGB, 8-bit RGBA, 16-bit RGB, 16-bit RGBA --any gray or gray+alpha, to gray or gray+alpha --anything to a palette, as long as the palette has the requested colors in it --removing alpha channel --higher to smaller bitdepth, and vice versa - -If you want no color conversion to be done (e.g. for speed or control): --In the encoder, you can make it save a PNG with any color type by giving the -raw color mode and LodePNGInfo the same color mode, and setting auto_convert to -false. --In the decoder, you can make it store the pixel data in the same color type -as the PNG has, by setting the color_convert setting to false. Settings in -info_raw are then ignored. - -6.3. padding bits ------------------ - -In the PNG file format, if a less than 8-bit per pixel color type is used and the scanlines -have a bit amount that isn't a multiple of 8, then padding bits are used so that each -scanline starts at a fresh byte. But that is NOT true for the LodePNG raw input and output. -The raw input image you give to the encoder, and the raw output image you get from the decoder -will NOT have these padding bits, e.g. in the case of a 1-bit image with a width -of 7 pixels, the first pixel of the second scanline will the 8th bit of the first byte, -not the first bit of a new byte. - -6.4. A note about 16-bits per channel and endianness ----------------------------------------------------- - -LodePNG uses unsigned char arrays for 16-bit per channel colors too, just like -for any other color format. The 16-bit values are stored in big endian (most -significant byte first) in these arrays. This is the opposite order of the -little endian used by x86 CPU's. - -LodePNG always uses big endian because the PNG file format does so internally. -Conversions to other formats than PNG uses internally are not supported by -LodePNG on purpose, there are myriads of formats, including endianness of 16-bit -colors, the order in which you store R, G, B and A, and so on. Supporting and -converting to/from all that is outside the scope of LodePNG. - -This may mean that, depending on your use case, you may want to convert the big -endian output of LodePNG to little endian with a for loop. This is certainly not -always needed, many applications and libraries support big endian 16-bit colors -anyway, but it means you cannot simply cast the unsigned char* buffer to an -unsigned short* buffer on x86 CPUs. - - -7. error values ---------------- - -All functions in LodePNG that return an error code, return 0 if everything went -OK, or a non-zero code if there was an error. - -The meaning of the LodePNG error values can be retrieved with the function -lodepng_error_text: given the numerical error code, it returns a description -of the error in English as a string. - -Check the implementation of lodepng_error_text to see the meaning of each code. - -It is not recommended to use the numerical values to programmatically make -different decisions based on error types as the numbers are not guaranteed to -stay backwards compatible. They are for human consumption only. Programmatically -only 0 or non-0 matter. - - -8. chunks and PNG editing -------------------------- - -If you want to add extra chunks to a PNG you encode, or use LodePNG for a PNG -editor that should follow the rules about handling of unknown chunks, or if your -program is able to read other types of chunks than the ones handled by LodePNG, -then that's possible with the chunk functions of LodePNG. - -A PNG chunk has the following layout: - -4 bytes length -4 bytes type name -length bytes data -4 bytes CRC - -8.1. iterating through chunks ------------------------------ - -If you have a buffer containing the PNG image data, then the first chunk (the -IHDR chunk) starts at byte number 8 of that buffer. The first 8 bytes are the -signature of the PNG and are not part of a chunk. But if you start at byte 8 -then you have a chunk, and can check the following things of it. - -NOTE: none of these functions check for memory buffer boundaries. To avoid -exploits, always make sure the buffer contains all the data of the chunks. -When using lodepng_chunk_next, make sure the returned value is within the -allocated memory. - -unsigned lodepng_chunk_length(const unsigned char* chunk): - -Get the length of the chunk's data. The total chunk length is this length + 12. - -void lodepng_chunk_type(char type[5], const unsigned char* chunk): -unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type): - -Get the type of the chunk or compare if it's a certain type - -unsigned char lodepng_chunk_critical(const unsigned char* chunk): -unsigned char lodepng_chunk_private(const unsigned char* chunk): -unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk): - -Check if the chunk is critical in the PNG standard (only IHDR, PLTE, IDAT and IEND are). -Check if the chunk is private (public chunks are part of the standard, private ones not). -Check if the chunk is safe to copy. If it's not, then, when modifying data in a critical -chunk, unsafe to copy chunks of the old image may NOT be saved in the new one if your -program doesn't handle that type of unknown chunk. - -unsigned char* lodepng_chunk_data(unsigned char* chunk): -const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk): - -Get a pointer to the start of the data of the chunk. - -unsigned lodepng_chunk_check_crc(const unsigned char* chunk): -void lodepng_chunk_generate_crc(unsigned char* chunk): - -Check if the crc is correct or generate a correct one. - -unsigned char* lodepng_chunk_next(unsigned char* chunk): -const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk): - -Iterate to the next chunk. This works if you have a buffer with consecutive chunks. Note that these -functions do no boundary checking of the allocated data whatsoever, so make sure there is enough -data available in the buffer to be able to go to the next chunk. - -unsigned lodepng_chunk_append(unsigned char** out, size_t* outsize, const unsigned char* chunk): -unsigned lodepng_chunk_create(unsigned char** out, size_t* outsize, unsigned length, - const char* type, const unsigned char* data): - -These functions are used to create new chunks that are appended to the data in *out that has -length *outsize. The append function appends an existing chunk to the new data. The create -function creates a new chunk with the given parameters and appends it. Type is the 4-letter -name of the chunk. - -8.2. chunks in info_png ------------------------ - -The LodePNGInfo struct contains fields with the unknown chunk in it. It has 3 -buffers (each with size) to contain 3 types of unknown chunks: -the ones that come before the PLTE chunk, the ones that come between the PLTE -and the IDAT chunks, and the ones that come after the IDAT chunks. -It's necessary to make the distinction between these 3 cases because the PNG -standard forces to keep the ordering of unknown chunks compared to the critical -chunks, but does not force any other ordering rules. - -info_png.unknown_chunks_data[0] is the chunks before PLTE -info_png.unknown_chunks_data[1] is the chunks after PLTE, before IDAT -info_png.unknown_chunks_data[2] is the chunks after IDAT - -The chunks in these 3 buffers can be iterated through and read by using the same -way described in the previous subchapter. - -When using the decoder to decode a PNG, you can make it store all unknown chunks -if you set the option settings.remember_unknown_chunks to 1. By default, this -option is off (0). - -The encoder will always encode unknown chunks that are stored in the info_png. -If you need it to add a particular chunk that isn't known by LodePNG, you can -use lodepng_chunk_append or lodepng_chunk_create to the chunk data in -info_png.unknown_chunks_data[x]. - -Chunks that are known by LodePNG should not be added in that way. E.g. to make -LodePNG add a bKGD chunk, set background_defined to true and add the correct -parameters there instead. - - -9. compiler support -------------------- - -No libraries other than the current standard C library are needed to compile -LodePNG. For the C++ version, only the standard C++ library is needed on top. -Add the files lodepng.c(pp) and lodepng.h to your project, include -lodepng.h where needed, and your program can read/write PNG files. - -It is compatible with C90 and up, and C++03 and up. - -If performance is important, use optimization when compiling! For both the -encoder and decoder, this makes a large difference. - -Make sure that LodePNG is compiled with the same compiler of the same version -and with the same settings as the rest of the program, or the interfaces with -std::vectors and std::strings in C++ can be incompatible. - -CHAR_BITS must be 8 or higher, because LodePNG uses unsigned chars for octets. - -*) gcc and g++ - -LodePNG is developed in gcc so this compiler is natively supported. It gives no -warnings with compiler options "-Wall -Wextra -pedantic -ansi", with gcc and g++ -version 4.7.1 on Linux, 32-bit and 64-bit. - -*) Clang - -Fully supported and warning-free. - -*) Mingw - -The Mingw compiler (a port of gcc for Windows) should be fully supported by -LodePNG. - -*) Visual Studio and Visual C++ Express Edition - -LodePNG should be warning-free with warning level W4. Two warnings were disabled -with pragmas though: warning 4244 about implicit conversions, and warning 4996 -where it wants to use a non-standard function fopen_s instead of the standard C -fopen. - -Visual Studio may want "stdafx.h" files to be included in each source file and -give an error "unexpected end of file while looking for precompiled header". -This is not standard C++ and will not be added to the stock LodePNG. You can -disable it for lodepng.cpp only by right clicking it, Properties, C/C++, -Precompiled Headers, and set it to Not Using Precompiled Headers there. - -NOTE: Modern versions of VS should be fully supported, but old versions, e.g. -VS6, are not guaranteed to work. - -*) Compilers on Macintosh - -LodePNG has been reported to work both with gcc and LLVM for Macintosh, both for -C and C++. - -*) Other Compilers - -If you encounter problems on any compilers, feel free to let me know and I may -try to fix it if the compiler is modern and standards compliant. - - -10. examples ------------- - -This decoder example shows the most basic usage of LodePNG. More complex -examples can be found on the LodePNG website. - -10.1. decoder C++ example -------------------------- - -#include "lodepng.h" -#include - -int main(int argc, char *argv[]) { - const char* filename = argc > 1 ? argv[1] : "test.png"; - - //load and decode - std::vector image; - unsigned width, height; - unsigned error = lodepng::decode(image, width, height, filename); - - //if there's an error, display it - if(error) std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl; - - //the pixels are now in the vector "image", 4 bytes per pixel, ordered RGBARGBA..., use it as texture, draw it, ... -} - -10.2. decoder C example ------------------------ - -#include "lodepng.h" - -int main(int argc, char *argv[]) { - unsigned error; - unsigned char* image; - size_t width, height; - const char* filename = argc > 1 ? argv[1] : "test.png"; - - error = lodepng_decode32_file(&image, &width, &height, filename); - - if(error) printf("decoder error %u: %s\n", error, lodepng_error_text(error)); - - / * use image here * / - - free(image); - return 0; -} - -11. state settings reference ----------------------------- - -A quick reference of some settings to set on the LodePNGState - -For decoding: - -state.decoder.zlibsettings.ignore_adler32: ignore ADLER32 checksums -state.decoder.zlibsettings.custom_...: use custom inflate function -state.decoder.ignore_crc: ignore CRC checksums -state.decoder.ignore_critical: ignore unknown critical chunks -state.decoder.ignore_end: ignore missing IEND chunk. May fail if this corruption causes other errors -state.decoder.color_convert: convert internal PNG color to chosen one -state.decoder.read_text_chunks: whether to read in text metadata chunks -state.decoder.remember_unknown_chunks: whether to read in unknown chunks -state.info_raw.colortype: desired color type for decoded image -state.info_raw.bitdepth: desired bit depth for decoded image -state.info_raw....: more color settings, see struct LodePNGColorMode -state.info_png....: no settings for decoder but ouput, see struct LodePNGInfo - -For encoding: - -state.encoder.zlibsettings.btype: disable compression by setting it to 0 -state.encoder.zlibsettings.use_lz77: use LZ77 in compression -state.encoder.zlibsettings.windowsize: tweak LZ77 windowsize -state.encoder.zlibsettings.minmatch: tweak min LZ77 length to match -state.encoder.zlibsettings.nicematch: tweak LZ77 match where to stop searching -state.encoder.zlibsettings.lazymatching: try one more LZ77 matching -state.encoder.zlibsettings.custom_...: use custom deflate function -state.encoder.auto_convert: choose optimal PNG color type, if 0 uses info_png -state.encoder.filter_palette_zero: PNG filter strategy for palette -state.encoder.filter_strategy: PNG filter strategy to encode with -state.encoder.force_palette: add palette even if not encoding to one -state.encoder.add_id: add LodePNG identifier and version as a text chunk -state.encoder.text_compression: use compressed text chunks for metadata -state.info_raw.colortype: color type of raw input image you provide -state.info_raw.bitdepth: bit depth of raw input image you provide -state.info_raw: more color settings, see struct LodePNGColorMode -state.info_png.color.colortype: desired color type if auto_convert is false -state.info_png.color.bitdepth: desired bit depth if auto_convert is false -state.info_png.color....: more color settings, see struct LodePNGColorMode -state.info_png....: more PNG related settings, see struct LodePNGInfo - - -12. changes ------------ - -The version number of LodePNG is the date of the change given in the format -yyyymmdd. - -Some changes aren't backwards compatible. Those are indicated with a (!) -symbol. - -Not all changes are listed here, the commit history in github lists more: -https://github.com/lvandeve/lodepng - -*) 17 okt 2020: prevent decoding too large text/icc chunks by default. -*) 06 mar 2020: simplified some of the dynamic memory allocations. -*) 12 jan 2020: (!) added 'end' argument to lodepng_chunk_next to allow correct - overflow checks. -*) 14 aug 2019: around 25% faster decoding thanks to huffman lookup tables. -*) 15 jun 2019: (!) auto_choose_color API changed (for bugfix: don't use palette - if gray ICC profile) and non-ICC LodePNGColorProfile renamed to - LodePNGColorStats. -*) 30 dec 2018: code style changes only: removed newlines before opening braces. -*) 10 sep 2018: added way to inspect metadata chunks without full decoding. -*) 19 aug 2018: (!) fixed color mode bKGD is encoded with and made it use - palette index in case of palette. -*) 10 aug 2018: (!) added support for gAMA, cHRM, sRGB and iCCP chunks. This - change is backwards compatible unless you relied on unknown_chunks for those. -*) 11 jun 2018: less restrictive check for pixel size integer overflow -*) 14 jan 2018: allow optionally ignoring a few more recoverable errors -*) 17 sep 2017: fix memory leak for some encoder input error cases -*) 27 nov 2016: grey+alpha auto color model detection bugfix -*) 18 apr 2016: Changed qsort to custom stable sort (for platforms w/o qsort). -*) 09 apr 2016: Fixed colorkey usage detection, and better file loading (within - the limits of pure C90). -*) 08 dec 2015: Made load_file function return error if file can't be opened. -*) 24 okt 2015: Bugfix with decoding to palette output. -*) 18 apr 2015: Boundary PM instead of just package-merge for faster encoding. -*) 24 aug 2014: Moved to github -*) 23 aug 2014: Reduced needless memory usage of decoder. -*) 28 jun 2014: Removed fix_png setting, always support palette OOB for - simplicity. Made ColorProfile public. -*) 09 jun 2014: Faster encoder by fixing hash bug and more zeros optimization. -*) 22 dec 2013: Power of two windowsize required for optimization. -*) 15 apr 2013: Fixed bug with LAC_ALPHA and color key. -*) 25 mar 2013: Added an optional feature to ignore some PNG errors (fix_png). -*) 11 mar 2013: (!) Bugfix with custom free. Changed from "my" to "lodepng_" - prefix for the custom allocators and made it possible with a new #define to - use custom ones in your project without needing to change lodepng's code. -*) 28 jan 2013: Bugfix with color key. -*) 27 okt 2012: Tweaks in text chunk keyword length error handling. -*) 8 okt 2012: (!) Added new filter strategy (entropy) and new auto color mode. - (no palette). Better deflate tree encoding. New compression tweak settings. - Faster color conversions while decoding. Some internal cleanups. -*) 23 sep 2012: Reduced warnings in Visual Studio a little bit. -*) 1 sep 2012: (!) Removed #define's for giving custom (de)compression functions - and made it work with function pointers instead. -*) 23 jun 2012: Added more filter strategies. Made it easier to use custom alloc - and free functions and toggle #defines from compiler flags. Small fixes. -*) 6 may 2012: (!) Made plugging in custom zlib/deflate functions more flexible. -*) 22 apr 2012: (!) Made interface more consistent, renaming a lot. Removed - redundant C++ codec classes. Reduced amount of structs. Everything changed, - but it is cleaner now imho and functionality remains the same. Also fixed - several bugs and shrunk the implementation code. Made new samples. -*) 6 nov 2011: (!) By default, the encoder now automatically chooses the best - PNG color model and bit depth, based on the amount and type of colors of the - raw image. For this, autoLeaveOutAlphaChannel replaced by auto_choose_color. -*) 9 okt 2011: simpler hash chain implementation for the encoder. -*) 8 sep 2011: lz77 encoder lazy matching instead of greedy matching. -*) 23 aug 2011: tweaked the zlib compression parameters after benchmarking. - A bug with the PNG filtertype heuristic was fixed, so that it chooses much - better ones (it's quite significant). A setting to do an experimental, slow, - brute force search for PNG filter types is added. -*) 17 aug 2011: (!) changed some C zlib related function names. -*) 16 aug 2011: made the code less wide (max 120 characters per line). -*) 17 apr 2011: code cleanup. Bugfixes. Convert low to 16-bit per sample colors. -*) 21 feb 2011: fixed compiling for C90. Fixed compiling with sections disabled. -*) 11 dec 2010: encoding is made faster, based on suggestion by Peter Eastman - to optimize long sequences of zeros. -*) 13 nov 2010: added LodePNG_InfoColor_hasPaletteAlpha and - LodePNG_InfoColor_canHaveAlpha functions for convenience. -*) 7 nov 2010: added LodePNG_error_text function to get error code description. -*) 30 okt 2010: made decoding slightly faster -*) 26 okt 2010: (!) changed some C function and struct names (more consistent). - Reorganized the documentation and the declaration order in the header. -*) 08 aug 2010: only changed some comments and external samples. -*) 05 jul 2010: fixed bug thanks to warnings in the new gcc version. -*) 14 mar 2010: fixed bug where too much memory was allocated for char buffers. -*) 02 sep 2008: fixed bug where it could create empty tree that linux apps could - read by ignoring the problem but windows apps couldn't. -*) 06 jun 2008: added more error checks for out of memory cases. -*) 26 apr 2008: added a few more checks here and there to ensure more safety. -*) 06 mar 2008: crash with encoding of strings fixed -*) 02 feb 2008: support for international text chunks added (iTXt) -*) 23 jan 2008: small cleanups, and #defines to divide code in sections -*) 20 jan 2008: support for unknown chunks allowing using LodePNG for an editor. -*) 18 jan 2008: support for tIME and pHYs chunks added to encoder and decoder. -*) 17 jan 2008: ability to encode and decode compressed zTXt chunks added - Also various fixes, such as in the deflate and the padding bits code. -*) 13 jan 2008: Added ability to encode Adam7-interlaced images. Improved - filtering code of encoder. -*) 07 jan 2008: (!) changed LodePNG to use ISO C90 instead of C++. A - C++ wrapper around this provides an interface almost identical to before. - Having LodePNG be pure ISO C90 makes it more portable. The C and C++ code - are together in these files but it works both for C and C++ compilers. -*) 29 dec 2007: (!) changed most integer types to unsigned int + other tweaks -*) 30 aug 2007: bug fixed which makes this Borland C++ compatible -*) 09 aug 2007: some VS2005 warnings removed again -*) 21 jul 2007: deflate code placed in new namespace separate from zlib code -*) 08 jun 2007: fixed bug with 2- and 4-bit color, and small interlaced images -*) 04 jun 2007: improved support for Visual Studio 2005: crash with accessing - invalid std::vector element [0] fixed, and level 3 and 4 warnings removed -*) 02 jun 2007: made the encoder add a tag with version by default -*) 27 may 2007: zlib and png code separated (but still in the same file), - simple encoder/decoder functions added for more simple usage cases -*) 19 may 2007: minor fixes, some code cleaning, new error added (error 69), - moved some examples from here to lodepng_examples.cpp -*) 12 may 2007: palette decoding bug fixed -*) 24 apr 2007: changed the license from BSD to the zlib license -*) 11 mar 2007: very simple addition: ability to encode bKGD chunks. -*) 04 mar 2007: (!) tEXt chunk related fixes, and support for encoding - palettized PNG images. Plus little interface change with palette and texts. -*) 03 mar 2007: Made it encode dynamic Huffman shorter with repeat codes. - Fixed a bug where the end code of a block had length 0 in the Huffman tree. -*) 26 feb 2007: Huffman compression with dynamic trees (BTYPE 2) now implemented - and supported by the encoder, resulting in smaller PNGs at the output. -*) 27 jan 2007: Made the Adler-32 test faster so that a timewaste is gone. -*) 24 jan 2007: gave encoder an error interface. Added color conversion from any - greyscale type to 8-bit greyscale with or without alpha. -*) 21 jan 2007: (!) Totally changed the interface. It allows more color types - to convert to and is more uniform. See the manual for how it works now. -*) 07 jan 2007: Some cleanup & fixes, and a few changes over the last days: - encode/decode custom tEXt chunks, separate classes for zlib & deflate, and - at last made the decoder give errors for incorrect Adler32 or Crc. -*) 01 jan 2007: Fixed bug with encoding PNGs with less than 8 bits per channel. -*) 29 dec 2006: Added support for encoding images without alpha channel, and - cleaned out code as well as making certain parts faster. -*) 28 dec 2006: Added "Settings" to the encoder. -*) 26 dec 2006: The encoder now does LZ77 encoding and produces much smaller files now. - Removed some code duplication in the decoder. Fixed little bug in an example. -*) 09 dec 2006: (!) Placed output parameters of public functions as first parameter. - Fixed a bug of the decoder with 16-bit per color. -*) 15 okt 2006: Changed documentation structure -*) 09 okt 2006: Encoder class added. It encodes a valid PNG image from the - given image buffer, however for now it's not compressed. -*) 08 sep 2006: (!) Changed to interface with a Decoder class -*) 30 jul 2006: (!) LodePNG_InfoPng , width and height are now retrieved in different - way. Renamed decodePNG to decodePNGGeneric. -*) 29 jul 2006: (!) Changed the interface: image info is now returned as a - struct of type LodePNG::LodePNG_Info, instead of a vector, which was a bit clumsy. -*) 28 jul 2006: Cleaned the code and added new error checks. - Corrected terminology "deflate" into "inflate". -*) 23 jun 2006: Added SDL example in the documentation in the header, this - example allows easy debugging by displaying the PNG and its transparency. -*) 22 jun 2006: (!) Changed way to obtain error value. Added - loadFile function for convenience. Made decodePNG32 faster. -*) 21 jun 2006: (!) Changed type of info vector to unsigned. - Changed position of palette in info vector. Fixed an important bug that - happened on PNGs with an uncompressed block. -*) 16 jun 2006: Internally changed unsigned into unsigned where - needed, and performed some optimizations. -*) 07 jun 2006: (!) Renamed functions to decodePNG and placed them - in LodePNG namespace. Changed the order of the parameters. Rewrote the - documentation in the header. Renamed files to lodepng.cpp and lodepng.h -*) 22 apr 2006: Optimized and improved some code -*) 07 sep 2005: (!) Changed to std::vector interface -*) 12 aug 2005: Initial release (C++, decoder only) - - -13. contact information ------------------------ - -Feel free to contact me with suggestions, problems, comments, ... concerning -LodePNG. If you encounter a PNG image that doesn't work properly with this -decoder, feel free to send it and I'll use it to find and fix the problem. - -My email address is (puzzle the account and domain together with an @ symbol): -Domain: gmail dot com. -Account: lode dot vandevenne. - - -Copyright (c) 2005-2020 Lode Vandevenne -*/ diff --git a/src/lib/lvgl/src/extra/libs/png/lv_png.h b/src/lib/lvgl/src/extra/libs/png/lv_png.h deleted file mode 100644 index 4380472..0000000 --- a/src/lib/lvgl/src/extra/libs/png/lv_png.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file lv_png.h - * - */ - -#ifndef LV_PNG_H -#define LV_PNG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lv_conf_internal.h" -#if LV_USE_PNG - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Register the PNG decoder functions in LVGL - */ -void lv_png_init(void); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_PNG*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_PNG_H*/ diff --git a/src/lib/lvgl/src/extra/libs/qrcode/lv_qrcode.h b/src/lib/lvgl/src/extra/libs/qrcode/lv_qrcode.h deleted file mode 100644 index b0752ac..0000000 --- a/src/lib/lvgl/src/extra/libs/qrcode/lv_qrcode.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * @file lv_qrcode - * - */ - -#ifndef LV_QRCODE_H -#define LV_QRCODE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" -#if LV_USE_QRCODE - -/********************* - * DEFINES - *********************/ - -extern const lv_obj_class_t lv_qrcode_class; - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create an empty QR code (an `lv_canvas`) object. - * @param parent point to an object where to create the QR code - * @param size width and height of the QR code - * @param dark_color dark color of the QR code - * @param light_color light color of the QR code - * @return pointer to the created QR code object - */ -lv_obj_t * lv_qrcode_create(lv_obj_t * parent, lv_coord_t size, lv_color_t dark_color, lv_color_t light_color); - -/** - * Set the data of a QR code object - * @param qrcode pointer to aQ code object - * @param data data to display - * @param data_len length of data in bytes - * @return LV_RES_OK: if no error; LV_RES_INV: on error - */ -lv_res_t lv_qrcode_update(lv_obj_t * qrcode, const void * data, uint32_t data_len); - -/** - * DEPRECATED: Use normal lv_obj_del instead - * Delete a QR code object - * @param qrcode pointer to a QR code object - */ -void lv_qrcode_delete(lv_obj_t * qrcode); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_QRCODE*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_QRCODE_H*/ diff --git a/src/lib/lvgl/src/extra/libs/qrcode/qrcodegen.h b/src/lib/lvgl/src/extra/libs/qrcode/qrcodegen.h deleted file mode 100644 index b484e91..0000000 --- a/src/lib/lvgl/src/extra/libs/qrcode/qrcodegen.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * QR Code generator library (C) - * - * Copyright (c) Project Nayuki. (MIT License) - * https://www.nayuki.io/page/qr-code-generator-library - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - The Software is provided "as is", without warranty of any kind, express or - * implied, including but not limited to the warranties of merchantability, - * fitness for a particular purpose and noninfringement. In no event shall the - * authors or copyright holders be liable for any claim, damages or other - * liability, whether in an action of contract, tort or otherwise, arising from, - * out of or in connection with the Software or the use or other dealings in the - * Software. - */ - -#pragma once - -#include -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* - * This library creates QR Code symbols, which is a type of two-dimension barcode. - * Invented by Denso Wave and described in the ISO/IEC 18004 standard. - * A QR Code structure is an immutable square grid of black and white cells. - * The library provides functions to create a QR Code from text or binary data. - * The library covers the QR Code Model 2 specification, supporting all versions (sizes) - * from 1 to 40, all 4 error correction levels, and 4 character encoding modes. - * - * Ways to create a QR Code object: - * - High level: Take the payload data and call qrcodegen_encodeText() or qrcodegen_encodeBinary(). - * - Low level: Custom-make the list of segments and call - * qrcodegen_encodeSegments() or qrcodegen_encodeSegmentsAdvanced(). - * (Note that all ways require supplying the desired error correction level and various byte buffers.) - */ - - -/*---- Enum and struct types----*/ - -/* - * The error correction level in a QR Code symbol. - */ -enum qrcodegen_Ecc { - // Must be declared in ascending order of error protection - // so that an internal qrcodegen function works properly - qrcodegen_Ecc_LOW = 0 , // The QR Code can tolerate about 7% erroneous codewords - qrcodegen_Ecc_MEDIUM , // The QR Code can tolerate about 15% erroneous codewords - qrcodegen_Ecc_QUARTILE, // The QR Code can tolerate about 25% erroneous codewords - qrcodegen_Ecc_HIGH , // The QR Code can tolerate about 30% erroneous codewords -}; - - -/* - * The mask pattern used in a QR Code symbol. - */ -enum qrcodegen_Mask { - // A special value to tell the QR Code encoder to - // automatically select an appropriate mask pattern - qrcodegen_Mask_AUTO = -1, - // The eight actual mask patterns - qrcodegen_Mask_0 = 0, - qrcodegen_Mask_1, - qrcodegen_Mask_2, - qrcodegen_Mask_3, - qrcodegen_Mask_4, - qrcodegen_Mask_5, - qrcodegen_Mask_6, - qrcodegen_Mask_7, -}; - - -/* - * Describes how a segment's data bits are interpreted. - */ -enum qrcodegen_Mode { - qrcodegen_Mode_NUMERIC = 0x1, - qrcodegen_Mode_ALPHANUMERIC = 0x2, - qrcodegen_Mode_BYTE = 0x4, - qrcodegen_Mode_KANJI = 0x8, - qrcodegen_Mode_ECI = 0x7, -}; - - -/* - * A segment of character/binary/control data in a QR Code symbol. - * The mid-level way to create a segment is to take the payload data - * and call a factory function such as qrcodegen_makeNumeric(). - * The low-level way to create a segment is to custom-make the bit buffer - * and initialize a qrcodegen_Segment struct with appropriate values. - * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data. - * Any segment longer than this is meaningless for the purpose of generating QR Codes. - * Moreover, the maximum allowed bit length is 32767 because - * the largest QR Code (version 40) has 31329 modules. - */ -struct qrcodegen_Segment { - // The mode indicator of this segment. - enum qrcodegen_Mode mode; - - // The length of this segment's unencoded data. Measured in characters for - // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode. - // Always zero or positive. Not the same as the data's bit length. - int numChars; - - // The data bits of this segment, packed in bitwise big endian. - // Can be null if the bit length is zero. - uint8_t *data; - - // The number of valid data bits used in the buffer. Requires - // 0 <= bitLength <= 32767, and bitLength <= (capacity of data array) * 8. - // The character count (numChars) must agree with the mode and the bit buffer length. - int bitLength; -}; - - - -/*---- Macro constants and functions ----*/ - -#define qrcodegen_VERSION_MIN 1 // The minimum version number supported in the QR Code Model 2 standard -#define qrcodegen_VERSION_MAX 40 // The maximum version number supported in the QR Code Model 2 standard - -// Calculates the number of bytes needed to store any QR Code up to and including the given version number, -// as a compile-time constant. For example, 'uint8_t buffer[qrcodegen_BUFFER_LEN_FOR_VERSION(25)];' -// can store any single QR Code from version 1 to 25 (inclusive). The result fits in an int (or int16). -// Requires qrcodegen_VERSION_MIN <= n <= qrcodegen_VERSION_MAX. -#define qrcodegen_BUFFER_LEN_FOR_VERSION(n) ((((n) * 4 + 17) * ((n) * 4 + 17) + 7) / 8 + 1) - -// The worst-case number of bytes needed to store one QR Code, up to and including -// version 40. This value equals 3918, which is just under 4 kilobytes. -// Use this more convenient value to avoid calculating tighter memory bounds for buffers. -#define qrcodegen_BUFFER_LEN_MAX qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX) - - - -/*---- Functions (high level) to generate QR Codes ----*/ - -/* - * Encodes the given text string to a QR Code, returning true if encoding succeeded. - * If the data is too long to fit in any version in the given range - * at the given ECC level, then false is returned. - * - The input text must be encoded in UTF-8 and contain no NULs. - * - The variables ecl and mask must correspond to enum constant values. - * - Requires 1 <= minVersion <= maxVersion <= 40. - * - The arrays tempBuffer and qrcode must each have a length - * of at least qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion). - * - After the function returns, tempBuffer contains no useful data. - * - If successful, the resulting QR Code may use numeric, - * alphanumeric, or byte mode to encode the text. - * - In the most optimistic case, a QR Code at version 40 with low ECC - * can hold any UTF-8 string up to 2953 bytes, or any alphanumeric string - * up to 4296 characters, or any digit string up to 7089 characters. - * These numbers represent the hard upper limit of the QR Code standard. - * - Please consult the QR Code specification for information on - * data capacities per version, ECC level, and text encoding mode. - */ -bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[], - enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl); - - -/* - * Encodes the given binary data to a QR Code, returning true if encoding succeeded. - * If the data is too long to fit in any version in the given range - * at the given ECC level, then false is returned. - * - The input array range dataAndTemp[0 : dataLen] should normally be - * valid UTF-8 text, but is not required by the QR Code standard. - * - The variables ecl and mask must correspond to enum constant values. - * - Requires 1 <= minVersion <= maxVersion <= 40. - * - The arrays dataAndTemp and qrcode must each have a length - * of at least qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion). - * - After the function returns, the contents of dataAndTemp may have changed, - * and does not represent useful data anymore. - * - If successful, the resulting QR Code will use byte mode to encode the data. - * - In the most optimistic case, a QR Code at version 40 with low ECC can hold any byte - * sequence up to length 2953. This is the hard upper limit of the QR Code standard. - * - Please consult the QR Code specification for information on - * data capacities per version, ECC level, and text encoding mode. - */ -bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], - enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl); - - -/*---- Functions (low level) to generate QR Codes ----*/ - -/* - * Renders a QR Code representing the given segments at the given error correction level. - * The smallest possible QR Code version is automatically chosen for the output. Returns true if - * QR Code creation succeeded, or false if the data is too long to fit in any version. The ECC level - * of the result may be higher than the ecl argument if it can be done without increasing the version. - * This function allows the user to create a custom sequence of segments that switches - * between modes (such as alphanumeric and byte) to encode text in less space. - * This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary(). - * To save memory, the segments' data buffers can alias/overlap tempBuffer, and will - * result in them being clobbered, but the QR Code output will still be correct. - * But the qrcode array must not overlap tempBuffer or any segment's data buffer. - */ -bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len, - enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[]); - - -/* - * Renders a QR Code representing the given segments with the given encoding parameters. - * Returns true if QR Code creation succeeded, or false if the data is too long to fit in the range of versions. - * The smallest possible QR Code version within the given range is automatically - * chosen for the output. Iff boostEcl is true, then the ECC level of the result - * may be higher than the ecl argument if it can be done without increasing the - * version. The mask number is either between 0 to 7 (inclusive) to force that - * mask, or -1 to automatically choose an appropriate mask (which may be slow). - * This function allows the user to create a custom sequence of segments that switches - * between modes (such as alphanumeric and byte) to encode text in less space. - * This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary(). - * To save memory, the segments' data buffers can alias/overlap tempBuffer, and will - * result in them being clobbered, but the QR Code output will still be correct. - * But the qrcode array must not overlap tempBuffer or any segment's data buffer. - */ -bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl, - int minVersion, int maxVersion, int mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[]); - - -/* - * Tests whether the given string can be encoded as a segment in alphanumeric mode. - * A string is encodable iff each character is in the following set: 0 to 9, A to Z - * (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon. - */ -bool qrcodegen_isAlphanumeric(const char *text); - - -/* - * Tests whether the given string can be encoded as a segment in numeric mode. - * A string is encodable iff each character is in the range 0 to 9. - */ -bool qrcodegen_isNumeric(const char *text); - - -/* - * Returns the number of bytes (uint8_t) needed for the data buffer of a segment - * containing the given number of characters using the given mode. Notes: - * - Returns SIZE_MAX on failure, i.e. numChars > INT16_MAX or - * the number of needed bits exceeds INT16_MAX (i.e. 32767). - * - Otherwise, all valid results are in the range [0, ceil(INT16_MAX / 8)], i.e. at most 4096. - * - It is okay for the user to allocate more bytes for the buffer than needed. - * - For byte mode, numChars measures the number of bytes, not Unicode code points. - * - For ECI mode, numChars must be 0, and the worst-case number of bytes is returned. - * An actual ECI segment can have shorter data. For non-ECI modes, the result is exact. - */ -size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars); - - -/* - * Returns a segment representing the given binary data encoded in - * byte mode. All input byte arrays are acceptable. Any text string - * can be converted to UTF-8 bytes and encoded as a byte mode segment. - */ -struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]); - - -/* - * Returns a segment representing the given string of decimal digits encoded in numeric mode. - */ -struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]); - - -/* - * Returns a segment representing the given text string encoded in alphanumeric mode. - * The characters allowed are: 0 to 9, A to Z (uppercase only), space, - * dollar, percent, asterisk, plus, hyphen, period, slash, colon. - */ -struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]); - - -/* - * Returns a segment representing an Extended Channel Interpretation - * (ECI) designator with the given assignment value. - */ -struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]); - - -/*---- Functions to extract raw data from QR Codes ----*/ - -/* - * Returns the side length of the given QR Code, assuming that encoding succeeded. - * The result is in the range [21, 177]. Note that the length of the array buffer - * is related to the side length - every 'uint8_t qrcode[]' must have length at least - * qrcodegen_BUFFER_LEN_FOR_VERSION(version), which equals ceil(size^2 / 8 + 1). - */ -int qrcodegen_getSize(const uint8_t qrcode[]); - - -/* - * Returns the color of the module (pixel) at the given coordinates, which is false - * for white or true for black. The top left corner has the coordinates (x=0, y=0). - * If the given coordinates are out of bounds, then false (white) is returned. - */ -bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y); - -/* - * Returns the qrcode size of the specified version. Returns -1 on failure - */ -int qrcodegen_version2size(int version); -/* - * Returns the min version of the data that can be stored. Returns -1 on failure - */ -int qrcodegen_getMinFitVersion(enum qrcodegen_Ecc ecl, size_t dataLen); - -#ifdef __cplusplus -} -#endif diff --git a/src/lib/lvgl/src/extra/libs/rlottie/lv_rlottie.h b/src/lib/lvgl/src/extra/libs/rlottie/lv_rlottie.h deleted file mode 100644 index d66dc22..0000000 --- a/src/lib/lvgl/src/extra/libs/rlottie/lv_rlottie.h +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @file lv_rlottie.h - * - */ - -#ifndef LV_RLOTTIE_H -#define LV_RLOTTIE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" -#if LV_USE_RLOTTIE - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef enum { - LV_RLOTTIE_CTRL_FORWARD = 0, - LV_RLOTTIE_CTRL_BACKWARD = 1, - LV_RLOTTIE_CTRL_PAUSE = 2, - LV_RLOTTIE_CTRL_PLAY = 0, /* Yes, play = 0 is the default mode */ - LV_RLOTTIE_CTRL_LOOP = 8, -} lv_rlottie_ctrl_t; - -/** definition in lottieanimation_capi.c */ -struct Lottie_Animation_S; -typedef struct { - lv_img_t img_ext; - struct Lottie_Animation_S * animation; - lv_timer_t * task; - lv_img_dsc_t imgdsc; - size_t total_frames; - size_t current_frame; - size_t framerate; - uint32_t * allocated_buf; - size_t allocated_buffer_size; - size_t scanline_width; - lv_rlottie_ctrl_t play_ctrl; - size_t dest_frame; -} lv_rlottie_t; - -extern const lv_obj_class_t lv_rlottie_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_obj_t * lv_rlottie_create_from_file(lv_obj_t * parent, lv_coord_t width, lv_coord_t height, const char * path); - -lv_obj_t * lv_rlottie_create_from_raw(lv_obj_t * parent, lv_coord_t width, lv_coord_t height, - const char * rlottie_desc); - -void lv_rlottie_set_play_mode(lv_obj_t * rlottie, const lv_rlottie_ctrl_t ctrl); -void lv_rlottie_set_current_frame(lv_obj_t * rlottie, const size_t goto_frame); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_RLOTTIE*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_RLOTTIE_H*/ diff --git a/src/lib/lvgl/src/extra/libs/sjpg/lv_sjpg.h b/src/lib/lvgl/src/extra/libs/sjpg/lv_sjpg.h deleted file mode 100644 index d06e80d..0000000 --- a/src/lib/lvgl/src/extra/libs/sjpg/lv_sjpg.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @file lv_sjpg.h - * - */ - -#ifndef LV_SJPEG_H -#define LV_SJPEG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#if LV_USE_SJPG - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void lv_split_jpeg_init(void); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_SJPG*/ - -#ifdef __cplusplus -} -#endif - -#endif /* LV_SJPEG_H */ diff --git a/src/lib/lvgl/src/extra/libs/sjpg/tjpgd.h b/src/lib/lvgl/src/extra/libs/sjpg/tjpgd.h deleted file mode 100644 index b255ccf..0000000 --- a/src/lib/lvgl/src/extra/libs/sjpg/tjpgd.h +++ /dev/null @@ -1,93 +0,0 @@ -/*----------------------------------------------------------------------------/ -/ TJpgDec - Tiny JPEG Decompressor R0.03 include file (C)ChaN, 2021 -/----------------------------------------------------------------------------*/ -#ifndef DEF_TJPGDEC -#define DEF_TJPGDEC - -#ifdef __cplusplus -extern "C" { -#endif - -#include "../../../lv_conf_internal.h" -#if LV_USE_SJPG - -#include "tjpgdcnf.h" -#include -#include - -#if JD_FASTDECODE >= 1 -typedef int16_t jd_yuv_t; -#else -typedef uint8_t jd_yuv_t; -#endif - - -/* Error code */ -typedef enum { - JDR_OK = 0, /* 0: Succeeded */ - JDR_INTR, /* 1: Interrupted by output function */ - JDR_INP, /* 2: Device error or wrong termination of input stream */ - JDR_MEM1, /* 3: Insufficient memory pool for the image */ - JDR_MEM2, /* 4: Insufficient stream input buffer */ - JDR_PAR, /* 5: Parameter error */ - JDR_FMT1, /* 6: Data format error (may be broken data) */ - JDR_FMT2, /* 7: Right format but not supported */ - JDR_FMT3 /* 8: Not supported JPEG standard */ -} JRESULT; - -/* Rectangular region in the output image */ -typedef struct { - uint16_t left; /* Left end */ - uint16_t right; /* Right end */ - uint16_t top; /* Top end */ - uint16_t bottom; /* Bottom end */ -} JRECT; - -/* Decompressor object structure */ -typedef struct JDEC JDEC; -struct JDEC { - size_t dctr; /* Number of bytes available in the input buffer */ - uint8_t* dptr; /* Current data read ptr */ - uint8_t* inbuf; /* Bit stream input buffer */ - uint8_t dbit; /* Number of bits availavble in wreg or reading bit mask */ - uint8_t scale; /* Output scaling ratio */ - uint8_t msx, msy; /* MCU size in unit of block (width, height) */ - uint8_t qtid[3]; /* Quantization table ID of each component, Y, Cb, Cr */ - uint8_t ncomp; /* Number of color components 1:grayscale, 3:color */ - int16_t dcv[3]; /* Previous DC element of each component */ - uint16_t nrst; /* Restart inverval */ - uint16_t width, height; /* Size of the input image (pixel) */ - uint8_t* huffbits[2][2]; /* Huffman bit distribution tables [id][dcac] */ - uint16_t* huffcode[2][2]; /* Huffman code word tables [id][dcac] */ - uint8_t* huffdata[2][2]; /* Huffman decoded data tables [id][dcac] */ - int32_t* qttbl[4]; /* Dequantizer tables [id] */ -#if JD_FASTDECODE >= 1 - uint32_t wreg; /* Working shift register */ - uint8_t marker; /* Detected marker (0:None) */ -#if JD_FASTDECODE == 2 - uint8_t longofs[2][2]; /* Table offset of long code [id][dcac] */ - uint16_t* hufflut_ac[2]; /* Fast huffman decode tables for AC short code [id] */ - uint8_t* hufflut_dc[2]; /* Fast huffman decode tables for DC short code [id] */ -#endif -#endif - void* workbuf; /* Working buffer for IDCT and RGB output */ - jd_yuv_t* mcubuf; /* Working buffer for the MCU */ - void* pool; /* Pointer to available memory pool */ - size_t sz_pool; /* Size of momory pool (bytes available) */ - size_t (*infunc)(JDEC*, uint8_t*, size_t); /* Pointer to jpeg stream input function */ - void* device; /* Pointer to I/O device identifiler for the session */ -}; - - - -/* TJpgDec API functions */ -JRESULT jd_prepare (JDEC* jd, size_t (*infunc)(JDEC*,uint8_t*,size_t), void* pool, size_t sz_pool, void* dev); -JRESULT jd_decomp (JDEC* jd, int (*outfunc)(JDEC*,void*,JRECT*), uint8_t scale); - -#endif /*LV_USE_SJPG*/ - -#ifdef __cplusplus -} -#endif - -#endif /* _TJPGDEC */ diff --git a/src/lib/lvgl/src/extra/libs/sjpg/tjpgdcnf.h b/src/lib/lvgl/src/extra/libs/sjpg/tjpgdcnf.h deleted file mode 100644 index 6d425e6..0000000 --- a/src/lib/lvgl/src/extra/libs/sjpg/tjpgdcnf.h +++ /dev/null @@ -1,33 +0,0 @@ -/*----------------------------------------------*/ -/* TJpgDec System Configurations R0.03 */ -/*----------------------------------------------*/ - -#define JD_SZBUF 512 -/* Specifies size of stream input buffer */ - -#define JD_FORMAT 0 -/* Specifies output pixel format. -/ 0: RGB888 (24-bit/pix) -/ 1: RGB565 (16-bit/pix) -/ 2: Grayscale (8-bit/pix) -*/ - -#define JD_USE_SCALE 1 -/* Switches output descaling feature. -/ 0: Disable -/ 1: Enable -*/ - -#define JD_TBLCLIP 1 -/* Use table conversion for saturation arithmetic. A bit faster, but increases 1 KB of code size. -/ 0: Disable -/ 1: Enable -*/ - -#define JD_FASTDECODE 0 -/* Optimization level -/ 0: Basic optimization. Suitable for 8/16-bit MCUs. -/ 1: + 32-bit barrel shifter. Suitable for 32-bit MCUs. -/ 2: + Table conversion for huffman decoding (wants 6 << HUFF_BIT bytes of RAM) -*/ - diff --git a/src/lib/lvgl/src/extra/lv_extra.h b/src/lib/lvgl/src/extra/lv_extra.h deleted file mode 100644 index c0306a9..0000000 --- a/src/lib/lvgl/src/extra/lv_extra.h +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @file lv_extra.h - * - */ - -#ifndef LV_EXTRA_H -#define LV_EXTRA_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "layouts/lv_layouts.h" -#include "libs/lv_libs.h" -#include "others/lv_others.h" -#include "themes/lv_themes.h" -#include "widgets/lv_widgets.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the extra components - */ -void lv_extra_init(void); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_EXTRA_H*/ diff --git a/src/lib/lvgl/src/extra/others/fragment/lv_fragment.h b/src/lib/lvgl/src/extra/others/fragment/lv_fragment.h deleted file mode 100644 index da30b39..0000000 --- a/src/lib/lvgl/src/extra/others/fragment/lv_fragment.h +++ /dev/null @@ -1,339 +0,0 @@ -/** - * Public header for Fragment - * @file lv_fragment.h - */ - -#ifndef LV_FRAGMENT_H -#define LV_FRAGMENT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lv_conf_internal.h" - -#if LV_USE_FRAGMENT - -#include "../../../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct _lv_fragment_manager_t lv_fragment_manager_t; - -typedef struct _lv_fragment_t lv_fragment_t; -typedef struct _lv_fragment_class_t lv_fragment_class_t; -typedef struct _lv_fragment_managed_states_t lv_fragment_managed_states_t; - -struct _lv_fragment_t { - /** - * Class of this fragment - */ - const lv_fragment_class_t * cls; - /** - * Managed fragment states. If not null, then this fragment is managed. - * - * @warning Don't modify values inside this struct! - */ - lv_fragment_managed_states_t * managed; - /** - * Child fragment manager - */ - lv_fragment_manager_t * child_manager; - /** - * lv_obj returned by create_obj_cb - */ - lv_obj_t * obj; - -}; - -struct _lv_fragment_class_t { - /** - * Constructor function for fragment class - * @param self Fragment instance - * @param args Arguments assigned by fragment manager - */ - void (*constructor_cb)(lv_fragment_t * self, void * args); - - /** - * Destructor function for fragment class - * @param self Fragment instance, will be freed after this call - */ - void (*destructor_cb)(lv_fragment_t * self); - - /** - * Fragment attached to manager - * @param self Fragment instance - */ - void (*attached_cb)(lv_fragment_t * self); - - /** - * Fragment detached from manager - * @param self Fragment instance - */ - void (*detached_cb)(lv_fragment_t * self); - - /** - * Create objects - * @param self Fragment instance - * @param container Container of the objects should be created upon - * @return Created object, NULL if multiple objects has been created - */ - lv_obj_t * (*create_obj_cb)(lv_fragment_t * self, lv_obj_t * container); - - /** - * - * @param self Fragment instance - * @param obj lv_obj returned by create_obj_cb - */ - void (*obj_created_cb)(lv_fragment_t * self, lv_obj_t * obj); - - /** - * Called before objects in the fragment will be deleted. - * - * @param self Fragment instance - * @param obj object with this fragment - */ - void (*obj_will_delete_cb)(lv_fragment_t * self, lv_obj_t * obj); - - /** - * Called when the object created by fragment received `LV_EVENT_DELETE` event - * @param self Fragment instance - * @param obj object with this fragment - */ - void (*obj_deleted_cb)(lv_fragment_t * self, lv_obj_t * obj); - - /** - * Handle event - * @param self Fragment instance - * @param which User-defined ID of event - * @param data1 User-defined data - * @param data2 User-defined data - */ - bool (*event_cb)(lv_fragment_t * self, int code, void * userdata); - - /** - * *REQUIRED*: Allocation size of fragment - */ - size_t instance_size; -}; - -/** - * Fragment states - */ -typedef struct _lv_fragment_managed_states_t { - /** - * Class of the fragment - */ - const lv_fragment_class_t * cls; - /** - * Manager the fragment attached to - */ - lv_fragment_manager_t * manager; - /** - * Container object the fragment adding view to - */ - lv_obj_t * const * container; - /** - * Fragment instance - */ - lv_fragment_t * instance; - /** - * true between `create_obj_cb` and `obj_deleted_cb` - */ - bool obj_created; - /** - * true before `lv_fragment_del_obj` is called. Don't touch any object if this is true - */ - bool destroying_obj; - /** - * true if this fragment is in navigation stack that can be popped - */ - bool in_stack; -} lv_fragment_managed_states_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create fragment manager instance - * @param parent Parent fragment if this manager is placed inside another fragment, can be null. - * @return Fragment manager instance - */ -lv_fragment_manager_t * lv_fragment_manager_create(lv_fragment_t * parent); - -/** - * Destroy fragment manager instance - * @param manager Fragment manager instance - */ -void lv_fragment_manager_del(lv_fragment_manager_t * manager); - -/** - * Create object of all fragments managed by this manager. - * @param manager Fragment manager instance - */ -void lv_fragment_manager_create_obj(lv_fragment_manager_t * manager); - -/** - * Delete object created by all fragments managed by this manager. Instance of fragments will not be deleted. - * @param manager Fragment manager instance - */ -void lv_fragment_manager_del_obj(lv_fragment_manager_t * manager); - -/** - * Attach fragment to manager, and add to container. - * @param manager Fragment manager instance - * @param fragment Fragment instance - * @param container Pointer to container object for manager to add objects to - */ -void lv_fragment_manager_add(lv_fragment_manager_t * manager, lv_fragment_t * fragment, lv_obj_t * const * container); - -/** - * Detach and destroy fragment. If fragment is in navigation stack, remove from it. - * @param manager Fragment manager instance - * @param fragment Fragment instance - */ -void lv_fragment_manager_remove(lv_fragment_manager_t * manager, lv_fragment_t * fragment); - -/** - * Attach fragment to manager and add to navigation stack. - * @param manager Fragment manager instance - * @param fragment Fragment instance - * @param container Pointer to container object for manager to add objects to - */ -void lv_fragment_manager_push(lv_fragment_manager_t * manager, lv_fragment_t * fragment, lv_obj_t * const * container); - -/** - * Remove the top-most fragment for stack - * @param manager Fragment manager instance - * @return true if there is fragment to pop - */ -bool lv_fragment_manager_pop(lv_fragment_manager_t * manager); - -/** - * Replace fragment. Old item in the stack will be removed. - * @param manager Fragment manager instance - * @param fragment Fragment instance - * @param container Pointer to container object for manager to add objects to - */ -void lv_fragment_manager_replace(lv_fragment_manager_t * manager, lv_fragment_t * fragment, - lv_obj_t * const * container); - -/** - * Send event to top-most fragment - * @param manager Fragment manager instance - * @param code User-defined ID of event - * @param userdata User-defined data - * @return true if fragment returned true - */ -bool lv_fragment_manager_send_event(lv_fragment_manager_t * manager, int code, void * userdata); - -/** - * Get stack size of this fragment manager - * @param manager Fragment manager instance - * @return Stack size of this fragment manager - */ -size_t lv_fragment_manager_get_stack_size(lv_fragment_manager_t * manager); - -/** - * Get top most fragment instance - * @param manager Fragment manager instance - * @return Top most fragment instance - */ -lv_fragment_t * lv_fragment_manager_get_top(lv_fragment_manager_t * manager); - -/** - * Find first fragment instance in the container - * @param manager Fragment manager instance - * @param container Container which target fragment added to - * @return First fragment instance in the container - */ -lv_fragment_t * lv_fragment_manager_find_by_container(lv_fragment_manager_t * manager, const lv_obj_t * container); - -/** - * Get parent fragment - * @param manager Fragment manager instance - * @return Parent fragment instance - */ -lv_fragment_t * lv_fragment_manager_get_parent_fragment(lv_fragment_manager_t * manager); - - -/** - * Create a fragment instance. - * - * @param cls Fragment class. This fragment must return non null object. - * @param args Arguments assigned by fragment manager - * @return Fragment instance - */ -lv_fragment_t * lv_fragment_create(const lv_fragment_class_t * cls, void * args); - -/** - * Destroy a fragment. - * @param fragment Fragment instance. - */ -void lv_fragment_del(lv_fragment_t * fragment); - -/** - * Get associated manager of this fragment - * @param fragment Fragment instance - * @return Fragment manager instance - */ -lv_fragment_manager_t * lv_fragment_get_manager(lv_fragment_t * fragment); - -/** - * Get container object of this fragment - * @param fragment Fragment instance - * @return Reference to container object - */ -lv_obj_t * const * lv_fragment_get_container(lv_fragment_t * fragment); - -/** - * Get parent fragment of this fragment - * @param fragment Fragment instance - * @return Parent fragment - */ -lv_fragment_t * lv_fragment_get_parent(lv_fragment_t * fragment); - -/** - * Create object by fragment. - * - * @param fragment Fragment instance. - * @param container Container of the objects should be created upon. - * @return Created object - */ -lv_obj_t * lv_fragment_create_obj(lv_fragment_t * fragment, lv_obj_t * container); - -/** - * Delete created object of a fragment - * - * @param fragment Fragment instance. - */ -void lv_fragment_del_obj(lv_fragment_t * fragment); - -/** - * Destroy obj in fragment, and recreate them. - * @param fragment Fragment instance - */ -void lv_fragment_recreate_obj(lv_fragment_t * fragment); - - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_FRAGMENT*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_FRAGMENT_H*/ diff --git a/src/lib/lvgl/src/extra/others/gridnav/lv_gridnav.h b/src/lib/lvgl/src/extra/others/gridnav/lv_gridnav.h deleted file mode 100644 index f480ded..0000000 --- a/src/lib/lvgl/src/extra/others/gridnav/lv_gridnav.h +++ /dev/null @@ -1,123 +0,0 @@ -/** - * @file lv_templ.c - * - */ - -/********************* - * INCLUDES - *********************/ - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/*This typedef exists purely to keep -Wpedantic happy when the file is empty.*/ -/*It can be removed.*/ -typedef int _keep_pedantic_happy; - -/********************** - * STATIC PROTOTYPES - **********************/ - -/********************** - * STATIC VARIABLES - **********************/ - -/********************** - * MACROS - **********************/ - -/********************** - * GLOBAL FUNCTIONS - **********************/ - -/********************** - * STATIC FUNCTIONS - **********************/ -/** - * @file lv_gridnav.h - * - */ - -#ifndef LV_GRIDFOCUS_H -#define LV_GRIDFOCUS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" - -#if LV_USE_GRIDNAV - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef enum { - LV_GRIDNAV_CTRL_NONE = 0x0, - - /** - * If there is no next/previous object in a direction, - * the focus goes to the object in the next/previous row (on left/right keys) - * or first/last row (on up/down keys) - */ - LV_GRIDNAV_CTRL_ROLLOVER = 0x1, - - /** - * If an arrow is pressed and the focused object can be scrolled in that direction - * then it will be scrolled instead of going to the next/previous object. - * If there is no more room for scrolling the next/previous object will be focused normally */ - LV_GRIDNAV_CTRL_SCROLL_FIRST = 0x2, - -} lv_gridnav_ctrl_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Add grid navigation feature to an object. It expects the children to be arranged - * into a grid-like layout. Although it's not required to have pixel perfect alignment. - * This feature makes possible to use keys to navigate among the children and focus them. - * The keys other than arrows and press/release related events - * are forwarded to the focused child. - * @param obj pointer to an object on which navigation should be applied. - * @param ctrl control flags from `lv_gridnav_ctrl_t`. - */ -void lv_gridnav_add(lv_obj_t * obj, lv_gridnav_ctrl_t ctrl); - -/** - * Remove the grid navigation support from an object - * @param obj pointer to an object - */ -void lv_gridnav_remove(lv_obj_t * obj); - -/** - * Manually focus an object on gridnav container - * @param cont pointer to a gridnav container - * @param to_focus pointer to an object to focus - * @param anim_en LV_ANIM_ON/OFF - */ -void lv_gridnav_set_focused(lv_obj_t * cont, lv_obj_t * to_focus, lv_anim_enable_t anim_en); - -/********************** - * MACROS - **********************/ -#endif /*LV_USE_GRIDNAV*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_GRIDFOCUS_H*/ diff --git a/src/lib/lvgl/src/extra/others/imgfont/lv_imgfont.h b/src/lib/lvgl/src/extra/others/imgfont/lv_imgfont.h deleted file mode 100644 index 5069b62..0000000 --- a/src/lib/lvgl/src/extra/others/imgfont/lv_imgfont.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * @file lv_imgfont.h - * - */ - -#ifndef LV_IMGFONT_H -#define LV_IMGFONT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_IMGFONT - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/* gets the image path name of this character */ -typedef bool (*lv_get_imgfont_path_cb_t)(const lv_font_t * font, void * img_src, - uint16_t len, uint32_t unicode, uint32_t unicode_next); - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Creates a image font with info parameter specified. - * @param height font size - * @param path_cb a function to get the image path name of character. - * @return pointer to the new imgfont or NULL if create error. - */ -lv_font_t * lv_imgfont_create(uint16_t height, lv_get_imgfont_path_cb_t path_cb); - -/** - * Destroy a image font that has been created. - * @param font pointer to image font handle. - */ -void lv_imgfont_destroy(lv_font_t * font); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_IMGFONT*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /* LV_IMGFONT_H */ diff --git a/src/lib/lvgl/src/extra/others/lv_others.h b/src/lib/lvgl/src/extra/others/lv_others.h deleted file mode 100644 index 0223c96..0000000 --- a/src/lib/lvgl/src/extra/others/lv_others.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - * @file lv_others.h - * - */ - -#ifndef LV_OTHERS_H -#define LV_OTHERS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "snapshot/lv_snapshot.h" -#include "monkey/lv_monkey.h" -#include "gridnav/lv_gridnav.h" -#include "fragment/lv_fragment.h" -#include "imgfont/lv_imgfont.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_OTHERS_H*/ diff --git a/src/lib/lvgl/src/extra/others/monkey/lv_monkey.h b/src/lib/lvgl/src/extra/others/monkey/lv_monkey.h deleted file mode 100755 index bf5e13c..0000000 --- a/src/lib/lvgl/src/extra/others/monkey/lv_monkey.h +++ /dev/null @@ -1,118 +0,0 @@ -/** - * @file lv_monkey.h - * - */ -#ifndef LV_MONKEY_H -#define LV_MONKEY_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_MONKEY != 0 - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -struct _lv_monkey; -typedef struct _lv_monkey lv_monkey_t; - -typedef struct { - /**< Input device type*/ - lv_indev_type_t type; - - /**< Monkey execution period*/ - struct { - uint32_t min; - uint32_t max; - } period_range; - - /**< The range of input value*/ - struct { - int32_t min; - int32_t max; - } input_range; -} lv_monkey_config_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize a monkey config with default values - * @param config pointer to 'lv_monkey_config_t' variable to initialize - */ -void lv_monkey_config_init(lv_monkey_config_t * config); - -/** - * Create monkey for test - * @param config pointer to 'lv_monkey_config_t' variable - * @return pointer to the created monkey - */ -lv_monkey_t * lv_monkey_create(const lv_monkey_config_t * config); - -/** - * Get monkey input device - * @param monkey pointer to a monkey - * @return pointer to the input device - */ -lv_indev_t * lv_monkey_get_indev(lv_monkey_t * monkey); - -/** - * Enable monkey - * @param monkey pointer to a monkey - * @param en set to true to enable - */ -void lv_monkey_set_enable(lv_monkey_t * monkey, bool en); - -/** - * Get whether monkey is enabled - * @param monkey pointer to a monkey - * @return return true if monkey enabled - */ -bool lv_monkey_get_enable(lv_monkey_t * monkey); - -#if LV_USE_USER_DATA - -/** - * Set the user_data field of the monkey - * @param monkey pointer to a monkey - * @param user_data pointer to the new user_data. - */ -void lv_monkey_set_user_data(lv_monkey_t * monkey, void * user_data); - -/** - * Get the user_data field of the monkey - * @param monkey pointer to a monkey - * @return the pointer to the user_data of the monkey - */ -void * lv_monkey_get_user_data(lv_monkey_t * monkey); - -#endif/*LV_USE_USER_DATA*/ - -/** - * Delete monkey - * @param monkey pointer to monkey - */ -void lv_monkey_del(lv_monkey_t * monkey); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_MONKEY*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_MONKEY_H*/ diff --git a/src/lib/lvgl/src/extra/others/snapshot/lv_snapshot.h b/src/lib/lvgl/src/extra/others/snapshot/lv_snapshot.h deleted file mode 100644 index 6451926..0000000 --- a/src/lib/lvgl/src/extra/others/snapshot/lv_snapshot.h +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @file lv_snapshot.h - * - */ - -#ifndef LV_SNAPSHOT_H -#define LV_SNAPSHOT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include - -#include "../../../lv_conf_internal.h" -#include "../../../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -#if LV_USE_SNAPSHOT -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** Take snapshot for object with its children. - * - * @param obj The object to generate snapshot. - * @param cf color format for generated image. - * - * @return a pointer to an image descriptor, or NULL if failed. - */ -lv_img_dsc_t * lv_snapshot_take(lv_obj_t * obj, lv_img_cf_t cf); - -/** Free the snapshot image returned by @ref lv_snapshot_take - * - * It will firstly free the data image takes, then the image descriptor. - * - * @param dsc The image descriptor generated by lv_snapshot_take. - * - */ -void lv_snapshot_free(lv_img_dsc_t * dsc); - -/** Get the buffer needed for object snapshot image. - * - * @param obj The object to generate snapshot. - * @param cf color format for generated image. - * - * @return the buffer size needed in bytes - */ -uint32_t lv_snapshot_buf_size_needed(lv_obj_t * obj, lv_img_cf_t cf); - -/** Take snapshot for object with its children, save image info to provided buffer. - * - * @param obj The object to generate snapshot. - * @param cf color format for generated image. - * @param dsc image descriptor to store the image result. - * @param buff the buffer to store image data. - * @param buff_size provided buffer size in bytes. - * - * @return LV_RES_OK on success, LV_RES_INV on error. - */ -lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size); - - -/********************** - * MACROS - **********************/ -#endif /*LV_USE_SNAPSHOT*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/extra/themes/basic/lv_theme_basic.h b/src/lib/lvgl/src/extra/themes/basic/lv_theme_basic.h deleted file mode 100644 index 93a8fa8..0000000 --- a/src/lib/lvgl/src/extra/themes/basic/lv_theme_basic.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * @file lv_theme_basic.h - * - */ - -#ifndef LV_THEME_BASIC_H -#define LV_THEME_BASIC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" - -#if LV_USE_THEME_BASIC - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the theme - * @param disp pointer to display to attach the theme - * @return a pointer to reference this theme later - */ -lv_theme_t * lv_theme_basic_init(lv_disp_t * disp); - -/** -* Check if the theme is initialized -* @return true if default theme is initialized, false otherwise -*/ -bool lv_theme_basic_is_inited(void); - -/********************** - * MACROS - **********************/ - -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_THEME_BASIC_H*/ diff --git a/src/lib/lvgl/src/extra/themes/default/lv_theme_default.h b/src/lib/lvgl/src/extra/themes/default/lv_theme_default.h deleted file mode 100644 index 5b1fd91..0000000 --- a/src/lib/lvgl/src/extra/themes/default/lv_theme_default.h +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file lv_theme_default.h - * - */ - -#ifndef LV_THEME_DEFAULT_H -#define LV_THEME_DEFAULT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" - -#if LV_USE_THEME_DEFAULT - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the theme - * @param color_primary the primary color of the theme - * @param color_secondary the secondary color for the theme - * @param font pointer to a font to use. - * @return a pointer to reference this theme later - */ -lv_theme_t * lv_theme_default_init(lv_disp_t * disp, lv_color_t color_primary, lv_color_t color_secondary, bool dark, - const lv_font_t * font); - -/** - * Get default theme - * @return a pointer to default theme, or NULL if this is not initialized - */ -lv_theme_t * lv_theme_default_get(void); - -/** - * Check if default theme is initialized - * @return true if default theme is initialized, false otherwise - */ -bool lv_theme_default_is_inited(void); - -/********************** - * MACROS - **********************/ - -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_THEME_DEFAULT_H*/ diff --git a/src/lib/lvgl/src/extra/themes/lv_themes.h b/src/lib/lvgl/src/extra/themes/lv_themes.h deleted file mode 100644 index 372f626..0000000 --- a/src/lib/lvgl/src/extra/themes/lv_themes.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file lv_themes.h - * - */ - -#ifndef LV_THEMES_H -#define LV_THEMES_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "default/lv_theme_default.h" -#include "mono/lv_theme_mono.h" -#include "basic/lv_theme_basic.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_THEMES_H*/ diff --git a/src/lib/lvgl/src/extra/themes/mono/lv_theme_mono.h b/src/lib/lvgl/src/extra/themes/mono/lv_theme_mono.h deleted file mode 100644 index 10b8f18..0000000 --- a/src/lib/lvgl/src/extra/themes/mono/lv_theme_mono.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - * @file lv_theme_mono.h - * - */ - -#ifndef LV_USE_THEME_MONO_H -#define LV_USE_THEME_MONO_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" - -#if LV_USE_THEME_MONO - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the theme - * @param color_primary the primary color of the theme - * @param color_secondary the secondary color for the theme - * @param font pointer to a font to use. - * @return a pointer to reference this theme later - */ -lv_theme_t * lv_theme_mono_init(lv_disp_t * disp, bool dark_bg, const lv_font_t * font); - -/** -* Check if the theme is initialized -* @return true if default theme is initialized, false otherwise -*/ -bool lv_theme_mono_is_inited(void); - -/********************** - * MACROS - **********************/ - -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_USE_THEME_MONO_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/animimg/lv_animimg.h b/src/lib/lvgl/src/extra/widgets/animimg/lv_animimg.h deleted file mode 100644 index 6329494..0000000 --- a/src/lib/lvgl/src/extra/widgets/animimg/lv_animimg.h +++ /dev/null @@ -1,103 +0,0 @@ -/** - * @file lv_animimg.h - * - */ - -#ifndef LV_ANIM_IMG_H -#define LV_ANIM_IMG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_ANIMIMG != 0 - -/*Testing of dependencies*/ -#if LV_USE_IMG == 0 -#error "lv_animimg: lv_img is required. Enable it in lv_conf.h (LV_USE_IMG 1)" -#endif - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -extern const lv_obj_class_t lv_animimg_class; - -/*Data of image*/ -typedef struct { - lv_img_t img; - lv_anim_t anim; - /*picture sequence */ - lv_img_dsc_t ** dsc; - int8_t pic_count; -} lv_animimg_t; - - -/*Image parts*/ -enum { - LV_ANIM_IMG_PART_MAIN, -}; -typedef uint8_t lv_animimg_part_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create an animation image objects - * @param parent pointer to an object, it will be the parent of the new button - * @return pointer to the created animation image object - */ -lv_obj_t * lv_animimg_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the image animation images source. - * @param img pointer to an animation image object - * @param dsc pointer to a series images - * @param num images' number - */ -void lv_animimg_set_src(lv_obj_t * img, lv_img_dsc_t * dsc[], uint8_t num); - -/** - * Startup the image animation. - * @param obj pointer to an animation image object - */ -void lv_animimg_start(lv_obj_t * obj); - -/** - * Set the image animation duration time. unit:ms - * @param img pointer to an animation image object - */ -void lv_animimg_set_duration(lv_obj_t * img, uint32_t duration); - -/** - * Set the image animation reapeatly play times. - * @param img pointer to an animation image object - * @param count the number of times to repeat the animation - */ -void lv_animimg_set_repeat_count(lv_obj_t * img, uint16_t count); - -/*===================== - * Getter functions - *====================*/ - -#endif /*LV_USE_ANIMIMG*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_ANIM_IMG_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar.h b/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar.h deleted file mode 100644 index 2511b2f..0000000 --- a/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar.h +++ /dev/null @@ -1,164 +0,0 @@ -/** - * @file lv_calendar.h - * - */ - -#ifndef LV_CALENDAR_H -#define LV_CALENDAR_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../widgets/lv_btnmatrix.h" - -#if LV_USE_CALENDAR - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** - * Represents a date on the calendar object (platform-agnostic). - */ -typedef struct { - uint16_t year; - int8_t month; /** 1..12*/ - int8_t day; /** 1..31*/ -} lv_calendar_date_t; - -/*Data of calendar*/ -typedef struct { - lv_obj_t obj; - lv_obj_t * btnm; - /*New data for this type*/ - lv_calendar_date_t today; /*Date of today*/ - lv_calendar_date_t showed_date; /*Currently visible month (day is ignored)*/ - lv_calendar_date_t * - highlighted_dates; /*Apply different style on these days (pointer to an array defined by the user)*/ - uint16_t highlighted_dates_num; /*Number of elements in `highlighted_days`*/ - const char * map[8 * 7]; - char nums [7 * 6][4]; -} lv_calendar_t; - -extern const lv_obj_class_t lv_calendar_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_obj_t * lv_calendar_create(lv_obj_t * parent); - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the today's date - * @param obj pointer to a calendar object - * @param year today's year - * @param month today's month [1..12] - * @param day today's day [1..31] - */ -void lv_calendar_set_today_date(lv_obj_t * obj, uint32_t year, uint32_t month, uint32_t day); - -/** - * Set the currently showed - * @param obj pointer to a calendar object - * @param year today's year - * @param month today's month [1..12] - */ -void lv_calendar_set_showed_date(lv_obj_t * obj, uint32_t year, uint32_t month); - -/** - * Set the highlighted dates - * @param obj pointer to a calendar object - * @param highlighted pointer to an `lv_calendar_date_t` array containing the dates. - * Only the pointer will be saved so this variable can't be local which will be destroyed later. - * @param date_num number of dates in the array - */ -void lv_calendar_set_highlighted_dates(lv_obj_t * obj, lv_calendar_date_t highlighted[], uint16_t date_num); - -/** - * Set the name of the days - * @param obj pointer to a calendar object - * @param day_names pointer to an array with the names. - * E.g. `const char * days[7] = {"Sun", "Mon", ...}` - * Only the pointer will be saved so this variable can't be local which will be destroyed later. - */ -void lv_calendar_set_day_names(lv_obj_t * obj, const char ** day_names); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the button matrix object of the calendar. - * It shows the dates and day names. - * @param obj pointer to a calendar object - * @return pointer to a the button matrix - */ -lv_obj_t * lv_calendar_get_btnmatrix(const lv_obj_t * obj); - -/** - * Get the today's date - * @param calendar pointer to a calendar object - * @return return pointer to an `lv_calendar_date_t` variable containing the date of today. - */ -const lv_calendar_date_t * lv_calendar_get_today_date(const lv_obj_t * calendar); - -/** - * Get the currently showed - * @param calendar pointer to a calendar object - * @return pointer to an `lv_calendar_date_t` variable containing the date is being shown. - */ -const lv_calendar_date_t * lv_calendar_get_showed_date(const lv_obj_t * calendar); - -/** - * Get the highlighted dates - * @param calendar pointer to a calendar object - * @return pointer to an `lv_calendar_date_t` array containing the dates. - */ -lv_calendar_date_t * lv_calendar_get_highlighted_dates(const lv_obj_t * calendar); - -/** - * Get the number of the highlighted dates - * @param calendar pointer to a calendar object - * @return number of highlighted days - */ -uint16_t lv_calendar_get_highlighted_dates_num(const lv_obj_t * calendar); - -/** - * Get the currently pressed day - * @param calendar pointer to a calendar object - * @param date store the pressed date here - * @return LV_RES_OK: there is a valid pressed date; LV_RES_INV: there is no pressed data - */ -lv_res_t lv_calendar_get_pressed_date(const lv_obj_t * calendar, lv_calendar_date_t * date); - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_CALENDAR*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CALENDAR_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.h b/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.h deleted file mode 100644 index 609ccb0..0000000 --- a/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file lv_calendar_header_arrow.h - * - */ - -#ifndef LV_CALENDAR_HEADER_ARROW_H -#define LV_CALENDAR_HEADER_ARROW_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" -#if LV_USE_CALENDAR_HEADER_ARROW - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -extern const lv_obj_class_t lv_calendar_header_arrow_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a calendar header with drop-drowns to select the year and month - * @param parent pointer to a calendar object. - * @return the created header - */ -lv_obj_t * lv_calendar_header_arrow_create(lv_obj_t * parent); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_CALENDAR_HEADER_ARROW*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CALENDAR_HEADER_ARROW_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.h b/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.h deleted file mode 100644 index fca2197..0000000 --- a/src/lib/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file lv_calendar_header_dropdown.h - * - */ - -#ifndef LV_CALENDAR_HEADER_DROPDOWN_H -#define LV_CALENDAR_HEADER_DROPDOWN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" -#if LV_USE_CALENDAR_HEADER_DROPDOWN - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -extern const lv_obj_class_t lv_calendar_header_dropdown_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a calendar header with drop-drowns to select the year and month - * @param parent pointer to a calendar object. - * @return the created header - */ -lv_obj_t * lv_calendar_header_dropdown_create(lv_obj_t * parent); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_CALENDAR_HEADER_ARROW*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CALENDAR_HEADER_DROPDOWN_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/chart/lv_chart.h b/src/lib/lvgl/src/extra/widgets/chart/lv_chart.h deleted file mode 100644 index 394c0e7..0000000 --- a/src/lib/lvgl/src/extra/widgets/chart/lv_chart.h +++ /dev/null @@ -1,460 +0,0 @@ -/** - * @file lv_chart.h - * - */ - -#ifndef LV_CHART_H -#define LV_CHART_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_CHART != 0 - -/********************* - * DEFINES - *********************/ - -/**Default value of points. Can be used to not draw a point*/ -#if LV_USE_LARGE_COORD -#define LV_CHART_POINT_NONE (INT32_MAX) -#else -#define LV_CHART_POINT_NONE (INT16_MAX) -#endif -LV_EXPORT_CONST_INT(LV_CHART_POINT_NONE); - -/********************** - * TYPEDEFS - **********************/ - -/** - * Chart types - */ -enum { - LV_CHART_TYPE_NONE, /**< Don't draw the series*/ - LV_CHART_TYPE_LINE, /**< Connect the points with lines*/ - LV_CHART_TYPE_BAR, /**< Draw columns*/ - LV_CHART_TYPE_SCATTER, /**< Draw points and lines in 2D (x,y coordinates)*/ -}; -typedef uint8_t lv_chart_type_t; - -/** - * Chart update mode for `lv_chart_set_next` - */ -enum { - LV_CHART_UPDATE_MODE_SHIFT, /**< Shift old data to the left and add the new one the right*/ - LV_CHART_UPDATE_MODE_CIRCULAR, /**< Add the new data in a circular way*/ -}; -typedef uint8_t lv_chart_update_mode_t; - -/** - * Enumeration of the axis' - */ -enum { - LV_CHART_AXIS_PRIMARY_Y = 0x00, - LV_CHART_AXIS_SECONDARY_Y = 0x01, - LV_CHART_AXIS_PRIMARY_X = 0x02, - LV_CHART_AXIS_SECONDARY_X = 0x04, - _LV_CHART_AXIS_LAST -}; -typedef uint8_t lv_chart_axis_t; - -/** - * Descriptor a chart series - */ -typedef struct { - lv_coord_t * x_points; - lv_coord_t * y_points; - lv_color_t color; - uint16_t start_point; - uint8_t hidden : 1; - uint8_t x_ext_buf_assigned : 1; - uint8_t y_ext_buf_assigned : 1; - uint8_t x_axis_sec : 1; - uint8_t y_axis_sec : 1; -} lv_chart_series_t; - -typedef struct { - lv_point_t pos; - lv_coord_t point_id; - lv_color_t color; - lv_chart_series_t * ser; - lv_dir_t dir; - uint8_t pos_set: 1; /*1: pos is set; 0: point_id is set*/ -} lv_chart_cursor_t; - -typedef struct { - lv_coord_t major_len; - lv_coord_t minor_len; - lv_coord_t draw_size; - uint32_t minor_cnt : 15; - uint32_t major_cnt : 15; - uint32_t label_en : 1; -} lv_chart_tick_dsc_t; - - -typedef struct { - lv_obj_t obj; - lv_ll_t series_ll; /**< Linked list for the series (stores lv_chart_series_t)*/ - lv_ll_t cursor_ll; /**< Linked list for the cursors (stores lv_chart_cursor_t)*/ - lv_chart_tick_dsc_t tick[4]; - lv_coord_t ymin[2]; - lv_coord_t ymax[2]; - lv_coord_t xmin[2]; - lv_coord_t xmax[2]; - lv_coord_t pressed_point_id; - uint16_t hdiv_cnt; /**< Number of horizontal division lines*/ - uint16_t vdiv_cnt; /**< Number of vertical division lines*/ - uint16_t point_cnt; /**< Point number in a data line*/ - uint16_t zoom_x; - uint16_t zoom_y; - lv_chart_type_t type : 3; /**< Line or column chart*/ - lv_chart_update_mode_t update_mode : 1; -} lv_chart_t; - -extern const lv_obj_class_t lv_chart_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_chart_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_CHART_DRAW_PART_DIV_LINE_INIT, /**< Used before/after drawn the div lines*/ - LV_CHART_DRAW_PART_DIV_LINE_HOR, /**< Used for each horizontal division lines*/ - LV_CHART_DRAW_PART_DIV_LINE_VER, /**< Used for each vertical division lines*/ - LV_CHART_DRAW_PART_LINE_AND_POINT, /**< Used on line and scatter charts for lines and points*/ - LV_CHART_DRAW_PART_BAR, /**< Used on bar charts for the rectangles*/ - LV_CHART_DRAW_PART_CURSOR, /**< Used on cursor lines and points*/ - LV_CHART_DRAW_PART_TICK_LABEL, /**< Used on tick lines and labels*/ -} lv_chart_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a chart object - * @param parent pointer to an object, it will be the parent of the new chart - * @return pointer to the created chart - */ -lv_obj_t * lv_chart_create(lv_obj_t * parent); - -/** - * Set a new type for a chart - * @param obj pointer to a chart object - * @param type new type of the chart (from 'lv_chart_type_t' enum) - */ -void lv_chart_set_type(lv_obj_t * obj, lv_chart_type_t type); -/** - * Set the number of points on a data line on a chart - * @param obj pointer to a chart object - * @param cnt new number of points on the data lines - */ -void lv_chart_set_point_count(lv_obj_t * obj, uint16_t cnt); - -/** - * Set the minimal and maximal y values on an axis - * @param obj pointer to a chart object - * @param axis `LV_CHART_AXIS_PRIMARY_Y` or `LV_CHART_AXIS_SECONDARY_Y` - * @param min minimum value of the y axis - * @param max maximum value of the y axis - */ -void lv_chart_set_range(lv_obj_t * obj, lv_chart_axis_t axis, lv_coord_t min, lv_coord_t max); - -/** - * Set update mode of the chart object. Affects - * @param obj pointer to a chart object - * @param mode the update mode - */ -void lv_chart_set_update_mode(lv_obj_t * obj, lv_chart_update_mode_t update_mode); - -/** - * Set the number of horizontal and vertical division lines - * @param obj pointer to a chart object - * @param hdiv number of horizontal division lines - * @param vdiv number of vertical division lines - */ -void lv_chart_set_div_line_count(lv_obj_t * obj, uint8_t hdiv, uint8_t vdiv); - -/** - * Zoom into the chart in X direction - * @param obj pointer to a chart object - * @param zoom_x zoom in x direction. LV_ZOOM_NONE or 256 for no zoom, 512 double zoom - */ -void lv_chart_set_zoom_x(lv_obj_t * obj, uint16_t zoom_x); - -/** - * Zoom into the chart in Y direction - * @param obj pointer to a chart object - * @param zoom_y zoom in y direction. LV_ZOOM_NONE or 256 for no zoom, 512 double zoom - */ -void lv_chart_set_zoom_y(lv_obj_t * obj, uint16_t zoom_y); - -/** - * Get X zoom of a chart - * @param obj pointer to a chart object - * @return the X zoom value - */ -uint16_t lv_chart_get_zoom_x(const lv_obj_t * obj); - -/** - * Get Y zoom of a chart - * @param obj pointer to a chart object - * @return the Y zoom value - */ -uint16_t lv_chart_get_zoom_y(const lv_obj_t * obj); - -/** - * Set the number of tick lines on an axis - * @param obj pointer to a chart object - * @param axis an axis which ticks count should be set - * @param major_len length of major ticks - * @param minor_len length of minor ticks - * @param major_cnt number of major ticks on the axis - * @param minor_cnt number of minor ticks between two major ticks - * @param label_en true: enable label drawing on major ticks - * @param draw_size extra size required to draw the tick and labels - * (start with 20 px and increase if the ticks/labels are clipped) - */ -void lv_chart_set_axis_tick(lv_obj_t * obj, lv_chart_axis_t axis, lv_coord_t major_len, lv_coord_t minor_len, - lv_coord_t major_cnt, lv_coord_t minor_cnt, bool label_en, lv_coord_t draw_size); - -/** - * Get the type of a chart - * @param obj pointer to chart object - * @return type of the chart (from 'lv_chart_t' enum) - */ -lv_chart_type_t lv_chart_get_type(const lv_obj_t * obj); - -/** - * Get the data point number per data line on chart - * @param chart pointer to chart object - * @return point number on each data line - */ -uint16_t lv_chart_get_point_count(const lv_obj_t * obj); - -/** - * Get the current index of the x-axis start point in the data array - * @param chart pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @return the index of the current x start point in the data array - */ -uint16_t lv_chart_get_x_start_point(const lv_obj_t * obj, lv_chart_series_t * ser); - -/** - * Get the position of a point to the chart. - * @param chart pointer to a chart object - * @param ser pointer to series - * @param id the index. - * @param p_out store the result position here - */ -void lv_chart_get_point_pos_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_point_t * p_out); - -/** - * Refresh a chart if its data line has changed - * @param chart pointer to chart object - */ -void lv_chart_refresh(lv_obj_t * obj); - -/*====================== - * Series - *=====================*/ - -/** - * Allocate and add a data series to the chart - * @param obj pointer to a chart object - * @param color color of the data series - * @param axis the y axis to which the series should be attached (::LV_CHART_AXIS_PRIMARY_Y or ::LV_CHART_AXIS_SECONDARY_Y) - * @return pointer to the allocated data series - */ -lv_chart_series_t * lv_chart_add_series(lv_obj_t * obj, lv_color_t color, lv_chart_axis_t axis); - -/** - * Deallocate and remove a data series from a chart - * @param chart pointer to a chart object - * @param series pointer to a data series on 'chart' - */ -void lv_chart_remove_series(lv_obj_t * obj, lv_chart_series_t * series); - -/** - * Hide/Unhide a single series of a chart. - * @param obj pointer to a chart object. - * @param series pointer to a series object - * @param hide true: hide the series - */ -void lv_chart_hide_series(lv_obj_t * chart, lv_chart_series_t * series, bool hide); - -/** - * Change the color of a series - * @param obj pointer to a chart object. - * @param series pointer to a series object - * @param color the new color of the series - */ -void lv_chart_set_series_color(lv_obj_t * chart, lv_chart_series_t * series, lv_color_t color); - -/** - * Set the index of the x-axis start point in the data array. - * This point will be considers the first (left) point and the other points will be drawn after it. - * @param obj pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @param id the index of the x point in the data array - */ -void lv_chart_set_x_start_point(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id); - -/** - * Get the next series. - * @param chart pointer to a chart - * @param ser the previous series or NULL to get the first - * @return the next series or NULL if there is no more. - */ -lv_chart_series_t * lv_chart_get_series_next(const lv_obj_t * chart, const lv_chart_series_t * ser); - - - -/*===================== - * Cursor - *====================*/ - -/** - * Add a cursor with a given color - * @param obj pointer to chart object - * @param color color of the cursor - * @param dir direction of the cursor. `LV_DIR_RIGHT/LEFT/TOP/DOWN/HOR/VER/ALL`. OR-ed values are possible - * @return pointer to the created cursor - */ -lv_chart_cursor_t * lv_chart_add_cursor(lv_obj_t * obj, lv_color_t color, lv_dir_t dir); - -/** - * Set the coordinate of the cursor with respect to the paddings - * @param obj pointer to a chart object - * @param cursor pointer to the cursor - * @param pos the new coordinate of cursor relative to the chart - */ -void lv_chart_set_cursor_pos(lv_obj_t * chart, lv_chart_cursor_t * cursor, lv_point_t * pos); - -/** - * Stick the cursor to a point - * @param obj pointer to a chart object - * @param cursor pointer to the cursor - * @param ser pointer to a series - * @param point_id the point's index or `LV_CHART_POINT_NONE` to not assign to any points. - */ -void lv_chart_set_cursor_point(lv_obj_t * chart, lv_chart_cursor_t * cursor, lv_chart_series_t * ser, - uint16_t point_id); - -/** - * Get the coordinate of the cursor with respect to the paddings - * @param obj pointer to a chart object - * @param cursor pointer to cursor - * @return coordinate of the cursor as lv_point_t - */ -lv_point_t lv_chart_get_cursor_point(lv_obj_t * chart, lv_chart_cursor_t * cursor); - -/*===================== - * Set/Get value(s) - *====================*/ - -/** - * Initialize all data points of a series with a value - * @param obj pointer to chart object - * @param ser pointer to a data series on 'chart' - * @param value the new value for all points. `LV_CHART_POINT_NONE` can be used to hide the points. - */ -void lv_chart_set_all_value(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t value); - -/** - * Set the next point's Y value according to the update mode policy. - * @param obj pointer to chart object - * @param ser pointer to a data series on 'chart' - * @param value the new value of the next data - */ -void lv_chart_set_next_value(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t value); - -/** - * Set the next point's X and Y value according to the update mode policy. - * @param obj pointer to chart object - * @param ser pointer to a data series on 'chart' - * @param x_value the new X value of the next data - * @param y_value the new Y value of the next data - */ -void lv_chart_set_next_value2(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t x_value, lv_coord_t y_value); - -/** - * Set an individual point's y value of a chart's series directly based on its index - * @param obj pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @param id the index of the x point in the array - * @param value value to assign to array point - */ -void lv_chart_set_value_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_coord_t value); - -/** - * Set an individual point's x and y value of a chart's series directly based on its index - * Can be used only with `LV_CHART_TYPE_SCATTER`. - * @param obj pointer to chart object - * @param ser pointer to a data series on 'chart' - * @param id the index of the x point in the array - * @param x_value the new X value of the next data - * @param y_value the new Y value of the next data - */ -void lv_chart_set_value_by_id2(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_coord_t x_value, - lv_coord_t y_value); - -/** - * Set an external array for the y data points to use for the chart - * NOTE: It is the users responsibility to make sure the `point_cnt` matches the external array size. - * @param obj pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @param array external array of points for chart - */ -void lv_chart_set_ext_y_array(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t array[]); - -/** - * Set an external array for the x data points to use for the chart - * NOTE: It is the users responsibility to make sure the `point_cnt` matches the external array size. - * @param obj pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @param array external array of points for chart - */ -void lv_chart_set_ext_x_array(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t array[]); - -/** - * Get the array of y values of a series - * @param obj pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @return the array of values with 'point_count' elements - */ -lv_coord_t * lv_chart_get_y_array(const lv_obj_t * obj, lv_chart_series_t * ser); - -/** - * Get the array of x values of a series - * @param obj pointer to a chart object - * @param ser pointer to a data series on 'chart' - * @return the array of values with 'point_count' elements - */ -lv_coord_t * lv_chart_get_x_array(const lv_obj_t * obj, lv_chart_series_t * ser); - -/** - * Get the index of the currently pressed point. It's the same for every series. - * @param obj pointer to a chart object - * @return the index of the point [0 .. point count] or LV_CHART_POINT_ID_NONE if no point is being pressed - */ -uint32_t lv_chart_get_pressed_point(const lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_CHART*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CHART_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.h b/src/lib/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.h deleted file mode 100644 index e9c9d92..0000000 --- a/src/lib/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.h +++ /dev/null @@ -1,142 +0,0 @@ -/** - * @file lv_colorwheel.h - * - */ - -#ifndef LV_COLORWHEEL_H -#define LV_COLORWHEEL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_COLORWHEEL - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_COLORWHEEL_MODE_HUE, - LV_COLORWHEEL_MODE_SATURATION, - LV_COLORWHEEL_MODE_VALUE -}; -typedef uint8_t lv_colorwheel_mode_t; - - -/*Data of color picker*/ -typedef struct { - lv_obj_t obj; - lv_color_hsv_t hsv; - struct { - lv_point_t pos; - uint8_t recolor : 1; - } knob; - uint32_t last_click_time; - uint32_t last_change_time; - lv_point_t last_press_point; - lv_colorwheel_mode_t mode : 2; - uint8_t mode_fixed : 1; -} lv_colorwheel_t; - -extern const lv_obj_class_t lv_colorwheel_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a color picker object with disc shape - * @param parent pointer to an object, it will be the parent of the new color picker - * @param knob_recolor true: set the knob's color to the current color - * @return pointer to the created color picker - */ -lv_obj_t * lv_colorwheel_create(lv_obj_t * parent, bool knob_recolor); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the current hsv of a color wheel. - * @param colorwheel pointer to color wheel object - * @param color current selected hsv - * @return true if changed, otherwise false - */ -bool lv_colorwheel_set_hsv(lv_obj_t * obj, lv_color_hsv_t hsv); - -/** - * Set the current color of a color wheel. - * @param colorwheel pointer to color wheel object - * @param color current selected color - * @return true if changed, otherwise false - */ -bool lv_colorwheel_set_rgb(lv_obj_t * obj, lv_color_t color); - -/** - * Set the current color mode. - * @param colorwheel pointer to color wheel object - * @param mode color mode (hue/sat/val) - */ -void lv_colorwheel_set_mode(lv_obj_t * obj, lv_colorwheel_mode_t mode); - -/** - * Set if the color mode is changed on long press on center - * @param colorwheel pointer to color wheel object - * @param fixed color mode cannot be changed on long press - */ -void lv_colorwheel_set_mode_fixed(lv_obj_t * obj, bool fixed); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the current selected hsv of a color wheel. - * @param colorwheel pointer to color wheel object - * @return current selected hsv - */ -lv_color_hsv_t lv_colorwheel_get_hsv(lv_obj_t * obj); - -/** - * Get the current selected color of a color wheel. - * @param colorwheel pointer to color wheel object - * @return color current selected color - */ -lv_color_t lv_colorwheel_get_rgb(lv_obj_t * obj); - -/** - * Get the current color mode. - * @param colorwheel pointer to color wheel object - * @return color mode (hue/sat/val) - */ -lv_colorwheel_mode_t lv_colorwheel_get_color_mode(lv_obj_t * obj); - -/** - * Get if the color mode is changed on long press on center - * @param colorwheel pointer to color wheel object - * @return mode cannot be changed on long press - */ -bool lv_colorwheel_get_color_mode_fixed(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_COLORWHEEL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_COLORWHEEL_H*/ - diff --git a/src/lib/lvgl/src/extra/widgets/imgbtn/lv_imgbtn.h b/src/lib/lvgl/src/extra/widgets/imgbtn/lv_imgbtn.h deleted file mode 100644 index 597faea..0000000 --- a/src/lib/lvgl/src/extra/widgets/imgbtn/lv_imgbtn.h +++ /dev/null @@ -1,131 +0,0 @@ -/** - * @file lv_imgbtn.h - * - */ - -#ifndef LV_IMGBTN_H -#define LV_IMGBTN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_IMGBTN != 0 - -/********************* - * DEFINES - *********************/ -typedef enum { - LV_IMGBTN_STATE_RELEASED, - LV_IMGBTN_STATE_PRESSED, - LV_IMGBTN_STATE_DISABLED, - LV_IMGBTN_STATE_CHECKED_RELEASED, - LV_IMGBTN_STATE_CHECKED_PRESSED, - LV_IMGBTN_STATE_CHECKED_DISABLED, - _LV_IMGBTN_STATE_NUM, -} lv_imgbtn_state_t; - -/********************** - * TYPEDEFS - **********************/ -/*Data of image button*/ -typedef struct { - lv_obj_t obj; - const void * img_src_mid[_LV_IMGBTN_STATE_NUM]; /*Store center images to each state*/ - const void * img_src_left[_LV_IMGBTN_STATE_NUM]; /*Store left side images to each state*/ - const void * img_src_right[_LV_IMGBTN_STATE_NUM]; /*Store right side images to each state*/ - lv_img_cf_t act_cf; /*Color format of the currently active image*/ -} lv_imgbtn_t; - -extern const lv_obj_class_t lv_imgbtn_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create an image button object - * @param parent pointer to an object, it will be the parent of the new image button - * @return pointer to the created image button - */ -lv_obj_t * lv_imgbtn_create(lv_obj_t * parent); - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/** - * Set images for a state of the image button - * @param imgbtn pointer to an image button object - * @param state for which state set the new image - * @param src_left pointer to an image source for the left side of the button (a C array or path to - * a file) - * @param src_mid pointer to an image source for the middle of the button (ideally 1px wide) (a C - * array or path to a file) - * @param src_right pointer to an image source for the right side of the button (a C array or path - * to a file) - */ -void lv_imgbtn_set_src(lv_obj_t * imgbtn, lv_imgbtn_state_t state, const void * src_left, const void * src_mid, - const void * src_right); - - -/** - * Use this function instead of `lv_obj_add/clear_state` to set a state manually - * @param imgbtn pointer to an image button object - * @param state the new state - */ -void lv_imgbtn_set_state(lv_obj_t * imgbtn, lv_imgbtn_state_t state); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the left image in a given state - * @param imgbtn pointer to an image button object - * @param state the state where to get the image (from `lv_btn_state_t`) ` - * @return pointer to the left image source (a C array or path to a file) - */ -const void * lv_imgbtn_get_src_left(lv_obj_t * imgbtn, lv_imgbtn_state_t state); - -/** - * Get the middle image in a given state - * @param imgbtn pointer to an image button object - * @param state the state where to get the image (from `lv_btn_state_t`) ` - * @return pointer to the middle image source (a C array or path to a file) - */ -const void * lv_imgbtn_get_src_middle(lv_obj_t * imgbtn, lv_imgbtn_state_t state); - -/** - * Get the right image in a given state - * @param imgbtn pointer to an image button object - * @param state the state where to get the image (from `lv_btn_state_t`) ` - * @return pointer to the left image source (a C array or path to a file) - */ -const void * lv_imgbtn_get_src_right(lv_obj_t * imgbtn, lv_imgbtn_state_t state); - - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_IMGBTN*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_IMGBTN_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/keyboard/lv_keyboard.h b/src/lib/lvgl/src/extra/widgets/keyboard/lv_keyboard.h deleted file mode 100644 index 7f65cd7..0000000 --- a/src/lib/lvgl/src/extra/widgets/keyboard/lv_keyboard.h +++ /dev/null @@ -1,187 +0,0 @@ -/** - * @file lv_keyboard.h - * - */ - -#ifndef LV_KEYBOARD_H -#define LV_KEYBOARD_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../widgets/lv_btnmatrix.h" - -#if LV_USE_KEYBOARD - -/*Testing of dependencies*/ -#if LV_USE_BTNMATRIX == 0 -#error "lv_kb: lv_btnm is required. Enable it in lv_conf.h (LV_USE_BTNMATRIX 1) " -#endif - -#if LV_USE_TEXTAREA == 0 -#error "lv_kb: lv_ta is required. Enable it in lv_conf.h (LV_USE_TEXTAREA 1) " -#endif - -/********************* - * DEFINES - *********************/ -#define LV_KEYBOARD_CTRL_BTN_FLAGS (LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_CLICK_TRIG | LV_BTNMATRIX_CTRL_CHECKED) - -/********************** - * TYPEDEFS - **********************/ - -/** Current keyboard mode.*/ -enum { - LV_KEYBOARD_MODE_TEXT_LOWER, - LV_KEYBOARD_MODE_TEXT_UPPER, - LV_KEYBOARD_MODE_SPECIAL, - LV_KEYBOARD_MODE_NUMBER, - LV_KEYBOARD_MODE_USER_1, - LV_KEYBOARD_MODE_USER_2, - LV_KEYBOARD_MODE_USER_3, - LV_KEYBOARD_MODE_USER_4, -}; -typedef uint8_t lv_keyboard_mode_t; - -/*Data of keyboard*/ -typedef struct { - lv_btnmatrix_t btnm; - lv_obj_t * ta; /*Pointer to the assigned text area*/ - lv_keyboard_mode_t mode; /*Key map type*/ - uint8_t popovers : 1; /*Show button titles in popovers on press*/ -} lv_keyboard_t; - -extern const lv_obj_class_t lv_keyboard_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a Keyboard object - * @param parent pointer to an object, it will be the parent of the new keyboard - * @return pointer to the created keyboard - */ -lv_obj_t * lv_keyboard_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Assign a Text Area to the Keyboard. The pressed characters will be put there. - * @param kb pointer to a Keyboard object - * @param ta pointer to a Text Area object to write there - */ -void lv_keyboard_set_textarea(lv_obj_t * kb, lv_obj_t * ta); - -/** - * Set a new a mode (text or number map) - * @param kb pointer to a Keyboard object - * @param mode the mode from 'lv_keyboard_mode_t' - */ -void lv_keyboard_set_mode(lv_obj_t * kb, lv_keyboard_mode_t mode); - -/** - * Show the button title in a popover when pressed. - * @param kb pointer to a Keyboard object - * @param en whether "popovers" mode is enabled - */ -void lv_keyboard_set_popovers(lv_obj_t * kb, bool en); - -/** - * Set a new map for the keyboard - * @param kb pointer to a Keyboard object - * @param mode keyboard map to alter 'lv_keyboard_mode_t' - * @param map pointer to a string array to describe the map. - * See 'lv_btnmatrix_set_map()' for more info. - */ -void lv_keyboard_set_map(lv_obj_t * kb, lv_keyboard_mode_t mode, const char * map[], - const lv_btnmatrix_ctrl_t ctrl_map[]); - -/*===================== - * Getter functions - *====================*/ - -/** - * Assign a Text Area to the Keyboard. The pressed characters will be put there. - * @param kb pointer to a Keyboard object - * @return pointer to the assigned Text Area object - */ -lv_obj_t * lv_keyboard_get_textarea(const lv_obj_t * kb); - -/** - * Set a new a mode (text or number map) - * @param kb pointer to a Keyboard object - * @return the current mode from 'lv_keyboard_mode_t' - */ -lv_keyboard_mode_t lv_keyboard_get_mode(const lv_obj_t * kb); - -/** - * Tell whether "popovers" mode is enabled or not. - * @param kb pointer to a Keyboard object - * @return true: "popovers" mode is enabled; false: disabled - */ -bool lv_btnmatrix_get_popovers(const lv_obj_t * obj); - -/** - * Get the current map of a keyboard - * @param kb pointer to a keyboard object - * @return the current map - */ -static inline const char ** lv_keyboard_get_map_array(const lv_obj_t * kb) -{ - return lv_btnmatrix_get_map(kb); -} - -/** - * Get the index of the lastly "activated" button by the user (pressed, released, focused etc) - * Useful in the `event_cb` to get the text of the button, check if hidden etc. - * @param obj pointer to button matrix object - * @return index of the last released button (LV_BTNMATRIX_BTN_NONE: if unset) - */ -static inline uint16_t lv_keyboard_get_selected_btn(const lv_obj_t * obj) -{ - return lv_btnmatrix_get_selected_btn(obj); -} - -/** - * Get the button's text - * @param obj pointer to button matrix object - * @param btn_id the index a button not counting new line characters. - * @return text of btn_index` button - */ -static inline const char * lv_keyboard_get_btn_text(const lv_obj_t * obj, uint16_t btn_id) -{ - return lv_btnmatrix_get_btn_text(obj, btn_id); -} - -/*===================== - * Other functions - *====================*/ - -/** - * Default keyboard event to add characters to the Text area and change the map. - * If a custom `event_cb` is added to the keyboard this function can be called from it to handle the - * button clicks - * @param kb pointer to a keyboard - * @param event the triggering event - */ -void lv_keyboard_def_event_cb(lv_event_t * e); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_KEYBOARD*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_KEYBOARD_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/led/lv_led.h b/src/lib/lvgl/src/extra/widgets/led/lv_led.h deleted file mode 100644 index 368bcd2..0000000 --- a/src/lib/lvgl/src/extra/widgets/led/lv_led.h +++ /dev/null @@ -1,116 +0,0 @@ -/** - * @file lv_led.h - * - */ - -#ifndef LV_LED_H -#define LV_LED_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_LED - - -/********************* - * DEFINES - *********************/ -/** Brightness when the LED if OFF */ -#ifndef LV_LED_BRIGHT_MIN -# define LV_LED_BRIGHT_MIN 80 -#endif - -/** Brightness when the LED if ON */ -#ifndef LV_LED_BRIGHT_MAX -# define LV_LED_BRIGHT_MAX 255 -#endif - -/********************** - * TYPEDEFS - **********************/ - -/*Data of led*/ -typedef struct { - lv_obj_t obj; - lv_color_t color; - uint8_t bright; /**< Current brightness of the LED (0..255)*/ -} lv_led_t; - -extern const lv_obj_class_t lv_led_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_led_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_LED_DRAW_PART_RECTANGLE, /**< The main rectangle*/ -} lv_led_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a led object - * @param parent pointer to an object, it will be the parent of the new led - * @return pointer to the created led - */ -lv_obj_t * lv_led_create(lv_obj_t * parent); - -/** - * Set the color of the LED - * @param led pointer to a LED object - * @param color the color of the LED - */ -void lv_led_set_color(lv_obj_t * led, lv_color_t color); - -/** - * Set the brightness of a LED object - * @param led pointer to a LED object - * @param bright LV_LED_BRIGHT_MIN (max. dark) ... LV_LED_BRIGHT_MAX (max. light) - */ -void lv_led_set_brightness(lv_obj_t * led, uint8_t bright); - -/** - * Light on a LED - * @param led pointer to a LED object - */ -void lv_led_on(lv_obj_t * led); - -/** - * Light off a LED - * @param led pointer to a LED object - */ -void lv_led_off(lv_obj_t * led); - -/** - * Toggle the state of a LED - * @param led pointer to a LED object - */ -void lv_led_toggle(lv_obj_t * led); - -/** - * Get the brightness of a LEd object - * @param led pointer to LED object - * @return bright 0 (max. dark) ... 255 (max. light) - */ -uint8_t lv_led_get_brightness(const lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_LED*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - - -#endif /*LV_LED_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/list/lv_list.h b/src/lib/lvgl/src/extra/widgets/list/lv_list.h deleted file mode 100644 index 8b91644..0000000 --- a/src/lib/lvgl/src/extra/widgets/list/lv_list.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - * @file lv_win.h - * - */ - -#ifndef LV_LIST_H -#define LV_LIST_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" -#include "../../layouts/flex/lv_flex.h" - -#if LV_USE_LIST - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -extern const lv_obj_class_t lv_list_class; -extern const lv_obj_class_t lv_list_text_class; -extern const lv_obj_class_t lv_list_btn_class; -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_obj_t * lv_list_create(lv_obj_t * parent); - -lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt); - -lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt); - -const char * lv_list_get_btn_text(lv_obj_t * list, lv_obj_t * btn); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_LIST*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LIST_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/lv_widgets.h b/src/lib/lvgl/src/extra/widgets/lv_widgets.h deleted file mode 100644 index 1141810..0000000 --- a/src/lib/lvgl/src/extra/widgets/lv_widgets.h +++ /dev/null @@ -1,56 +0,0 @@ -/** - * @file lv_widgets.h - * - */ - -#ifndef LV_WIDGETS_H -#define LV_WIDGETS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "animimg/lv_animimg.h" -#include "calendar/lv_calendar.h" -#include "calendar/lv_calendar_header_arrow.h" -#include "calendar/lv_calendar_header_dropdown.h" -#include "chart/lv_chart.h" -#include "keyboard/lv_keyboard.h" -#include "list/lv_list.h" -#include "menu/lv_menu.h" -#include "msgbox/lv_msgbox.h" -#include "meter/lv_meter.h" -#include "spinbox/lv_spinbox.h" -#include "spinner/lv_spinner.h" -#include "tabview/lv_tabview.h" -#include "tileview/lv_tileview.h" -#include "win/lv_win.h" -#include "colorwheel/lv_colorwheel.h" -#include "led/lv_led.h" -#include "imgbtn/lv_imgbtn.h" -#include "span/lv_span.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_WIDGETS_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/menu/lv_menu.h b/src/lib/lvgl/src/extra/widgets/menu/lv_menu.h deleted file mode 100644 index 0449059..0000000 --- a/src/lib/lvgl/src/extra/widgets/menu/lv_menu.h +++ /dev/null @@ -1,233 +0,0 @@ -/** - * @file lv_menu.h - * - */ - -#ifndef LV_MENU_H -#define LV_MENU_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" - -#if LV_USE_MENU - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_MENU_HEADER_TOP_FIXED, /* Header is positioned at the top */ - LV_MENU_HEADER_TOP_UNFIXED, /* Header is positioned at the top and can be scrolled out of view*/ - LV_MENU_HEADER_BOTTOM_FIXED /* Header is positioned at the bottom */ -}; -typedef uint8_t lv_menu_mode_header_t; - -enum { - LV_MENU_ROOT_BACK_BTN_DISABLED, - LV_MENU_ROOT_BACK_BTN_ENABLED -}; -typedef uint8_t lv_menu_mode_root_back_btn_t; - -typedef struct lv_menu_load_page_event_data_t { - lv_obj_t * menu; - lv_obj_t * page; -} lv_menu_load_page_event_data_t; - -typedef struct { - lv_obj_t * page; -} lv_menu_history_t; - -typedef struct { - lv_obj_t obj; - lv_obj_t * storage; /* a pointer to obj that is the parent of all pages not displayed */ - lv_obj_t * main; - lv_obj_t * main_page; - lv_obj_t * main_header; - lv_obj_t * - main_header_back_btn; /* a pointer to obj that on click triggers back btn event handler, can be same as 'main_header' */ - lv_obj_t * main_header_title; - lv_obj_t * sidebar; - lv_obj_t * sidebar_page; - lv_obj_t * sidebar_header; - lv_obj_t * - sidebar_header_back_btn; /* a pointer to obj that on click triggers back btn event handler, can be same as 'sidebar_header' */ - lv_obj_t * sidebar_header_title; - lv_obj_t * selected_tab; - lv_ll_t history_ll; - uint8_t cur_depth; - uint8_t prev_depth; - uint8_t sidebar_generated : 1; - lv_menu_mode_header_t mode_header : 2; - lv_menu_mode_root_back_btn_t mode_root_back_btn : 1; -} lv_menu_t; - -typedef struct { - lv_obj_t obj; - char * title; -} lv_menu_page_t; - -extern const lv_obj_class_t lv_menu_class; -extern const lv_obj_class_t lv_menu_page_class; -extern const lv_obj_class_t lv_menu_cont_class; -extern const lv_obj_class_t lv_menu_section_class; -extern const lv_obj_class_t lv_menu_separator_class; -extern const lv_obj_class_t lv_menu_sidebar_cont_class; -extern const lv_obj_class_t lv_menu_main_cont_class; -extern const lv_obj_class_t lv_menu_sidebar_header_cont_class; -extern const lv_obj_class_t lv_menu_main_header_cont_class; -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a menu object - * @param parent pointer to an object, it will be the parent of the new menu - * @return pointer to the created menu - */ -lv_obj_t * lv_menu_create(lv_obj_t * parent); - -/** - * Create a menu page object - * @param parent pointer to menu object - * @param title pointer to text for title in header (NULL to not display title) - * @return pointer to the created menu page - */ -lv_obj_t * lv_menu_page_create(lv_obj_t * parent, char * title); - -/** - * Create a menu cont object - * @param parent pointer to an object, it will be the parent of the new menu cont object - * @return pointer to the created menu cont - */ -lv_obj_t * lv_menu_cont_create(lv_obj_t * parent); - -/** - * Create a menu section object - * @param parent pointer to an object, it will be the parent of the new menu section object - * @return pointer to the created menu section - */ -lv_obj_t * lv_menu_section_create(lv_obj_t * parent); - -/** - * Create a menu separator object - * @param parent pointer to an object, it will be the parent of the new menu separator object - * @return pointer to the created menu separator - */ -lv_obj_t * lv_menu_separator_create(lv_obj_t * parent); -/*===================== - * Setter functions - *====================*/ -/** - * Set menu page to display in main - * @param obj pointer to the menu - * @param page pointer to the menu page to set (NULL to clear main and clear menu history) - */ -void lv_menu_set_page(lv_obj_t * obj, lv_obj_t * page); - -/** - * Set menu page to display in sidebar - * @param obj pointer to the menu - * @param page pointer to the menu page to set (NULL to clear sidebar) - */ -void lv_menu_set_sidebar_page(lv_obj_t * obj, lv_obj_t * page); - -/** - * Set the how the header should behave and its position - * @param obj pointer to a menu - * @param mode_header - */ -void lv_menu_set_mode_header(lv_obj_t * obj, lv_menu_mode_header_t mode_header); - -/** - * Set whether back button should appear at root - * @param obj pointer to a menu - * @param mode_root_back_btn - */ -void lv_menu_set_mode_root_back_btn(lv_obj_t * obj, lv_menu_mode_root_back_btn_t mode_root_back_btn); - -/** - * Add menu to the menu item - * @param menu pointer to the menu - * @param obj pointer to the obj - * @param page pointer to the page to load when obj is clicked - */ -void lv_menu_set_load_page_event(lv_obj_t * menu, lv_obj_t * obj, lv_obj_t * page); - -/*===================== - * Getter functions - *====================*/ -/** -* Get a pointer to menu page that is currently displayed in main -* @param obj pointer to the menu -* @return pointer to current page -*/ -lv_obj_t * lv_menu_get_cur_main_page(lv_obj_t * obj); - -/** -* Get a pointer to menu page that is currently displayed in sidebar -* @param obj pointer to the menu -* @return pointer to current page -*/ -lv_obj_t * lv_menu_get_cur_sidebar_page(lv_obj_t * obj); - -/** -* Get a pointer to main header obj -* @param obj pointer to the menu -* @return pointer to main header obj -*/ -lv_obj_t * lv_menu_get_main_header(lv_obj_t * obj); - -/** -* Get a pointer to main header back btn obj -* @param obj pointer to the menu -* @return pointer to main header back btn obj -*/ -lv_obj_t * lv_menu_get_main_header_back_btn(lv_obj_t * obj); - -/** -* Get a pointer to sidebar header obj -* @param obj pointer to the menu -* @return pointer to sidebar header obj -*/ -lv_obj_t * lv_menu_get_sidebar_header(lv_obj_t * obj); - -/** -* Get a pointer to sidebar header obj -* @param obj pointer to the menu -* @return pointer to sidebar header back btn obj -*/ -lv_obj_t * lv_menu_get_sidebar_header_back_btn(lv_obj_t * obj); - -/** - * Check if an obj is a root back btn - * @param menu pointer to the menu - * @return true if it is a root back btn - */ -bool lv_menu_back_btn_is_root(lv_obj_t * menu, lv_obj_t * obj); - -/** - * Clear menu history - * @param obj pointer to the menu - */ -void lv_menu_clear_history(lv_obj_t * obj); -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_MENU*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_MENU_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/meter/lv_meter.h b/src/lib/lvgl/src/extra/widgets/meter/lv_meter.h deleted file mode 100644 index 24c1dae..0000000 --- a/src/lib/lvgl/src/extra/widgets/meter/lv_meter.h +++ /dev/null @@ -1,267 +0,0 @@ -/** - * @file lv_meter.h - * - */ - -#ifndef LV_METER_H -#define LV_METER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_METER != 0 - -/*Testing of dependencies*/ -#if LV_DRAW_COMPLEX == 0 -#error "lv_meter: Complex drawing is required. Enable it in lv_conf.h (LV_DRAW_COMPLEX 1)" -#endif - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_color_t tick_color; - uint16_t tick_cnt; - uint16_t tick_length; - uint16_t tick_width; - - lv_color_t tick_major_color; - uint16_t tick_major_nth; - uint16_t tick_major_length; - uint16_t tick_major_width; - - int16_t label_gap; - int16_t label_color; - - int32_t min; - int32_t max; - int16_t r_mod; - uint16_t angle_range; - int16_t rotation; -} lv_meter_scale_t; - -enum { - LV_METER_INDICATOR_TYPE_NEEDLE_IMG, - LV_METER_INDICATOR_TYPE_NEEDLE_LINE, - LV_METER_INDICATOR_TYPE_SCALE_LINES, - LV_METER_INDICATOR_TYPE_ARC, -}; -typedef uint8_t lv_meter_indicator_type_t; - -typedef struct { - lv_meter_scale_t * scale; - lv_meter_indicator_type_t type; - lv_opa_t opa; - int32_t start_value; - int32_t end_value; - union { - struct { - const void * src; - lv_point_t pivot; - } needle_img; - struct { - uint16_t width; - int16_t r_mod; - lv_color_t color; - } needle_line; - struct { - uint16_t width; - const void * src; - lv_color_t color; - int16_t r_mod; - } arc; - struct { - int16_t width_mod; - lv_color_t color_start; - lv_color_t color_end; - uint8_t local_grad : 1; - } scale_lines; - } type_data; -} lv_meter_indicator_t; - -/*Data of line meter*/ -typedef struct { - lv_obj_t obj; - lv_ll_t scale_ll; - lv_ll_t indicator_ll; -} lv_meter_t; - -extern const lv_obj_class_t lv_meter_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_meter_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_METER_DRAW_PART_ARC, /**< The arc indicator*/ - LV_METER_DRAW_PART_NEEDLE_LINE, /**< The needle lines*/ - LV_METER_DRAW_PART_NEEDLE_IMG, /**< The needle images*/ - LV_METER_DRAW_PART_TICK, /**< The tick lines and labels*/ -} lv_meter_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a Meter object - * @param parent pointer to an object, it will be the parent of the new bar. - * @return pointer to the created meter - */ -lv_obj_t * lv_meter_create(lv_obj_t * parent); - -/*===================== - * Add scale - *====================*/ - -/** - * Add a new scale to the meter. - * @param obj pointer to a meter object - * @return the new scale - * @note Indicators can be attached to scales. - */ -lv_meter_scale_t * lv_meter_add_scale(lv_obj_t * obj); - -/** - * Set the properties of the ticks of a scale - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param cnt number of tick lines - * @param width width of tick lines - * @param len length of tick lines - * @param color color of tick lines - */ -void lv_meter_set_scale_ticks(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t cnt, uint16_t width, uint16_t len, - lv_color_t color); - -/** - * Make some "normal" ticks major ticks and set their attributes. - * Texts with the current value are also added to the major ticks. - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param nth make every Nth normal tick major tick. (start from the first on the left) - * @param width width of the major ticks - * @param len length of the major ticks - * @param color color of the major ticks - * @param label_gap gap between the major ticks and the labels - */ -void lv_meter_set_scale_major_ticks(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t nth, uint16_t width, - uint16_t len, lv_color_t color, int16_t label_gap); - -/** - * Set the value and angular range of a scale. - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param min the minimum value - * @param max the maximal value - * @param angle_range the angular range of the scale - * @param rotation the angular offset from the 3 o'clock position (clock-wise) - */ -void lv_meter_set_scale_range(lv_obj_t * obj, lv_meter_scale_t * scale, int32_t min, int32_t max, uint32_t angle_range, - uint32_t rotation); - -/*===================== - * Add indicator - *====================*/ - -/** - * Add a needle line indicator the scale - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param width width of the line - * @param color color of the line - * @param r_mod the radius modifier (added to the scale's radius) to get the lines length - * @return the new indicator - */ -lv_meter_indicator_t * lv_meter_add_needle_line(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t width, - lv_color_t color, int16_t r_mod); - -/** - * Add a needle image indicator the scale - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param src the image source of the indicator. path or pointer to ::lv_img_dsc_t - * @param pivot_x the X pivot point of the needle - * @param pivot_y the Y pivot point of the needle - * @return the new indicator - * @note the needle image should point to the right, like -O-----> - */ -lv_meter_indicator_t * lv_meter_add_needle_img(lv_obj_t * obj, lv_meter_scale_t * scale, const void * src, - lv_coord_t pivot_x, lv_coord_t pivot_y); - -/** - * Add an arc indicator the scale - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param width width of the arc - * @param color color of the arc - * @param r_mod the radius modifier (added to the scale's radius) to get the outer radius of the arc - * @return the new indicator - */ -lv_meter_indicator_t * lv_meter_add_arc(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t width, lv_color_t color, - int16_t r_mod); - - -/** - * Add a scale line indicator the scale. It will modify the ticks. - * @param obj pointer to a meter object - * @param scale pointer to scale (added to `meter`) - * @param color_start the start color - * @param color_end the end color - * @param local tell how to map start and end color. true: the indicator's start and end_value; false: the scale's min max value - * @param width_mod add this the affected tick's width - * @return the new indicator - */ -lv_meter_indicator_t * lv_meter_add_scale_lines(lv_obj_t * obj, lv_meter_scale_t * scale, lv_color_t color_start, - lv_color_t color_end, bool local, int16_t width_mod); - -/*===================== - * Set indicator value - *====================*/ - -/** - * Set the value of the indicator. It will set start and and value to the same value - * @param obj pointer to a meter object - * @param indic pointer to an indicator - * @param value the new value - */ -void lv_meter_set_indicator_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value); - -/** - * Set the start value of the indicator. - * @param obj pointer to a meter object - * @param indic pointer to an indicator - * @param value the new value - */ -void lv_meter_set_indicator_start_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value); - -/** - * Set the start value of the indicator. - * @param obj pointer to a meter object - * @param indic pointer to an indicator - * @param value the new value - */ -void lv_meter_set_indicator_end_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_METER*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_METER_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/msgbox/lv_msgbox.h b/src/lib/lvgl/src/extra/widgets/msgbox/lv_msgbox.h deleted file mode 100644 index 2eaf0d3..0000000 --- a/src/lib/lvgl/src/extra/widgets/msgbox/lv_msgbox.h +++ /dev/null @@ -1,99 +0,0 @@ -/** - * @file lv_mbox.h - * - */ - -#ifndef LV_MSGBOX_H -#define LV_MSGBOX_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_MSGBOX - -/*Testing of dependencies*/ -#if LV_USE_BTNMATRIX == 0 -#error "lv_mbox: lv_btnm is required. Enable it in lv_conf.h (LV_USE_BTNMATRIX 1) " -#endif - -#if LV_USE_LABEL == 0 -#error "lv_mbox: lv_label is required. Enable it in lv_conf.h (LV_USE_LABEL 1) " -#endif - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_obj_t obj; - lv_obj_t * title; - lv_obj_t * close_btn; - lv_obj_t * content; - lv_obj_t * text; - lv_obj_t * btns; -} lv_msgbox_t; - -extern const lv_obj_class_t lv_msgbox_class; -extern const lv_obj_class_t lv_msgbox_content_class; -extern const lv_obj_class_t lv_msgbox_backdrop_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a message box object - * @param parent pointer to parent or NULL to create a full screen modal message box - * @param title the title of the message box - * @param txt the text of the message box - * @param btn_txts the buttons as an array of texts terminated by an "" element. E.g. {"btn1", "btn2", ""} - * @param add_close_btn true: add a close button - * @return pointer to the message box object - */ -lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char * txt, const char * btn_txts[], - bool add_close_btn); - -lv_obj_t * lv_msgbox_get_title(lv_obj_t * obj); - -lv_obj_t * lv_msgbox_get_close_btn(lv_obj_t * obj); - -lv_obj_t * lv_msgbox_get_text(lv_obj_t * obj); - -lv_obj_t * lv_msgbox_get_content(lv_obj_t * obj); - -lv_obj_t * lv_msgbox_get_btns(lv_obj_t * obj); - -/** - * Get the index of the selected button - * @param mbox message box object - * @return index of the button (LV_BTNMATRIX_BTN_NONE: if unset) - */ -uint16_t lv_msgbox_get_active_btn(lv_obj_t * mbox); - -const char * lv_msgbox_get_active_btn_text(lv_obj_t * mbox); - -void lv_msgbox_close(lv_obj_t * mbox); - -void lv_msgbox_close_async(lv_obj_t * mbox); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_MSGBOX*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_MSGBOX_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/span/lv_span.h b/src/lib/lvgl/src/extra/widgets/span/lv_span.h deleted file mode 100644 index f00d04d..0000000 --- a/src/lib/lvgl/src/extra/widgets/span/lv_span.h +++ /dev/null @@ -1,245 +0,0 @@ -/** - * @file lv_span.h - * - */ - -#ifndef LV_SPAN_H -#define LV_SPAN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_SPAN != 0 - -/********************* - * DEFINES - *********************/ -#ifndef LV_SPAN_SNIPPET_STACK_SIZE -#define LV_SPAN_SNIPPET_STACK_SIZE 64 -#endif - -/********************** - * TYPEDEFS - **********************/ -enum { - LV_SPAN_OVERFLOW_CLIP, - LV_SPAN_OVERFLOW_ELLIPSIS, -}; -typedef uint8_t lv_span_overflow_t; - -enum { - LV_SPAN_MODE_FIXED, /**< fixed the obj size*/ - LV_SPAN_MODE_EXPAND, /**< Expand the object size to the text size*/ - LV_SPAN_MODE_BREAK, /**< Keep width, break the too long lines and expand height*/ -}; -typedef uint8_t lv_span_mode_t; - -typedef struct { - char * txt; /* a pointer to display text */ - lv_obj_t * spangroup; /* a pointer to spangroup */ - lv_style_t style; /* display text style */ - uint8_t static_flag : 1;/* the text is static flag */ -} lv_span_t; - -/** Data of label*/ -typedef struct { - lv_obj_t obj; - int32_t lines; - lv_coord_t indent; /* first line indent */ - lv_coord_t cache_w; /* the cache automatically calculates the width */ - lv_coord_t cache_h; /* similar cache_w */ - lv_ll_t child_ll; - uint8_t mode : 2; /* details see lv_span_mode_t */ - uint8_t overflow : 1; /* details see lv_span_overflow_t */ - uint8_t refresh : 1; /* the spangroup need refresh cache_w and cache_h */ -} lv_spangroup_t; - -extern const lv_obj_class_t lv_spangroup_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a spangroup object - * @param par pointer to an object, it will be the parent of the new spangroup - * @return pointer to the created spangroup - */ -lv_obj_t * lv_spangroup_create(lv_obj_t * par); - -/** - * Create a span string descriptor and add to spangroup. - * @param obj pointer to a spangroup object. - * @return pointer to the created span. - */ -lv_span_t * lv_spangroup_new_span(lv_obj_t * obj); - -/** - * Remove the span from the spangroup and free memory. - * @param obj pointer to a spangroup object. - * @param span pointer to a span. - */ -void lv_spangroup_del_span(lv_obj_t * obj, lv_span_t * span); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set a new text for a span. Memory will be allocated to store the text by the span. - * @param span pointer to a span. - * @param text pointer to a text. - */ -void lv_span_set_text(lv_span_t * span, const char * text); - -/** - * Set a static text. It will not be saved by the span so the 'text' variable - * has to be 'alive' while the span exist. - * @param span pointer to a span. - * @param text pointer to a text. - */ -void lv_span_set_text_static(lv_span_t * span, const char * text); - -/** - * Set the align of the spangroup. - * @param obj pointer to a spangroup object. - * @param align see lv_text_align_t for details. - */ -void lv_spangroup_set_align(lv_obj_t * obj, lv_text_align_t align); - -/** - * Set the overflow of the spangroup. - * @param obj pointer to a spangroup object. - * @param overflow see lv_span_overflow_t for details. - */ -void lv_spangroup_set_overflow(lv_obj_t * obj, lv_span_overflow_t overflow); - -/** - * Set the indent of the spangroup. - * @param obj pointer to a spangroup object. - * @param indent The first line indentation - */ -void lv_spangroup_set_indent(lv_obj_t * obj, lv_coord_t indent); - -/** - * Set the mode of the spangroup. - * @param obj pointer to a spangroup object. - * @param mode see lv_span_mode_t for details. - */ -void lv_spangroup_set_mode(lv_obj_t * obj, lv_span_mode_t mode); - -/** - * Set lines of the spangroup. - * @param obj pointer to a spangroup object. - * @param lines max lines that can be displayed in LV_SPAN_MODE_BREAK mode. < 0 means no limit. - */ -void lv_spangroup_set_lines(lv_obj_t * obj, int32_t lines); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get a spangroup child by its index. - * - * @param obj The spangroup object - * @param id the index of the child. - * 0: the oldest (firstly created) child - * 1: the second oldest - * child count-1: the youngest - * -1: the youngest - * -2: the second youngest - * @return The child span at index `id`, or NULL if the ID does not exist - */ -lv_span_t * lv_spangroup_get_child(const lv_obj_t * obj, int32_t id); - -/** - * - * @param obj The spangroup object to get the child count of. - * @return The span count of the spangroup. - */ -uint32_t lv_spangroup_get_child_cnt(const lv_obj_t * obj); - -/** - * get the align of the spangroup. - * @param obj pointer to a spangroup object. - * @return the align value. - */ -lv_text_align_t lv_spangroup_get_align(lv_obj_t * obj); - -/** - * get the overflow of the spangroup. - * @param obj pointer to a spangroup object. - * @return the overflow value. - */ -lv_span_overflow_t lv_spangroup_get_overflow(lv_obj_t * obj); - -/** - * get the indent of the spangroup. - * @param obj pointer to a spangroup object. - * @return the indent value. - */ -lv_coord_t lv_spangroup_get_indent(lv_obj_t * obj); - -/** - * get the mode of the spangroup. - * @param obj pointer to a spangroup object. - */ -lv_span_mode_t lv_spangroup_get_mode(lv_obj_t * obj); - -/** - * get lines of the spangroup. - * @param obj pointer to a spangroup object. - * @return the lines value. - */ -int32_t lv_spangroup_get_lines(lv_obj_t * obj); - -/** - * get max line height of all span in the spangroup. - * @param obj pointer to a spangroup object. - */ -lv_coord_t lv_spangroup_get_max_line_h(lv_obj_t * obj); - -/** - * get the text content width when all span of spangroup on a line. - * @param obj pointer to a spangroup object. - * @param max_width if text content width >= max_width, return max_width - * to reduce computation, if max_width == 0, returns the text content width. - * @return text content width or max_width. - */ -uint32_t lv_spangroup_get_expand_width(lv_obj_t * obj, uint32_t max_width); - -/** - * get the text content height with width fixed. - * @param obj pointer to a spangroup object. - */ -lv_coord_t lv_spangroup_get_expand_height(lv_obj_t * obj, lv_coord_t width); - - -/*===================== - * Other functions - *====================*/ - -/** - * update the mode of the spangroup. - * @param obj pointer to a spangroup object. - */ -void lv_spangroup_refr_mode(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_SPAN*/ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_SPAN_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/spinbox/lv_spinbox.h b/src/lib/lvgl/src/extra/widgets/spinbox/lv_spinbox.h deleted file mode 100644 index 14c73ba..0000000 --- a/src/lib/lvgl/src/extra/widgets/spinbox/lv_spinbox.h +++ /dev/null @@ -1,178 +0,0 @@ -/** - * @file lv_spinbox.h - * - */ - -#ifndef LV_SPINBOX_H -#define LV_SPINBOX_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_SPINBOX - -/*Testing of dependencies*/ -#if LV_USE_TEXTAREA == 0 -#error "lv_spinbox: lv_ta is required. Enable it in lv_conf.h (LV_USE_TEXTAREA 1) " -#endif - -/********************* - * DEFINES - *********************/ -#define LV_SPINBOX_MAX_DIGIT_COUNT 10 - -/********************** - * TYPEDEFS - **********************/ - -/*Data of spinbox*/ -typedef struct { - lv_textarea_t ta; /*Ext. of ancestor*/ - /*New data for this type*/ - int32_t value; - int32_t range_max; - int32_t range_min; - int32_t step; - uint16_t digit_count : 4; - uint16_t dec_point_pos : 4; /*if 0, there is no separator and the number is an integer*/ - uint16_t rollover : 1; // Set to true for rollover functionality - uint16_t digit_step_dir : 2; // the direction the digit will step on encoder button press when editing -} lv_spinbox_t; - -extern const lv_obj_class_t lv_spinbox_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a Spinbox object - * @param parent pointer to an object, it will be the parent of the new spinbox - * @return pointer to the created spinbox - */ -lv_obj_t * lv_spinbox_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set spinbox value - * @param obj pointer to spinbox - * @param i value to be set - */ -void lv_spinbox_set_value(lv_obj_t * obj, int32_t i); - -/** - * Set spinbox rollover function - * @param obj pointer to spinbox - * @param b true or false to enable or disable (default) - */ -void lv_spinbox_set_rollover(lv_obj_t * obj, bool b); - -/** - * Set spinbox digit format (digit count and decimal format) - * @param obj pointer to spinbox - * @param digit_count number of digit excluding the decimal separator and the sign - * @param separator_position number of digit before the decimal point. If 0, decimal point is not - * shown - */ -void lv_spinbox_set_digit_format(lv_obj_t * obj, uint8_t digit_count, uint8_t separator_position); - -/** - * Set spinbox step - * @param obj pointer to spinbox - * @param step steps on increment/decrement. Can be 1, 10, 100, 1000, etc the digit that will change. - */ -void lv_spinbox_set_step(lv_obj_t * obj, uint32_t step); - -/** - * Set spinbox value range - * @param obj pointer to spinbox - * @param range_min maximum value, inclusive - * @param range_max minimum value, inclusive - */ -void lv_spinbox_set_range(lv_obj_t * obj, int32_t range_min, int32_t range_max); - -/** - * Set cursor position to a specific digit for edition - * @param obj pointer to spinbox - * @param pos selected position in spinbox - */ -void lv_spinbox_set_pos(lv_obj_t * obj, uint8_t pos); - -/** - * Set direction of digit step when clicking an encoder button while in editing mode - * @param obj pointer to spinbox - * @param direction the direction (LV_DIR_RIGHT or LV_DIR_LEFT) - */ -void lv_spinbox_set_digit_step_direction(lv_obj_t * obj, lv_dir_t direction); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get spinbox rollover function status - * @param obj pointer to spinbox - */ -bool lv_spinbox_get_rollover(lv_obj_t * obj); - -/** - * Get the spinbox numeral value (user has to convert to float according to its digit format) - * @param obj pointer to spinbox - * @return value integer value of the spinbox - */ -int32_t lv_spinbox_get_value(lv_obj_t * obj); - -/** - * Get the spinbox step value (user has to convert to float according to its digit format) - * @param obj pointer to spinbox - * @return value integer step value of the spinbox - */ -int32_t lv_spinbox_get_step(lv_obj_t * obj); - -/*===================== - * Other functions - *====================*/ - -/** - * Select next lower digit for edition by dividing the step by 10 - * @param obj pointer to spinbox - */ -void lv_spinbox_step_next(lv_obj_t * obj); - -/** - * Select next higher digit for edition by multiplying the step by 10 - * @param obj pointer to spinbox - */ -void lv_spinbox_step_prev(lv_obj_t * obj); - -/** - * Increment spinbox value by one step - * @param obj pointer to spinbox - */ -void lv_spinbox_increment(lv_obj_t * obj); - -/** - * Decrement spinbox value by one step - * @param obj pointer to spinbox - */ -void lv_spinbox_decrement(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_SPINBOX*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif -#endif /*LV_SPINBOX_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/spinner/lv_spinner.h b/src/lib/lvgl/src/extra/widgets/spinner/lv_spinner.h deleted file mode 100644 index 2ab36f6..0000000 --- a/src/lib/lvgl/src/extra/widgets/spinner/lv_spinner.h +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @file lv_spinner.h - * - */ - -#ifndef LV_SPINNER_H -#define LV_SPINNER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_SPINNER - -/*Testing of dependencies*/ -#if LV_USE_ARC == 0 -#error "lv_spinner: lv_arc is required. Enable it in lv_conf.h (LV_USE_ARC 1) " -#endif - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -extern const lv_obj_class_t lv_spinner_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_obj_t * lv_spinner_create(lv_obj_t * parent, uint32_t time, uint32_t arc_length); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_SPINNER*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SPINNER_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/tabview/lv_tabview.h b/src/lib/lvgl/src/extra/widgets/tabview/lv_tabview.h deleted file mode 100644 index a01c6b9..0000000 --- a/src/lib/lvgl/src/extra/widgets/tabview/lv_tabview.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - * @file lv_templ.h - * - */ - -#ifndef LV_TABVIEW_H -#define LV_TABVIEW_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -#if LV_USE_TABVIEW - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_obj_t obj; - char ** map; - uint16_t tab_cnt; - uint16_t tab_cur; - lv_dir_t tab_pos; -} lv_tabview_t; - -extern const lv_obj_class_t lv_tabview_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ -lv_obj_t * lv_tabview_create(lv_obj_t * parent, lv_dir_t tab_pos, lv_coord_t tab_size); - -lv_obj_t * lv_tabview_add_tab(lv_obj_t * tv, const char * name); - -lv_obj_t * lv_tabview_get_content(lv_obj_t * tv); - -lv_obj_t * lv_tabview_get_tab_btns(lv_obj_t * tv); - -void lv_tabview_set_act(lv_obj_t * obj, uint32_t id, lv_anim_enable_t anim_en); - -uint16_t lv_tabview_get_tab_act(lv_obj_t * tv); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_TABVIEW*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TABVIEW_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/tileview/lv_tileview.h b/src/lib/lvgl/src/extra/widgets/tileview/lv_tileview.h deleted file mode 100644 index 7adeec3..0000000 --- a/src/lib/lvgl/src/extra/widgets/tileview/lv_tileview.h +++ /dev/null @@ -1,72 +0,0 @@ -/** - * @file lv_tileview.h - * - */ - -#ifndef LV_TILEVIEW_H -#define LV_TILEVIEW_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../core/lv_obj.h" - -#if LV_USE_TILEVIEW - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef struct { - lv_obj_t obj; - lv_obj_t * tile_act; -} lv_tileview_t; - -typedef struct { - lv_obj_t obj; - lv_dir_t dir; -} lv_tileview_tile_t; - -extern const lv_obj_class_t lv_tileview_class; -extern const lv_obj_class_t lv_tileview_tile_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a Tileview object - * @param parent pointer to an object, it will be the parent of the new tileview - * @return pointer to the created tileview - */ -lv_obj_t * lv_tileview_create(lv_obj_t * parent); - -lv_obj_t * lv_tileview_add_tile(lv_obj_t * tv, uint8_t col_id, uint8_t row_id, lv_dir_t dir); - -void lv_obj_set_tile(lv_obj_t * tv, lv_obj_t * tile_obj, lv_anim_enable_t anim_en); -void lv_obj_set_tile_id(lv_obj_t * tv, uint32_t col_id, uint32_t row_id, lv_anim_enable_t anim_en); - -lv_obj_t * lv_tileview_get_tile_act(lv_obj_t * obj); - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_TILEVIEW*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TILEVIEW_H*/ diff --git a/src/lib/lvgl/src/extra/widgets/win/lv_win.h b/src/lib/lvgl/src/extra/widgets/win/lv_win.h deleted file mode 100644 index 4342b31..0000000 --- a/src/lib/lvgl/src/extra/widgets/win/lv_win.h +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @file lv_win.h - * - */ - -#ifndef LV_WIN_H -#define LV_WIN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../../../lvgl.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -typedef struct { - lv_obj_t obj; -} lv_win_t; - -extern const lv_obj_class_t lv_win_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_obj_t * lv_win_create(lv_obj_t * parent, lv_coord_t header_height); - - -lv_obj_t * lv_win_add_title(lv_obj_t * win, const char * txt); -lv_obj_t * lv_win_add_btn(lv_obj_t * win, const void * icon, lv_coord_t btn_w); - -lv_obj_t * lv_win_get_header(lv_obj_t * win); -lv_obj_t * lv_win_get_content(lv_obj_t * win); -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_WIN_H*/ diff --git a/src/lib/lvgl/src/font/lv_font.h b/src/lib/lvgl/src/font/lv_font.h deleted file mode 100644 index e3b670c..0000000 --- a/src/lib/lvgl/src/font/lv_font.h +++ /dev/null @@ -1,261 +0,0 @@ -/** - * @file lv_font.h - * - */ - -#ifndef LV_FONT_H -#define LV_FONT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include -#include -#include - -#include "lv_symbol_def.h" -#include "../misc/lv_area.h" - -/********************* - * DEFINES - *********************/ - -/* imgfont identifier */ -#define LV_IMGFONT_BPP 9 - -/********************** - * TYPEDEFS - **********************/ - -/*------------------ - * General types - *-----------------*/ - -struct _lv_font_t; -/** Describes the properties of a glyph.*/ -typedef struct { - const struct _lv_font_t * - resolved_font; /**< Pointer to a font where the glyph was actually found after handling fallbacks*/ - uint16_t adv_w; /**< The glyph needs this space. Draw the next glyph after this width.*/ - uint16_t box_w; /**< Width of the glyph's bounding box*/ - uint16_t box_h; /**< Height of the glyph's bounding box*/ - int16_t ofs_x; /**< x offset of the bounding box*/ - int16_t ofs_y; /**< y offset of the bounding box*/ - uint8_t bpp: 4; /**< Bit-per-pixel: 1, 2, 4, 8*/ - uint8_t is_placeholder: 1; /** Glyph is missing. But placeholder will still be displayed */ -} lv_font_glyph_dsc_t; - -/** The bitmaps might be upscaled by 3 to achieve subpixel rendering.*/ -enum { - LV_FONT_SUBPX_NONE, - LV_FONT_SUBPX_HOR, - LV_FONT_SUBPX_VER, - LV_FONT_SUBPX_BOTH, -}; - -typedef uint8_t lv_font_subpx_t; - -/** Describe the properties of a font*/ -typedef struct _lv_font_t { - /** Get a glyph's descriptor from a font*/ - bool (*get_glyph_dsc)(const struct _lv_font_t *, lv_font_glyph_dsc_t *, uint32_t letter, uint32_t letter_next); - - /** Get a glyph's bitmap from a font*/ - const uint8_t * (*get_glyph_bitmap)(const struct _lv_font_t *, uint32_t); - - /*Pointer to the font in a font pack (must have the same line height)*/ - lv_coord_t line_height; /**< The real line height where any text fits*/ - lv_coord_t base_line; /**< Base line measured from the top of the line_height*/ - uint8_t subpx : 2; /**< An element of `lv_font_subpx_t`*/ - - int8_t underline_position; /**< Distance between the top of the underline and base line (< 0 means below the base line)*/ - int8_t underline_thickness; /**< Thickness of the underline*/ - - const void * dsc; /**< Store implementation specific or run_time data or caching here*/ - const struct _lv_font_t * fallback; /**< Fallback font for missing glyph. Resolved recursively */ -#if LV_USE_USER_DATA - void * user_data; /**< Custom user data for font.*/ -#endif -} lv_font_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Return with the bitmap of a font. - * @param font_p pointer to a font - * @param letter a UNICODE character code - * @return pointer to the bitmap of the letter - */ -const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter); - -/** - * Get the descriptor of a glyph - * @param font_p pointer to font - * @param dsc_out store the result descriptor here - * @param letter a UNICODE letter code - * @param letter_next the next letter after `letter`. Used for kerning - * @return true: descriptor is successfully loaded into `dsc_out`. - * false: the letter was not found, no data is loaded to `dsc_out` - */ -bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_out, uint32_t letter, - uint32_t letter_next); - -/** - * Get the width of a glyph with kerning - * @param font pointer to a font - * @param letter a UNICODE letter - * @param letter_next the next letter after `letter`. Used for kerning - * @return the width of the glyph - */ -uint16_t lv_font_get_glyph_width(const lv_font_t * font, uint32_t letter, uint32_t letter_next); - -/** - * Get the line height of a font. All characters fit into this height - * @param font_p pointer to a font - * @return the height of a font - */ -static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p) -{ - return font_p->line_height; -} - -/********************** - * MACROS - **********************/ - -#define LV_FONT_DECLARE(font_name) extern const lv_font_t font_name; - -#if LV_FONT_MONTSERRAT_8 -LV_FONT_DECLARE(lv_font_montserrat_8) -#endif - -#if LV_FONT_MONTSERRAT_10 -LV_FONT_DECLARE(lv_font_montserrat_10) -#endif - -#if LV_FONT_MONTSERRAT_12 -LV_FONT_DECLARE(lv_font_montserrat_12) -#endif - -#if LV_FONT_MONTSERRAT_14 -LV_FONT_DECLARE(lv_font_montserrat_14) -#endif - -#if LV_FONT_MONTSERRAT_16 -LV_FONT_DECLARE(lv_font_montserrat_16) -#endif - -#if LV_FONT_MONTSERRAT_18 -LV_FONT_DECLARE(lv_font_montserrat_18) -#endif - -#if LV_FONT_MONTSERRAT_20 -LV_FONT_DECLARE(lv_font_montserrat_20) -#endif - -#if LV_FONT_MONTSERRAT_22 -LV_FONT_DECLARE(lv_font_montserrat_22) -#endif - -#if LV_FONT_MONTSERRAT_24 -LV_FONT_DECLARE(lv_font_montserrat_24) -#endif - -#if LV_FONT_MONTSERRAT_26 -LV_FONT_DECLARE(lv_font_montserrat_26) -#endif - -#if LV_FONT_MONTSERRAT_28 -LV_FONT_DECLARE(lv_font_montserrat_28) -#endif - -#if LV_FONT_MONTSERRAT_30 -LV_FONT_DECLARE(lv_font_montserrat_30) -#endif - -#if LV_FONT_MONTSERRAT_32 -LV_FONT_DECLARE(lv_font_montserrat_32) -#endif - -#if LV_FONT_MONTSERRAT_34 -LV_FONT_DECLARE(lv_font_montserrat_34) -#endif - -#if LV_FONT_MONTSERRAT_36 -LV_FONT_DECLARE(lv_font_montserrat_36) -#endif - -#if LV_FONT_MONTSERRAT_38 -LV_FONT_DECLARE(lv_font_montserrat_38) -#endif - -#if LV_FONT_MONTSERRAT_40 -LV_FONT_DECLARE(lv_font_montserrat_40) -#endif - -#if LV_FONT_MONTSERRAT_42 -LV_FONT_DECLARE(lv_font_montserrat_42) -#endif - -#if LV_FONT_MONTSERRAT_44 -LV_FONT_DECLARE(lv_font_montserrat_44) -#endif - -#if LV_FONT_MONTSERRAT_46 -LV_FONT_DECLARE(lv_font_montserrat_46) -#endif - -#if LV_FONT_MONTSERRAT_48 -LV_FONT_DECLARE(lv_font_montserrat_48) -#endif - -#if LV_FONT_MONTSERRAT_12_SUBPX -LV_FONT_DECLARE(lv_font_montserrat_12_subpx) -#endif - -#if LV_FONT_MONTSERRAT_28_COMPRESSED -LV_FONT_DECLARE(lv_font_montserrat_28_compressed) -#endif - -#if LV_FONT_DEJAVU_16_PERSIAN_HEBREW -LV_FONT_DECLARE(lv_font_dejavu_16_persian_hebrew) -#endif - -#if LV_FONT_SIMSUN_16_CJK -LV_FONT_DECLARE(lv_font_simsun_16_cjk) -#endif - -#if LV_FONT_UNSCII_8 -LV_FONT_DECLARE(lv_font_unscii_8) -#endif - -#if LV_FONT_UNSCII_16 -LV_FONT_DECLARE(lv_font_unscii_16) -#endif - -/*Declare the custom (user defined) fonts*/ -#ifdef LV_FONT_CUSTOM_DECLARE -LV_FONT_CUSTOM_DECLARE -#endif - -/** - * Just a wrapper around LV_FONT_DEFAULT because it might be more convenient to use a function in some cases - * @return pointer to LV_FONT_DEFAULT - */ -static inline const lv_font_t * lv_font_default(void) -{ - return LV_FONT_DEFAULT; -} - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*USE_FONT*/ diff --git a/src/lib/lvgl/src/font/lv_font_fmt_txt.h b/src/lib/lvgl/src/font/lv_font_fmt_txt.h deleted file mode 100644 index 86546a3..0000000 --- a/src/lib/lvgl/src/font/lv_font_fmt_txt.h +++ /dev/null @@ -1,240 +0,0 @@ -/** - * @file lv_font_fmt_txt.h - * - */ - -#ifndef LV_FONT_FMT_TXT_H -#define LV_FONT_FMT_TXT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include -#include -#include "lv_font.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** This describes a glyph.*/ -typedef struct { -#if LV_FONT_FMT_TXT_LARGE == 0 - uint32_t bitmap_index : 20; /**< Start index of the bitmap. A font can be max 1 MB.*/ - uint32_t adv_w : 12; /**< Draw the next glyph after this width. 8.4 format (real_value * 16 is stored).*/ - uint8_t box_w; /**< Width of the glyph's bounding box*/ - uint8_t box_h; /**< Height of the glyph's bounding box*/ - int8_t ofs_x; /**< x offset of the bounding box*/ - int8_t ofs_y; /**< y offset of the bounding box. Measured from the top of the line*/ -#else - uint32_t bitmap_index; /**< Start index of the bitmap. A font can be max 4 GB.*/ - uint32_t adv_w; /**< Draw the next glyph after this width. 28.4 format (real_value * 16 is stored).*/ - uint16_t box_w; /**< Width of the glyph's bounding box*/ - uint16_t box_h; /**< Height of the glyph's bounding box*/ - int16_t ofs_x; /**< x offset of the bounding box*/ - int16_t ofs_y; /**< y offset of the bounding box. Measured from the top of the line*/ -#endif -} lv_font_fmt_txt_glyph_dsc_t; - -/** Format of font character map.*/ -enum { - LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL, - LV_FONT_FMT_TXT_CMAP_SPARSE_FULL, - LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY, - LV_FONT_FMT_TXT_CMAP_SPARSE_TINY, -}; - -typedef uint8_t lv_font_fmt_txt_cmap_type_t; - -/** - * Map codepoints to a `glyph_dsc`s - * Several formats are supported to optimize memory usage - * See https://github.com/lvgl/lv_font_conv/blob/master/doc/font_spec.md - */ -typedef struct { - /** First Unicode character for this range*/ - uint32_t range_start; - - /** Number of Unicode characters related to this range. - * Last Unicode character = range_start + range_length - 1*/ - uint16_t range_length; - - /** First glyph ID (array index of `glyph_dsc`) for this range*/ - uint16_t glyph_id_start; - - /* - According the specification there are 4 formats: - https://github.com/lvgl/lv_font_conv/blob/master/doc/font_spec.md - - For simplicity introduce "relative code point": - rcp = codepoint - range_start - - and a search function: - search a "value" in an "array" and returns the index of "value". - - Format 0 tiny - unicode_list == NULL && glyph_id_ofs_list == NULL - glyph_id = glyph_id_start + rcp - - Format 0 full - unicode_list == NULL && glyph_id_ofs_list != NULL - glyph_id = glyph_id_start + glyph_id_ofs_list[rcp] - - Sparse tiny - unicode_list != NULL && glyph_id_ofs_list == NULL - glyph_id = glyph_id_start + search(unicode_list, rcp) - - Sparse full - unicode_list != NULL && glyph_id_ofs_list != NULL - glyph_id = glyph_id_start + glyph_id_ofs_list[search(unicode_list, rcp)] - */ - - const uint16_t * unicode_list; - - /** if(type == LV_FONT_FMT_TXT_CMAP_FORMAT0_...) it's `uint8_t *` - * if(type == LV_FONT_FMT_TXT_CMAP_SPARSE_...) it's `uint16_t *` - */ - const void * glyph_id_ofs_list; - - /** Length of `unicode_list` and/or `glyph_id_ofs_list`*/ - uint16_t list_length; - - /** Type of this character map*/ - lv_font_fmt_txt_cmap_type_t type; -} lv_font_fmt_txt_cmap_t; - -/** A simple mapping of kern values from pairs*/ -typedef struct { - /*To get a kern value of two code points: - 1. Get the `glyph_id_left` and `glyph_id_right` from `lv_font_fmt_txt_cmap_t - 2. for(i = 0; i < pair_cnt * 2; i += 2) - if(gylph_ids[i] == glyph_id_left && - gylph_ids[i+1] == glyph_id_right) - return values[i / 2]; - */ - const void * glyph_ids; - const int8_t * values; - uint32_t pair_cnt : 30; - uint32_t glyph_ids_size : 2; /*0: `glyph_ids` is stored as `uint8_t`; 1: as `uint16_t`*/ -} lv_font_fmt_txt_kern_pair_t; - -/** More complex but more optimal class based kern value storage*/ -typedef struct { - /*To get a kern value of two code points: - 1. Get the `glyph_id_left` and `glyph_id_right` from `lv_font_fmt_txt_cmap_t - 2. Get the class of the left and right glyphs as `left_class` and `right_class` - left_class = left_class_mapping[glyph_id_left]; - right_class = right_class_mapping[glyph_id_right]; - 3. value = class_pair_values[(left_class-1)*right_class_cnt + (right_class-1)] - */ - - const int8_t * class_pair_values; /*left_class_cnt * right_class_cnt value*/ - const uint8_t * left_class_mapping; /*Map the glyph_ids to classes: index -> glyph_id -> class_id*/ - const uint8_t * right_class_mapping; /*Map the glyph_ids to classes: index -> glyph_id -> class_id*/ - uint8_t left_class_cnt; - uint8_t right_class_cnt; -} lv_font_fmt_txt_kern_classes_t; - -/** Bitmap formats*/ -typedef enum { - LV_FONT_FMT_TXT_PLAIN = 0, - LV_FONT_FMT_TXT_COMPRESSED = 1, - LV_FONT_FMT_TXT_COMPRESSED_NO_PREFILTER = 1, -} lv_font_fmt_txt_bitmap_format_t; - -typedef struct { - uint32_t last_letter; - uint32_t last_glyph_id; -} lv_font_fmt_txt_glyph_cache_t; - -/*Describe store additional data for fonts*/ -typedef struct { - /*The bitmaps of all glyphs*/ - const uint8_t * glyph_bitmap; - - /*Describe the glyphs*/ - const lv_font_fmt_txt_glyph_dsc_t * glyph_dsc; - - /*Map the glyphs to Unicode characters. - *Array of `lv_font_cmap_fmt_txt_t` variables*/ - const lv_font_fmt_txt_cmap_t * cmaps; - - /** - * Store kerning values. - * Can be `lv_font_fmt_txt_kern_pair_t * or `lv_font_kern_classes_fmt_txt_t *` - * depending on `kern_classes` - */ - const void * kern_dsc; - - /*Scale kern values in 12.4 format*/ - uint16_t kern_scale; - - /*Number of cmap tables*/ - uint16_t cmap_num : 9; - - /*Bit per pixel: 1, 2, 3, 4, 8*/ - uint16_t bpp : 4; - - /*Type of `kern_dsc`*/ - uint16_t kern_classes : 1; - - /* - * storage format of the bitmap - * from `lv_font_fmt_txt_bitmap_format_t` - */ - uint16_t bitmap_format : 2; - - /*Cache the last letter and is glyph id*/ - lv_font_fmt_txt_glyph_cache_t * cache; -} lv_font_fmt_txt_dsc_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Used as `get_glyph_bitmap` callback in LittelvGL's native font format if the font is uncompressed. - * @param font pointer to font - * @param unicode_letter a unicode letter which bitmap should be get - * @return pointer to the bitmap or NULL if not found - */ -const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t letter); - -/** - * Used as `get_glyph_dsc` callback in LittelvGL's native font format if the font is uncompressed. - * @param font_p pointer to font - * @param dsc_out store the result descriptor here - * @param letter a UNICODE letter code - * @return true: descriptor is successfully loaded into `dsc_out`. - * false: the letter was not found, no data is loaded to `dsc_out` - */ -bool lv_font_get_glyph_dsc_fmt_txt(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, - uint32_t unicode_letter_next); - -/** - * Free the allocated memories. - */ -void _lv_font_clean_up_fmt_txt(void); - -/********************** - * MACROS - **********************/ - -/********************** - * ADD BUILT IN FONTS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_FONT_FMT_TXT_H*/ diff --git a/src/lib/lvgl/src/font/lv_font_loader.h b/src/lib/lvgl/src/font/lv_font_loader.h deleted file mode 100644 index 783cb2e..0000000 --- a/src/lib/lvgl/src/font/lv_font_loader.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file lv_font_loader.h - * - */ - -#ifndef LV_FONT_LOADER_H -#define LV_FONT_LOADER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_font_t * lv_font_load(const char * fontName); -void lv_font_free(lv_font_t * font); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_FONT_LOADER_H*/ diff --git a/src/lib/lvgl/src/font/lv_symbol_def.h b/src/lib/lvgl/src/font/lv_symbol_def.h deleted file mode 100644 index 696daf1..0000000 --- a/src/lib/lvgl/src/font/lv_symbol_def.h +++ /dev/null @@ -1,353 +0,0 @@ -#ifndef LV_SYMBOL_DEF_H -#define LV_SYMBOL_DEF_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "../lv_conf_internal.h" - -/*------------------------------- - * Symbols from "normal" font - *-----------------------------*/ -#if !defined LV_SYMBOL_BULLET -#define LV_SYMBOL_BULLET "\xE2\x80\xA2" /*20042, 0x2022*/ -#endif - -/*------------------------------- - * Symbols from FontAwesome font - *-----------------------------*/ - -/*In the font converter use this list as range: - 61441, 61448, 61451, 61452, 61453, 61457, 61459, 61461, 61465, 61468, - 61473, 61478, 61479, 61480, 61502, 61507, 61512, 61515, 61516, 61517, - 61521, 61522, 61523, 61524, 61543, 61544, 61550, 61552, 61553, 61556, - 61559, 61560, 61561, 61563, 61587, 61589, 61636, 61637, 61639, 61641, - 61664, 61671, 61674, 61683, 61724, 61732, 61787, 61931, 62016, 62017, - 62018, 62019, 62020, 62087, 62099, 62189, 62212, 62810, 63426, 63650 -*/ - -/* These symbols can be prefined in the lv_conf.h file. - * If they are not predefined, they will use the following values - */ - - -#if !defined LV_SYMBOL_AUDIO -#define LV_SYMBOL_AUDIO "\xEF\x80\x81" /*61441, 0xF001*/ -#endif - -#if !defined LV_SYMBOL_VIDEO -#define LV_SYMBOL_VIDEO "\xEF\x80\x88" /*61448, 0xF008*/ -#endif - -#if !defined LV_SYMBOL_LIST -#define LV_SYMBOL_LIST "\xEF\x80\x8B" /*61451, 0xF00B*/ -#endif - -#if !defined LV_SYMBOL_OK -#define LV_SYMBOL_OK "\xEF\x80\x8C" /*61452, 0xF00C*/ -#endif - -#if !defined LV_SYMBOL_CLOSE -#define LV_SYMBOL_CLOSE "\xEF\x80\x8D" /*61453, 0xF00D*/ -#endif - -#if !defined LV_SYMBOL_POWER -#define LV_SYMBOL_POWER "\xEF\x80\x91" /*61457, 0xF011*/ -#endif - -#if !defined LV_SYMBOL_SETTINGS -#define LV_SYMBOL_SETTINGS "\xEF\x80\x93" /*61459, 0xF013*/ -#endif - -#if !defined LV_SYMBOL_HOME -#define LV_SYMBOL_HOME "\xEF\x80\x95" /*61461, 0xF015*/ -#endif - -#if !defined LV_SYMBOL_DOWNLOAD -#define LV_SYMBOL_DOWNLOAD "\xEF\x80\x99" /*61465, 0xF019*/ -#endif - -#if !defined LV_SYMBOL_DRIVE -#define LV_SYMBOL_DRIVE "\xEF\x80\x9C" /*61468, 0xF01C*/ -#endif - -#if !defined LV_SYMBOL_REFRESH -#define LV_SYMBOL_REFRESH "\xEF\x80\xA1" /*61473, 0xF021*/ -#endif - -#if !defined LV_SYMBOL_MUTE -#define LV_SYMBOL_MUTE "\xEF\x80\xA6" /*61478, 0xF026*/ -#endif - -#if !defined LV_SYMBOL_VOLUME_MID -#define LV_SYMBOL_VOLUME_MID "\xEF\x80\xA7" /*61479, 0xF027*/ -#endif - -#if !defined LV_SYMBOL_VOLUME_MAX -#define LV_SYMBOL_VOLUME_MAX "\xEF\x80\xA8" /*61480, 0xF028*/ -#endif - -#if !defined LV_SYMBOL_IMAGE -#define LV_SYMBOL_IMAGE "\xEF\x80\xBE" /*61502, 0xF03E*/ -#endif - -#if !defined LV_SYMBOL_TINT -#define LV_SYMBOL_TINT "\xEF\x81\x83" /*61507, 0xF043*/ -#endif - -#if !defined LV_SYMBOL_PREV -#define LV_SYMBOL_PREV "\xEF\x81\x88" /*61512, 0xF048*/ -#endif - -#if !defined LV_SYMBOL_PLAY -#define LV_SYMBOL_PLAY "\xEF\x81\x8B" /*61515, 0xF04B*/ -#endif - -#if !defined LV_SYMBOL_PAUSE -#define LV_SYMBOL_PAUSE "\xEF\x81\x8C" /*61516, 0xF04C*/ -#endif - -#if !defined LV_SYMBOL_STOP -#define LV_SYMBOL_STOP "\xEF\x81\x8D" /*61517, 0xF04D*/ -#endif - -#if !defined LV_SYMBOL_NEXT -#define LV_SYMBOL_NEXT "\xEF\x81\x91" /*61521, 0xF051*/ -#endif - -#if !defined LV_SYMBOL_EJECT -#define LV_SYMBOL_EJECT "\xEF\x81\x92" /*61522, 0xF052*/ -#endif - -#if !defined LV_SYMBOL_LEFT -#define LV_SYMBOL_LEFT "\xEF\x81\x93" /*61523, 0xF053*/ -#endif - -#if !defined LV_SYMBOL_RIGHT -#define LV_SYMBOL_RIGHT "\xEF\x81\x94" /*61524, 0xF054*/ -#endif - -#if !defined LV_SYMBOL_PLUS -#define LV_SYMBOL_PLUS "\xEF\x81\xA7" /*61543, 0xF067*/ -#endif - -#if !defined LV_SYMBOL_MINUS -#define LV_SYMBOL_MINUS "\xEF\x81\xA8" /*61544, 0xF068*/ -#endif - -#if !defined LV_SYMBOL_EYE_OPEN -#define LV_SYMBOL_EYE_OPEN "\xEF\x81\xAE" /*61550, 0xF06E*/ -#endif - -#if !defined LV_SYMBOL_EYE_CLOSE -#define LV_SYMBOL_EYE_CLOSE "\xEF\x81\xB0" /*61552, 0xF070*/ -#endif - -#if !defined LV_SYMBOL_WARNING -#define LV_SYMBOL_WARNING "\xEF\x81\xB1" /*61553, 0xF071*/ -#endif - -#if !defined LV_SYMBOL_SHUFFLE -#define LV_SYMBOL_SHUFFLE "\xEF\x81\xB4" /*61556, 0xF074*/ -#endif - -#if !defined LV_SYMBOL_UP -#define LV_SYMBOL_UP "\xEF\x81\xB7" /*61559, 0xF077*/ -#endif - -#if !defined LV_SYMBOL_DOWN -#define LV_SYMBOL_DOWN "\xEF\x81\xB8" /*61560, 0xF078*/ -#endif - -#if !defined LV_SYMBOL_LOOP -#define LV_SYMBOL_LOOP "\xEF\x81\xB9" /*61561, 0xF079*/ -#endif - -#if !defined LV_SYMBOL_DIRECTORY -#define LV_SYMBOL_DIRECTORY "\xEF\x81\xBB" /*61563, 0xF07B*/ -#endif - -#if !defined LV_SYMBOL_UPLOAD -#define LV_SYMBOL_UPLOAD "\xEF\x82\x93" /*61587, 0xF093*/ -#endif - -#if !defined LV_SYMBOL_CALL -#define LV_SYMBOL_CALL "\xEF\x82\x95" /*61589, 0xF095*/ -#endif - -#if !defined LV_SYMBOL_CUT -#define LV_SYMBOL_CUT "\xEF\x83\x84" /*61636, 0xF0C4*/ -#endif - -#if !defined LV_SYMBOL_COPY -#define LV_SYMBOL_COPY "\xEF\x83\x85" /*61637, 0xF0C5*/ -#endif - -#if !defined LV_SYMBOL_SAVE -#define LV_SYMBOL_SAVE "\xEF\x83\x87" /*61639, 0xF0C7*/ -#endif - -#if !defined LV_SYMBOL_BARS -#define LV_SYMBOL_BARS "\xEF\x83\x89" /*61641, 0xF0C9*/ -#endif - -#if !defined LV_SYMBOL_ENVELOPE -#define LV_SYMBOL_ENVELOPE "\xEF\x83\xA0" /*61664, 0xF0E0*/ -#endif - -#if !defined LV_SYMBOL_CHARGE -#define LV_SYMBOL_CHARGE "\xEF\x83\xA7" /*61671, 0xF0E7*/ -#endif - -#if !defined LV_SYMBOL_PASTE -#define LV_SYMBOL_PASTE "\xEF\x83\xAA" /*61674, 0xF0EA*/ -#endif - -#if !defined LV_SYMBOL_BELL -#define LV_SYMBOL_BELL "\xEF\x83\xB3" /*61683, 0xF0F3*/ -#endif - -#if !defined LV_SYMBOL_KEYBOARD -#define LV_SYMBOL_KEYBOARD "\xEF\x84\x9C" /*61724, 0xF11C*/ -#endif - -#if !defined LV_SYMBOL_GPS -#define LV_SYMBOL_GPS "\xEF\x84\xA4" /*61732, 0xF124*/ -#endif - -#if !defined LV_SYMBOL_FILE -#define LV_SYMBOL_FILE "\xEF\x85\x9B" /*61787, 0xF158*/ -#endif - -#if !defined LV_SYMBOL_WIFI -#define LV_SYMBOL_WIFI "\xEF\x87\xAB" /*61931, 0xF1EB*/ -#endif - -#if !defined LV_SYMBOL_BATTERY_FULL -#define LV_SYMBOL_BATTERY_FULL "\xEF\x89\x80" /*62016, 0xF240*/ -#endif - -#if !defined LV_SYMBOL_BATTERY_3 -#define LV_SYMBOL_BATTERY_3 "\xEF\x89\x81" /*62017, 0xF241*/ -#endif - -#if !defined LV_SYMBOL_BATTERY_2 -#define LV_SYMBOL_BATTERY_2 "\xEF\x89\x82" /*62018, 0xF242*/ -#endif - -#if !defined LV_SYMBOL_BATTERY_1 -#define LV_SYMBOL_BATTERY_1 "\xEF\x89\x83" /*62019, 0xF243*/ -#endif - -#if !defined LV_SYMBOL_BATTERY_EMPTY -#define LV_SYMBOL_BATTERY_EMPTY "\xEF\x89\x84" /*62020, 0xF244*/ -#endif - -#if !defined LV_SYMBOL_USB -#define LV_SYMBOL_USB "\xEF\x8a\x87" /*62087, 0xF287*/ -#endif - -#if !defined LV_SYMBOL_BLUETOOTH -#define LV_SYMBOL_BLUETOOTH "\xEF\x8a\x93" /*62099, 0xF293*/ -#endif - -#if !defined LV_SYMBOL_TRASH -#define LV_SYMBOL_TRASH "\xEF\x8B\xAD" /*62189, 0xF2ED*/ -#endif - -#if !defined LV_SYMBOL_EDIT -#define LV_SYMBOL_EDIT "\xEF\x8C\x84" /*62212, 0xF304*/ -#endif - -#if !defined LV_SYMBOL_BACKSPACE -#define LV_SYMBOL_BACKSPACE "\xEF\x95\x9A" /*62810, 0xF55A*/ -#endif - -#if !defined LV_SYMBOL_SD_CARD -#define LV_SYMBOL_SD_CARD "\xEF\x9F\x82" /*63426, 0xF7C2*/ -#endif - -#if !defined LV_SYMBOL_NEW_LINE -#define LV_SYMBOL_NEW_LINE "\xEF\xA2\xA2" /*63650, 0xF8A2*/ -#endif - -#if !defined LV_SYMBOL_DUMMY -/** Invalid symbol at (U+F8FF). If written before a string then `lv_img` will show it as a label*/ -#define LV_SYMBOL_DUMMY "\xEF\xA3\xBF" -#endif - -/* - * The following list is generated using - * cat src/font/lv_symbol_def.h | sed -E -n 's/^#define\s+LV_(SYMBOL_\w+).*".*$/ _LV_STR_\1,/p' - */ -enum { - _LV_STR_SYMBOL_BULLET, - _LV_STR_SYMBOL_AUDIO, - _LV_STR_SYMBOL_VIDEO, - _LV_STR_SYMBOL_LIST, - _LV_STR_SYMBOL_OK, - _LV_STR_SYMBOL_CLOSE, - _LV_STR_SYMBOL_POWER, - _LV_STR_SYMBOL_SETTINGS, - _LV_STR_SYMBOL_HOME, - _LV_STR_SYMBOL_DOWNLOAD, - _LV_STR_SYMBOL_DRIVE, - _LV_STR_SYMBOL_REFRESH, - _LV_STR_SYMBOL_MUTE, - _LV_STR_SYMBOL_VOLUME_MID, - _LV_STR_SYMBOL_VOLUME_MAX, - _LV_STR_SYMBOL_IMAGE, - _LV_STR_SYMBOL_TINT, - _LV_STR_SYMBOL_PREV, - _LV_STR_SYMBOL_PLAY, - _LV_STR_SYMBOL_PAUSE, - _LV_STR_SYMBOL_STOP, - _LV_STR_SYMBOL_NEXT, - _LV_STR_SYMBOL_EJECT, - _LV_STR_SYMBOL_LEFT, - _LV_STR_SYMBOL_RIGHT, - _LV_STR_SYMBOL_PLUS, - _LV_STR_SYMBOL_MINUS, - _LV_STR_SYMBOL_EYE_OPEN, - _LV_STR_SYMBOL_EYE_CLOSE, - _LV_STR_SYMBOL_WARNING, - _LV_STR_SYMBOL_SHUFFLE, - _LV_STR_SYMBOL_UP, - _LV_STR_SYMBOL_DOWN, - _LV_STR_SYMBOL_LOOP, - _LV_STR_SYMBOL_DIRECTORY, - _LV_STR_SYMBOL_UPLOAD, - _LV_STR_SYMBOL_CALL, - _LV_STR_SYMBOL_CUT, - _LV_STR_SYMBOL_COPY, - _LV_STR_SYMBOL_SAVE, - _LV_STR_SYMBOL_BARS, - _LV_STR_SYMBOL_ENVELOPE, - _LV_STR_SYMBOL_CHARGE, - _LV_STR_SYMBOL_PASTE, - _LV_STR_SYMBOL_BELL, - _LV_STR_SYMBOL_KEYBOARD, - _LV_STR_SYMBOL_GPS, - _LV_STR_SYMBOL_FILE, - _LV_STR_SYMBOL_WIFI, - _LV_STR_SYMBOL_BATTERY_FULL, - _LV_STR_SYMBOL_BATTERY_3, - _LV_STR_SYMBOL_BATTERY_2, - _LV_STR_SYMBOL_BATTERY_1, - _LV_STR_SYMBOL_BATTERY_EMPTY, - _LV_STR_SYMBOL_USB, - _LV_STR_SYMBOL_BLUETOOTH, - _LV_STR_SYMBOL_TRASH, - _LV_STR_SYMBOL_EDIT, - _LV_STR_SYMBOL_BACKSPACE, - _LV_STR_SYMBOL_SD_CARD, - _LV_STR_SYMBOL_NEW_LINE, - _LV_STR_SYMBOL_DUMMY, -}; - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SYMBOL_DEF_H*/ diff --git a/src/lib/lvgl/src/hal/lv_hal.h b/src/lib/lvgl/src/hal/lv_hal.h deleted file mode 100644 index 167da1f..0000000 --- a/src/lib/lvgl/src/hal/lv_hal.h +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @file lv_hal.h - * - */ - -#ifndef LV_HAL_H -#define LV_HAL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_hal_disp.h" -#include "lv_hal_indev.h" -#include "lv_hal_tick.h" - -/********************* - * DEFINES - *********************/ -/** - * Same as Android's DIP. (Different name is chosen to avoid mistype between LV_DPI and LV_DIP) - * 1 dip is 1 px on a 160 DPI screen - * 1 dip is 2 px on a 320 DPI screen - * https://stackoverflow.com/questions/2025282/what-is-the-difference-between-px-dip-dp-and-sp - */ -#define _LV_DPX_CALC(dpi, n) ((n) == 0 ? 0 :LV_MAX((( (dpi) * (n) + 80) / 160), 1)) /*+80 for rounding*/ -#define LV_DPX(n) _LV_DPX_CALC(lv_disp_get_dpi(NULL), n) - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/hal/lv_hal_disp.h b/src/lib/lvgl/src/hal/lv_hal_disp.h deleted file mode 100644 index 61f25c9..0000000 --- a/src/lib/lvgl/src/hal/lv_hal_disp.h +++ /dev/null @@ -1,367 +0,0 @@ -/** - * @file lv_hal_disp.h - * - * @description Display Driver HAL interface header file - * - */ - -#ifndef LV_HAL_DISP_H -#define LV_HAL_DISP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include -#include "lv_hal.h" -#include "../draw/lv_draw.h" -#include "../misc/lv_color.h" -#include "../misc/lv_area.h" -#include "../misc/lv_ll.h" -#include "../misc/lv_timer.h" - -/********************* - * DEFINES - *********************/ -#ifndef LV_INV_BUF_SIZE -#define LV_INV_BUF_SIZE 32 /*Buffer size for invalid areas*/ -#endif - -#ifndef LV_ATTRIBUTE_FLUSH_READY -#define LV_ATTRIBUTE_FLUSH_READY -#endif - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_disp_t; -struct _lv_disp_drv_t; -struct _lv_theme_t; - -/** - * Structure for holding display buffer information. - */ -typedef struct _lv_disp_draw_buf_t { - void * buf1; /**< First display buffer.*/ - void * buf2; /**< Second display buffer.*/ - - /*Internal, used by the library*/ - void * buf_act; - uint32_t size; /*In pixel count*/ - /*1: flushing is in progress. (It can't be a bit field because when it's cleared from IRQ Read-Modify-Write issue might occur)*/ - volatile int flushing; - /*1: It was the last chunk to flush. (It can't be a bit field because when it's cleared from IRQ Read-Modify-Write issue might occur)*/ - volatile int flushing_last; - volatile uint32_t last_area : 1; /*1: the last area is being rendered*/ - volatile uint32_t last_part : 1; /*1: the last part of the current area is being rendered*/ -} lv_disp_draw_buf_t; - -typedef enum { - LV_DISP_ROT_NONE = 0, - LV_DISP_ROT_90, - LV_DISP_ROT_180, - LV_DISP_ROT_270 -} lv_disp_rot_t; - -/** - * Display Driver structure to be registered by HAL. - * Only its pointer will be saved in `lv_disp_t` so it should be declared as - * `static lv_disp_drv_t my_drv` or allocated dynamically. - */ -typedef struct _lv_disp_drv_t { - - lv_coord_t hor_res; /**< Horizontal resolution.*/ - lv_coord_t ver_res; /**< Vertical resolution.*/ - - lv_coord_t - physical_hor_res; /**< Horizontal resolution of the full / physical display. Set to -1 for fullscreen mode.*/ - lv_coord_t - physical_ver_res; /**< Vertical resolution of the full / physical display. Set to -1 for fullscreen mode.*/ - lv_coord_t - offset_x; /**< Horizontal offset from the full / physical display. Set to 0 for fullscreen mode.*/ - lv_coord_t offset_y; /**< Vertical offset from the full / physical display. Set to 0 for fullscreen mode.*/ - - /** Pointer to a buffer initialized with `lv_disp_draw_buf_init()`. - * LVGL will use this buffer(s) to draw the screens contents*/ - lv_disp_draw_buf_t * draw_buf; - - uint32_t direct_mode : 1; /**< 1: Use screen-sized buffers and draw to absolute coordinates*/ - uint32_t full_refresh : 1; /**< 1: Always make the whole screen redrawn*/ - uint32_t sw_rotate : 1; /**< 1: use software rotation (slower)*/ - uint32_t antialiasing : 1; /**< 1: anti-aliasing is enabled on this display.*/ - uint32_t rotated : 2; /**< 1: turn the display by 90 degree. @warning Does not update coordinates for you!*/ - uint32_t screen_transp : 1; /**Handle if the screen doesn't have a solid (opa == LV_OPA_COVER) background. - * Use only if required because it's slower.*/ - - uint32_t dpi : 10; /** DPI (dot per inch) of the display. Default value is `LV_DPI_DEF`.*/ - - /** MANDATORY: Write the internal buffer (draw_buf) to the display. 'lv_disp_flush_ready()' has to be - * called when finished*/ - void (*flush_cb)(struct _lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p); - - /** OPTIONAL: Extend the invalidated areas to match with the display drivers requirements - * E.g. round `y` to, 8, 16 ..) on a monochrome display*/ - void (*rounder_cb)(struct _lv_disp_drv_t * disp_drv, lv_area_t * area); - - /** OPTIONAL: Set a pixel in a buffer according to the special requirements of the display - * Can be used for color format not supported in LittelvGL. E.g. 2 bit -> 4 gray scales - * @note Much slower then drawing with supported color formats.*/ - void (*set_px_cb)(struct _lv_disp_drv_t * disp_drv, uint8_t * buf, lv_coord_t buf_w, lv_coord_t x, lv_coord_t y, - lv_color_t color, lv_opa_t opa); - - void (*clear_cb)(struct _lv_disp_drv_t * disp_drv, uint8_t * buf, uint32_t size); - - - /** OPTIONAL: Called after every refresh cycle to tell the rendering and flushing time + the - * number of flushed pixels*/ - void (*monitor_cb)(struct _lv_disp_drv_t * disp_drv, uint32_t time, uint32_t px); - - /** OPTIONAL: Called periodically while lvgl waits for operation to be completed. - * For example flushing or GPU - * User can execute very simple tasks here or yield the task*/ - void (*wait_cb)(struct _lv_disp_drv_t * disp_drv); - - /** OPTIONAL: Called when lvgl needs any CPU cache that affects rendering to be cleaned*/ - void (*clean_dcache_cb)(struct _lv_disp_drv_t * disp_drv); - - /** OPTIONAL: called when driver parameters are updated */ - void (*drv_update_cb)(struct _lv_disp_drv_t * disp_drv); - - /** On CHROMA_KEYED images this color will be transparent. - * `LV_COLOR_CHROMA_KEY` by default. (lv_conf.h)*/ - lv_color_t color_chroma_key; - - lv_draw_ctx_t * draw_ctx; - void (*draw_ctx_init)(struct _lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx); - void (*draw_ctx_deinit)(struct _lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx); - size_t draw_ctx_size; - -#if LV_USE_USER_DATA - void * user_data; /**< Custom display driver user data*/ -#endif - -} lv_disp_drv_t; - -/** - * Display structure. - * @note `lv_disp_drv_t` should be the first member of the structure. - */ -typedef struct _lv_disp_t { - /**< Driver to the display*/ - struct _lv_disp_drv_t * driver; - - /**< A timer which periodically checks the dirty areas and refreshes them*/ - lv_timer_t * refr_timer; - - /**< The theme assigned to the screen*/ - struct _lv_theme_t * theme; - - /** Screens of the display*/ - struct _lv_obj_t ** screens; /**< Array of screen objects.*/ - struct _lv_obj_t * act_scr; /**< Currently active screen on this display*/ - struct _lv_obj_t * prev_scr; /**< Previous screen. Used during screen animations*/ - struct _lv_obj_t * scr_to_load; /**< The screen prepared to load in lv_scr_load_anim*/ - struct _lv_obj_t * top_layer; /**< @see lv_disp_get_layer_top*/ - struct _lv_obj_t * sys_layer; /**< @see lv_disp_get_layer_sys*/ - uint32_t screen_cnt; -uint8_t draw_prev_over_act : - 1; /**< 1: Draw previous screen over active screen*/ -uint8_t del_prev : - 1; /**< 1: Automatically delete the previous screen when the screen load animation is ready*/ - uint8_t rendering_in_progress : 1; /**< 1: The current screen rendering is in progress*/ - - lv_opa_t bg_opa; /**flush` you should use DMA or similar hardware to send - * the image to the display in the background. - * It lets LVGL to render next frame into the other buffer while previous is being - * sent. Set to `NULL` if unused. - * @param size_in_px_cnt size of the `buf1` and `buf2` in pixel count. - */ -void lv_disp_draw_buf_init(lv_disp_draw_buf_t * draw_buf, void * buf1, void * buf2, uint32_t size_in_px_cnt); - -/** - * Register an initialized display driver. - * Automatically set the first display as active. - * @param driver pointer to an initialized 'lv_disp_drv_t' variable. Only its pointer is saved! - * @return pointer to the new display or NULL on error - */ -lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver); - -/** - * Update the driver in run time. - * @param disp pointer to a display. (return value of `lv_disp_drv_register`) - * @param new_drv pointer to the new driver - */ -void lv_disp_drv_update(lv_disp_t * disp, lv_disp_drv_t * new_drv); - -/** - * Remove a display - * @param disp pointer to display - */ -void lv_disp_remove(lv_disp_t * disp); - -/** - * Set a default display. The new screens will be created on it by default. - * @param disp pointer to a display - */ -void lv_disp_set_default(lv_disp_t * disp); - -/** - * Get the default display - * @return pointer to the default display - */ -lv_disp_t * lv_disp_get_default(void); - -/** - * Get the horizontal resolution of a display - * @param disp pointer to a display (NULL to use the default display) - * @return the horizontal resolution of the display - */ -lv_coord_t lv_disp_get_hor_res(lv_disp_t * disp); - -/** - * Get the vertical resolution of a display - * @param disp pointer to a display (NULL to use the default display) - * @return the vertical resolution of the display - */ -lv_coord_t lv_disp_get_ver_res(lv_disp_t * disp); - -/** - * Get the full / physical horizontal resolution of a display - * @param disp pointer to a display (NULL to use the default display) - * @return the full / physical horizontal resolution of the display - */ -lv_coord_t lv_disp_get_physical_hor_res(lv_disp_t * disp); - -/** - * Get the full / physical vertical resolution of a display - * @param disp pointer to a display (NULL to use the default display) - * @return the full / physical vertical resolution of the display - */ -lv_coord_t lv_disp_get_physical_ver_res(lv_disp_t * disp); - -/** - * Get the horizontal offset from the full / physical display - * @param disp pointer to a display (NULL to use the default display) - * @return the horizontal offset from the full / physical display - */ -lv_coord_t lv_disp_get_offset_x(lv_disp_t * disp); - -/** - * Get the vertical offset from the full / physical display - * @param disp pointer to a display (NULL to use the default display) - * @return the horizontal offset from the full / physical display - */ -lv_coord_t lv_disp_get_offset_y(lv_disp_t * disp); - -/** - * Get if anti-aliasing is enabled for a display or not - * @param disp pointer to a display (NULL to use the default display) - * @return true: anti-aliasing is enabled; false: disabled - */ -bool lv_disp_get_antialiasing(lv_disp_t * disp); - -/** - * Get the DPI of the display - * @param disp pointer to a display (NULL to use the default display) - * @return dpi of the display - */ -lv_coord_t lv_disp_get_dpi(const lv_disp_t * disp); - - -/** - * Set the rotation of this display. - * @param disp pointer to a display (NULL to use the default display) - * @param rotation rotation angle - */ -void lv_disp_set_rotation(lv_disp_t * disp, lv_disp_rot_t rotation); - -/** - * Get the current rotation of this display. - * @param disp pointer to a display (NULL to use the default display) - * @return rotation angle - */ -lv_disp_rot_t lv_disp_get_rotation(lv_disp_t * disp); - -//! @cond Doxygen_Suppress - -/** - * Call in the display driver's `flush_cb` function when the flushing is finished - * @param disp_drv pointer to display driver in `flush_cb` where this function is called - */ -LV_ATTRIBUTE_FLUSH_READY void lv_disp_flush_ready(lv_disp_drv_t * disp_drv); - -/** - * Tell if it's the last area of the refreshing process. - * Can be called from `flush_cb` to execute some special display refreshing if needed when all areas area flushed. - * @param disp_drv pointer to display driver - * @return true: it's the last area to flush; false: there are other areas too which will be refreshed soon - */ -LV_ATTRIBUTE_FLUSH_READY bool lv_disp_flush_is_last(lv_disp_drv_t * disp_drv); - -//! @endcond - -/** - * Get the next display. - * @param disp pointer to the current display. NULL to initialize. - * @return the next display or NULL if no more. Give the first display when the parameter is NULL - */ -lv_disp_t * lv_disp_get_next(lv_disp_t * disp); - -/** - * Get the internal buffer of a display - * @param disp pointer to a display - * @return pointer to the internal buffers - */ -lv_disp_draw_buf_t * lv_disp_get_draw_buf(lv_disp_t * disp); - -void lv_disp_drv_use_generic_set_px_cb(lv_disp_drv_t * disp_drv, lv_img_cf_t cf); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/hal/lv_hal_indev.h b/src/lib/lvgl/src/hal/lv_hal_indev.h deleted file mode 100644 index ca51a08..0000000 --- a/src/lib/lvgl/src/hal/lv_hal_indev.h +++ /dev/null @@ -1,239 +0,0 @@ -/** - * @file lv_hal_indev.h - * - * @description Input Device HAL interface layer header file - * - */ - -#ifndef LV_HAL_INDEV_H -#define LV_HAL_INDEV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include -#include "../misc/lv_area.h" -#include "../misc/lv_timer.h" - -/********************* - * DEFINES - *********************/ - -/*Drag threshold in pixels*/ -#define LV_INDEV_DEF_SCROLL_LIMIT 10 - -/*Drag throw slow-down in [%]. Greater value -> faster slow-down*/ -#define LV_INDEV_DEF_SCROLL_THROW 10 - -/*Long press time in milliseconds. - *Time to send `LV_EVENT_LONG_PRESSSED`)*/ -#define LV_INDEV_DEF_LONG_PRESS_TIME 400 - -/*Repeated trigger period in long press [ms] - *Time between `LV_EVENT_LONG_PRESSED_REPEAT*/ -#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100 - - -/*Gesture threshold in pixels*/ -#define LV_INDEV_DEF_GESTURE_LIMIT 50 - -/*Gesture min velocity at release before swipe (pixels)*/ -#define LV_INDEV_DEF_GESTURE_MIN_VELOCITY 3 - - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_obj_t; -struct _lv_disp_t; -struct _lv_group_t; -struct _lv_indev_t; -struct _lv_indev_drv_t; - -/** Possible input device types*/ -typedef enum { - LV_INDEV_TYPE_NONE, /**< Uninitialized state*/ - LV_INDEV_TYPE_POINTER, /**< Touch pad, mouse, external button*/ - LV_INDEV_TYPE_KEYPAD, /**< Keypad or keyboard*/ - LV_INDEV_TYPE_BUTTON, /**< External (hardware button) which is assigned to a specific point of the screen*/ - LV_INDEV_TYPE_ENCODER, /**< Encoder with only Left, Right turn and a Button*/ -} lv_indev_type_t; - -/** States for input devices*/ -typedef enum { - LV_INDEV_STATE_RELEASED = 0, - LV_INDEV_STATE_PRESSED -} lv_indev_state_t; - -/** Data structure passed to an input driver to fill*/ -typedef struct { - lv_point_t point; /**< For LV_INDEV_TYPE_POINTER the currently pressed point*/ - uint32_t key; /**< For LV_INDEV_TYPE_KEYPAD the currently pressed key*/ - uint32_t btn_id; /**< For LV_INDEV_TYPE_BUTTON the currently pressed button*/ - int16_t enc_diff; /**< For LV_INDEV_TYPE_ENCODER number of steps since the previous read*/ - - lv_indev_state_t state; /**< LV_INDEV_STATE_REL or LV_INDEV_STATE_PR*/ - bool continue_reading; /**< If set to true, the read callback is invoked again*/ -} lv_indev_data_t; - -/** Initialized by the user and registered by 'lv_indev_add()'*/ -typedef struct _lv_indev_drv_t { - - /**< Input device type*/ - lv_indev_type_t type; - - /**< Function pointer to read input device data.*/ - void (*read_cb)(struct _lv_indev_drv_t * indev_drv, lv_indev_data_t * data); - - /** Called when an action happened on the input device. - * The second parameter is the event from `lv_event_t`*/ - void (*feedback_cb)(struct _lv_indev_drv_t *, uint8_t); - -#if LV_USE_USER_DATA - void * user_data; -#endif - - /**< Pointer to the assigned display*/ - struct _lv_disp_t * disp; - - /**< Timer to periodically read the input device*/ - lv_timer_t * read_timer; - - /**< Number of pixels to slide before actually drag the object*/ - uint8_t scroll_limit; - - /**< Drag throw slow-down in [%]. Greater value means faster slow-down*/ - uint8_t scroll_throw; - - /**< At least this difference should be between two points to evaluate as gesture*/ - uint8_t gesture_min_velocity; - - /**< At least this difference should be to send a gesture*/ - uint8_t gesture_limit; - - /**< Long press time in milliseconds*/ - uint16_t long_press_time; - - /**< Repeated trigger period in long press [ms]*/ - uint16_t long_press_repeat_time; -} lv_indev_drv_t; - -/** Run time data of input devices - * Internally used by the library, you should not need to touch it. - */ -typedef struct _lv_indev_proc_t { - lv_indev_state_t state; /**< Current state of the input device.*/ - /*Flags*/ - uint8_t long_pr_sent : 1; - uint8_t reset_query : 1; - uint8_t disabled : 1; - uint8_t wait_until_release : 1; - - union { - struct { - /*Pointer and button data*/ - lv_point_t act_point; /**< Current point of input device.*/ - lv_point_t last_point; /**< Last point of input device.*/ - lv_point_t last_raw_point; /**< Last point read from read_cb. */ - lv_point_t vect; /**< Difference between `act_point` and `last_point`.*/ - lv_point_t scroll_sum; /*Count the dragged pixels to check LV_INDEV_DEF_SCROLL_LIMIT*/ - lv_point_t scroll_throw_vect; - lv_point_t scroll_throw_vect_ori; - struct _lv_obj_t * act_obj; /*The object being pressed*/ - struct _lv_obj_t * last_obj; /*The last object which was pressed*/ - struct _lv_obj_t * scroll_obj; /*The object being scrolled*/ - struct _lv_obj_t * last_pressed; /*The lastly pressed object*/ - lv_area_t scroll_area; - - lv_point_t gesture_sum; /*Count the gesture pixels to check LV_INDEV_DEF_GESTURE_LIMIT*/ - /*Flags*/ - lv_dir_t scroll_dir : 4; - lv_dir_t gesture_dir : 4; - uint8_t gesture_sent : 1; - } pointer; - struct { - /*Keypad data*/ - lv_indev_state_t last_state; - uint32_t last_key; - } keypad; - } types; - - uint32_t pr_timestamp; /**< Pressed time stamp*/ - uint32_t longpr_rep_timestamp; /**< Long press repeat time stamp*/ -} _lv_indev_proc_t; - -/** The main input device descriptor with driver, runtime data ('proc') and some additional - * information*/ -typedef struct _lv_indev_t { - struct _lv_indev_drv_t * driver; - _lv_indev_proc_t proc; - struct _lv_obj_t * cursor; /**< Cursor for LV_INPUT_TYPE_POINTER*/ - struct _lv_group_t * group; /**< Keypad destination group*/ - const lv_point_t * btn_points; /**< Array points assigned to the button ()screen will be pressed - here by the buttons*/ -} lv_indev_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize an input device driver with default values. - * It is used to surely have known values in the fields and not memory junk. - * After it you can set the fields. - * @param driver pointer to driver variable to initialize - */ -void lv_indev_drv_init(struct _lv_indev_drv_t * driver); - -/** - * Register an initialized input device driver. - * @param driver pointer to an initialized 'lv_indev_drv_t' variable (can be local variable) - * @return pointer to the new input device or NULL on error - */ -lv_indev_t * lv_indev_drv_register(struct _lv_indev_drv_t * driver); - -/** - * Update the driver in run time. - * @param indev pointer to an input device. (return value of `lv_indev_drv_register`) - * @param new_drv pointer to the new driver - */ -void lv_indev_drv_update(lv_indev_t * indev, struct _lv_indev_drv_t * new_drv); - -/** -* Remove the provided input device. Make sure not to use the provided input device afterwards anymore. -* @param indev pointer to delete -*/ -void lv_indev_delete(lv_indev_t * indev); - -/** - * Get the next input device. - * @param indev pointer to the current input device. NULL to initialize. - * @return the next input device or NULL if there are no more. Provide the first input device when - * the parameter is NULL - */ -lv_indev_t * lv_indev_get_next(lv_indev_t * indev); - -/** - * Read data from an input device. - * @param indev pointer to an input device - * @param data input device will write its data here - */ -void _lv_indev_read(lv_indev_t * indev, lv_indev_data_t * data); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/hal/lv_hal_tick.h b/src/lib/lvgl/src/hal/lv_hal_tick.h deleted file mode 100644 index 949f56b..0000000 --- a/src/lib/lvgl/src/hal/lv_hal_tick.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * @file lv_hal_tick.h - * Provide access to the system tick with 1 millisecond resolution - */ - -#ifndef LV_HAL_TICK_H -#define LV_HAL_TICK_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include - -/********************* - * DEFINES - *********************/ -#ifndef LV_ATTRIBUTE_TICK_INC -#define LV_ATTRIBUTE_TICK_INC -#endif - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -//! @cond Doxygen_Suppress - -#if !LV_TICK_CUSTOM -/** - * You have to call this function periodically - * @param tick_period the call period of this function in milliseconds - */ -LV_ATTRIBUTE_TICK_INC void lv_tick_inc(uint32_t tick_period); -#endif - -//! @endcond - -/** - * Get the elapsed milliseconds since start up - * @return the elapsed milliseconds - */ -uint32_t lv_tick_get(void); - -/** - * Get the elapsed milliseconds since a previous time stamp - * @param prev_tick a previous time stamp (return value of lv_tick_get() ) - * @return the elapsed milliseconds since 'prev_tick' - */ -uint32_t lv_tick_elaps(uint32_t prev_tick); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_HAL_TICK_H*/ diff --git a/src/lib/lvgl/src/lv_api_map.h b/src/lib/lvgl/src/lv_api_map.h deleted file mode 100644 index f2b640a..0000000 --- a/src/lib/lvgl/src/lv_api_map.h +++ /dev/null @@ -1,88 +0,0 @@ -/** - * @file lv_api_map.h - * - */ - -#ifndef LV_API_MAP_H -#define LV_API_MAP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lvgl.h" - -/********************* - * DEFINES - *********************/ - -#define LV_NO_TASK_READY LV_NO_TIMER_READY -#define LV_INDEV_STATE_REL LV_INDEV_STATE_RELEASED -#define LV_INDEV_STATE_PR LV_INDEV_STATE_PRESSED -#define LV_OBJ_FLAG_SNAPABLE LV_OBJ_FLAG_SNAPPABLE /*Fixed typo*/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -static inline LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_task_handler(void) -{ - return lv_timer_handler(); -} - -/********************** - * MACROS - **********************/ - - -/********************** - * INLINE FUNCTIONS - **********************/ - -/** - * Move the object to the foreground. - * It will look like if it was created as the last child of its parent. - * It also means it can cover any of the siblings. - * @param obj pointer to an object - */ -static inline void lv_obj_move_foreground(lv_obj_t * obj) -{ - lv_obj_t * parent = lv_obj_get_parent(obj); - lv_obj_move_to_index(obj, lv_obj_get_child_cnt(parent) - 1); -} - -/** - * Move the object to the background. - * It will look like if it was created as the first child of its parent. - * It also means any of the siblings can cover the object. - * @param obj pointer to an object - */ -static inline void lv_obj_move_background(lv_obj_t * obj) -{ - lv_obj_move_to_index(obj, 0); -} - - - -/********************** - * DEPRECATED FUNCTIONS - **********************/ - -static inline uint32_t lv_obj_get_child_id(const struct _lv_obj_t * obj) -{ - LV_LOG_WARN("lv_obj_get_child_id(obj) is deprecated, please use lv_obj_get_index(obj)."); - return lv_obj_get_index(obj); -} - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_API_MAP_H*/ diff --git a/src/lib/lvgl/src/lv_conf_internal.h b/src/lib/lvgl/src/lv_conf_internal.h deleted file mode 100644 index 26e51e7..0000000 --- a/src/lib/lvgl/src/lv_conf_internal.h +++ /dev/null @@ -1,2323 +0,0 @@ -/** - * GENERATED FILE, DO NOT EDIT IT! - * @file lv_conf_internal.h - * Make sure all the defines of lv_conf.h have a default value -**/ - -#ifndef LV_CONF_INTERNAL_H -#define LV_CONF_INTERNAL_H -/* clang-format off */ - -#include - -/* Handle special Kconfig options */ -#ifndef LV_KCONFIG_IGNORE - #include "lv_conf_kconfig.h" - #ifdef CONFIG_LV_CONF_SKIP - #define LV_CONF_SKIP - #endif -#endif - -/*If "lv_conf.h" is available from here try to use it later.*/ -#ifdef __has_include - #if __has_include("lv_conf.h") - #ifndef LV_CONF_INCLUDE_SIMPLE - #define LV_CONF_INCLUDE_SIMPLE - #endif - #endif -#endif - -/*If lv_conf.h is not skipped include it*/ -#ifndef LV_CONF_SKIP - #ifdef LV_CONF_PATH /*If there is a path defined for lv_conf.h use it*/ - #define __LV_TO_STR_AUX(x) #x - #define __LV_TO_STR(x) __LV_TO_STR_AUX(x) - #include __LV_TO_STR(LV_CONF_PATH) - #undef __LV_TO_STR_AUX - #undef __LV_TO_STR - #elif defined(LV_CONF_INCLUDE_SIMPLE) /*Or simply include lv_conf.h is enabled*/ - #include "lv_conf.h" - #else - #include "../../lv_conf.h" /*Else assume lv_conf.h is next to the lvgl folder*/ - #endif - #if !defined(LV_CONF_H) && !defined(LV_CONF_SUPPRESS_DEFINE_CHECK) - /* #include will sometimes silently fail when __has_include is used */ - /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80753 */ - #pragma message("Possible failure to include lv_conf.h, please read the comment in this file if you get errors") - #endif -#endif - -#ifdef CONFIG_LV_COLOR_DEPTH - #define _LV_KCONFIG_PRESENT -#endif - -/*---------------------------------- - * Start parsing lv_conf_template.h - -----------------------------------*/ - -#include - -/*==================== - COLOR SETTINGS - *====================*/ - -/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/ -#ifndef LV_COLOR_DEPTH - #ifdef CONFIG_LV_COLOR_DEPTH - #define LV_COLOR_DEPTH CONFIG_LV_COLOR_DEPTH - #else - #define LV_COLOR_DEPTH 16 - #endif -#endif - -/*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/ -#ifndef LV_COLOR_16_SWAP - #ifdef CONFIG_LV_COLOR_16_SWAP - #define LV_COLOR_16_SWAP CONFIG_LV_COLOR_16_SWAP - #else - #define LV_COLOR_16_SWAP 0 - #endif -#endif - -/*Enable more complex drawing routines to manage screens transparency. - *Can be used if the UI is above another layer, e.g. an OSD menu or video player. - *Requires `LV_COLOR_DEPTH = 32` colors and the screen's `bg_opa` should be set to non LV_OPA_COVER value*/ -#ifndef LV_COLOR_SCREEN_TRANSP - #ifdef CONFIG_LV_COLOR_SCREEN_TRANSP - #define LV_COLOR_SCREEN_TRANSP CONFIG_LV_COLOR_SCREEN_TRANSP - #else - #define LV_COLOR_SCREEN_TRANSP 0 - #endif -#endif - -/* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently. - * 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */ -#ifndef LV_COLOR_MIX_ROUND_OFS - #ifdef CONFIG_LV_COLOR_MIX_ROUND_OFS - #define LV_COLOR_MIX_ROUND_OFS CONFIG_LV_COLOR_MIX_ROUND_OFS - #else - #define LV_COLOR_MIX_ROUND_OFS (LV_COLOR_DEPTH == 32 ? 0: 128) - #endif -#endif - -/*Images pixels with this color will not be drawn if they are chroma keyed)*/ -#ifndef LV_COLOR_CHROMA_KEY - #ifdef CONFIG_LV_COLOR_CHROMA_KEY - #define LV_COLOR_CHROMA_KEY CONFIG_LV_COLOR_CHROMA_KEY - #else - #define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00) /*pure green*/ - #endif -#endif - -/*========================= - MEMORY SETTINGS - *=========================*/ - -/*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/ -#ifndef LV_MEM_CUSTOM - #ifdef CONFIG_LV_MEM_CUSTOM - #define LV_MEM_CUSTOM CONFIG_LV_MEM_CUSTOM - #else - #define LV_MEM_CUSTOM 0 - #endif -#endif -#if LV_MEM_CUSTOM == 0 - /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/ - #ifndef LV_MEM_SIZE - #ifdef CONFIG_LV_MEM_SIZE - #define LV_MEM_SIZE CONFIG_LV_MEM_SIZE - #else - #define LV_MEM_SIZE (48U * 1024U) /*[bytes]*/ - #endif - #endif - - /*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/ - #ifndef LV_MEM_ADR - #ifdef CONFIG_LV_MEM_ADR - #define LV_MEM_ADR CONFIG_LV_MEM_ADR - #else - #define LV_MEM_ADR 0 /*0: unused*/ - #endif - #endif - /*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/ - #if LV_MEM_ADR == 0 - //#define LV_MEM_POOL_INCLUDE your_alloc_library /* Uncomment if using an external allocator*/ - //#define LV_MEM_POOL_ALLOC your_alloc /* Uncomment if using an external allocator*/ - #endif - -#else /*LV_MEM_CUSTOM*/ - #ifndef LV_MEM_CUSTOM_INCLUDE - #ifdef CONFIG_LV_MEM_CUSTOM_INCLUDE - #define LV_MEM_CUSTOM_INCLUDE CONFIG_LV_MEM_CUSTOM_INCLUDE - #else - #define LV_MEM_CUSTOM_INCLUDE /*Header for the dynamic memory function*/ - #endif - #endif - #ifndef LV_MEM_CUSTOM_ALLOC - #ifdef CONFIG_LV_MEM_CUSTOM_ALLOC - #define LV_MEM_CUSTOM_ALLOC CONFIG_LV_MEM_CUSTOM_ALLOC - #else - #define LV_MEM_CUSTOM_ALLOC malloc - #endif - #endif - #ifndef LV_MEM_CUSTOM_FREE - #ifdef CONFIG_LV_MEM_CUSTOM_FREE - #define LV_MEM_CUSTOM_FREE CONFIG_LV_MEM_CUSTOM_FREE - #else - #define LV_MEM_CUSTOM_FREE free - #endif - #endif - #ifndef LV_MEM_CUSTOM_REALLOC - #ifdef CONFIG_LV_MEM_CUSTOM_REALLOC - #define LV_MEM_CUSTOM_REALLOC CONFIG_LV_MEM_CUSTOM_REALLOC - #else - #define LV_MEM_CUSTOM_REALLOC realloc - #endif - #endif -#endif /*LV_MEM_CUSTOM*/ - -/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms. - *You will see an error log message if there wasn't enough buffers. */ -#ifndef LV_MEM_BUF_MAX_NUM - #ifdef CONFIG_LV_MEM_BUF_MAX_NUM - #define LV_MEM_BUF_MAX_NUM CONFIG_LV_MEM_BUF_MAX_NUM - #else - #define LV_MEM_BUF_MAX_NUM 16 - #endif -#endif - -/*Use the standard `memcpy` and `memset` instead of LVGL's own functions. (Might or might not be faster).*/ -#ifndef LV_MEMCPY_MEMSET_STD - #ifdef CONFIG_LV_MEMCPY_MEMSET_STD - #define LV_MEMCPY_MEMSET_STD CONFIG_LV_MEMCPY_MEMSET_STD - #else - #define LV_MEMCPY_MEMSET_STD 0 - #endif -#endif - -/*==================== - HAL SETTINGS - *====================*/ - -/*Default display refresh period. LVG will redraw changed areas with this period time*/ -#ifndef LV_DISP_DEF_REFR_PERIOD - #ifdef CONFIG_LV_DISP_DEF_REFR_PERIOD - #define LV_DISP_DEF_REFR_PERIOD CONFIG_LV_DISP_DEF_REFR_PERIOD - #else - #define LV_DISP_DEF_REFR_PERIOD 30 /*[ms]*/ - #endif -#endif - -/*Input device read period in milliseconds*/ -#ifndef LV_INDEV_DEF_READ_PERIOD - #ifdef CONFIG_LV_INDEV_DEF_READ_PERIOD - #define LV_INDEV_DEF_READ_PERIOD CONFIG_LV_INDEV_DEF_READ_PERIOD - #else - #define LV_INDEV_DEF_READ_PERIOD 30 /*[ms]*/ - #endif -#endif - -/*Use a custom tick source that tells the elapsed time in milliseconds. - *It removes the need to manually update the tick with `lv_tick_inc()`)*/ -#ifndef LV_TICK_CUSTOM - #ifdef CONFIG_LV_TICK_CUSTOM - #define LV_TICK_CUSTOM CONFIG_LV_TICK_CUSTOM - #else - #define LV_TICK_CUSTOM 0 - #endif -#endif -#if LV_TICK_CUSTOM - #ifndef LV_TICK_CUSTOM_INCLUDE - #ifdef CONFIG_LV_TICK_CUSTOM_INCLUDE - #define LV_TICK_CUSTOM_INCLUDE CONFIG_LV_TICK_CUSTOM_INCLUDE - #else - #define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the system time function*/ - #endif - #endif - #ifndef LV_TICK_CUSTOM_SYS_TIME_EXPR - #ifdef CONFIG_LV_TICK_CUSTOM_SYS_TIME_EXPR - #define LV_TICK_CUSTOM_SYS_TIME_EXPR CONFIG_LV_TICK_CUSTOM_SYS_TIME_EXPR - #else - #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/ - #endif - #endif -#endif /*LV_TICK_CUSTOM*/ - -/*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings. - *(Not so important, you can adjust it to modify default sizes and spaces)*/ -#ifndef LV_DPI_DEF - #ifdef CONFIG_LV_DPI_DEF - #define LV_DPI_DEF CONFIG_LV_DPI_DEF - #else - #define LV_DPI_DEF 130 /*[px/inch]*/ - #endif -#endif - -/*======================= - * FEATURE CONFIGURATION - *=======================*/ - -/*------------- - * Drawing - *-----------*/ - -/*Enable complex draw engine. - *Required to draw shadow, gradient, rounded corners, circles, arc, skew lines, image transformations or any masks*/ -#ifndef LV_DRAW_COMPLEX - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_DRAW_COMPLEX - #define LV_DRAW_COMPLEX CONFIG_LV_DRAW_COMPLEX - #else - #define LV_DRAW_COMPLEX 0 - #endif - #else - #define LV_DRAW_COMPLEX 1 - #endif -#endif -#if LV_DRAW_COMPLEX != 0 - - /*Allow buffering some shadow calculation. - *LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius` - *Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/ - #ifndef LV_SHADOW_CACHE_SIZE - #ifdef CONFIG_LV_SHADOW_CACHE_SIZE - #define LV_SHADOW_CACHE_SIZE CONFIG_LV_SHADOW_CACHE_SIZE - #else - #define LV_SHADOW_CACHE_SIZE 0 - #endif - #endif - - /* Set number of maximally cached circle data. - * The circumference of 1/4 circle are saved for anti-aliasing - * radius * 4 bytes are used per circle (the most often used radiuses are saved) - * 0: to disable caching */ - #ifndef LV_CIRCLE_CACHE_SIZE - #ifdef CONFIG_LV_CIRCLE_CACHE_SIZE - #define LV_CIRCLE_CACHE_SIZE CONFIG_LV_CIRCLE_CACHE_SIZE - #else - #define LV_CIRCLE_CACHE_SIZE 4 - #endif - #endif -#endif /*LV_DRAW_COMPLEX*/ - -/*Default image cache size. Image caching keeps the images opened. - *If only the built-in image formats are used there is no real advantage of caching. (I.e. if no new image decoder is added) - *With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images. - *However the opened images might consume additional RAM. - *0: to disable caching*/ -#ifndef LV_IMG_CACHE_DEF_SIZE - #ifdef CONFIG_LV_IMG_CACHE_DEF_SIZE - #define LV_IMG_CACHE_DEF_SIZE CONFIG_LV_IMG_CACHE_DEF_SIZE - #else - #define LV_IMG_CACHE_DEF_SIZE 0 - #endif -#endif - -/*Number of stops allowed per gradient. Increase this to allow more stops. - *This adds (sizeof(lv_color_t) + 1) bytes per additional stop*/ -#ifndef LV_GRADIENT_MAX_STOPS - #ifdef CONFIG_LV_GRADIENT_MAX_STOPS - #define LV_GRADIENT_MAX_STOPS CONFIG_LV_GRADIENT_MAX_STOPS - #else - #define LV_GRADIENT_MAX_STOPS 2 - #endif -#endif - -/*Default gradient buffer size. - *When LVGL calculates the gradient "maps" it can save them into a cache to avoid calculating them again. - *LV_GRAD_CACHE_DEF_SIZE sets the size of this cache in bytes. - *If the cache is too small the map will be allocated only while it's required for the drawing. - *0 mean no caching.*/ -#ifndef LV_GRAD_CACHE_DEF_SIZE - #ifdef CONFIG_LV_GRAD_CACHE_DEF_SIZE - #define LV_GRAD_CACHE_DEF_SIZE CONFIG_LV_GRAD_CACHE_DEF_SIZE - #else - #define LV_GRAD_CACHE_DEF_SIZE 0 - #endif -#endif - -/*Allow dithering the gradients (to achieve visual smooth color gradients on limited color depth display) - *LV_DITHER_GRADIENT implies allocating one or two more lines of the object's rendering surface - *The increase in memory consumption is (32 bits * object width) plus 24 bits * object width if using error diffusion */ -#ifndef LV_DITHER_GRADIENT - #ifdef CONFIG_LV_DITHER_GRADIENT - #define LV_DITHER_GRADIENT CONFIG_LV_DITHER_GRADIENT - #else - #define LV_DITHER_GRADIENT 0 - #endif -#endif -#if LV_DITHER_GRADIENT - /*Add support for error diffusion dithering. - *Error diffusion dithering gets a much better visual result, but implies more CPU consumption and memory when drawing. - *The increase in memory consumption is (24 bits * object's width)*/ - #ifndef LV_DITHER_ERROR_DIFFUSION - #ifdef CONFIG_LV_DITHER_ERROR_DIFFUSION - #define LV_DITHER_ERROR_DIFFUSION CONFIG_LV_DITHER_ERROR_DIFFUSION - #else - #define LV_DITHER_ERROR_DIFFUSION 0 - #endif - #endif -#endif - -/*Maximum buffer size to allocate for rotation. - *Only used if software rotation is enabled in the display driver.*/ -#ifndef LV_DISP_ROT_MAX_BUF - #ifdef CONFIG_LV_DISP_ROT_MAX_BUF - #define LV_DISP_ROT_MAX_BUF CONFIG_LV_DISP_ROT_MAX_BUF - #else - #define LV_DISP_ROT_MAX_BUF (10*1024) - #endif -#endif - -/*------------- - * GPU - *-----------*/ - -/*Use Arm's 2D acceleration library Arm-2D */ -#ifndef LV_USE_GPU_ARM2D - #ifdef CONFIG_LV_USE_GPU_ARM2D - #define LV_USE_GPU_ARM2D CONFIG_LV_USE_GPU_ARM2D - #else - #define LV_USE_GPU_ARM2D 0 - #endif -#endif - -/*Use STM32's DMA2D (aka Chrom Art) GPU*/ -#ifndef LV_USE_GPU_STM32_DMA2D - #ifdef CONFIG_LV_USE_GPU_STM32_DMA2D - #define LV_USE_GPU_STM32_DMA2D CONFIG_LV_USE_GPU_STM32_DMA2D - #else - #define LV_USE_GPU_STM32_DMA2D 0 - #endif -#endif -#if LV_USE_GPU_STM32_DMA2D - /*Must be defined to include path of CMSIS header of target processor - e.g. "stm32f769xx.h" or "stm32f429xx.h"*/ - #ifndef LV_GPU_DMA2D_CMSIS_INCLUDE - #ifdef CONFIG_LV_GPU_DMA2D_CMSIS_INCLUDE - #define LV_GPU_DMA2D_CMSIS_INCLUDE CONFIG_LV_GPU_DMA2D_CMSIS_INCLUDE - #else - #define LV_GPU_DMA2D_CMSIS_INCLUDE - #endif - #endif -#endif - -/*Use NXP's PXP GPU iMX RTxxx platforms*/ -#ifndef LV_USE_GPU_NXP_PXP - #ifdef CONFIG_LV_USE_GPU_NXP_PXP - #define LV_USE_GPU_NXP_PXP CONFIG_LV_USE_GPU_NXP_PXP - #else - #define LV_USE_GPU_NXP_PXP 0 - #endif -#endif -#if LV_USE_GPU_NXP_PXP - /*1: Add default bare metal and FreeRTOS interrupt handling routines for PXP (lv_gpu_nxp_pxp_osa.c) - * and call lv_gpu_nxp_pxp_init() automatically during lv_init(). Note that symbol SDK_OS_FREE_RTOS - * has to be defined in order to use FreeRTOS OSA, otherwise bare-metal implementation is selected. - *0: lv_gpu_nxp_pxp_init() has to be called manually before lv_init() - */ - #ifndef LV_USE_GPU_NXP_PXP_AUTO_INIT - #ifdef CONFIG_LV_USE_GPU_NXP_PXP_AUTO_INIT - #define LV_USE_GPU_NXP_PXP_AUTO_INIT CONFIG_LV_USE_GPU_NXP_PXP_AUTO_INIT - #else - #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0 - #endif - #endif -#endif - -/*Use NXP's VG-Lite GPU iMX RTxxx platforms*/ -#ifndef LV_USE_GPU_NXP_VG_LITE - #ifdef CONFIG_LV_USE_GPU_NXP_VG_LITE - #define LV_USE_GPU_NXP_VG_LITE CONFIG_LV_USE_GPU_NXP_VG_LITE - #else - #define LV_USE_GPU_NXP_VG_LITE 0 - #endif -#endif - -/*Use SDL renderer API*/ -#ifndef LV_USE_GPU_SDL - #ifdef CONFIG_LV_USE_GPU_SDL - #define LV_USE_GPU_SDL CONFIG_LV_USE_GPU_SDL - #else - #define LV_USE_GPU_SDL 0 - #endif -#endif -#if LV_USE_GPU_SDL - #ifndef LV_GPU_SDL_INCLUDE_PATH - #ifdef CONFIG_LV_GPU_SDL_INCLUDE_PATH - #define LV_GPU_SDL_INCLUDE_PATH CONFIG_LV_GPU_SDL_INCLUDE_PATH - #else - #define LV_GPU_SDL_INCLUDE_PATH - #endif - #endif - /*Texture cache size, 8MB by default*/ - #ifndef LV_GPU_SDL_LRU_SIZE - #ifdef CONFIG_LV_GPU_SDL_LRU_SIZE - #define LV_GPU_SDL_LRU_SIZE CONFIG_LV_GPU_SDL_LRU_SIZE - #else - #define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8) - #endif - #endif - /*Custom blend mode for mask drawing, disable if you need to link with older SDL2 lib*/ - #ifndef LV_GPU_SDL_CUSTOM_BLEND_MODE - #ifdef CONFIG_LV_GPU_SDL_CUSTOM_BLEND_MODE - #define LV_GPU_SDL_CUSTOM_BLEND_MODE CONFIG_LV_GPU_SDL_CUSTOM_BLEND_MODE - #else - #define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2, 0, 6)) - #endif - #endif -#endif - -/*------------- - * Logging - *-----------*/ - -/*Enable the log module*/ -#ifndef LV_USE_LOG - #ifdef CONFIG_LV_USE_LOG - #define LV_USE_LOG CONFIG_LV_USE_LOG - #else - #define LV_USE_LOG 0 - #endif -#endif -#if LV_USE_LOG - - /*How important log should be added: - *LV_LOG_LEVEL_TRACE A lot of logs to give detailed information - *LV_LOG_LEVEL_INFO Log important events - *LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem - *LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail - *LV_LOG_LEVEL_USER Only logs added by the user - *LV_LOG_LEVEL_NONE Do not log anything*/ - #ifndef LV_LOG_LEVEL - #ifdef CONFIG_LV_LOG_LEVEL - #define LV_LOG_LEVEL CONFIG_LV_LOG_LEVEL - #else - #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN - #endif - #endif - - /*1: Print the log with 'printf'; - *0: User need to register a callback with `lv_log_register_print_cb()`*/ - #ifndef LV_LOG_PRINTF - #ifdef CONFIG_LV_LOG_PRINTF - #define LV_LOG_PRINTF CONFIG_LV_LOG_PRINTF - #else - #define LV_LOG_PRINTF 0 - #endif - #endif - - /*Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs*/ - #ifndef LV_LOG_TRACE_MEM - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_MEM - #define LV_LOG_TRACE_MEM CONFIG_LV_LOG_TRACE_MEM - #else - #define LV_LOG_TRACE_MEM 0 - #endif - #else - #define LV_LOG_TRACE_MEM 1 - #endif - #endif - #ifndef LV_LOG_TRACE_TIMER - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_TIMER - #define LV_LOG_TRACE_TIMER CONFIG_LV_LOG_TRACE_TIMER - #else - #define LV_LOG_TRACE_TIMER 0 - #endif - #else - #define LV_LOG_TRACE_TIMER 1 - #endif - #endif - #ifndef LV_LOG_TRACE_INDEV - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_INDEV - #define LV_LOG_TRACE_INDEV CONFIG_LV_LOG_TRACE_INDEV - #else - #define LV_LOG_TRACE_INDEV 0 - #endif - #else - #define LV_LOG_TRACE_INDEV 1 - #endif - #endif - #ifndef LV_LOG_TRACE_DISP_REFR - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_DISP_REFR - #define LV_LOG_TRACE_DISP_REFR CONFIG_LV_LOG_TRACE_DISP_REFR - #else - #define LV_LOG_TRACE_DISP_REFR 0 - #endif - #else - #define LV_LOG_TRACE_DISP_REFR 1 - #endif - #endif - #ifndef LV_LOG_TRACE_EVENT - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_EVENT - #define LV_LOG_TRACE_EVENT CONFIG_LV_LOG_TRACE_EVENT - #else - #define LV_LOG_TRACE_EVENT 0 - #endif - #else - #define LV_LOG_TRACE_EVENT 1 - #endif - #endif - #ifndef LV_LOG_TRACE_OBJ_CREATE - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_OBJ_CREATE - #define LV_LOG_TRACE_OBJ_CREATE CONFIG_LV_LOG_TRACE_OBJ_CREATE - #else - #define LV_LOG_TRACE_OBJ_CREATE 0 - #endif - #else - #define LV_LOG_TRACE_OBJ_CREATE 1 - #endif - #endif - #ifndef LV_LOG_TRACE_LAYOUT - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_LAYOUT - #define LV_LOG_TRACE_LAYOUT CONFIG_LV_LOG_TRACE_LAYOUT - #else - #define LV_LOG_TRACE_LAYOUT 0 - #endif - #else - #define LV_LOG_TRACE_LAYOUT 1 - #endif - #endif - #ifndef LV_LOG_TRACE_ANIM - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LOG_TRACE_ANIM - #define LV_LOG_TRACE_ANIM CONFIG_LV_LOG_TRACE_ANIM - #else - #define LV_LOG_TRACE_ANIM 0 - #endif - #else - #define LV_LOG_TRACE_ANIM 1 - #endif - #endif - -#endif /*LV_USE_LOG*/ - -/*------------- - * Asserts - *-----------*/ - -/*Enable asserts if an operation is failed or an invalid data is found. - *If LV_USE_LOG is enabled an error message will be printed on failure*/ -#ifndef LV_USE_ASSERT_NULL - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_ASSERT_NULL - #define LV_USE_ASSERT_NULL CONFIG_LV_USE_ASSERT_NULL - #else - #define LV_USE_ASSERT_NULL 0 - #endif - #else - #define LV_USE_ASSERT_NULL 1 /*Check if the parameter is NULL. (Very fast, recommended)*/ - #endif -#endif -#ifndef LV_USE_ASSERT_MALLOC - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_ASSERT_MALLOC - #define LV_USE_ASSERT_MALLOC CONFIG_LV_USE_ASSERT_MALLOC - #else - #define LV_USE_ASSERT_MALLOC 0 - #endif - #else - #define LV_USE_ASSERT_MALLOC 1 /*Checks is the memory is successfully allocated or no. (Very fast, recommended)*/ - #endif -#endif -#ifndef LV_USE_ASSERT_STYLE - #ifdef CONFIG_LV_USE_ASSERT_STYLE - #define LV_USE_ASSERT_STYLE CONFIG_LV_USE_ASSERT_STYLE - #else - #define LV_USE_ASSERT_STYLE 0 /*Check if the styles are properly initialized. (Very fast, recommended)*/ - #endif -#endif -#ifndef LV_USE_ASSERT_MEM_INTEGRITY - #ifdef CONFIG_LV_USE_ASSERT_MEM_INTEGRITY - #define LV_USE_ASSERT_MEM_INTEGRITY CONFIG_LV_USE_ASSERT_MEM_INTEGRITY - #else - #define LV_USE_ASSERT_MEM_INTEGRITY 0 /*Check the integrity of `lv_mem` after critical operations. (Slow)*/ - #endif -#endif -#ifndef LV_USE_ASSERT_OBJ - #ifdef CONFIG_LV_USE_ASSERT_OBJ - #define LV_USE_ASSERT_OBJ CONFIG_LV_USE_ASSERT_OBJ - #else - #define LV_USE_ASSERT_OBJ 0 /*Check the object's type and existence (e.g. not deleted). (Slow)*/ - #endif -#endif - -/*Add a custom handler when assert happens e.g. to restart the MCU*/ -#ifndef LV_ASSERT_HANDLER_INCLUDE - #ifdef CONFIG_LV_ASSERT_HANDLER_INCLUDE - #define LV_ASSERT_HANDLER_INCLUDE CONFIG_LV_ASSERT_HANDLER_INCLUDE - #else - #define LV_ASSERT_HANDLER_INCLUDE - #endif -#endif -#ifndef LV_ASSERT_HANDLER - #ifdef CONFIG_LV_ASSERT_HANDLER - #define LV_ASSERT_HANDLER CONFIG_LV_ASSERT_HANDLER - #else - #define LV_ASSERT_HANDLER while(1); /*Halt by default*/ - #endif -#endif - -/*------------- - * Others - *-----------*/ - -/*1: Show CPU usage and FPS count*/ -#ifndef LV_USE_PERF_MONITOR - #ifdef CONFIG_LV_USE_PERF_MONITOR - #define LV_USE_PERF_MONITOR CONFIG_LV_USE_PERF_MONITOR - #else - #define LV_USE_PERF_MONITOR 0 - #endif -#endif -#if LV_USE_PERF_MONITOR - #ifndef LV_USE_PERF_MONITOR_POS - #ifdef CONFIG_LV_USE_PERF_MONITOR_POS - #define LV_USE_PERF_MONITOR_POS CONFIG_LV_USE_PERF_MONITOR_POS - #else - #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT - #endif - #endif -#endif - -/*1: Show the used memory and the memory fragmentation - * Requires LV_MEM_CUSTOM = 0*/ -#ifndef LV_USE_MEM_MONITOR - #ifdef CONFIG_LV_USE_MEM_MONITOR - #define LV_USE_MEM_MONITOR CONFIG_LV_USE_MEM_MONITOR - #else - #define LV_USE_MEM_MONITOR 0 - #endif -#endif -#if LV_USE_MEM_MONITOR - #ifndef LV_USE_MEM_MONITOR_POS - #ifdef CONFIG_LV_USE_MEM_MONITOR_POS - #define LV_USE_MEM_MONITOR_POS CONFIG_LV_USE_MEM_MONITOR_POS - #else - #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT - #endif - #endif -#endif - -/*1: Draw random colored rectangles over the redrawn areas*/ -#ifndef LV_USE_REFR_DEBUG - #ifdef CONFIG_LV_USE_REFR_DEBUG - #define LV_USE_REFR_DEBUG CONFIG_LV_USE_REFR_DEBUG - #else - #define LV_USE_REFR_DEBUG 0 - #endif -#endif - -/*Change the built in (v)snprintf functions*/ -#ifndef LV_SPRINTF_CUSTOM - #ifdef CONFIG_LV_SPRINTF_CUSTOM - #define LV_SPRINTF_CUSTOM CONFIG_LV_SPRINTF_CUSTOM - #else - #define LV_SPRINTF_CUSTOM 0 - #endif -#endif -#if LV_SPRINTF_CUSTOM - #ifndef LV_SPRINTF_INCLUDE - #ifdef CONFIG_LV_SPRINTF_INCLUDE - #define LV_SPRINTF_INCLUDE CONFIG_LV_SPRINTF_INCLUDE - #else - #define LV_SPRINTF_INCLUDE - #endif - #endif - #ifndef lv_snprintf - #ifdef CONFIG_LV_SNPRINTF - #define lv_snprintf CONFIG_LV_SNPRINTF - #else - #define lv_snprintf snprintf - #endif - #endif - #ifndef lv_vsnprintf - #ifdef CONFIG_LV_VSNPRINTF - #define lv_vsnprintf CONFIG_LV_VSNPRINTF - #else - #define lv_vsnprintf vsnprintf - #endif - #endif -#else /*LV_SPRINTF_CUSTOM*/ - #ifndef LV_SPRINTF_USE_FLOAT - #ifdef CONFIG_LV_SPRINTF_USE_FLOAT - #define LV_SPRINTF_USE_FLOAT CONFIG_LV_SPRINTF_USE_FLOAT - #else - #define LV_SPRINTF_USE_FLOAT 0 - #endif - #endif -#endif /*LV_SPRINTF_CUSTOM*/ - -#ifndef LV_USE_USER_DATA - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_USER_DATA - #define LV_USE_USER_DATA CONFIG_LV_USE_USER_DATA - #else - #define LV_USE_USER_DATA 0 - #endif - #else - #define LV_USE_USER_DATA 1 - #endif -#endif - -/*Garbage Collector settings - *Used if lvgl is bound to higher level language and the memory is managed by that language*/ -#ifndef LV_ENABLE_GC - #ifdef CONFIG_LV_ENABLE_GC - #define LV_ENABLE_GC CONFIG_LV_ENABLE_GC - #else - #define LV_ENABLE_GC 0 - #endif -#endif -#if LV_ENABLE_GC != 0 - #ifndef LV_GC_INCLUDE - #ifdef CONFIG_LV_GC_INCLUDE - #define LV_GC_INCLUDE CONFIG_LV_GC_INCLUDE - #else - #define LV_GC_INCLUDE "gc.h" /*Include Garbage Collector related things*/ - #endif - #endif -#endif /*LV_ENABLE_GC*/ - -/*===================== - * COMPILER SETTINGS - *====================*/ - -/*For big endian systems set to 1*/ -#ifndef LV_BIG_ENDIAN_SYSTEM - #ifdef CONFIG_LV_BIG_ENDIAN_SYSTEM - #define LV_BIG_ENDIAN_SYSTEM CONFIG_LV_BIG_ENDIAN_SYSTEM - #else - #define LV_BIG_ENDIAN_SYSTEM 0 - #endif -#endif - -/*Define a custom attribute to `lv_tick_inc` function*/ -#ifndef LV_ATTRIBUTE_TICK_INC - #ifdef CONFIG_LV_ATTRIBUTE_TICK_INC - #define LV_ATTRIBUTE_TICK_INC CONFIG_LV_ATTRIBUTE_TICK_INC - #else - #define LV_ATTRIBUTE_TICK_INC - #endif -#endif - -/*Define a custom attribute to `lv_timer_handler` function*/ -#ifndef LV_ATTRIBUTE_TIMER_HANDLER - #ifdef CONFIG_LV_ATTRIBUTE_TIMER_HANDLER - #define LV_ATTRIBUTE_TIMER_HANDLER CONFIG_LV_ATTRIBUTE_TIMER_HANDLER - #else - #define LV_ATTRIBUTE_TIMER_HANDLER - #endif -#endif - -/*Define a custom attribute to `lv_disp_flush_ready` function*/ -#ifndef LV_ATTRIBUTE_FLUSH_READY - #ifdef CONFIG_LV_ATTRIBUTE_FLUSH_READY - #define LV_ATTRIBUTE_FLUSH_READY CONFIG_LV_ATTRIBUTE_FLUSH_READY - #else - #define LV_ATTRIBUTE_FLUSH_READY - #endif -#endif - -/*Required alignment size for buffers*/ -#ifndef LV_ATTRIBUTE_MEM_ALIGN_SIZE - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE - #define LV_ATTRIBUTE_MEM_ALIGN_SIZE CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE - #else - #define LV_ATTRIBUTE_MEM_ALIGN_SIZE 0 - #endif - #else - #define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1 - #endif -#endif - -/*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default). - * E.g. __attribute__((aligned(4)))*/ -#ifndef LV_ATTRIBUTE_MEM_ALIGN - #ifdef CONFIG_LV_ATTRIBUTE_MEM_ALIGN - #define LV_ATTRIBUTE_MEM_ALIGN CONFIG_LV_ATTRIBUTE_MEM_ALIGN - #else - #define LV_ATTRIBUTE_MEM_ALIGN - #endif -#endif - -/*Attribute to mark large constant arrays for example font's bitmaps*/ -#ifndef LV_ATTRIBUTE_LARGE_CONST - #ifdef CONFIG_LV_ATTRIBUTE_LARGE_CONST - #define LV_ATTRIBUTE_LARGE_CONST CONFIG_LV_ATTRIBUTE_LARGE_CONST - #else - #define LV_ATTRIBUTE_LARGE_CONST - #endif -#endif - -/*Compiler prefix for a big array declaration in RAM*/ -#ifndef LV_ATTRIBUTE_LARGE_RAM_ARRAY - #ifdef CONFIG_LV_ATTRIBUTE_LARGE_RAM_ARRAY - #define LV_ATTRIBUTE_LARGE_RAM_ARRAY CONFIG_LV_ATTRIBUTE_LARGE_RAM_ARRAY - #else - #define LV_ATTRIBUTE_LARGE_RAM_ARRAY - #endif -#endif - -/*Place performance critical functions into a faster memory (e.g RAM)*/ -#ifndef LV_ATTRIBUTE_FAST_MEM - #ifdef CONFIG_LV_ATTRIBUTE_FAST_MEM - #define LV_ATTRIBUTE_FAST_MEM CONFIG_LV_ATTRIBUTE_FAST_MEM - #else - #define LV_ATTRIBUTE_FAST_MEM - #endif -#endif - -/*Prefix variables that are used in GPU accelerated operations, often these need to be placed in RAM sections that are DMA accessible*/ -#ifndef LV_ATTRIBUTE_DMA - #ifdef CONFIG_LV_ATTRIBUTE_DMA - #define LV_ATTRIBUTE_DMA CONFIG_LV_ATTRIBUTE_DMA - #else - #define LV_ATTRIBUTE_DMA - #endif -#endif - -/*Export integer constant to binding. This macro is used with constants in the form of LV_ that - *should also appear on LVGL binding API such as Micropython.*/ -#ifndef LV_EXPORT_CONST_INT - #ifdef CONFIG_LV_EXPORT_CONST_INT - #define LV_EXPORT_CONST_INT CONFIG_LV_EXPORT_CONST_INT - #else - #define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/ - #endif -#endif - -/*Extend the default -32k..32k coordinate range to -4M..4M by using int32_t for coordinates instead of int16_t*/ -#ifndef LV_USE_LARGE_COORD - #ifdef CONFIG_LV_USE_LARGE_COORD - #define LV_USE_LARGE_COORD CONFIG_LV_USE_LARGE_COORD - #else - #define LV_USE_LARGE_COORD 0 - #endif -#endif - -/*================== - * FONT USAGE - *===================*/ - -/*Montserrat fonts with ASCII range and some symbols using bpp = 4 - *https://fonts.google.com/specimen/Montserrat*/ -#ifndef LV_FONT_MONTSERRAT_8 - #ifdef CONFIG_LV_FONT_MONTSERRAT_8 - #define LV_FONT_MONTSERRAT_8 CONFIG_LV_FONT_MONTSERRAT_8 - #else - #define LV_FONT_MONTSERRAT_8 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_10 - #ifdef CONFIG_LV_FONT_MONTSERRAT_10 - #define LV_FONT_MONTSERRAT_10 CONFIG_LV_FONT_MONTSERRAT_10 - #else - #define LV_FONT_MONTSERRAT_10 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_12 - #ifdef CONFIG_LV_FONT_MONTSERRAT_12 - #define LV_FONT_MONTSERRAT_12 CONFIG_LV_FONT_MONTSERRAT_12 - #else - #define LV_FONT_MONTSERRAT_12 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_14 - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_FONT_MONTSERRAT_14 - #define LV_FONT_MONTSERRAT_14 CONFIG_LV_FONT_MONTSERRAT_14 - #else - #define LV_FONT_MONTSERRAT_14 0 - #endif - #else - #define LV_FONT_MONTSERRAT_14 1 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_16 - #ifdef CONFIG_LV_FONT_MONTSERRAT_16 - #define LV_FONT_MONTSERRAT_16 CONFIG_LV_FONT_MONTSERRAT_16 - #else - #define LV_FONT_MONTSERRAT_16 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_18 - #ifdef CONFIG_LV_FONT_MONTSERRAT_18 - #define LV_FONT_MONTSERRAT_18 CONFIG_LV_FONT_MONTSERRAT_18 - #else - #define LV_FONT_MONTSERRAT_18 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_20 - #ifdef CONFIG_LV_FONT_MONTSERRAT_20 - #define LV_FONT_MONTSERRAT_20 CONFIG_LV_FONT_MONTSERRAT_20 - #else - #define LV_FONT_MONTSERRAT_20 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_22 - #ifdef CONFIG_LV_FONT_MONTSERRAT_22 - #define LV_FONT_MONTSERRAT_22 CONFIG_LV_FONT_MONTSERRAT_22 - #else - #define LV_FONT_MONTSERRAT_22 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_24 - #ifdef CONFIG_LV_FONT_MONTSERRAT_24 - #define LV_FONT_MONTSERRAT_24 CONFIG_LV_FONT_MONTSERRAT_24 - #else - #define LV_FONT_MONTSERRAT_24 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_26 - #ifdef CONFIG_LV_FONT_MONTSERRAT_26 - #define LV_FONT_MONTSERRAT_26 CONFIG_LV_FONT_MONTSERRAT_26 - #else - #define LV_FONT_MONTSERRAT_26 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_28 - #ifdef CONFIG_LV_FONT_MONTSERRAT_28 - #define LV_FONT_MONTSERRAT_28 CONFIG_LV_FONT_MONTSERRAT_28 - #else - #define LV_FONT_MONTSERRAT_28 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_30 - #ifdef CONFIG_LV_FONT_MONTSERRAT_30 - #define LV_FONT_MONTSERRAT_30 CONFIG_LV_FONT_MONTSERRAT_30 - #else - #define LV_FONT_MONTSERRAT_30 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_32 - #ifdef CONFIG_LV_FONT_MONTSERRAT_32 - #define LV_FONT_MONTSERRAT_32 CONFIG_LV_FONT_MONTSERRAT_32 - #else - #define LV_FONT_MONTSERRAT_32 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_34 - #ifdef CONFIG_LV_FONT_MONTSERRAT_34 - #define LV_FONT_MONTSERRAT_34 CONFIG_LV_FONT_MONTSERRAT_34 - #else - #define LV_FONT_MONTSERRAT_34 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_36 - #ifdef CONFIG_LV_FONT_MONTSERRAT_36 - #define LV_FONT_MONTSERRAT_36 CONFIG_LV_FONT_MONTSERRAT_36 - #else - #define LV_FONT_MONTSERRAT_36 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_38 - #ifdef CONFIG_LV_FONT_MONTSERRAT_38 - #define LV_FONT_MONTSERRAT_38 CONFIG_LV_FONT_MONTSERRAT_38 - #else - #define LV_FONT_MONTSERRAT_38 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_40 - #ifdef CONFIG_LV_FONT_MONTSERRAT_40 - #define LV_FONT_MONTSERRAT_40 CONFIG_LV_FONT_MONTSERRAT_40 - #else - #define LV_FONT_MONTSERRAT_40 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_42 - #ifdef CONFIG_LV_FONT_MONTSERRAT_42 - #define LV_FONT_MONTSERRAT_42 CONFIG_LV_FONT_MONTSERRAT_42 - #else - #define LV_FONT_MONTSERRAT_42 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_44 - #ifdef CONFIG_LV_FONT_MONTSERRAT_44 - #define LV_FONT_MONTSERRAT_44 CONFIG_LV_FONT_MONTSERRAT_44 - #else - #define LV_FONT_MONTSERRAT_44 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_46 - #ifdef CONFIG_LV_FONT_MONTSERRAT_46 - #define LV_FONT_MONTSERRAT_46 CONFIG_LV_FONT_MONTSERRAT_46 - #else - #define LV_FONT_MONTSERRAT_46 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_48 - #ifdef CONFIG_LV_FONT_MONTSERRAT_48 - #define LV_FONT_MONTSERRAT_48 CONFIG_LV_FONT_MONTSERRAT_48 - #else - #define LV_FONT_MONTSERRAT_48 0 - #endif -#endif - -/*Demonstrate special features*/ -#ifndef LV_FONT_MONTSERRAT_12_SUBPX - #ifdef CONFIG_LV_FONT_MONTSERRAT_12_SUBPX - #define LV_FONT_MONTSERRAT_12_SUBPX CONFIG_LV_FONT_MONTSERRAT_12_SUBPX - #else - #define LV_FONT_MONTSERRAT_12_SUBPX 0 - #endif -#endif -#ifndef LV_FONT_MONTSERRAT_28_COMPRESSED - #ifdef CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED - #define LV_FONT_MONTSERRAT_28_COMPRESSED CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED - #else - #define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/ - #endif -#endif -#ifndef LV_FONT_DEJAVU_16_PERSIAN_HEBREW - #ifdef CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW - #define LV_FONT_DEJAVU_16_PERSIAN_HEBREW CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW - #else - #define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/ - #endif -#endif -#ifndef LV_FONT_SIMSUN_16_CJK - #ifdef CONFIG_LV_FONT_SIMSUN_16_CJK - #define LV_FONT_SIMSUN_16_CJK CONFIG_LV_FONT_SIMSUN_16_CJK - #else - #define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/ - #endif -#endif - -/*Pixel perfect monospace fonts*/ -#ifndef LV_FONT_UNSCII_8 - #ifdef CONFIG_LV_FONT_UNSCII_8 - #define LV_FONT_UNSCII_8 CONFIG_LV_FONT_UNSCII_8 - #else - #define LV_FONT_UNSCII_8 0 - #endif -#endif -#ifndef LV_FONT_UNSCII_16 - #ifdef CONFIG_LV_FONT_UNSCII_16 - #define LV_FONT_UNSCII_16 CONFIG_LV_FONT_UNSCII_16 - #else - #define LV_FONT_UNSCII_16 0 - #endif -#endif - -/*Optionally declare custom fonts here. - *You can use these fonts as default font too and they will be available globally. - *E.g. #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2)*/ -#ifndef LV_FONT_CUSTOM_DECLARE - #ifdef CONFIG_LV_FONT_CUSTOM_DECLARE - #define LV_FONT_CUSTOM_DECLARE CONFIG_LV_FONT_CUSTOM_DECLARE - #else - #define LV_FONT_CUSTOM_DECLARE - #endif -#endif - -/*Always set a default font*/ -#ifndef LV_FONT_DEFAULT - #ifdef CONFIG_LV_FONT_DEFAULT - #define LV_FONT_DEFAULT CONFIG_LV_FONT_DEFAULT - #else - #define LV_FONT_DEFAULT &lv_font_montserrat_14 - #endif -#endif - -/*Enable handling large font and/or fonts with a lot of characters. - *The limit depends on the font size, font face and bpp. - *Compiler error will be triggered if a font needs it.*/ -#ifndef LV_FONT_FMT_TXT_LARGE - #ifdef CONFIG_LV_FONT_FMT_TXT_LARGE - #define LV_FONT_FMT_TXT_LARGE CONFIG_LV_FONT_FMT_TXT_LARGE - #else - #define LV_FONT_FMT_TXT_LARGE 0 - #endif -#endif - -/*Enables/disables support for compressed fonts.*/ -#ifndef LV_USE_FONT_COMPRESSED - #ifdef CONFIG_LV_USE_FONT_COMPRESSED - #define LV_USE_FONT_COMPRESSED CONFIG_LV_USE_FONT_COMPRESSED - #else - #define LV_USE_FONT_COMPRESSED 0 - #endif -#endif - -/*Enable subpixel rendering*/ -#ifndef LV_USE_FONT_SUBPX - #ifdef CONFIG_LV_USE_FONT_SUBPX - #define LV_USE_FONT_SUBPX CONFIG_LV_USE_FONT_SUBPX - #else - #define LV_USE_FONT_SUBPX 0 - #endif -#endif -#if LV_USE_FONT_SUBPX - /*Set the pixel order of the display. Physical order of RGB channels. Doesn't matter with "normal" fonts.*/ - #ifndef LV_FONT_SUBPX_BGR - #ifdef CONFIG_LV_FONT_SUBPX_BGR - #define LV_FONT_SUBPX_BGR CONFIG_LV_FONT_SUBPX_BGR - #else - #define LV_FONT_SUBPX_BGR 0 /*0: RGB; 1:BGR order*/ - #endif - #endif -#endif - -/*================= - * TEXT SETTINGS - *=================*/ - -/** - * Select a character encoding for strings. - * Your IDE or editor should have the same character encoding - * - LV_TXT_ENC_UTF8 - * - LV_TXT_ENC_ASCII - */ -#ifndef LV_TXT_ENC - #ifdef CONFIG_LV_TXT_ENC - #define LV_TXT_ENC CONFIG_LV_TXT_ENC - #else - #define LV_TXT_ENC LV_TXT_ENC_UTF8 - #endif -#endif - -/*Can break (wrap) texts on these chars*/ -#ifndef LV_TXT_BREAK_CHARS - #ifdef CONFIG_LV_TXT_BREAK_CHARS - #define LV_TXT_BREAK_CHARS CONFIG_LV_TXT_BREAK_CHARS - #else - #define LV_TXT_BREAK_CHARS " ,.;:-_" - #endif -#endif - -/*If a word is at least this long, will break wherever "prettiest" - *To disable, set to a value <= 0*/ -#ifndef LV_TXT_LINE_BREAK_LONG_LEN - #ifdef CONFIG_LV_TXT_LINE_BREAK_LONG_LEN - #define LV_TXT_LINE_BREAK_LONG_LEN CONFIG_LV_TXT_LINE_BREAK_LONG_LEN - #else - #define LV_TXT_LINE_BREAK_LONG_LEN 0 - #endif -#endif - -/*Minimum number of characters in a long word to put on a line before a break. - *Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/ -#ifndef LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN - #ifdef CONFIG_LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN - #define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN CONFIG_LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN - #else - #define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3 - #endif -#endif - -/*Minimum number of characters in a long word to put on a line after a break. - *Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/ -#ifndef LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN - #ifdef CONFIG_LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN - #define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN CONFIG_LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN - #else - #define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3 - #endif -#endif - -/*The control character to use for signalling text recoloring.*/ -#ifndef LV_TXT_COLOR_CMD - #ifdef CONFIG_LV_TXT_COLOR_CMD - #define LV_TXT_COLOR_CMD CONFIG_LV_TXT_COLOR_CMD - #else - #define LV_TXT_COLOR_CMD "#" - #endif -#endif - -/*Support bidirectional texts. Allows mixing Left-to-Right and Right-to-Left texts. - *The direction will be processed according to the Unicode Bidirectional Algorithm: - *https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/ -#ifndef LV_USE_BIDI - #ifdef CONFIG_LV_USE_BIDI - #define LV_USE_BIDI CONFIG_LV_USE_BIDI - #else - #define LV_USE_BIDI 0 - #endif -#endif -#if LV_USE_BIDI - /*Set the default direction. Supported values: - *`LV_BASE_DIR_LTR` Left-to-Right - *`LV_BASE_DIR_RTL` Right-to-Left - *`LV_BASE_DIR_AUTO` detect texts base direction*/ - #ifndef LV_BIDI_BASE_DIR_DEF - #ifdef CONFIG_LV_BIDI_BASE_DIR_DEF - #define LV_BIDI_BASE_DIR_DEF CONFIG_LV_BIDI_BASE_DIR_DEF - #else - #define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO - #endif - #endif -#endif - -/*Enable Arabic/Persian processing - *In these languages characters should be replaced with an other form based on their position in the text*/ -#ifndef LV_USE_ARABIC_PERSIAN_CHARS - #ifdef CONFIG_LV_USE_ARABIC_PERSIAN_CHARS - #define LV_USE_ARABIC_PERSIAN_CHARS CONFIG_LV_USE_ARABIC_PERSIAN_CHARS - #else - #define LV_USE_ARABIC_PERSIAN_CHARS 0 - #endif -#endif - -/*================== - * WIDGET USAGE - *================*/ - -/*Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html*/ - -#ifndef LV_USE_ARC - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_ARC - #define LV_USE_ARC CONFIG_LV_USE_ARC - #else - #define LV_USE_ARC 0 - #endif - #else - #define LV_USE_ARC 1 - #endif -#endif - -#ifndef LV_USE_ANIMIMG - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_ANIMIMG - #define LV_USE_ANIMIMG CONFIG_LV_USE_ANIMIMG - #else - #define LV_USE_ANIMIMG 0 - #endif - #else - #define LV_USE_ANIMIMG 1 - #endif -#endif - -#ifndef LV_USE_BAR - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_BAR - #define LV_USE_BAR CONFIG_LV_USE_BAR - #else - #define LV_USE_BAR 0 - #endif - #else - #define LV_USE_BAR 1 - #endif -#endif - -#ifndef LV_USE_BTN - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_BTN - #define LV_USE_BTN CONFIG_LV_USE_BTN - #else - #define LV_USE_BTN 0 - #endif - #else - #define LV_USE_BTN 1 - #endif -#endif - -#ifndef LV_USE_BTNMATRIX - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_BTNMATRIX - #define LV_USE_BTNMATRIX CONFIG_LV_USE_BTNMATRIX - #else - #define LV_USE_BTNMATRIX 0 - #endif - #else - #define LV_USE_BTNMATRIX 1 - #endif -#endif - -#ifndef LV_USE_CANVAS - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_CANVAS - #define LV_USE_CANVAS CONFIG_LV_USE_CANVAS - #else - #define LV_USE_CANVAS 0 - #endif - #else - #define LV_USE_CANVAS 1 - #endif -#endif - -#ifndef LV_USE_CHECKBOX - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_CHECKBOX - #define LV_USE_CHECKBOX CONFIG_LV_USE_CHECKBOX - #else - #define LV_USE_CHECKBOX 0 - #endif - #else - #define LV_USE_CHECKBOX 1 - #endif -#endif - -#ifndef LV_USE_DROPDOWN - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_DROPDOWN - #define LV_USE_DROPDOWN CONFIG_LV_USE_DROPDOWN - #else - #define LV_USE_DROPDOWN 0 - #endif - #else - #define LV_USE_DROPDOWN 1 /*Requires: lv_label*/ - #endif -#endif - -#ifndef LV_USE_IMG - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_IMG - #define LV_USE_IMG CONFIG_LV_USE_IMG - #else - #define LV_USE_IMG 0 - #endif - #else - #define LV_USE_IMG 1 /*Requires: lv_label*/ - #endif -#endif - -#ifndef LV_USE_LABEL - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_LABEL - #define LV_USE_LABEL CONFIG_LV_USE_LABEL - #else - #define LV_USE_LABEL 0 - #endif - #else - #define LV_USE_LABEL 1 - #endif -#endif -#if LV_USE_LABEL - #ifndef LV_LABEL_TEXT_SELECTION - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LABEL_TEXT_SELECTION - #define LV_LABEL_TEXT_SELECTION CONFIG_LV_LABEL_TEXT_SELECTION - #else - #define LV_LABEL_TEXT_SELECTION 0 - #endif - #else - #define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/ - #endif - #endif - #ifndef LV_LABEL_LONG_TXT_HINT - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_LABEL_LONG_TXT_HINT - #define LV_LABEL_LONG_TXT_HINT CONFIG_LV_LABEL_LONG_TXT_HINT - #else - #define LV_LABEL_LONG_TXT_HINT 0 - #endif - #else - #define LV_LABEL_LONG_TXT_HINT 1 /*Store some extra info in labels to speed up drawing of very long texts*/ - #endif - #endif -#endif - -#ifndef LV_USE_LINE - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_LINE - #define LV_USE_LINE CONFIG_LV_USE_LINE - #else - #define LV_USE_LINE 0 - #endif - #else - #define LV_USE_LINE 1 - #endif -#endif - -#ifndef LV_USE_ROLLER - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_ROLLER - #define LV_USE_ROLLER CONFIG_LV_USE_ROLLER - #else - #define LV_USE_ROLLER 0 - #endif - #else - #define LV_USE_ROLLER 1 /*Requires: lv_label*/ - #endif -#endif -#if LV_USE_ROLLER - #ifndef LV_ROLLER_INF_PAGES - #ifdef CONFIG_LV_ROLLER_INF_PAGES - #define LV_ROLLER_INF_PAGES CONFIG_LV_ROLLER_INF_PAGES - #else - #define LV_ROLLER_INF_PAGES 7 /*Number of extra "pages" when the roller is infinite*/ - #endif - #endif -#endif - -#ifndef LV_USE_SLIDER - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_SLIDER - #define LV_USE_SLIDER CONFIG_LV_USE_SLIDER - #else - #define LV_USE_SLIDER 0 - #endif - #else - #define LV_USE_SLIDER 1 /*Requires: lv_bar*/ - #endif -#endif - -#ifndef LV_USE_SWITCH - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_SWITCH - #define LV_USE_SWITCH CONFIG_LV_USE_SWITCH - #else - #define LV_USE_SWITCH 0 - #endif - #else - #define LV_USE_SWITCH 1 - #endif -#endif - -#ifndef LV_USE_TEXTAREA - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_TEXTAREA - #define LV_USE_TEXTAREA CONFIG_LV_USE_TEXTAREA - #else - #define LV_USE_TEXTAREA 0 - #endif - #else - #define LV_USE_TEXTAREA 1 /*Requires: lv_label*/ - #endif -#endif -#if LV_USE_TEXTAREA != 0 - #ifndef LV_TEXTAREA_DEF_PWD_SHOW_TIME - #ifdef CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME - #define LV_TEXTAREA_DEF_PWD_SHOW_TIME CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME - #else - #define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/ - #endif - #endif -#endif - -#ifndef LV_USE_TABLE - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_TABLE - #define LV_USE_TABLE CONFIG_LV_USE_TABLE - #else - #define LV_USE_TABLE 0 - #endif - #else - #define LV_USE_TABLE 1 - #endif -#endif - -/*================== - * EXTRA COMPONENTS - *==================*/ - -/*----------- - * Widgets - *----------*/ -#ifndef LV_USE_CALENDAR - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_CALENDAR - #define LV_USE_CALENDAR CONFIG_LV_USE_CALENDAR - #else - #define LV_USE_CALENDAR 0 - #endif - #else - #define LV_USE_CALENDAR 1 - #endif -#endif -#if LV_USE_CALENDAR - #ifndef LV_CALENDAR_WEEK_STARTS_MONDAY - #ifdef CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY - #define LV_CALENDAR_WEEK_STARTS_MONDAY CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY - #else - #define LV_CALENDAR_WEEK_STARTS_MONDAY 0 - #endif - #endif - #if LV_CALENDAR_WEEK_STARTS_MONDAY - #ifndef LV_CALENDAR_DEFAULT_DAY_NAMES - #ifdef CONFIG_LV_CALENDAR_DEFAULT_DAY_NAMES - #define LV_CALENDAR_DEFAULT_DAY_NAMES CONFIG_LV_CALENDAR_DEFAULT_DAY_NAMES - #else - #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"} - #endif - #endif - #else - #ifndef LV_CALENDAR_DEFAULT_DAY_NAMES - #ifdef CONFIG_LV_CALENDAR_DEFAULT_DAY_NAMES - #define LV_CALENDAR_DEFAULT_DAY_NAMES CONFIG_LV_CALENDAR_DEFAULT_DAY_NAMES - #else - #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} - #endif - #endif - #endif - - #ifndef LV_CALENDAR_DEFAULT_MONTH_NAMES - #ifdef CONFIG_LV_CALENDAR_DEFAULT_MONTH_NAMES - #define LV_CALENDAR_DEFAULT_MONTH_NAMES CONFIG_LV_CALENDAR_DEFAULT_MONTH_NAMES - #else - #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} - #endif - #endif - #ifndef LV_USE_CALENDAR_HEADER_ARROW - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_CALENDAR_HEADER_ARROW - #define LV_USE_CALENDAR_HEADER_ARROW CONFIG_LV_USE_CALENDAR_HEADER_ARROW - #else - #define LV_USE_CALENDAR_HEADER_ARROW 0 - #endif - #else - #define LV_USE_CALENDAR_HEADER_ARROW 1 - #endif - #endif - #ifndef LV_USE_CALENDAR_HEADER_DROPDOWN - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN - #define LV_USE_CALENDAR_HEADER_DROPDOWN CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN - #else - #define LV_USE_CALENDAR_HEADER_DROPDOWN 0 - #endif - #else - #define LV_USE_CALENDAR_HEADER_DROPDOWN 1 - #endif - #endif -#endif /*LV_USE_CALENDAR*/ - -#ifndef LV_USE_CHART - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_CHART - #define LV_USE_CHART CONFIG_LV_USE_CHART - #else - #define LV_USE_CHART 0 - #endif - #else - #define LV_USE_CHART 1 - #endif -#endif - -#ifndef LV_USE_COLORWHEEL - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_COLORWHEEL - #define LV_USE_COLORWHEEL CONFIG_LV_USE_COLORWHEEL - #else - #define LV_USE_COLORWHEEL 0 - #endif - #else - #define LV_USE_COLORWHEEL 1 - #endif -#endif - -#ifndef LV_USE_IMGBTN - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_IMGBTN - #define LV_USE_IMGBTN CONFIG_LV_USE_IMGBTN - #else - #define LV_USE_IMGBTN 0 - #endif - #else - #define LV_USE_IMGBTN 1 - #endif -#endif - -#ifndef LV_USE_KEYBOARD - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_KEYBOARD - #define LV_USE_KEYBOARD CONFIG_LV_USE_KEYBOARD - #else - #define LV_USE_KEYBOARD 0 - #endif - #else - #define LV_USE_KEYBOARD 1 - #endif -#endif - -#ifndef LV_USE_LED - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_LED - #define LV_USE_LED CONFIG_LV_USE_LED - #else - #define LV_USE_LED 0 - #endif - #else - #define LV_USE_LED 1 - #endif -#endif - -#ifndef LV_USE_LIST - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_LIST - #define LV_USE_LIST CONFIG_LV_USE_LIST - #else - #define LV_USE_LIST 0 - #endif - #else - #define LV_USE_LIST 1 - #endif -#endif - -#ifndef LV_USE_MENU - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_MENU - #define LV_USE_MENU CONFIG_LV_USE_MENU - #else - #define LV_USE_MENU 0 - #endif - #else - #define LV_USE_MENU 1 - #endif -#endif - -#ifndef LV_USE_METER - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_METER - #define LV_USE_METER CONFIG_LV_USE_METER - #else - #define LV_USE_METER 0 - #endif - #else - #define LV_USE_METER 1 - #endif -#endif - -#ifndef LV_USE_MSGBOX - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_MSGBOX - #define LV_USE_MSGBOX CONFIG_LV_USE_MSGBOX - #else - #define LV_USE_MSGBOX 0 - #endif - #else - #define LV_USE_MSGBOX 1 - #endif -#endif - -#ifndef LV_USE_SPINBOX - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_SPINBOX - #define LV_USE_SPINBOX CONFIG_LV_USE_SPINBOX - #else - #define LV_USE_SPINBOX 0 - #endif - #else - #define LV_USE_SPINBOX 1 - #endif -#endif - -#ifndef LV_USE_SPINNER - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_SPINNER - #define LV_USE_SPINNER CONFIG_LV_USE_SPINNER - #else - #define LV_USE_SPINNER 0 - #endif - #else - #define LV_USE_SPINNER 1 - #endif -#endif - -#ifndef LV_USE_TABVIEW - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_TABVIEW - #define LV_USE_TABVIEW CONFIG_LV_USE_TABVIEW - #else - #define LV_USE_TABVIEW 0 - #endif - #else - #define LV_USE_TABVIEW 1 - #endif -#endif - -#ifndef LV_USE_TILEVIEW - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_TILEVIEW - #define LV_USE_TILEVIEW CONFIG_LV_USE_TILEVIEW - #else - #define LV_USE_TILEVIEW 0 - #endif - #else - #define LV_USE_TILEVIEW 1 - #endif -#endif - -#ifndef LV_USE_WIN - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_WIN - #define LV_USE_WIN CONFIG_LV_USE_WIN - #else - #define LV_USE_WIN 0 - #endif - #else - #define LV_USE_WIN 1 - #endif -#endif - -#ifndef LV_USE_SPAN - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_SPAN - #define LV_USE_SPAN CONFIG_LV_USE_SPAN - #else - #define LV_USE_SPAN 0 - #endif - #else - #define LV_USE_SPAN 1 - #endif -#endif -#if LV_USE_SPAN - /*A line text can contain maximum num of span descriptor */ - #ifndef LV_SPAN_SNIPPET_STACK_SIZE - #ifdef CONFIG_LV_SPAN_SNIPPET_STACK_SIZE - #define LV_SPAN_SNIPPET_STACK_SIZE CONFIG_LV_SPAN_SNIPPET_STACK_SIZE - #else - #define LV_SPAN_SNIPPET_STACK_SIZE 64 - #endif - #endif -#endif - -/*----------- - * Themes - *----------*/ - -/*A simple, impressive and very complete theme*/ -#ifndef LV_USE_THEME_DEFAULT - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_THEME_DEFAULT - #define LV_USE_THEME_DEFAULT CONFIG_LV_USE_THEME_DEFAULT - #else - #define LV_USE_THEME_DEFAULT 0 - #endif - #else - #define LV_USE_THEME_DEFAULT 1 - #endif -#endif -#if LV_USE_THEME_DEFAULT - - /*0: Light mode; 1: Dark mode*/ - #ifndef LV_THEME_DEFAULT_DARK - #ifdef CONFIG_LV_THEME_DEFAULT_DARK - #define LV_THEME_DEFAULT_DARK CONFIG_LV_THEME_DEFAULT_DARK - #else - #define LV_THEME_DEFAULT_DARK 0 - #endif - #endif - - /*1: Enable grow on press*/ - #ifndef LV_THEME_DEFAULT_GROW - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_THEME_DEFAULT_GROW - #define LV_THEME_DEFAULT_GROW CONFIG_LV_THEME_DEFAULT_GROW - #else - #define LV_THEME_DEFAULT_GROW 0 - #endif - #else - #define LV_THEME_DEFAULT_GROW 1 - #endif - #endif - - /*Default transition time in [ms]*/ - #ifndef LV_THEME_DEFAULT_TRANSITION_TIME - #ifdef CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME - #define LV_THEME_DEFAULT_TRANSITION_TIME CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME - #else - #define LV_THEME_DEFAULT_TRANSITION_TIME 80 - #endif - #endif -#endif /*LV_USE_THEME_DEFAULT*/ - -/*A very simple theme that is a good starting point for a custom theme*/ -#ifndef LV_USE_THEME_BASIC - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_THEME_BASIC - #define LV_USE_THEME_BASIC CONFIG_LV_USE_THEME_BASIC - #else - #define LV_USE_THEME_BASIC 0 - #endif - #else - #define LV_USE_THEME_BASIC 1 - #endif -#endif - -/*A theme designed for monochrome displays*/ -#ifndef LV_USE_THEME_MONO - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_THEME_MONO - #define LV_USE_THEME_MONO CONFIG_LV_USE_THEME_MONO - #else - #define LV_USE_THEME_MONO 0 - #endif - #else - #define LV_USE_THEME_MONO 1 - #endif -#endif - -/*----------- - * Layouts - *----------*/ - -/*A layout similar to Flexbox in CSS.*/ -#ifndef LV_USE_FLEX - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_FLEX - #define LV_USE_FLEX CONFIG_LV_USE_FLEX - #else - #define LV_USE_FLEX 0 - #endif - #else - #define LV_USE_FLEX 1 - #endif -#endif - -/*A layout similar to Grid in CSS.*/ -#ifndef LV_USE_GRID - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_GRID - #define LV_USE_GRID CONFIG_LV_USE_GRID - #else - #define LV_USE_GRID 0 - #endif - #else - #define LV_USE_GRID 1 - #endif -#endif - -/*--------------------- - * 3rd party libraries - *--------------------*/ - -/*File system interfaces for common APIs */ - -/*API for fopen, fread, etc*/ -#ifndef LV_USE_FS_STDIO - #ifdef CONFIG_LV_USE_FS_STDIO - #define LV_USE_FS_STDIO CONFIG_LV_USE_FS_STDIO - #else - #define LV_USE_FS_STDIO 0 - #endif -#endif -#if LV_USE_FS_STDIO - #ifndef LV_FS_STDIO_LETTER - #ifdef CONFIG_LV_FS_STDIO_LETTER - #define LV_FS_STDIO_LETTER CONFIG_LV_FS_STDIO_LETTER - #else - #define LV_FS_STDIO_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #endif - #endif - #ifndef LV_FS_STDIO_PATH - #ifdef CONFIG_LV_FS_STDIO_PATH - #define LV_FS_STDIO_PATH CONFIG_LV_FS_STDIO_PATH - #else - #define LV_FS_STDIO_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ - #endif - #endif - #ifndef LV_FS_STDIO_CACHE_SIZE - #ifdef CONFIG_LV_FS_STDIO_CACHE_SIZE - #define LV_FS_STDIO_CACHE_SIZE CONFIG_LV_FS_STDIO_CACHE_SIZE - #else - #define LV_FS_STDIO_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ - #endif - #endif -#endif - -/*API for open, read, etc*/ -#ifndef LV_USE_FS_POSIX - #ifdef CONFIG_LV_USE_FS_POSIX - #define LV_USE_FS_POSIX CONFIG_LV_USE_FS_POSIX - #else - #define LV_USE_FS_POSIX 0 - #endif -#endif -#if LV_USE_FS_POSIX - #ifndef LV_FS_POSIX_LETTER - #ifdef CONFIG_LV_FS_POSIX_LETTER - #define LV_FS_POSIX_LETTER CONFIG_LV_FS_POSIX_LETTER - #else - #define LV_FS_POSIX_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #endif - #endif - #ifndef LV_FS_POSIX_PATH - #ifdef CONFIG_LV_FS_POSIX_PATH - #define LV_FS_POSIX_PATH CONFIG_LV_FS_POSIX_PATH - #else - #define LV_FS_POSIX_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ - #endif - #endif - #ifndef LV_FS_POSIX_CACHE_SIZE - #ifdef CONFIG_LV_FS_POSIX_CACHE_SIZE - #define LV_FS_POSIX_CACHE_SIZE CONFIG_LV_FS_POSIX_CACHE_SIZE - #else - #define LV_FS_POSIX_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ - #endif - #endif -#endif - -/*API for CreateFile, ReadFile, etc*/ -#ifndef LV_USE_FS_WIN32 - #ifdef CONFIG_LV_USE_FS_WIN32 - #define LV_USE_FS_WIN32 CONFIG_LV_USE_FS_WIN32 - #else - #define LV_USE_FS_WIN32 0 - #endif -#endif -#if LV_USE_FS_WIN32 - #ifndef LV_FS_WIN32_LETTER - #ifdef CONFIG_LV_FS_WIN32_LETTER - #define LV_FS_WIN32_LETTER CONFIG_LV_FS_WIN32_LETTER - #else - #define LV_FS_WIN32_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #endif - #endif - #ifndef LV_FS_WIN32_PATH - #ifdef CONFIG_LV_FS_WIN32_PATH - #define LV_FS_WIN32_PATH CONFIG_LV_FS_WIN32_PATH - #else - #define LV_FS_WIN32_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ - #endif - #endif - #ifndef LV_FS_WIN32_CACHE_SIZE - #ifdef CONFIG_LV_FS_WIN32_CACHE_SIZE - #define LV_FS_WIN32_CACHE_SIZE CONFIG_LV_FS_WIN32_CACHE_SIZE - #else - #define LV_FS_WIN32_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ - #endif - #endif -#endif - -/*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/ -#ifndef LV_USE_FS_FATFS - #ifdef CONFIG_LV_USE_FS_FATFS - #define LV_USE_FS_FATFS CONFIG_LV_USE_FS_FATFS - #else - #define LV_USE_FS_FATFS 0 - #endif -#endif -#if LV_USE_FS_FATFS - #ifndef LV_FS_FATFS_LETTER - #ifdef CONFIG_LV_FS_FATFS_LETTER - #define LV_FS_FATFS_LETTER CONFIG_LV_FS_FATFS_LETTER - #else - #define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #endif - #endif - #ifndef LV_FS_FATFS_CACHE_SIZE - #ifdef CONFIG_LV_FS_FATFS_CACHE_SIZE - #define LV_FS_FATFS_CACHE_SIZE CONFIG_LV_FS_FATFS_CACHE_SIZE - #else - #define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ - #endif - #endif -#endif - -/*PNG decoder library*/ -#ifndef LV_USE_PNG - #ifdef CONFIG_LV_USE_PNG - #define LV_USE_PNG CONFIG_LV_USE_PNG - #else - #define LV_USE_PNG 0 - #endif -#endif - -/*BMP decoder library*/ -#ifndef LV_USE_BMP - #ifdef CONFIG_LV_USE_BMP - #define LV_USE_BMP CONFIG_LV_USE_BMP - #else - #define LV_USE_BMP 0 - #endif -#endif - -/* JPG + split JPG decoder library. - * Split JPG is a custom format optimized for embedded systems. */ -#ifndef LV_USE_SJPG - #ifdef CONFIG_LV_USE_SJPG - #define LV_USE_SJPG CONFIG_LV_USE_SJPG - #else - #define LV_USE_SJPG 0 - #endif -#endif - -/*GIF decoder library*/ -#ifndef LV_USE_GIF - #ifdef CONFIG_LV_USE_GIF - #define LV_USE_GIF CONFIG_LV_USE_GIF - #else - #define LV_USE_GIF 0 - #endif -#endif - -/*QR code library*/ -#ifndef LV_USE_QRCODE - #ifdef CONFIG_LV_USE_QRCODE - #define LV_USE_QRCODE CONFIG_LV_USE_QRCODE - #else - #define LV_USE_QRCODE 0 - #endif -#endif - -/*FreeType library*/ -#ifndef LV_USE_FREETYPE - #ifdef CONFIG_LV_USE_FREETYPE - #define LV_USE_FREETYPE CONFIG_LV_USE_FREETYPE - #else - #define LV_USE_FREETYPE 0 - #endif -#endif -#if LV_USE_FREETYPE - /*Memory used by FreeType to cache characters [bytes] (-1: no caching)*/ - #ifndef LV_FREETYPE_CACHE_SIZE - #ifdef CONFIG_LV_FREETYPE_CACHE_SIZE - #define LV_FREETYPE_CACHE_SIZE CONFIG_LV_FREETYPE_CACHE_SIZE - #else - #define LV_FREETYPE_CACHE_SIZE (16 * 1024) - #endif - #endif - #if LV_FREETYPE_CACHE_SIZE >= 0 - /* 1: bitmap cache use the sbit cache, 0:bitmap cache use the image cache. */ - /* sbit cache:it is much more memory efficient for small bitmaps(font size < 256) */ - /* if font size >= 256, must be configured as image cache */ - #ifndef LV_FREETYPE_SBIT_CACHE - #ifdef CONFIG_LV_FREETYPE_SBIT_CACHE - #define LV_FREETYPE_SBIT_CACHE CONFIG_LV_FREETYPE_SBIT_CACHE - #else - #define LV_FREETYPE_SBIT_CACHE 0 - #endif - #endif - /* Maximum number of opened FT_Face/FT_Size objects managed by this cache instance. */ - /* (0:use system defaults) */ - #ifndef LV_FREETYPE_CACHE_FT_FACES - #ifdef CONFIG_LV_FREETYPE_CACHE_FT_FACES - #define LV_FREETYPE_CACHE_FT_FACES CONFIG_LV_FREETYPE_CACHE_FT_FACES - #else - #define LV_FREETYPE_CACHE_FT_FACES 0 - #endif - #endif - #ifndef LV_FREETYPE_CACHE_FT_SIZES - #ifdef CONFIG_LV_FREETYPE_CACHE_FT_SIZES - #define LV_FREETYPE_CACHE_FT_SIZES CONFIG_LV_FREETYPE_CACHE_FT_SIZES - #else - #define LV_FREETYPE_CACHE_FT_SIZES 0 - #endif - #endif - #endif -#endif - -/*Rlottie library*/ -#ifndef LV_USE_RLOTTIE - #ifdef CONFIG_LV_USE_RLOTTIE - #define LV_USE_RLOTTIE CONFIG_LV_USE_RLOTTIE - #else - #define LV_USE_RLOTTIE 0 - #endif -#endif - -/*FFmpeg library for image decoding and playing videos - *Supports all major image formats so do not enable other image decoder with it*/ -#ifndef LV_USE_FFMPEG - #ifdef CONFIG_LV_USE_FFMPEG - #define LV_USE_FFMPEG CONFIG_LV_USE_FFMPEG - #else - #define LV_USE_FFMPEG 0 - #endif -#endif -#if LV_USE_FFMPEG - /*Dump input information to stderr*/ - #ifndef LV_FFMPEG_DUMP_FORMAT - #ifdef CONFIG_LV_FFMPEG_DUMP_FORMAT - #define LV_FFMPEG_DUMP_FORMAT CONFIG_LV_FFMPEG_DUMP_FORMAT - #else - #define LV_FFMPEG_DUMP_FORMAT 0 - #endif - #endif -#endif - -/*----------- - * Others - *----------*/ - -/*1: Enable API to take snapshot for object*/ -#ifndef LV_USE_SNAPSHOT - #ifdef CONFIG_LV_USE_SNAPSHOT - #define LV_USE_SNAPSHOT CONFIG_LV_USE_SNAPSHOT - #else - #define LV_USE_SNAPSHOT 0 - #endif -#endif - -/*1: Enable Monkey test*/ -#ifndef LV_USE_MONKEY - #ifdef CONFIG_LV_USE_MONKEY - #define LV_USE_MONKEY CONFIG_LV_USE_MONKEY - #else - #define LV_USE_MONKEY 0 - #endif -#endif - -/*1: Enable grid navigation*/ -#ifndef LV_USE_GRIDNAV - #ifdef CONFIG_LV_USE_GRIDNAV - #define LV_USE_GRIDNAV CONFIG_LV_USE_GRIDNAV - #else - #define LV_USE_GRIDNAV 0 - #endif -#endif - -/*1: Enable lv_obj fragment*/ -#ifndef LV_USE_FRAGMENT - #ifdef CONFIG_LV_USE_FRAGMENT - #define LV_USE_FRAGMENT CONFIG_LV_USE_FRAGMENT - #else - #define LV_USE_FRAGMENT 0 - #endif -#endif - -/*draw img in label or span obj */ -#ifndef LV_USE_IMGFONT - #ifdef CONFIG_LV_USE_IMGFONT - #define LV_USE_IMGFONT CONFIG_LV_USE_IMGFONT - #else - #define LV_USE_IMGFONT 0 - #endif -#endif - -/*================== -* EXAMPLES -*==================*/ - -/*Enable the examples to be built with the library*/ -#ifndef LV_BUILD_EXAMPLES - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_BUILD_EXAMPLES - #define LV_BUILD_EXAMPLES CONFIG_LV_BUILD_EXAMPLES - #else - #define LV_BUILD_EXAMPLES 0 - #endif - #else - #define LV_BUILD_EXAMPLES 1 - #endif -#endif - -/*=================== - * DEMO USAGE - ====================*/ - -/*Show some widget. It might be required to increase `LV_MEM_SIZE` */ -#ifndef LV_USE_DEMO_WIDGETS - #ifdef CONFIG_LV_USE_DEMO_WIDGETS - #define LV_USE_DEMO_WIDGETS CONFIG_LV_USE_DEMO_WIDGETS - #else - #define LV_USE_DEMO_WIDGETS 0 - #endif -#endif -#if LV_USE_DEMO_WIDGETS -#ifndef LV_DEMO_WIDGETS_SLIDESHOW - #ifdef CONFIG_LV_DEMO_WIDGETS_SLIDESHOW - #define LV_DEMO_WIDGETS_SLIDESHOW CONFIG_LV_DEMO_WIDGETS_SLIDESHOW - #else - #define LV_DEMO_WIDGETS_SLIDESHOW 0 - #endif -#endif -#endif - -/*Demonstrate the usage of encoder and keyboard*/ -#ifndef LV_USE_DEMO_KEYPAD_AND_ENCODER - #ifdef CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER - #define LV_USE_DEMO_KEYPAD_AND_ENCODER CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER - #else - #define LV_USE_DEMO_KEYPAD_AND_ENCODER 0 - #endif -#endif - -/*Benchmark your system*/ -#ifndef LV_USE_DEMO_BENCHMARK - #ifdef CONFIG_LV_USE_DEMO_BENCHMARK - #define LV_USE_DEMO_BENCHMARK CONFIG_LV_USE_DEMO_BENCHMARK - #else - #define LV_USE_DEMO_BENCHMARK 0 - #endif -#endif - -/*Stress test for LVGL*/ -#ifndef LV_USE_DEMO_STRESS - #ifdef CONFIG_LV_USE_DEMO_STRESS - #define LV_USE_DEMO_STRESS CONFIG_LV_USE_DEMO_STRESS - #else - #define LV_USE_DEMO_STRESS 0 - #endif -#endif - -/*Music player demo*/ -#ifndef LV_USE_DEMO_MUSIC - #ifdef CONFIG_LV_USE_DEMO_MUSIC - #define LV_USE_DEMO_MUSIC CONFIG_LV_USE_DEMO_MUSIC - #else - #define LV_USE_DEMO_MUSIC 0 - #endif -#endif -#if LV_USE_DEMO_MUSIC -#ifndef LV_DEMO_MUSIC_SQUARE - #ifdef CONFIG_LV_DEMO_MUSIC_SQUARE - #define LV_DEMO_MUSIC_SQUARE CONFIG_LV_DEMO_MUSIC_SQUARE - #else - #define LV_DEMO_MUSIC_SQUARE 0 - #endif -#endif -#ifndef LV_DEMO_MUSIC_LANDSCAPE - #ifdef CONFIG_LV_DEMO_MUSIC_LANDSCAPE - #define LV_DEMO_MUSIC_LANDSCAPE CONFIG_LV_DEMO_MUSIC_LANDSCAPE - #else - #define LV_DEMO_MUSIC_LANDSCAPE 0 - #endif -#endif -#ifndef LV_DEMO_MUSIC_ROUND - #ifdef CONFIG_LV_DEMO_MUSIC_ROUND - #define LV_DEMO_MUSIC_ROUND CONFIG_LV_DEMO_MUSIC_ROUND - #else - #define LV_DEMO_MUSIC_ROUND 0 - #endif -#endif -#ifndef LV_DEMO_MUSIC_LARGE - #ifdef CONFIG_LV_DEMO_MUSIC_LARGE - #define LV_DEMO_MUSIC_LARGE CONFIG_LV_DEMO_MUSIC_LARGE - #else - #define LV_DEMO_MUSIC_LARGE 0 - #endif -#endif -#ifndef LV_DEMO_MUSIC_AUTO_PLAY - #ifdef CONFIG_LV_DEMO_MUSIC_AUTO_PLAY - #define LV_DEMO_MUSIC_AUTO_PLAY CONFIG_LV_DEMO_MUSIC_AUTO_PLAY - #else - #define LV_DEMO_MUSIC_AUTO_PLAY 0 - #endif -#endif -#endif - - - -/*---------------------------------- - * End of parsing lv_conf_template.h - -----------------------------------*/ - -LV_EXPORT_CONST_INT(LV_DPI_DEF); - -#undef _LV_KCONFIG_PRESENT - - -/*Set some defines if a dependency is disabled*/ -#if LV_USE_LOG == 0 - #define LV_LOG_LEVEL LV_LOG_LEVEL_NONE - #define LV_LOG_TRACE_MEM 0 - #define LV_LOG_TRACE_TIMER 0 - #define LV_LOG_TRACE_INDEV 0 - #define LV_LOG_TRACE_DISP_REFR 0 - #define LV_LOG_TRACE_EVENT 0 - #define LV_LOG_TRACE_OBJ_CREATE 0 - #define LV_LOG_TRACE_LAYOUT 0 - #define LV_LOG_TRACE_ANIM 0 -#endif /*LV_USE_LOG*/ - - -/*If running without lv_conf.h add typedefs with default value*/ -#ifdef LV_CONF_SKIP - #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) /*Disable warnings for Visual Studio*/ - #define _CRT_SECURE_NO_WARNINGS - #endif -#endif /*defined(LV_CONF_SKIP)*/ - -#endif /*LV_CONF_INTERNAL_H*/ diff --git a/src/lib/lvgl/src/lv_conf_kconfig.h b/src/lib/lvgl/src/lv_conf_kconfig.h deleted file mode 100644 index 7424789..0000000 --- a/src/lib/lvgl/src/lv_conf_kconfig.h +++ /dev/null @@ -1,182 +0,0 @@ -/** * @file lv_conf_kconfig.h * Configs that need special handling when LVGL is used with Kconfig */ - -#ifndef LV_CONF_KCONFIG_H -#define LV_CONF_KCONFIG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef LV_CONF_KCONFIG_EXTERNAL_INCLUDE -# include LV_CONF_KCONFIG_EXTERNAL_INCLUDE -#else - -# ifdef ESP_PLATFORM -# include "sdkconfig.h" -# include "esp_attr.h" -# endif - -# ifdef __NuttX__ -# include -# elif defined(__RTTHREAD__) -# define LV_CONF_INCLUDE_SIMPLE -# include -# endif - -#endif /*LV_CONF_KCONFIG_EXTERNAL_INCLUDE*/ - -/******************* - * LV COLOR CHROMA KEY - *******************/ - -#ifdef CONFIG_LV_COLOR_CHROMA_KEY_HEX -# define CONFIG_LV_COLOR_CHROMA_KEY lv_color_hex(CONFIG_LV_COLOR_CHROMA_KEY_HEX) -#endif - -/******************* - * LV_MEM_SIZE - *******************/ - -#ifdef CONFIG_LV_MEM_SIZE_KILOBYTES -# define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_KILOBYTES * 1024U) -#endif - -/******************** - * FONT SELECTION - *******************/ - -/** - * NOTE: In Kconfig instead of `LV_DEFAULT_FONT` - * `CONFIG_LV_FONT_DEFAULT_` is defined - * hence the large selection with if-s - */ - -/*------------------ - * DEFAULT FONT - *-----------------*/ -#ifdef CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_8 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_10 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_14 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_16 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_18 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_20 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_22 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_24 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_26 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_30 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_32 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_34 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_36 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_38 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_40 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_42 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_44 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_46 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_48 -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12_subpx -#elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED) -# define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28_compressed -#elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW) -# define CONFIG_LV_FONT_DEFAULT &lv_font_dejavu_16_persian_hebrew -#elif defined(CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK) -# define CONFIG_LV_FONT_DEFAULT &lv_font_simsun_16_cjk -#elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_8) -# define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_8 -#elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_16) -# define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_16 -#endif - -/*------------------ - * TEXT ENCODING - *-----------------*/ -#ifdef CONFIG_LV_TXT_ENC_UTF8 -# define CONFIG_LV_TXT_ENC LV_TXT_ENC_UTF8 -#elif defined(CONFIG_LV_TXT_ENC_ASCII) -# define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII -#endif - -/*------------------ - * BIDI DIRECTION - *-----------------*/ - -#ifdef CONFIG_LV_BASE_DIR_LTR -# define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_LTR -#elif defined(CONFIG_LV_BASE_DIR_RTL) -# define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_RTL -#elif defined(CONFIG_LV_BASE_DIR_AUTO) -# define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO -#endif - -/*------------------ - * MONITOR POSITION - *-----------------*/ - -#ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT -#elif defined(CONFIG_LV_USE_PERF_MONITOR_ALIGN_TOP_MID) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_LEFT -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_MID -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_LEFT_MID -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_RIGHT_MID -#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_CENTER) -# define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_CENTER -#endif - -#ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT -#elif defined(CONFIG_LV_USE_MEM_MONITOR_ALIGN_TOP_MID) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_MID) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_MID -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_LEFT_MID) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_LEFT_MID -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_RIGHT_MID) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_RIGHT_MID -#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_CENTER) -# define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_CENTER -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CONF_KCONFIG_H*/ diff --git a/src/lib/lvgl/src/lvgl.h b/src/lib/lvgl/src/lvgl.h deleted file mode 100644 index a7db27c..0000000 --- a/src/lib/lvgl/src/lvgl.h +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @file lvgl.h - * This file exists only to be compatible with Arduino's library structure - */ - -#ifndef LVGL_SRC_H -#define LVGL_SRC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../lvgl.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LVGL_SRC_H*/ diff --git a/src/lib/lvgl/src/misc/lv_anim.h b/src/lib/lvgl/src/misc/lv_anim.h deleted file mode 100644 index 18317eb..0000000 --- a/src/lib/lvgl/src/misc/lv_anim.h +++ /dev/null @@ -1,463 +0,0 @@ -/** - * @file lv_anim.h - * - */ - -#ifndef LV_ANIM_H -#define LV_ANIM_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include -#include - -/********************* - * DEFINES - *********************/ - -#define LV_ANIM_REPEAT_INFINITE 0xFFFF -#define LV_ANIM_PLAYTIME_INFINITE 0xFFFFFFFF - -LV_EXPORT_CONST_INT(LV_ANIM_REPEAT_INFINITE); -LV_EXPORT_CONST_INT(LV_ANIM_PLAYTIME_INFINITE); - -/********************** - * TYPEDEFS - **********************/ - -/** Can be used to indicate if animations are enabled or disabled in a case*/ -typedef enum { - LV_ANIM_OFF, - LV_ANIM_ON, -} lv_anim_enable_t; - -struct _lv_anim_t; - -/** Get the current value during an animation*/ -typedef int32_t (*lv_anim_path_cb_t)(const struct _lv_anim_t *); - -/** Generic prototype of "animator" functions. - * First parameter is the variable to animate. - * Second parameter is the value to set. - * Compatible with `lv_xxx_set_yyy(obj, value)` functions - * The `x` in `_xcb_t` means it's not a fully generic prototype because - * it doesn't receive `lv_anim_t *` as its first argument*/ -typedef void (*lv_anim_exec_xcb_t)(void *, int32_t); - -/** Same as `lv_anim_exec_xcb_t` but receives `lv_anim_t *` as the first parameter. - * It's more consistent but less convenient. Might be used by binding generator functions.*/ -typedef void (*lv_anim_custom_exec_cb_t)(struct _lv_anim_t *, int32_t); - -/** Callback to call when the animation is ready*/ -typedef void (*lv_anim_ready_cb_t)(struct _lv_anim_t *); - -/** Callback to call when the animation really stars (considering `delay`)*/ -typedef void (*lv_anim_start_cb_t)(struct _lv_anim_t *); - -/** Callback used when the animation values are relative to get the current value*/ -typedef int32_t (*lv_anim_get_value_cb_t)(struct _lv_anim_t *); - -/** Describes an animation*/ -typedef struct _lv_anim_t { - void * var; /**var = var; -} - -/** - * Set a function to animate `var` - * @param a pointer to an initialized `lv_anim_t` variable - * @param exec_cb a function to execute during animation - * LVGL's built-in functions can be used. - * E.g. lv_obj_set_x - */ -static inline void lv_anim_set_exec_cb(lv_anim_t * a, lv_anim_exec_xcb_t exec_cb) -{ - a->exec_cb = exec_cb; -} - -/** - * Set the duration of an animation - * @param a pointer to an initialized `lv_anim_t` variable - * @param duration duration of the animation in milliseconds - */ -static inline void lv_anim_set_time(lv_anim_t * a, uint32_t duration) -{ - a->time = duration; -} - -/** - * Set a delay before starting the animation - * @param a pointer to an initialized `lv_anim_t` variable - * @param delay delay before the animation in milliseconds - */ -static inline void lv_anim_set_delay(lv_anim_t * a, uint32_t delay) -{ - a->act_time = -(int32_t)(delay); -} - -/** - * Set the start and end values of an animation - * @param a pointer to an initialized `lv_anim_t` variable - * @param start the start value - * @param end the end value - */ -static inline void lv_anim_set_values(lv_anim_t * a, int32_t start, int32_t end) -{ - a->start_value = start; - a->current_value = start; - a->end_value = end; -} - -/** - * Similar to `lv_anim_set_exec_cb` but `lv_anim_custom_exec_cb_t` receives - * `lv_anim_t * ` as its first parameter instead of `void *`. - * This function might be used when LVGL is bound to other languages because - * it's more consistent to have `lv_anim_t *` as first parameter. - * The variable to animate can be stored in the animation's `user_data` - * @param a pointer to an initialized `lv_anim_t` variable - * @param exec_cb a function to execute. - */ -static inline void lv_anim_set_custom_exec_cb(lv_anim_t * a, lv_anim_custom_exec_cb_t exec_cb) -{ - a->var = a; - a->exec_cb = (lv_anim_exec_xcb_t)exec_cb; -} - -/** - * Set the path (curve) of the animation. - * @param a pointer to an initialized `lv_anim_t` variable - * @param path_cb a function to set the current value of the animation. - */ -static inline void lv_anim_set_path_cb(lv_anim_t * a, lv_anim_path_cb_t path_cb) -{ - a->path_cb = path_cb; -} - -/** - * Set a function call when the animation really starts (considering `delay`) - * @param a pointer to an initialized `lv_anim_t` variable - * @param start_cb a function call when the animation starts - */ -static inline void lv_anim_set_start_cb(lv_anim_t * a, lv_anim_start_cb_t start_cb) -{ - a->start_cb = start_cb; -} - -/** - * Set a function to use the current value of the variable and make start and end value - * relative to the returned current value. - * @param a pointer to an initialized `lv_anim_t` variable - * @param get_value_cb a function call when the animation starts - */ -static inline void lv_anim_set_get_value_cb(lv_anim_t * a, lv_anim_get_value_cb_t get_value_cb) -{ - a->get_value_cb = get_value_cb; -} - -/** - * Set a function call when the animation is ready - * @param a pointer to an initialized `lv_anim_t` variable - * @param ready_cb a function call when the animation is ready - */ -static inline void lv_anim_set_ready_cb(lv_anim_t * a, lv_anim_ready_cb_t ready_cb) -{ - a->ready_cb = ready_cb; -} - -/** - * Make the animation to play back to when the forward direction is ready - * @param a pointer to an initialized `lv_anim_t` variable - * @param time the duration of the playback animation in milliseconds. 0: disable playback - */ -static inline void lv_anim_set_playback_time(lv_anim_t * a, uint32_t time) -{ - a->playback_time = time; -} - -/** - * Make the animation to play back to when the forward direction is ready - * @param a pointer to an initialized `lv_anim_t` variable - * @param delay delay in milliseconds before starting the playback animation. - */ -static inline void lv_anim_set_playback_delay(lv_anim_t * a, uint32_t delay) -{ - a->playback_delay = delay; -} - -/** - * Make the animation repeat itself. - * @param a pointer to an initialized `lv_anim_t` variable - * @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition. - */ -static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt) -{ - a->repeat_cnt = cnt; -} - -/** - * Set a delay before repeating the animation. - * @param a pointer to an initialized `lv_anim_t` variable - * @param delay delay in milliseconds before repeating the animation. - */ -static inline void lv_anim_set_repeat_delay(lv_anim_t * a, uint32_t delay) -{ - a->repeat_delay = delay; -} - -/** - * Set a whether the animation's should be applied immediately or only when the delay expired. - * @param a pointer to an initialized `lv_anim_t` variable - * @param en true: apply the start value immediately in `lv_anim_start`; - * false: apply the start value only when `delay` ms is elapsed and the animations really starts - */ -static inline void lv_anim_set_early_apply(lv_anim_t * a, bool en) -{ - a->early_apply = en; -} - -/** - * Set the custom user data field of the animation. - * @param a pointer to an initialized `lv_anim_t` variable - * @param user_data pointer to the new user_data. - */ -#if LV_USE_USER_DATA -static inline void lv_anim_set_user_data(lv_anim_t * a, void * user_data) -{ - a->user_data = user_data; -} -#endif - -/** - * Create an animation - * @param a an initialized 'anim_t' variable. Not required after call. - * @return pointer to the created animation (different from the `a` parameter) - */ -lv_anim_t * lv_anim_start(const lv_anim_t * a); - -/** - * Get a delay before starting the animation - * @param a pointer to an initialized `lv_anim_t` variable - * @return delay before the animation in milliseconds - */ -static inline uint32_t lv_anim_get_delay(lv_anim_t * a) -{ - return -a->act_time; -} - -/** - * Get the time used to play the animation. - * @param a pointer to an animation. - * @return the play time in milliseconds. - */ -uint32_t lv_anim_get_playtime(lv_anim_t * a); - -/** - * Get the user_data field of the animation - * @param a pointer to an initialized `lv_anim_t` variable - * @return the pointer to the custom user_data of the animation - */ -#if LV_USE_USER_DATA -static inline void * lv_anim_get_user_data(lv_anim_t * a) -{ - return a->user_data; -} -#endif - -/** - * Delete an animation of a variable with a given animator function - * @param var pointer to variable - * @param exec_cb a function pointer which is animating 'var', - * or NULL to ignore it and delete all the animations of 'var - * @return true: at least 1 animation is deleted, false: no animation is deleted - */ -bool lv_anim_del(void * var, lv_anim_exec_xcb_t exec_cb); - -/** - * Delete all the animations - */ -void lv_anim_del_all(void); - -/** - * Get the animation of a variable and its `exec_cb`. - * @param var pointer to variable - * @param exec_cb a function pointer which is animating 'var', or NULL to return first matching 'var' - * @return pointer to the animation. - */ -lv_anim_t * lv_anim_get(void * var, lv_anim_exec_xcb_t exec_cb); - -/** - * Delete an animation by getting the animated variable from `a`. - * Only animations with `exec_cb` will be deleted. - * This function exists because it's logical that all anim. functions receives an - * `lv_anim_t` as their first parameter. It's not practical in C but might make - * the API more consequent and makes easier to generate bindings. - * @param a pointer to an animation. - * @param exec_cb a function pointer which is animating 'var', - * or NULL to ignore it and delete all the animations of 'var - * @return true: at least 1 animation is deleted, false: no animation is deleted - */ -static inline bool lv_anim_custom_del(lv_anim_t * a, lv_anim_custom_exec_cb_t exec_cb) -{ - return lv_anim_del(a ? a->var : NULL, (lv_anim_exec_xcb_t)exec_cb); -} - -/** - * Get the animation of a variable and its `exec_cb`. - * This function exists because it's logical that all anim. functions receives an - * `lv_anim_t` as their first parameter. It's not practical in C but might make - * the API more consequent and makes easier to generate bindings. - * @param a pointer to an animation. - * @param exec_cb a function pointer which is animating 'var', or NULL to return first matching 'var' - * @return pointer to the animation. - */ -static inline lv_anim_t * lv_anim_custom_get(lv_anim_t * a, lv_anim_custom_exec_cb_t exec_cb) -{ - return lv_anim_get(a ? a->var : NULL, (lv_anim_exec_xcb_t)exec_cb); -} - -/** - * Get the number of currently running animations - * @return the number of running animations - */ -uint16_t lv_anim_count_running(void); - -/** - * Calculate the time of an animation with a given speed and the start and end values - * @param speed speed of animation in unit/sec - * @param start start value of the animation - * @param end end value of the animation - * @return the required time [ms] for the animation with the given parameters - */ -uint32_t lv_anim_speed_to_time(uint32_t speed, int32_t start, int32_t end); - -/** - * Manually refresh the state of the animations. - * Useful to make the animations running in a blocking process where - * `lv_timer_handler` can't run for a while. - * Shouldn't be used directly because it is called in `lv_refr_now()`. - */ -void lv_anim_refr_now(void); - -/** - * Calculate the current value of an animation applying linear characteristic - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_linear(const lv_anim_t * a); - -/** - * Calculate the current value of an animation slowing down the start phase - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_ease_in(const lv_anim_t * a); - -/** - * Calculate the current value of an animation slowing down the end phase - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_ease_out(const lv_anim_t * a); - -/** - * Calculate the current value of an animation applying an "S" characteristic (cosine) - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_ease_in_out(const lv_anim_t * a); - -/** - * Calculate the current value of an animation with overshoot at the end - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_overshoot(const lv_anim_t * a); - -/** - * Calculate the current value of an animation with 3 bounces - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_bounce(const lv_anim_t * a); - -/** - * Calculate the current value of an animation applying step characteristic. - * (Set end value on the end of the animation) - * @param a pointer to an animation - * @return the current value to set - */ -int32_t lv_anim_path_step(const lv_anim_t * a); - -/********************** - * GLOBAL VARIABLES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_ANIM_H*/ diff --git a/src/lib/lvgl/src/misc/lv_anim_timeline.h b/src/lib/lvgl/src/misc/lv_anim_timeline.h deleted file mode 100644 index d4dd0fc..0000000 --- a/src/lib/lvgl/src/misc/lv_anim_timeline.h +++ /dev/null @@ -1,103 +0,0 @@ -/** - * @file lv_anim_timeline.h - * - */ - -#ifndef LV_ANIM_TIMELINE_H -#define LV_ANIM_TIMELINE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "lv_anim.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_anim_timeline_t; - -typedef struct _lv_anim_timeline_t lv_anim_timeline_t; - -/********************** -* GLOBAL PROTOTYPES -**********************/ - -/** - * Create an animation timeline. - * @return pointer to the animation timeline. - */ -lv_anim_timeline_t * lv_anim_timeline_create(void); - -/** - * Delete animation timeline. - * @param at pointer to the animation timeline. - */ -void lv_anim_timeline_del(lv_anim_timeline_t * at); - -/** - * Add animation to the animation timeline. - * @param at pointer to the animation timeline. - * @param start_time the time the animation started on the timeline, note that start_time will override the value of delay. - * @param a pointer to an animation. - */ -void lv_anim_timeline_add(lv_anim_timeline_t * at, uint32_t start_time, lv_anim_t * a); - -/** - * Start the animation timeline. - * @param at pointer to the animation timeline. - * @return total time spent in animation timeline. - */ -uint32_t lv_anim_timeline_start(lv_anim_timeline_t * at); - -/** - * Stop the animation timeline. - * @param at pointer to the animation timeline. - */ -void lv_anim_timeline_stop(lv_anim_timeline_t * at); - -/** - * Set the playback direction of the animation timeline. - * @param at pointer to the animation timeline. - * @param reverse whether to play in reverse. - */ -void lv_anim_timeline_set_reverse(lv_anim_timeline_t * at, bool reverse); - -/** - * Set the progress of the animation timeline. - * @param at pointer to the animation timeline. - * @param progress set value 0~65535 to map 0~100% animation progress. - */ -void lv_anim_timeline_set_progress(lv_anim_timeline_t * at, uint16_t progress); - -/** - * Get the time used to play the animation timeline. - * @param at pointer to the animation timeline. - * @return total time spent in animation timeline. - */ -uint32_t lv_anim_timeline_get_playtime(lv_anim_timeline_t * at); - -/** - * Get whether the animation timeline is played in reverse. - * @param at pointer to the animation timeline. - * @return return true if it is reverse playback. - */ -bool lv_anim_timeline_get_reverse(lv_anim_timeline_t * at); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_ANIM_TIMELINE_H*/ diff --git a/src/lib/lvgl/src/misc/lv_area.h b/src/lib/lvgl/src/misc/lv_area.h deleted file mode 100644 index 542d86b..0000000 --- a/src/lib/lvgl/src/misc/lv_area.h +++ /dev/null @@ -1,293 +0,0 @@ -/** - * @file lv_area.h - * - */ - -#ifndef LV_AREA_H -#define LV_AREA_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include -#include - -/********************* - * DEFINES - *********************/ - -#if LV_USE_LARGE_COORD -typedef int32_t lv_coord_t; -#else -typedef int16_t lv_coord_t; -#endif - -/********************** - * TYPEDEFS - **********************/ - -/** - * Represents a point on the screen. - */ -typedef struct { - lv_coord_t x; - lv_coord_t y; -} lv_point_t; - -/** Represents an area of the screen.*/ -typedef struct { - lv_coord_t x1; - lv_coord_t y1; - lv_coord_t x2; - lv_coord_t y2; -} lv_area_t; - -/** Alignments*/ -enum { - LV_ALIGN_DEFAULT = 0, - LV_ALIGN_TOP_LEFT, - LV_ALIGN_TOP_MID, - LV_ALIGN_TOP_RIGHT, - LV_ALIGN_BOTTOM_LEFT, - LV_ALIGN_BOTTOM_MID, - LV_ALIGN_BOTTOM_RIGHT, - LV_ALIGN_LEFT_MID, - LV_ALIGN_RIGHT_MID, - LV_ALIGN_CENTER, - - LV_ALIGN_OUT_TOP_LEFT, - LV_ALIGN_OUT_TOP_MID, - LV_ALIGN_OUT_TOP_RIGHT, - LV_ALIGN_OUT_BOTTOM_LEFT, - LV_ALIGN_OUT_BOTTOM_MID, - LV_ALIGN_OUT_BOTTOM_RIGHT, - LV_ALIGN_OUT_LEFT_TOP, - LV_ALIGN_OUT_LEFT_MID, - LV_ALIGN_OUT_LEFT_BOTTOM, - LV_ALIGN_OUT_RIGHT_TOP, - LV_ALIGN_OUT_RIGHT_MID, - LV_ALIGN_OUT_RIGHT_BOTTOM, -}; -typedef uint8_t lv_align_t; - -enum { - LV_DIR_NONE = 0x00, - LV_DIR_LEFT = (1 << 0), - LV_DIR_RIGHT = (1 << 1), - LV_DIR_TOP = (1 << 2), - LV_DIR_BOTTOM = (1 << 3), - LV_DIR_HOR = LV_DIR_LEFT | LV_DIR_RIGHT, - LV_DIR_VER = LV_DIR_TOP | LV_DIR_BOTTOM, - LV_DIR_ALL = LV_DIR_HOR | LV_DIR_VER, -}; - -typedef uint8_t lv_dir_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize an area - * @param area_p pointer to an area - * @param x1 left coordinate of the area - * @param y1 top coordinate of the area - * @param x2 right coordinate of the area - * @param y2 bottom coordinate of the area - */ -void lv_area_set(lv_area_t * area_p, lv_coord_t x1, lv_coord_t y1, lv_coord_t x2, lv_coord_t y2); - -/** - * Copy an area - * @param dest pointer to the destination area - * @param src pointer to the source area - */ -inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) -{ - dest->x1 = src->x1; - dest->y1 = src->y1; - dest->x2 = src->x2; - dest->y2 = src->y2; -} - -/** - * Get the width of an area - * @param area_p pointer to an area - * @return the width of the area (if x1 == x2 -> width = 1) - */ -static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); -} - -/** - * Get the height of an area - * @param area_p pointer to an area - * @return the height of the area (if y1 == y2 -> height = 1) - */ -static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); -} - -/** - * Set the width of an area - * @param area_p pointer to an area - * @param w the new width of the area (w == 1 makes x1 == x2) - */ -void lv_area_set_width(lv_area_t * area_p, lv_coord_t w); - -/** - * Set the height of an area - * @param area_p pointer to an area - * @param h the new height of the area (h == 1 makes y1 == y2) - */ -void lv_area_set_height(lv_area_t * area_p, lv_coord_t h); - -/** - * Set the position of an area (width and height will be kept) - * @param area_p pointer to an area - * @param x the new x coordinate of the area - * @param y the new y coordinate of the area - */ -void _lv_area_set_pos(lv_area_t * area_p, lv_coord_t x, lv_coord_t y); - -/** - * Return with area of an area (x * y) - * @param area_p pointer to an area - * @return size of area - */ -uint32_t lv_area_get_size(const lv_area_t * area_p); - -void lv_area_increase(lv_area_t * area, lv_coord_t w_extra, lv_coord_t h_extra); - -void lv_area_move(lv_area_t * area, lv_coord_t x_ofs, lv_coord_t y_ofs); - -/** - * Get the common parts of two areas - * @param res_p pointer to an area, the result will be stored her - * @param a1_p pointer to the first area - * @param a2_p pointer to the second area - * @return false: the two area has NO common parts, res_p is invalid - */ -bool _lv_area_intersect(lv_area_t * res_p, const lv_area_t * a1_p, const lv_area_t * a2_p); - -/** - * Join two areas into a third which involves the other two - * @param res_p pointer to an area, the result will be stored here - * @param a1_p pointer to the first area - * @param a2_p pointer to the second area - */ -void _lv_area_join(lv_area_t * a_res_p, const lv_area_t * a1_p, const lv_area_t * a2_p); - -/** - * Check if a point is on an area - * @param a_p pointer to an area - * @param p_p pointer to a point - * @param radius radius of area (e.g. for rounded rectangle) - * @return false:the point is out of the area - */ -bool _lv_area_is_point_on(const lv_area_t * a_p, const lv_point_t * p_p, lv_coord_t radius); - -/** - * Check if two area has common parts - * @param a1_p pointer to an area. - * @param a2_p pointer to an other area - * @return false: a1_p and a2_p has no common parts - */ -bool _lv_area_is_on(const lv_area_t * a1_p, const lv_area_t * a2_p); - -/** - * Check if an area is fully on an other - * @param ain_p pointer to an area which could be in 'aholder_p' - * @param aholder_p pointer to an area which could involve 'ain_p' - * @param radius radius of `aholder_p` (e.g. for rounded rectangle) - * @return true: `ain_p` is fully inside `aholder_p` - */ -bool _lv_area_is_in(const lv_area_t * ain_p, const lv_area_t * aholder_p, lv_coord_t radius); - - -/** - * Check if an area is fully out of an other - * @param aout_p pointer to an area which could be in 'aholder_p' - * @param aholder_p pointer to an area which could involve 'ain_p' - * @param radius radius of `aholder_p` (e.g. for rounded rectangle) - * @return true: `aout_p` is fully outside `aholder_p` - */ -bool _lv_area_is_out(const lv_area_t * aout_p, const lv_area_t * aholder_p, lv_coord_t radius); - -/** - * Check if 2 area is the same - * @param a pointer to an area - * @param b pointer to another area - */ -bool _lv_area_is_equal(const lv_area_t * a, const lv_area_t * b); - -/** - * Align an area to an other - * @param base an are where the other will be aligned - * @param to_align the area to align - * @param align `LV_ALIGN_...` - */ -void lv_area_align(const lv_area_t * base, lv_area_t * to_align, lv_align_t align, lv_coord_t ofs_x, lv_coord_t ofs_y); - -/********************** - * MACROS - **********************/ - -#if LV_USE_LARGE_COORD -#define _LV_COORD_TYPE_SHIFT (29U) -#else -#define _LV_COORD_TYPE_SHIFT (13U) -#endif - -#define _LV_COORD_TYPE_MASK (3 << _LV_COORD_TYPE_SHIFT) -#define _LV_COORD_TYPE(x) ((x) & _LV_COORD_TYPE_MASK) /*Extract type specifiers*/ -#define _LV_COORD_PLAIN(x) ((x) & ~_LV_COORD_TYPE_MASK) /*Remove type specifiers*/ - -#define _LV_COORD_TYPE_PX (0 << _LV_COORD_TYPE_SHIFT) -#define _LV_COORD_TYPE_SPEC (1 << _LV_COORD_TYPE_SHIFT) -#define _LV_COORD_TYPE_PX_NEG (3 << _LV_COORD_TYPE_SHIFT) - -#define LV_COORD_IS_PX(x) (_LV_COORD_TYPE(x) == _LV_COORD_TYPE_PX || \ - _LV_COORD_TYPE(x) == _LV_COORD_TYPE_PX_NEG ? true : false) -#define LV_COORD_IS_SPEC(x) (_LV_COORD_TYPE(x) == _LV_COORD_TYPE_SPEC ? true : false) - -#define LV_COORD_SET_SPEC(x) ((x) | _LV_COORD_TYPE_SPEC) - -/*Special coordinates*/ -#define LV_PCT(x) (x < 0 ? LV_COORD_SET_SPEC(1000 - (x)) : LV_COORD_SET_SPEC(x)) -#define LV_COORD_IS_PCT(x) ((LV_COORD_IS_SPEC(x) && _LV_COORD_PLAIN(x) <= 2000) ? true : false) -#define LV_COORD_GET_PCT(x) (_LV_COORD_PLAIN(x) > 1000 ? 1000 - _LV_COORD_PLAIN(x) : _LV_COORD_PLAIN(x)) -#define LV_SIZE_CONTENT LV_COORD_SET_SPEC(2001) - -LV_EXPORT_CONST_INT(LV_SIZE_CONTENT); - -/*Max coordinate value*/ -#define LV_COORD_MAX ((1 << _LV_COORD_TYPE_SHIFT) - 1) -#define LV_COORD_MIN (-LV_COORD_MAX) - -LV_EXPORT_CONST_INT(LV_COORD_MAX); -LV_EXPORT_CONST_INT(LV_COORD_MIN); - -/** - * Convert a percentage value to `lv_coord_t`. - * Percentage values are stored in special range - * @param x the percentage (0..1000) - * @return a coordinate that stores the percentage - */ -static inline lv_coord_t lv_pct(lv_coord_t x) -{ - return LV_PCT(x); -} - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/misc/lv_assert.h b/src/lib/lvgl/src/misc/lv_assert.h deleted file mode 100644 index 48db744..0000000 --- a/src/lib/lvgl/src/misc/lv_assert.h +++ /dev/null @@ -1,79 +0,0 @@ -/** - * @file lv_assert.h - * - */ - -#ifndef LV_ASSERT_H -#define LV_ASSERT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "lv_log.h" -#include "lv_mem.h" -#include LV_ASSERT_HANDLER_INCLUDE - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#define LV_ASSERT(expr) \ - do { \ - if(!(expr)) { \ - LV_LOG_ERROR("Asserted at expression: %s", #expr); \ - LV_ASSERT_HANDLER \ - } \ - } while(0) - -#define LV_ASSERT_MSG(expr, msg) \ - do { \ - if(!(expr)) { \ - LV_LOG_ERROR("Asserted at expression: %s (%s)", #expr, msg); \ - LV_ASSERT_HANDLER \ - } \ - } while(0) - -/*----------------- - * ASSERTS - *-----------------*/ - -#if LV_USE_ASSERT_NULL -# define LV_ASSERT_NULL(p) LV_ASSERT_MSG(p != NULL, "NULL pointer"); -#else -# define LV_ASSERT_NULL(p) -#endif - -#if LV_USE_ASSERT_MALLOC -# define LV_ASSERT_MALLOC(p) LV_ASSERT_MSG(p != NULL, "Out of memory"); -#else -# define LV_ASSERT_MALLOC(p) -#endif - -#if LV_USE_ASSERT_MEM_INTEGRITY -# define LV_ASSERT_MEM_INTEGRITY() LV_ASSERT_MSG(lv_mem_test() == LV_RES_OK, "Memory integrity error"); -#else -# define LV_ASSERT_MEM_INTEGRITY() -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_ASSERT_H*/ diff --git a/src/lib/lvgl/src/misc/lv_async.h b/src/lib/lvgl/src/misc/lv_async.h deleted file mode 100644 index 3e6cb63..0000000 --- a/src/lib/lvgl/src/misc/lv_async.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - * @file lv_async.h - * - */ - -#ifndef LV_ASYNC_H -#define LV_ASYNC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "lv_types.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** - * Type for async callback. - */ -typedef void (*lv_async_cb_t)(void *); - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Call an asynchronous function the next time lv_timer_handler() is run. This function is likely to return - * **before** the call actually happens! - * @param async_xcb a callback which is the task itself. - * (the 'x' in the argument name indicates that it's not a fully generic function because it not follows - * the `func_name(object, callback, ...)` convention) - * @param user_data custom parameter - */ -lv_res_t lv_async_call(lv_async_cb_t async_xcb, void * user_data); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_ASYNC_H*/ diff --git a/src/lib/lvgl/src/misc/lv_bidi.h b/src/lib/lvgl/src/misc/lv_bidi.h deleted file mode 100644 index a27b580..0000000 --- a/src/lib/lvgl/src/misc/lv_bidi.h +++ /dev/null @@ -1,141 +0,0 @@ -/** - * @file lv_bidi.h - * - */ - -#ifndef LV_BIDI_H -#define LV_BIDI_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include -#include "lv_txt.h" - -/********************* - * DEFINES - *********************/ -/*Special non printable strong characters. - *They can be inserted to texts to affect the run's direction*/ -#define LV_BIDI_LRO "\xE2\x80\xAD" /*U+202D*/ -#define LV_BIDI_RLO "\xE2\x80\xAE" /*U+202E*/ - -/********************** - * TYPEDEFS - **********************/ -enum { - LV_BASE_DIR_LTR = 0x00, - LV_BASE_DIR_RTL = 0x01, - LV_BASE_DIR_AUTO = 0x02, - - LV_BASE_DIR_NEUTRAL = 0x20, - LV_BASE_DIR_WEAK = 0x21, -}; - -typedef uint8_t lv_base_dir_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ -#if LV_USE_BIDI - -/** - * Convert a text to get the characters in the correct visual order according to - * Unicode Bidirectional Algorithm - * @param str_in the text to process - * @param str_out store the result here. Has the be `strlen(str_in)` length - * @param base_dir `LV_BASE_DIR_LTR` or `LV_BASE_DIR_RTL` - */ -void _lv_bidi_process(const char * str_in, char * str_out, lv_base_dir_t base_dir); - -/** - * Auto-detect the direction of a text based on the first strong character - * @param txt the text to process - * @return `LV_BASE_DIR_LTR` or `LV_BASE_DIR_RTL` - */ -lv_base_dir_t _lv_bidi_detect_base_dir(const char * txt); - -/** - * Get the logical position of a character in a line - * @param str_in the input string. Can be only one line. - * @param bidi_txt internally the text is bidi processed which buffer can be get here. - * If not required anymore has to freed with `lv_mem_free()` - * Can be `NULL` is unused - * @param len length of the line in character count - * @param base_dir base direction of the text: `LV_BASE_DIR_LTR` or `LV_BASE_DIR_RTL` - * @param visual_pos the visual character position which logical position should be get - * @param is_rtl tell the char at `visual_pos` is RTL or LTR context - * @return the logical character position - */ -uint16_t _lv_bidi_get_logical_pos(const char * str_in, char ** bidi_txt, uint32_t len, lv_base_dir_t base_dir, - uint32_t visual_pos, bool * is_rtl); - -/** - * Get the visual position of a character in a line - * @param str_in the input string. Can be only one line. - * @param bidi_txt internally the text is bidi processed which buffer can be get here. - * If not required anymore has to freed with `lv_mem_free()` - * Can be `NULL` is unused - * @param len length of the line in character count - * @param base_dir base direction of the text: `LV_BASE_DIR_LTR` or `LV_BASE_DIR_RTL` - * @param logical_pos the logical character position which visual position should be get - * @param is_rtl tell the char at `logical_pos` is RTL or LTR context - * @return the visual character position - */ -uint16_t _lv_bidi_get_visual_pos(const char * str_in, char ** bidi_txt, uint16_t len, lv_base_dir_t base_dir, - uint32_t logical_pos, bool * is_rtl); - -/** - * Bidi process a paragraph of text - * @param str_in the string to process - * @param str_out store the result here - * @param len length of the text - * @param base_dir base dir of the text - * @param pos_conv_out an `uint16_t` array to store the related logical position of the character. - * Can be `NULL` is unused - * @param pos_conv_len length of `pos_conv_out` in element count - */ -void _lv_bidi_process_paragraph(const char * str_in, char * str_out, uint32_t len, lv_base_dir_t base_dir, - uint16_t * pos_conv_out, uint16_t pos_conv_len); - -/** - * Get the real text alignment from the a text alignment, base direction and a text. - * @param align LV_TEXT_ALIGN_..., write back the calculated align here (LV_TEXT_ALIGN_LEFT/RIGHT/CENTER) - * @param base_dir LV_BASE_DIR_..., write the calculated base dir here (LV_BASE_DIR_LTR/RTL) - * @param txt a text, used with LV_BASE_DIR_AUTO to determine the base direction - */ -void lv_bidi_calculate_align(lv_text_align_t * align, lv_base_dir_t * base_dir, const char * txt); - - -/********************** - * MACROS - **********************/ - -#else /*LV_USE_BIDI*/ -/** - * For compatibility if LV_USE_BIDI = 0 - * Get the real text alignment from the a text alignment, base direction and a text. - * @param align For LV_TEXT_ALIGN_AUTO give LV_TEXT_ALIGN_LEFT else leave unchanged, write back the calculated align here - * @param base_dir Unused - * @param txt Unused - */ -static inline void lv_bidi_calculate_align(lv_text_align_t * align, lv_base_dir_t * base_dir, const char * txt) -{ - LV_UNUSED(txt); - LV_UNUSED(base_dir); - if(*align == LV_TEXT_ALIGN_AUTO) * align = LV_TEXT_ALIGN_LEFT; -} -#endif /*LV_USE_BIDI*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_BIDI_H*/ diff --git a/src/lib/lvgl/src/misc/lv_color.h b/src/lib/lvgl/src/misc/lv_color.h deleted file mode 100644 index b02660e..0000000 --- a/src/lib/lvgl/src/misc/lv_color.h +++ /dev/null @@ -1,712 +0,0 @@ -/** - * @file lv_color.h - * - */ - -#ifndef LV_COLOR_H -#define LV_COLOR_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "lv_assert.h" -#include "lv_math.h" -#include "lv_types.h" - -/*Error checking*/ -#if LV_COLOR_DEPTH == 24 -#error "LV_COLOR_DEPTH 24 is deprecated. Use LV_COLOR_DEPTH 32 instead (lv_conf.h)" -#endif - -#if LV_COLOR_DEPTH != 32 && LV_COLOR_SCREEN_TRANSP != 0 -#error "LV_COLOR_SCREEN_TRANSP requires LV_COLOR_DEPTH == 32. Set it in lv_conf.h" -#endif - -#if LV_COLOR_DEPTH != 16 && LV_COLOR_16_SWAP != 0 -#error "LV_COLOR_16_SWAP requires LV_COLOR_DEPTH == 16. Set it in lv_conf.h" -#endif - -#include - -/********************* - * DEFINES - *********************/ -LV_EXPORT_CONST_INT(LV_COLOR_DEPTH); -LV_EXPORT_CONST_INT(LV_COLOR_16_SWAP); - -/** - * Opacity percentages. - */ -enum { - LV_OPA_TRANSP = 0, - LV_OPA_0 = 0, - LV_OPA_10 = 25, - LV_OPA_20 = 51, - LV_OPA_30 = 76, - LV_OPA_40 = 102, - LV_OPA_50 = 127, - LV_OPA_60 = 153, - LV_OPA_70 = 178, - LV_OPA_80 = 204, - LV_OPA_90 = 229, - LV_OPA_100 = 255, - LV_OPA_COVER = 255, -}; - -#define LV_OPA_MIN 2 /*Opacities below this will be transparent*/ -#define LV_OPA_MAX 253 /*Opacities above this will fully cover*/ - -#if LV_COLOR_DEPTH == 1 -#define LV_COLOR_SIZE 8 -#elif LV_COLOR_DEPTH == 8 -#define LV_COLOR_SIZE 8 -#elif LV_COLOR_DEPTH == 16 -#define LV_COLOR_SIZE 16 -#elif LV_COLOR_DEPTH == 32 -#define LV_COLOR_SIZE 32 -#else -#error "Invalid LV_COLOR_DEPTH in lv_conf.h! Set it to 1, 8, 16 or 32!" -#endif - -#if defined(__cplusplus) && !defined(_LV_COLOR_HAS_MODERN_CPP) -/** -* MSVC compiler's definition of the __cplusplus indicating 199711L regardless to C++ standard version -* see https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-cplusplus -* so we use _MSC_VER macro instead of __cplusplus -*/ -#ifdef _MSC_VER -#if _MSC_VER >= 1900 /*Visual Studio 2015*/ -#define _LV_COLOR_HAS_MODERN_CPP 1 -#endif -#else -#if __cplusplus >= 201103L -#define _LV_COLOR_HAS_MODERN_CPP 1 -#endif -#endif -#endif /*__cplusplus*/ - -#ifndef _LV_COLOR_HAS_MODERN_CPP -#define _LV_COLOR_HAS_MODERN_CPP 0 -#endif - -#if _LV_COLOR_HAS_MODERN_CPP -/*Fix msvc compiler error C4576 inside C++ code*/ -#define _LV_COLOR_MAKE_TYPE_HELPER lv_color_t -#else -#define _LV_COLOR_MAKE_TYPE_HELPER (lv_color_t) -#endif - -/*--------------------------------------- - * Macros for all existing color depths - * to set/get values of the color channels - *------------------------------------------*/ -# define LV_COLOR_SET_R1(c, v) (c).ch.red = (uint8_t)((v) & 0x1) -# define LV_COLOR_SET_G1(c, v) (c).ch.green = (uint8_t)((v) & 0x1) -# define LV_COLOR_SET_B1(c, v) (c).ch.blue = (uint8_t)((v) & 0x1) -# define LV_COLOR_SET_A1(c, v) do {} while(0) - -# define LV_COLOR_GET_R1(c) (c).ch.red -# define LV_COLOR_GET_G1(c) (c).ch.green -# define LV_COLOR_GET_B1(c) (c).ch.blue -# define LV_COLOR_GET_A1(c) 0xFF - -# define _LV_COLOR_ZERO_INITIALIZER1 {0x00} -# define LV_COLOR_MAKE1(r8, g8, b8) {(uint8_t)((b8 >> 7) | (g8 >> 7) | (r8 >> 7))} - -# define LV_COLOR_SET_R8(c, v) (c).ch.red = (uint8_t)((v) & 0x7U) -# define LV_COLOR_SET_G8(c, v) (c).ch.green = (uint8_t)((v) & 0x7U) -# define LV_COLOR_SET_B8(c, v) (c).ch.blue = (uint8_t)((v) & 0x3U) -# define LV_COLOR_SET_A8(c, v) do {} while(0) - -# define LV_COLOR_GET_R8(c) (c).ch.red -# define LV_COLOR_GET_G8(c) (c).ch.green -# define LV_COLOR_GET_B8(c) (c).ch.blue -# define LV_COLOR_GET_A8(c) 0xFF - -# define _LV_COLOR_ZERO_INITIALIZER8 {{0x00, 0x00, 0x00}} -# define LV_COLOR_MAKE8(r8, g8, b8) {{(uint8_t)((b8 >> 6) & 0x3U), (uint8_t)((g8 >> 5) & 0x7U), (uint8_t)((r8 >> 5) & 0x7U)}} - -# define LV_COLOR_SET_R16(c, v) (c).ch.red = (uint8_t)((v) & 0x1FU) -#if LV_COLOR_16_SWAP == 0 -# define LV_COLOR_SET_G16(c, v) (c).ch.green = (uint8_t)((v) & 0x3FU) -#else -# define LV_COLOR_SET_G16(c, v) {(c).ch.green_h = (uint8_t)(((v) >> 3) & 0x7); (c).ch.green_l = (uint8_t)((v) & 0x7);} -#endif -# define LV_COLOR_SET_B16(c, v) (c).ch.blue = (uint8_t)((v) & 0x1FU) -# define LV_COLOR_SET_A16(c, v) do {} while(0) - -# define LV_COLOR_GET_R16(c) (c).ch.red -#if LV_COLOR_16_SWAP == 0 -# define LV_COLOR_GET_G16(c) (c).ch.green -#else -# define LV_COLOR_GET_G16(c) (((c).ch.green_h << 3) + (c).ch.green_l) -#endif -# define LV_COLOR_GET_B16(c) (c).ch.blue -# define LV_COLOR_GET_A16(c) 0xFF - -#if LV_COLOR_16_SWAP == 0 -# define _LV_COLOR_ZERO_INITIALIZER16 {{0x00, 0x00, 0x00}} -# define LV_COLOR_MAKE16(r8, g8, b8) {{(uint8_t)((b8 >> 3) & 0x1FU), (uint8_t)((g8 >> 2) & 0x3FU), (uint8_t)((r8 >> 3) & 0x1FU)}} -#else -# define _LV_COLOR_ZERO_INITIALIZER16 {{0x00, 0x00, 0x00, 0x00}} -# define LV_COLOR_MAKE16(r8, g8, b8) {{(uint8_t)((g8 >> 5) & 0x7U), (uint8_t)((r8 >> 3) & 0x1FU), (uint8_t)((b8 >> 3) & 0x1FU), (uint8_t)((g8 >> 2) & 0x7U)}} -#endif - -# define LV_COLOR_SET_R32(c, v) (c).ch.red = (uint8_t)((v) & 0xFF) -# define LV_COLOR_SET_G32(c, v) (c).ch.green = (uint8_t)((v) & 0xFF) -# define LV_COLOR_SET_B32(c, v) (c).ch.blue = (uint8_t)((v) & 0xFF) -# define LV_COLOR_SET_A32(c, v) (c).ch.alpha = (uint8_t)((v) & 0xFF) - -# define LV_COLOR_GET_R32(c) (c).ch.red -# define LV_COLOR_GET_G32(c) (c).ch.green -# define LV_COLOR_GET_B32(c) (c).ch.blue -# define LV_COLOR_GET_A32(c) (c).ch.alpha - -# define _LV_COLOR_ZERO_INITIALIZER32 {{0x00, 0x00, 0x00, 0x00}} -# define LV_COLOR_MAKE32(r8, g8, b8) {{b8, g8, r8, 0xff}} /*Fix 0xff alpha*/ - -/*--------------------------------------- - * Macros for the current color depth - * to set/get values of the color channels - *------------------------------------------*/ -#define LV_COLOR_SET_R(c, v) LV_CONCAT(LV_COLOR_SET_R, LV_COLOR_DEPTH)(c, v) -#define LV_COLOR_SET_G(c, v) LV_CONCAT(LV_COLOR_SET_G, LV_COLOR_DEPTH)(c, v) -#define LV_COLOR_SET_B(c, v) LV_CONCAT(LV_COLOR_SET_B, LV_COLOR_DEPTH)(c, v) -#define LV_COLOR_SET_A(c, v) LV_CONCAT(LV_COLOR_SET_A, LV_COLOR_DEPTH)(c, v) - -#define LV_COLOR_GET_R(c) LV_CONCAT(LV_COLOR_GET_R, LV_COLOR_DEPTH)(c) -#define LV_COLOR_GET_G(c) LV_CONCAT(LV_COLOR_GET_G, LV_COLOR_DEPTH)(c) -#define LV_COLOR_GET_B(c) LV_CONCAT(LV_COLOR_GET_B, LV_COLOR_DEPTH)(c) -#define LV_COLOR_GET_A(c) LV_CONCAT(LV_COLOR_GET_A, LV_COLOR_DEPTH)(c) - -#define _LV_COLOR_ZERO_INITIALIZER LV_CONCAT(_LV_COLOR_ZERO_INITIALIZER, LV_COLOR_DEPTH) -#define LV_COLOR_MAKE(r8, g8, b8) LV_CONCAT(LV_COLOR_MAKE, LV_COLOR_DEPTH)(r8, g8, b8) - -/********************** - * TYPEDEFS - **********************/ - -typedef union { - uint8_t full; /*must be declared first to set all bits of byte via initializer list*/ - union { - uint8_t blue : 1; - uint8_t green : 1; - uint8_t red : 1; - } ch; -} lv_color1_t; - -typedef union { - struct { - uint8_t blue : 2; - uint8_t green : 3; - uint8_t red : 3; - } ch; - uint8_t full; -} lv_color8_t; - -typedef union { - struct { -#if LV_COLOR_16_SWAP == 0 - uint16_t blue : 5; - uint16_t green : 6; - uint16_t red : 5; -#else - uint16_t green_h : 3; - uint16_t red : 5; - uint16_t blue : 5; - uint16_t green_l : 3; -#endif - } ch; - uint16_t full; -} lv_color16_t; - -typedef union { - struct { - uint8_t blue; - uint8_t green; - uint8_t red; - uint8_t alpha; - } ch; - uint32_t full; -} lv_color32_t; - -typedef LV_CONCAT3(uint, LV_COLOR_SIZE, _t) lv_color_int_t; -typedef LV_CONCAT3(lv_color, LV_COLOR_DEPTH, _t) lv_color_t; - -typedef struct { - uint16_t h; - uint8_t s; - uint8_t v; -} lv_color_hsv_t; - -//! @cond Doxygen_Suppress -/*No idea where the guard is required but else throws warnings in the docs*/ -typedef uint8_t lv_opa_t; -//! @endcond - -struct _lv_color_filter_dsc_t; - -typedef lv_color_t (*lv_color_filter_cb_t)(const struct _lv_color_filter_dsc_t *, lv_color_t, lv_opa_t); - -typedef struct _lv_color_filter_dsc_t { - lv_color_filter_cb_t filter_cb; - void * user_data; -} lv_color_filter_dsc_t; - - -typedef enum { - LV_PALETTE_RED, - LV_PALETTE_PINK, - LV_PALETTE_PURPLE, - LV_PALETTE_DEEP_PURPLE, - LV_PALETTE_INDIGO, - LV_PALETTE_BLUE, - LV_PALETTE_LIGHT_BLUE, - LV_PALETTE_CYAN, - LV_PALETTE_TEAL, - LV_PALETTE_GREEN, - LV_PALETTE_LIGHT_GREEN, - LV_PALETTE_LIME, - LV_PALETTE_YELLOW, - LV_PALETTE_AMBER, - LV_PALETTE_ORANGE, - LV_PALETTE_DEEP_ORANGE, - LV_PALETTE_BROWN, - LV_PALETTE_BLUE_GREY, - LV_PALETTE_GREY, - _LV_PALETTE_LAST, - LV_PALETTE_NONE = 0xff, -} lv_palette_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/*In color conversations: - * - When converting to bigger color type the LSB weight of 1 LSB is calculated - * E.g. 16 bit Red has 5 bits - * 8 bit Red has 3 bits - * ---------------------- - * 8 bit red LSB = (2^5 - 1) / (2^3 - 1) = 31 / 7 = 4 - * - * - When calculating to smaller color type simply shift out the LSBs - * E.g. 8 bit Red has 3 bits - * 16 bit Red has 5 bits - * ---------------------- - * Shift right with 5 - 3 = 2 - */ -static inline uint8_t lv_color_to1(lv_color_t color) -{ -#if LV_COLOR_DEPTH == 1 - return color.full; -#elif LV_COLOR_DEPTH == 8 - if((LV_COLOR_GET_R(color) & 0x4) || (LV_COLOR_GET_G(color) & 0x4) || (LV_COLOR_GET_B(color) & 0x2)) { - return 1; - } - else { - return 0; - } -#elif LV_COLOR_DEPTH == 16 - if((LV_COLOR_GET_R(color) & 0x10) || (LV_COLOR_GET_G(color) & 0x20) || (LV_COLOR_GET_B(color) & 0x10)) { - return 1; - } - else { - return 0; - } -#elif LV_COLOR_DEPTH == 32 - if((LV_COLOR_GET_R(color) & 0x80) || (LV_COLOR_GET_G(color) & 0x80) || (LV_COLOR_GET_B(color) & 0x80)) { - return 1; - } - else { - return 0; - } -#endif -} - -static inline uint8_t lv_color_to8(lv_color_t color) -{ -#if LV_COLOR_DEPTH == 1 - if(color.full == 0) - return 0; - else - return 0xFF; -#elif LV_COLOR_DEPTH == 8 - return color.full; -#elif LV_COLOR_DEPTH == 16 - lv_color8_t ret; - LV_COLOR_SET_R8(ret, LV_COLOR_GET_R(color) >> 2); /*5 - 3 = 2*/ - LV_COLOR_SET_G8(ret, LV_COLOR_GET_G(color) >> 3); /*6 - 3 = 3*/ - LV_COLOR_SET_B8(ret, LV_COLOR_GET_B(color) >> 3); /*5 - 2 = 3*/ - return ret.full; -#elif LV_COLOR_DEPTH == 32 - lv_color8_t ret; - LV_COLOR_SET_R8(ret, LV_COLOR_GET_R(color) >> 5); /*8 - 3 = 5*/ - LV_COLOR_SET_G8(ret, LV_COLOR_GET_G(color) >> 5); /*8 - 3 = 5*/ - LV_COLOR_SET_B8(ret, LV_COLOR_GET_B(color) >> 6); /*8 - 2 = 6*/ - return ret.full; -#endif -} - -static inline uint16_t lv_color_to16(lv_color_t color) -{ -#if LV_COLOR_DEPTH == 1 - if(color.full == 0) - return 0; - else - return 0xFFFF; -#elif LV_COLOR_DEPTH == 8 - lv_color16_t ret; - LV_COLOR_SET_R16(ret, LV_COLOR_GET_R(color) * 4); /*(2^5 - 1)/(2^3 - 1) = 31/7 = 4*/ - LV_COLOR_SET_G16(ret, LV_COLOR_GET_G(color) * 9); /*(2^6 - 1)/(2^3 - 1) = 63/7 = 9*/ - LV_COLOR_SET_B16(ret, LV_COLOR_GET_B(color) * 10); /*(2^5 - 1)/(2^2 - 1) = 31/3 = 10*/ - return ret.full; -#elif LV_COLOR_DEPTH == 16 - return color.full; -#elif LV_COLOR_DEPTH == 32 - lv_color16_t ret; - LV_COLOR_SET_R16(ret, LV_COLOR_GET_R(color) >> 3); /*8 - 5 = 3*/ - LV_COLOR_SET_G16(ret, LV_COLOR_GET_G(color) >> 2); /*8 - 6 = 2*/ - LV_COLOR_SET_B16(ret, LV_COLOR_GET_B(color) >> 3); /*8 - 5 = 3*/ - return ret.full; -#endif -} - -static inline uint32_t lv_color_to32(lv_color_t color) -{ -#if LV_COLOR_DEPTH == 1 - if(color.full == 0) - return 0xFF000000; - else - return 0xFFFFFFFF; -#elif LV_COLOR_DEPTH == 8 - lv_color32_t ret; - LV_COLOR_SET_R32(ret, LV_COLOR_GET_R(color) * 36); /*(2^8 - 1)/(2^3 - 1) = 255/7 = 36*/ - LV_COLOR_SET_G32(ret, LV_COLOR_GET_G(color) * 36); /*(2^8 - 1)/(2^3 - 1) = 255/7 = 36*/ - LV_COLOR_SET_B32(ret, LV_COLOR_GET_B(color) * 85); /*(2^8 - 1)/(2^2 - 1) = 255/3 = 85*/ - LV_COLOR_SET_A32(ret, 0xFF); - return ret.full; -#elif LV_COLOR_DEPTH == 16 - /** - * The floating point math for conversion is: - * valueto = valuefrom * ( (2^bitsto - 1) / (float)(2^bitsfrom - 1) ) - * The faster integer math for conversion is: - * valueto = ( valuefrom * multiplier + adder ) >> divisor - * multiplier = FLOOR( ( (2^bitsto - 1) << divisor ) / (float)(2^bitsfrom - 1) ) - * - * Find the first divisor where ( adder >> divisor ) <= 0 - * - * 5-bit to 8-bit: ( 31 * multiplier + adder ) >> divisor = 255 - * divisor multiplier adder min (0) max (31) - * 0 8 7 7 255 - * 1 16 14 7 255 - * 2 32 28 7 255 - * 3 65 25 3 255 - * 4 131 19 1 255 - * 5 263 7 0 255 - * - * 6-bit to 8-bit: 255 = ( 63 * multiplier + adder ) >> divisor - * divisor multiplier adder min (0) max (63) - * 0 4 3 3 255 - * 1 8 6 3 255 - * 2 16 12 3 255 - * 3 32 24 3 255 - * 4 64 48 3 255 - * 5 129 33 1 255 - * 6 259 3 0 255 - */ - - lv_color32_t ret; - LV_COLOR_SET_R32(ret, (LV_COLOR_GET_R(color) * 263 + 7) >> 5); - LV_COLOR_SET_G32(ret, (LV_COLOR_GET_G(color) * 259 + 3) >> 6); - LV_COLOR_SET_B32(ret, (LV_COLOR_GET_B(color) * 263 + 7) >> 5); - LV_COLOR_SET_A32(ret, 0xFF); - return ret.full; -#elif LV_COLOR_DEPTH == 32 - return color.full; -#endif -} - -//! @cond Doxygen_Suppress - -/** - * Mix two colors with a given ratio. - * @param c1 the first color to mix (usually the foreground) - * @param c2 the second color to mix (usually the background) - * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` - * @return the mixed color - */ -LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) -{ - lv_color_t ret; - -#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 - /*Source: https://stackoverflow.com/a/50012418/1999969*/ - mix = (mix + 4) >> 3; - uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 0x7E0F81F; /*0b00000111111000001111100000011111*/ - uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - ret.full = (uint16_t)((result >> 16) | result); -#elif LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8, 16 or 32*/ - LV_COLOR_SET_R(ret, LV_UDIV255((uint16_t)LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * - (255 - mix) + LV_COLOR_MIX_ROUND_OFS)); - LV_COLOR_SET_G(ret, LV_UDIV255((uint16_t)LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * - (255 - mix) + LV_COLOR_MIX_ROUND_OFS)); - LV_COLOR_SET_B(ret, LV_UDIV255((uint16_t)LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * - (255 - mix) + LV_COLOR_MIX_ROUND_OFS)); - LV_COLOR_SET_A(ret, 0xFF); -#else - /*LV_COLOR_DEPTH == 1*/ - ret.full = mix > LV_OPA_50 ? c1.full : c2.full; -#endif - - return ret; -} - -LV_ATTRIBUTE_FAST_MEM static inline void lv_color_premult(lv_color_t c, uint8_t mix, uint16_t * out) -{ -#if LV_COLOR_DEPTH != 1 - out[0] = (uint16_t)LV_COLOR_GET_R(c) * mix; - out[1] = (uint16_t)LV_COLOR_GET_G(c) * mix; - out[2] = (uint16_t)LV_COLOR_GET_B(c) * mix; -#else - (void) mix; - /*Pre-multiplication can't be used with 1 bpp*/ - out[0] = LV_COLOR_GET_R(c); - out[1] = LV_COLOR_GET_G(c); - out[2] = LV_COLOR_GET_B(c); -#endif - -} - -/** - * Mix two colors with a given ratio. It runs faster then `lv_color_mix` but requires some pre computation. - * @param premult_c1 The first color. Should be preprocessed with `lv_color_premult(c1)` - * @param c2 The second color. As it is no pre computation required on it - * @param mix The ratio of the colors. 0: full `c1`, 255: full `c2`, 127: half `c1` and half `c2`. - * Should be modified like mix = `255 - mix` - * @return the mixed color - * @note 255 won't give clearly `c1`. - */ -LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix_premult(uint16_t * premult_c1, lv_color_t c2, uint8_t mix) -{ - lv_color_t ret; -#if LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8 or 32*/ - LV_COLOR_SET_R(ret, LV_UDIV255(premult_c1[0] + LV_COLOR_GET_R(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - LV_COLOR_SET_G(ret, LV_UDIV255(premult_c1[1] + LV_COLOR_GET_G(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - LV_COLOR_SET_B(ret, LV_UDIV255(premult_c1[2] + LV_COLOR_GET_B(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - LV_COLOR_SET_A(ret, 0xFF); -#else - /*LV_COLOR_DEPTH == 1*/ - /*Restore color1*/ - lv_color_t c1; - LV_COLOR_SET_R(c1, premult_c1[0]); - LV_COLOR_SET_G(c1, premult_c1[1]); - LV_COLOR_SET_B(c1, premult_c1[2]); - ret.full = mix > LV_OPA_50 ? c2.full : c1.full; -#endif - - return ret; -} - -/** - * Mix two colors. Both color can have alpha value. - * @param bg_color background color - * @param bg_opa alpha of the background color - * @param fg_color foreground color - * @param fg_opa alpha of the foreground color - * @param res_color the result color - * @param res_opa the result opacity - */ -LV_ATTRIBUTE_FAST_MEM static inline void lv_color_mix_with_alpha(lv_color_t bg_color, lv_opa_t bg_opa, - lv_color_t fg_color, lv_opa_t fg_opa, - lv_color_t * res_color, lv_opa_t * res_opa) -{ - /*Pick the foreground if it's fully opaque or the Background is fully transparent*/ - if(fg_opa >= LV_OPA_MAX || bg_opa <= LV_OPA_MIN) { - res_color->full = fg_color.full; - *res_opa = fg_opa; - } - /*Transparent foreground: use the Background*/ - else if(fg_opa <= LV_OPA_MIN) { - res_color->full = bg_color.full; - *res_opa = bg_opa; - } - /*Opaque background: use simple mix*/ - else if(bg_opa >= LV_OPA_MAX) { - *res_color = lv_color_mix(fg_color, bg_color, fg_opa); - *res_opa = LV_OPA_COVER; - } - /*Both colors have alpha. Expensive calculation need to be applied*/ - else { - /*Save the parameters and the result. If they will be asked again don't compute again*/ - static lv_opa_t fg_opa_save = 0; - static lv_opa_t bg_opa_save = 0; - static lv_color_t fg_color_save = _LV_COLOR_ZERO_INITIALIZER; - static lv_color_t bg_color_save = _LV_COLOR_ZERO_INITIALIZER; - static lv_color_t res_color_saved = _LV_COLOR_ZERO_INITIALIZER; - static lv_opa_t res_opa_saved = 0; - - if(fg_opa != fg_opa_save || bg_opa != bg_opa_save || fg_color.full != fg_color_save.full || - bg_color.full != bg_color_save.full) { - fg_opa_save = fg_opa; - bg_opa_save = bg_opa; - fg_color_save.full = fg_color.full; - bg_color_save.full = bg_color.full; - /*Info: - * https://en.wikipedia.org/wiki/Alpha_compositing#Analytical_derivation_of_the_over_operator*/ - res_opa_saved = 255 - ((uint16_t)((uint16_t)(255 - fg_opa) * (255 - bg_opa)) >> 8); - LV_ASSERT(res_opa_saved != 0); - lv_opa_t ratio = (uint16_t)((uint16_t)fg_opa * 255) / res_opa_saved; - res_color_saved = lv_color_mix(fg_color, bg_color, ratio); - - } - - res_color->full = res_color_saved.full; - *res_opa = res_opa_saved; - } -} - -//! @endcond - -/** - * Get the brightness of a color - * @param color a color - * @return the brightness [0..255] - */ -static inline uint8_t lv_color_brightness(lv_color_t color) -{ - lv_color32_t c32; - c32.full = lv_color_to32(color); - uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); - return (uint8_t)(bright >> 3); -} - -static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) -{ - return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); -} - -static inline lv_color_t lv_color_hex(uint32_t c) -{ -#if LV_COLOR_DEPTH == 16 - lv_color_t r; -#if LV_COLOR_16_SWAP == 0 - /* Convert a 4 bytes per pixel in format ARGB32 to R5G6B5 format - naive way (by calling lv_color_make with components): - r = ((c & 0xFF0000) >> 19) - g = ((c & 0xFF00) >> 10) - b = ((c & 0xFF) >> 3) - rgb565 = (r << 11) | (g << 5) | b - That's 3 mask, 5 bitshift and 2 or operations - - A bit better: - r = ((c & 0xF80000) >> 8) - g = ((c & 0xFC00) >> 5) - b = ((c & 0xFF) >> 3) - rgb565 = r | g | b - That's 3 mask, 3 bitshifts and 2 or operations */ - r.full = (uint16_t)(((c & 0xF80000) >> 8) | ((c & 0xFC00) >> 5) | ((c & 0xFF) >> 3)); -#else - /* We want: rrrr rrrr GGGg gggg bbbb bbbb => gggb bbbb rrrr rGGG */ - r.full = (uint16_t)(((c & 0xF80000) >> 16) | ((c & 0xFC00) >> 13) | ((c & 0x1C00) << 3) | ((c & 0xF8) << 5)); -#endif - return r; -#elif LV_COLOR_DEPTH == 32 - lv_color_t r; - r.full = c | 0xFF000000; - return r; -#else /*LV_COLOR_DEPTH == 8*/ - return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF)); -#endif -} - -static inline lv_color_t lv_color_hex3(uint32_t c) -{ - return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)), - (uint8_t)((c & 0xF) | ((c & 0xF) << 4))); -} - -static inline void lv_color_filter_dsc_init(lv_color_filter_dsc_t * dsc, lv_color_filter_cb_t cb) -{ - dsc->filter_cb = cb; -} - -//! @cond Doxygen_Suppress -//! -LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num); - -//! @endcond -lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl); - -lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl); - -lv_color_t lv_color_change_lightness(lv_color_t c, lv_opa_t lvl); - -/** - * Convert a HSV color to RGB - * @param h hue [0..359] - * @param s saturation [0..100] - * @param v value [0..100] - * @return the given RGB color in RGB (with LV_COLOR_DEPTH depth) - */ -lv_color_t lv_color_hsv_to_rgb(uint16_t h, uint8_t s, uint8_t v); - -/** - * Convert a 32-bit RGB color to HSV - * @param r8 8-bit red - * @param g8 8-bit green - * @param b8 8-bit blue - * @return the given RGB color in HSV - */ -lv_color_hsv_t lv_color_rgb_to_hsv(uint8_t r8, uint8_t g8, uint8_t b8); - -/** - * Convert a color to HSV - * @param color color - * @return the given color in HSV - */ -lv_color_hsv_t lv_color_to_hsv(lv_color_t color); - -/** - * Just a wrapper around LV_COLOR_CHROMA_KEY because it might be more convenient to use a function in some cases - * @return LV_COLOR_CHROMA_KEY - */ -static inline lv_color_t lv_color_chroma_key(void) -{ - return LV_COLOR_CHROMA_KEY; -} - -/********************** - * PREDEFINED COLORS - **********************/ -/*Source: https://vuetifyjs.com/en/styles/colors/#material-colors*/ - -lv_color_t lv_palette_main(lv_palette_t p); -static inline lv_color_t lv_color_white(void) -{ - return lv_color_make(0xff, 0xff, 0xff); -} -static inline lv_color_t lv_color_black(void) -{ - return lv_color_make(0x00, 0x0, 0x00); -} -lv_color_t lv_palette_lighten(lv_palette_t p, uint8_t lvl); -lv_color_t lv_palette_darken(lv_palette_t p, uint8_t lvl); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_COLOR_H*/ diff --git a/src/lib/lvgl/src/misc/lv_fs.h b/src/lib/lvgl/src/misc/lv_fs.h deleted file mode 100644 index 9f65e1b..0000000 --- a/src/lib/lvgl/src/misc/lv_fs.h +++ /dev/null @@ -1,262 +0,0 @@ -/** - * @file lv_fs.h - * - */ - -#ifndef LV_FS_H -#define LV_FS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include - -/********************* - * DEFINES - *********************/ -#define LV_FS_MAX_FN_LENGTH 64 -#define LV_FS_MAX_PATH_LENGTH 256 - -/********************** - * TYPEDEFS - **********************/ - -/** - * Errors in the file system module. - */ -enum { - LV_FS_RES_OK = 0, - LV_FS_RES_HW_ERR, /*Low level hardware error*/ - LV_FS_RES_FS_ERR, /*Error in the file system structure*/ - LV_FS_RES_NOT_EX, /*Driver, file or directory is not exists*/ - LV_FS_RES_FULL, /*Disk full*/ - LV_FS_RES_LOCKED, /*The file is already opened*/ - LV_FS_RES_DENIED, /*Access denied. Check 'fs_open' modes and write protect*/ - LV_FS_RES_BUSY, /*The file system now can't handle it, try later*/ - LV_FS_RES_TOUT, /*Process time outed*/ - LV_FS_RES_NOT_IMP, /*Requested function is not implemented*/ - LV_FS_RES_OUT_OF_MEM, /*Not enough memory for an internal operation*/ - LV_FS_RES_INV_PARAM, /*Invalid parameter among arguments*/ - LV_FS_RES_UNKNOWN, /*Other unknown error*/ -}; -typedef uint8_t lv_fs_res_t; - -/** - * File open mode. - */ -enum { - LV_FS_MODE_WR = 0x01, - LV_FS_MODE_RD = 0x02, -}; -typedef uint8_t lv_fs_mode_t; - - -/** - * Seek modes. - */ -typedef enum { - LV_FS_SEEK_SET = 0x00, /**< Set the position from absolutely (from the start of file)*/ - LV_FS_SEEK_CUR = 0x01, /**< Set the position from the current position*/ - LV_FS_SEEK_END = 0x02, /**< Set the position from the end of the file*/ -} lv_fs_whence_t; - -typedef struct _lv_fs_drv_t { - char letter; - uint16_t cache_size; - bool (*ready_cb)(struct _lv_fs_drv_t * drv); - - void * (*open_cb)(struct _lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode); - lv_fs_res_t (*close_cb)(struct _lv_fs_drv_t * drv, void * file_p); - lv_fs_res_t (*read_cb)(struct _lv_fs_drv_t * drv, void * file_p, void * buf, uint32_t btr, uint32_t * br); - lv_fs_res_t (*write_cb)(struct _lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw); - lv_fs_res_t (*seek_cb)(struct _lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs_whence_t whence); - lv_fs_res_t (*tell_cb)(struct _lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p); - - void * (*dir_open_cb)(struct _lv_fs_drv_t * drv, const char * path); - lv_fs_res_t (*dir_read_cb)(struct _lv_fs_drv_t * drv, void * rddir_p, char * fn); - lv_fs_res_t (*dir_close_cb)(struct _lv_fs_drv_t * drv, void * rddir_p); - -#if LV_USE_USER_DATA - void * user_data; /**< Custom file user data*/ -#endif -} lv_fs_drv_t; - -typedef struct { - uint32_t start; - uint32_t end; - uint32_t file_position; - void * buffer; -} lv_fs_file_cache_t; - -typedef struct { - void * file_d; - lv_fs_drv_t * drv; - lv_fs_file_cache_t * cache; -} lv_fs_file_t; - -typedef struct { - void * dir_d; - lv_fs_drv_t * drv; -} lv_fs_dir_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the File system interface - */ -void _lv_fs_init(void); - -/** - * Initialize a file system driver with default values. - * It is used to surly have known values in the fields ant not memory junk. - * After it you can set the fields. - * @param drv pointer to driver variable to initialize - */ -void lv_fs_drv_init(lv_fs_drv_t * drv); - -/** - * Add a new drive - * @param drv pointer to an lv_fs_drv_t structure which is inited with the - * corresponding function pointers. Only pointer is saved, so the - * driver should be static or dynamically allocated. - */ -void lv_fs_drv_register(lv_fs_drv_t * drv); - -/** - * Give a pointer to a driver from its letter - * @param letter the driver letter - * @return pointer to a driver or NULL if not found - */ -lv_fs_drv_t * lv_fs_get_drv(char letter); - -/** - * Test if a drive is ready or not. If the `ready` function was not initialized `true` will be - * returned. - * @param letter letter of the drive - * @return true: drive is ready; false: drive is not ready - */ -bool lv_fs_is_ready(char letter); - -/** - * Open a file - * @param file_p pointer to a lv_fs_file_t variable - * @param path path to the file beginning with the driver letter (e.g. S:/folder/file.txt) - * @param mode read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_open(lv_fs_file_t * file_p, const char * path, lv_fs_mode_t mode); - -/** - * Close an already opened file - * @param file_p pointer to a lv_fs_file_t variable - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_close(lv_fs_file_t * file_p); - -/** - * Read from a file - * @param file_p pointer to a lv_fs_file_t variable - * @param buf pointer to a buffer where the read bytes are stored - * @param btr Bytes To Read - * @param br the number of real read bytes (Bytes Read). NULL if unused. - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_read(lv_fs_file_t * file_p, void * buf, uint32_t btr, uint32_t * br); - -/** - * Write into a file - * @param file_p pointer to a lv_fs_file_t variable - * @param buf pointer to a buffer with the bytes to write - * @param btw Bytes To Write - * @param bw the number of real written bytes (Bytes Written). NULL if unused. - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_write(lv_fs_file_t * file_p, const void * buf, uint32_t btw, uint32_t * bw); - -/** - * Set the position of the 'cursor' (read write pointer) in a file - * @param file_p pointer to a lv_fs_file_t variable - * @param pos the new position expressed in bytes index (0: start of file) - * @param whence tells from where set the position. See @lv_fs_whence_t - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_seek(lv_fs_file_t * file_p, uint32_t pos, lv_fs_whence_t whence); - -/** - * Give the position of the read write pointer - * @param file_p pointer to a lv_fs_file_t variable - * @param pos_p pointer to store the position of the read write pointer - * @return LV_FS_RES_OK or any error from 'fs_res_t' - */ -lv_fs_res_t lv_fs_tell(lv_fs_file_t * file_p, uint32_t * pos); - -/** - * Initialize a 'fs_dir_t' variable for directory reading - * @param rddir_p pointer to a 'lv_fs_dir_t' variable - * @param path path to a directory - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t * rddir_p, const char * path); - -/** - * Read the next filename form a directory. - * The name of the directories will begin with '/' - * @param rddir_p pointer to an initialized 'fs_dir_t' variable - * @param fn pointer to a buffer to store the filename - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_dir_read(lv_fs_dir_t * rddir_p, char * fn); - -/** - * Close the directory reading - * @param rddir_p pointer to an initialized 'fs_dir_t' variable - * @return LV_FS_RES_OK or any error from lv_fs_res_t enum - */ -lv_fs_res_t lv_fs_dir_close(lv_fs_dir_t * rddir_p); - -/** - * Fill a buffer with the letters of existing drivers - * @param buf buffer to store the letters ('\0' added after the last letter) - * @return the buffer - */ -char * lv_fs_get_letters(char * buf); - -/** - * Return with the extension of the filename - * @param fn string with a filename - * @return pointer to the beginning extension or empty string if no extension - */ -const char * lv_fs_get_ext(const char * fn); - -/** - * Step up one level - * @param path pointer to a file name - * @return the truncated file name - */ -char * lv_fs_up(char * path); - -/** - * Get the last element of a path (e.g. U:/folder/file -> file) - * @param path pointer to a file name - * @return pointer to the beginning of the last element in the path - */ -const char * lv_fs_get_last(const char * path); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_FS_H*/ diff --git a/src/lib/lvgl/src/misc/lv_gc.h b/src/lib/lvgl/src/misc/lv_gc.h deleted file mode 100644 index 9d7d1bb..0000000 --- a/src/lib/lvgl/src/misc/lv_gc.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file lv_gc.h - * - */ - -#ifndef LV_GC_H -#define LV_GC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include -#include "lv_mem.h" -#include "lv_ll.h" -#include "lv_timer.h" -#include "lv_types.h" -#include "../draw/lv_img_cache.h" -#include "../draw/lv_draw_mask.h" -#include "../core/lv_obj_pos.h" - -/********************* - * DEFINES - *********************/ -#if LV_IMG_CACHE_DEF_SIZE -# define LV_IMG_CACHE_DEF 1 -#else -# define LV_IMG_CACHE_DEF 0 -#endif - -#define LV_DISPATCH(f, t, n) f(t, n) -#define LV_DISPATCH_COND(f, t, n, m, v) LV_CONCAT3(LV_DISPATCH, m, v)(f, t, n) - -#define LV_DISPATCH00(f, t, n) LV_DISPATCH(f, t, n) -#define LV_DISPATCH01(f, t, n) -#define LV_DISPATCH10(f, t, n) -#define LV_DISPATCH11(f, t, n) LV_DISPATCH(f, t, n) - -#define LV_ITERATE_ROOTS(f) \ - LV_DISPATCH(f, lv_ll_t, _lv_timer_ll) /*Linked list to store the lv_timers*/ \ - LV_DISPATCH(f, lv_ll_t, _lv_disp_ll) /*Linked list of display device*/ \ - LV_DISPATCH(f, lv_ll_t, _lv_indev_ll) /*Linked list of input device*/ \ - LV_DISPATCH(f, lv_ll_t, _lv_fsdrv_ll) \ - LV_DISPATCH(f, lv_ll_t, _lv_anim_ll) \ - LV_DISPATCH(f, lv_ll_t, _lv_group_ll) \ - LV_DISPATCH(f, lv_ll_t, _lv_img_decoder_ll) \ - LV_DISPATCH(f, lv_ll_t, _lv_obj_style_trans_ll) \ - LV_DISPATCH(f, lv_layout_dsc_t *, _lv_layout_list) \ - LV_DISPATCH_COND(f, _lv_img_cache_entry_t*, _lv_img_cache_array, LV_IMG_CACHE_DEF, 1) \ - LV_DISPATCH_COND(f, _lv_img_cache_entry_t, _lv_img_cache_single, LV_IMG_CACHE_DEF, 0) \ - LV_DISPATCH(f, lv_timer_t*, _lv_timer_act) \ - LV_DISPATCH(f, lv_mem_buf_arr_t , lv_mem_buf) \ - LV_DISPATCH_COND(f, _lv_draw_mask_radius_circle_dsc_arr_t , _lv_circle_cache, LV_DRAW_COMPLEX, 1) \ - LV_DISPATCH_COND(f, _lv_draw_mask_saved_arr_t , _lv_draw_mask_list, LV_DRAW_COMPLEX, 1) \ - LV_DISPATCH(f, void * , _lv_theme_default_styles) \ - LV_DISPATCH(f, void * , _lv_theme_basic_styles) \ - LV_DISPATCH_COND(f, uint8_t *, _lv_font_decompr_buf, LV_USE_FONT_COMPRESSED, 1) \ - LV_DISPATCH(f, uint8_t * , _lv_grad_cache_mem) \ - LV_DISPATCH(f, uint8_t * , _lv_style_custom_prop_flag_lookup_table) - -#define LV_DEFINE_ROOT(root_type, root_name) root_type root_name; -#define LV_ROOTS LV_ITERATE_ROOTS(LV_DEFINE_ROOT) - -#if LV_ENABLE_GC == 1 -#if LV_MEM_CUSTOM != 1 -#error "GC requires CUSTOM_MEM" -#endif /*LV_MEM_CUSTOM*/ -#include LV_GC_INCLUDE -#else /*LV_ENABLE_GC*/ -#define LV_GC_ROOT(x) x -#define LV_EXTERN_ROOT(root_type, root_name) extern root_type root_name; -LV_ITERATE_ROOTS(LV_EXTERN_ROOT) -#endif /*LV_ENABLE_GC*/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -void _lv_gc_clear_roots(void); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_GC_H*/ diff --git a/src/lib/lvgl/src/misc/lv_ll.h b/src/lib/lvgl/src/misc/lv_ll.h deleted file mode 100644 index d38f692..0000000 --- a/src/lib/lvgl/src/misc/lv_ll.h +++ /dev/null @@ -1,167 +0,0 @@ -/** - * @file lv_ll.h - * Handle linked lists. The nodes are dynamically allocated by the 'lv_mem' module. - */ - -#ifndef LV_LL_H -#define LV_LL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include -#include - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** Dummy type to make handling easier*/ -typedef uint8_t lv_ll_node_t; - -/** Description of a linked list*/ -typedef struct { - uint32_t n_size; - lv_ll_node_t * head; - lv_ll_node_t * tail; -} lv_ll_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize linked list - * @param ll_p pointer to lv_ll_t variable - * @param node_size the size of 1 node in bytes - */ -void _lv_ll_init(lv_ll_t * ll_p, uint32_t node_size); - -/** - * Add a new head to a linked list - * @param ll_p pointer to linked list - * @return pointer to the new head - */ -void * _lv_ll_ins_head(lv_ll_t * ll_p); - -/** - * Insert a new node in front of the n_act node - * @param ll_p pointer to linked list - * @param n_act pointer a node - * @return pointer to the new node - */ -void * _lv_ll_ins_prev(lv_ll_t * ll_p, void * n_act); - -/** - * Add a new tail to a linked list - * @param ll_p pointer to linked list - * @return pointer to the new tail - */ -void * _lv_ll_ins_tail(lv_ll_t * ll_p); - -/** - * Remove the node 'node_p' from 'll_p' linked list. - * It does not free the memory of node. - * @param ll_p pointer to the linked list of 'node_p' - * @param node_p pointer to node in 'll_p' linked list - */ -void _lv_ll_remove(lv_ll_t * ll_p, void * node_p); - -/** - * Remove and free all elements from a linked list. The list remain valid but become empty. - * @param ll_p pointer to linked list - */ -void _lv_ll_clear(lv_ll_t * ll_p); - -/** - * Move a node to a new linked list - * @param ll_ori_p pointer to the original (old) linked list - * @param ll_new_p pointer to the new linked list - * @param node pointer to a node - * @param head true: be the head in the new list - * false be the tail in the new list - */ -void _lv_ll_chg_list(lv_ll_t * ll_ori_p, lv_ll_t * ll_new_p, void * node, bool head); - -/** - * Return with head node of the linked list - * @param ll_p pointer to linked list - * @return pointer to the head of 'll_p' - */ -void * _lv_ll_get_head(const lv_ll_t * ll_p); - -/** - * Return with tail node of the linked list - * @param ll_p pointer to linked list - * @return pointer to the tail of 'll_p' - */ -void * _lv_ll_get_tail(const lv_ll_t * ll_p); - -/** - * Return with the pointer of the next node after 'n_act' - * @param ll_p pointer to linked list - * @param n_act pointer a node - * @return pointer to the next node - */ -void * _lv_ll_get_next(const lv_ll_t * ll_p, const void * n_act); - -/** - * Return with the pointer of the previous node after 'n_act' - * @param ll_p pointer to linked list - * @param n_act pointer a node - * @return pointer to the previous node - */ -void * _lv_ll_get_prev(const lv_ll_t * ll_p, const void * n_act); - -/** - * Return the length of the linked list. - * @param ll_p pointer to linked list - * @return length of the linked list - */ -uint32_t _lv_ll_get_len(const lv_ll_t * ll_p); - -/** - * TODO - * @param ll_p - * @param n1_p - * @param n2_p -void lv_ll_swap(lv_ll_t * ll_p, void * n1_p, void * n2_p); - */ - -/** - * Move a node before an other node in the same linked list - * @param ll_p pointer to a linked list - * @param n_act pointer to node to move - * @param n_after pointer to a node which should be after `n_act` - */ -void _lv_ll_move_before(lv_ll_t * ll_p, void * n_act, void * n_after); - -/** - * Check if a linked list is empty - * @param ll_p pointer to a linked list - * @return true: the linked list is empty; false: not empty - */ -bool _lv_ll_is_empty(lv_ll_t * ll_p); - -/********************** - * MACROS - **********************/ - -#define _LV_LL_READ(list, i) for(i = _lv_ll_get_head(list); i != NULL; i = _lv_ll_get_next(list, i)) - -#define _LV_LL_READ_BACK(list, i) for(i = _lv_ll_get_tail(list); i != NULL; i = _lv_ll_get_prev(list, i)) - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/misc/lv_log.h b/src/lib/lvgl/src/misc/lv_log.h deleted file mode 100644 index 9a00993..0000000 --- a/src/lib/lvgl/src/misc/lv_log.h +++ /dev/null @@ -1,154 +0,0 @@ -/** - * @file lv_log.h - * - */ - -#ifndef LV_LOG_H -#define LV_LOG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include - -#include "lv_types.h" - -/********************* - * DEFINES - *********************/ - -/*Possible log level. For compatibility declare it independently from `LV_USE_LOG`*/ - -#define LV_LOG_LEVEL_TRACE 0 /**< A lot of logs to give detailed information*/ -#define LV_LOG_LEVEL_INFO 1 /**< Log important events*/ -#define LV_LOG_LEVEL_WARN 2 /**< Log if something unwanted happened but didn't caused problem*/ -#define LV_LOG_LEVEL_ERROR 3 /**< Only critical issue, when the system may fail*/ -#define LV_LOG_LEVEL_USER 4 /**< Custom logs from the user*/ -#define LV_LOG_LEVEL_NONE 5 /**< Do not log anything*/ -#define _LV_LOG_LEVEL_NUM 6 /**< Number of log levels*/ - -LV_EXPORT_CONST_INT(LV_LOG_LEVEL_TRACE); -LV_EXPORT_CONST_INT(LV_LOG_LEVEL_INFO); -LV_EXPORT_CONST_INT(LV_LOG_LEVEL_WARN); -LV_EXPORT_CONST_INT(LV_LOG_LEVEL_ERROR); -LV_EXPORT_CONST_INT(LV_LOG_LEVEL_USER); -LV_EXPORT_CONST_INT(LV_LOG_LEVEL_NONE); - -typedef int8_t lv_log_level_t; - -#if LV_USE_LOG -/********************** - * TYPEDEFS - **********************/ - -/** - * Log print function. Receives a string buffer to print". - */ -typedef void (*lv_log_print_g_cb_t)(const char * buf); - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Register custom print/write function to call when a log is added. - * It can format its "File path", "Line number" and "Description" as required - * and send the formatted log message to a console or serial port. - * @param print_cb a function pointer to print a log - */ -void lv_log_register_print_cb(lv_log_print_g_cb_t print_cb); - -/** - * Print a log message via `printf` if enabled with `LV_LOG_PRINTF` in `lv_conf.h` - * and/or a print callback if registered with `lv_log_register_print_cb` - * @param format printf-like format string - * @param ... parameters for `format` - */ -void lv_log(const char * format, ...) LV_FORMAT_ATTRIBUTE(1, 2); - -/** - * Add a log - * @param level the level of log. (From `lv_log_level_t` enum) - * @param file name of the file when the log added - * @param line line number in the source code where the log added - * @param func name of the function when the log added - * @param format printf-like format string - * @param ... parameters for `format` - */ -void _lv_log_add(lv_log_level_t level, const char * file, int line, - const char * func, const char * format, ...) LV_FORMAT_ATTRIBUTE(5, 6); - -/********************** - * MACROS - **********************/ -#ifndef LV_LOG_TRACE -# if LV_LOG_LEVEL <= LV_LOG_LEVEL_TRACE -# define LV_LOG_TRACE(...) _lv_log_add(LV_LOG_LEVEL_TRACE, __FILE__, __LINE__, __func__, __VA_ARGS__) -# else -# define LV_LOG_TRACE(...) do {}while(0) -# endif -#endif - -#ifndef LV_LOG_INFO -# if LV_LOG_LEVEL <= LV_LOG_LEVEL_INFO -# define LV_LOG_INFO(...) _lv_log_add(LV_LOG_LEVEL_INFO, __FILE__, __LINE__, __func__, __VA_ARGS__) -# else -# define LV_LOG_INFO(...) do {}while(0) -# endif -#endif - -#ifndef LV_LOG_WARN -# if LV_LOG_LEVEL <= LV_LOG_LEVEL_WARN -# define LV_LOG_WARN(...) _lv_log_add(LV_LOG_LEVEL_WARN, __FILE__, __LINE__, __func__, __VA_ARGS__) -# else -# define LV_LOG_WARN(...) do {}while(0) -# endif -#endif - -#ifndef LV_LOG_ERROR -# if LV_LOG_LEVEL <= LV_LOG_LEVEL_ERROR -# define LV_LOG_ERROR(...) _lv_log_add(LV_LOG_LEVEL_ERROR, __FILE__, __LINE__, __func__, __VA_ARGS__) -# else -# define LV_LOG_ERROR(...) do {}while(0) -# endif -#endif - -#ifndef LV_LOG_USER -# if LV_LOG_LEVEL <= LV_LOG_LEVEL_USER -# define LV_LOG_USER(...) _lv_log_add(LV_LOG_LEVEL_USER, __FILE__, __LINE__, __func__, __VA_ARGS__) -# else -# define LV_LOG_USER(...) do {}while(0) -# endif -#endif - -#ifndef LV_LOG -# if LV_LOG_LEVEL < LV_LOG_LEVEL_NONE -# define LV_LOG(...) lv_log(__VA_ARGS__) -# else -# define LV_LOG(...) do {} while(0) -# endif -#endif - -#else /*LV_USE_LOG*/ - -/*Do nothing if `LV_USE_LOG 0`*/ -#define _lv_log_add(level, file, line, ...) -#define LV_LOG_TRACE(...) do {}while(0) -#define LV_LOG_INFO(...) do {}while(0) -#define LV_LOG_WARN(...) do {}while(0) -#define LV_LOG_ERROR(...) do {}while(0) -#define LV_LOG_USER(...) do {}while(0) -#define LV_LOG(...) do {}while(0) - -#endif /*LV_USE_LOG*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LOG_H*/ diff --git a/src/lib/lvgl/src/misc/lv_lru.h b/src/lib/lvgl/src/misc/lv_lru.h deleted file mode 100644 index 07d3bd3..0000000 --- a/src/lib/lvgl/src/misc/lv_lru.h +++ /dev/null @@ -1,81 +0,0 @@ -/** - * @file lv_lru.h - * - */ - -#ifndef LV_LRU_H -#define LV_LRU_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -#include "../lv_conf_internal.h" - -#include "lv_types.h" - -#include -#include - - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef enum { - LV_LRU_OK = 0, - LV_LRU_MISSING_CACHE, - LV_LRU_MISSING_KEY, - LV_LRU_MISSING_VALUE, - LV_LRU_LOCK_ERROR, - LV_LRU_VALUE_TOO_LARGE -} lv_lru_res_t; - -typedef void (lv_lru_free_t)(void * v); -typedef struct _lv_lru_item_t lv_lru_item_t; - -typedef struct lv_lru_t { - lv_lru_item_t ** items; - uint64_t access_count; - size_t free_memory; - size_t total_memory; - size_t average_item_length; - size_t hash_table_size; - uint32_t seed; - lv_lru_free_t * value_free; - lv_lru_free_t * key_free; - lv_lru_item_t * free_items; -} lv_lru_t; - - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -lv_lru_t * lv_lru_create(size_t cache_size, size_t average_length, lv_lru_free_t * value_free, - lv_lru_free_t * key_free); - -void lv_lru_del(lv_lru_t * cache); - -lv_lru_res_t lv_lru_set(lv_lru_t * cache, const void * key, size_t key_length, void * value, size_t value_length); - -lv_lru_res_t lv_lru_get(lv_lru_t * cache, const void * key, size_t key_size, void ** value); - -lv_lru_res_t lv_lru_remove(lv_lru_t * cache, const void * key, size_t key_size); - -/********************** - * MACROS - **********************/ -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LRU_H*/ diff --git a/src/lib/lvgl/src/misc/lv_math.h b/src/lib/lvgl/src/misc/lv_math.h deleted file mode 100644 index 4b2860a..0000000 --- a/src/lib/lvgl/src/misc/lv_math.h +++ /dev/null @@ -1,143 +0,0 @@ -/** - * @file lv_math.h - * - */ - -#ifndef LV_MATH_H -#define LV_MATH_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include - -/********************* - * DEFINES - *********************/ -#define LV_TRIGO_SIN_MAX 32767 -#define LV_TRIGO_SHIFT 15 /**< >> LV_TRIGO_SHIFT to normalize*/ - -#define LV_BEZIER_VAL_MAX 1024 /**< Max time in Bezier functions (not [0..1] to use integers)*/ -#define LV_BEZIER_VAL_SHIFT 10 /**< log2(LV_BEZIER_VAL_MAX): used to normalize up scaled values*/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - uint16_t i; - uint16_t f; -} lv_sqrt_res_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -//! @cond Doxygen_Suppress -/** - * Return with sinus of an angle - * @param angle - * @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767 - */ -LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_sin(int16_t angle); - -static inline LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_cos(int16_t angle) -{ - return lv_trigo_sin(angle + 90); -} - -//! @endcond - -/** - * Calculate a value of a Cubic Bezier function. - * @param t time in range of [0..LV_BEZIER_VAL_MAX] - * @param u0 start values in range of [0..LV_BEZIER_VAL_MAX] - * @param u1 control value 1 values in range of [0..LV_BEZIER_VAL_MAX] - * @param u2 control value 2 in range of [0..LV_BEZIER_VAL_MAX] - * @param u3 end values in range of [0..LV_BEZIER_VAL_MAX] - * @return the value calculated from the given parameters in range of [0..LV_BEZIER_VAL_MAX] - */ -uint32_t lv_bezier3(uint32_t t, uint32_t u0, uint32_t u1, uint32_t u2, uint32_t u3); - -/** - * Calculate the atan2 of a vector. - * @param x - * @param y - * @return the angle in degree calculated from the given parameters in range of [0..360] - */ -uint16_t lv_atan2(int x, int y); - -//! @cond Doxygen_Suppress - -/** - * Get the square root of a number - * @param x integer which square root should be calculated - * @param q store the result here. q->i: integer part, q->f: fractional part in 1/256 unit - * @param mask optional to skip some iterations if the magnitude of the root is known. - * Set to 0x8000 by default. - * If root < 16: mask = 0x80 - * If root < 256: mask = 0x800 - * Else: mask = 0x8000 - */ -LV_ATTRIBUTE_FAST_MEM void lv_sqrt(uint32_t x, lv_sqrt_res_t * q, uint32_t mask); - -//! @endcond - -/** - * Calculate the integer exponents. - * @param base - * @param power - * @return base raised to the power exponent - */ -int64_t lv_pow(int64_t base, int8_t exp); - -/** - * Get the mapped of a number given an input and output range - * @param x integer which mapped value should be calculated - * @param min_in min input range - * @param max_in max input range - * @param min_out max output range - * @param max_out max output range - * @return the mapped number - */ -int32_t lv_map(int32_t x, int32_t min_in, int32_t max_in, int32_t min_out, int32_t max_out); - -/** - * Get a pseudo random number in the given range - * @param min the minimum value - * @param max the maximum value - * @return return the random number. min <= return_value <= max - */ -uint32_t lv_rand(uint32_t min, uint32_t max); - -/********************** - * MACROS - **********************/ -#define LV_MIN(a, b) ((a) < (b) ? (a) : (b)) -#define LV_MIN3(a, b, c) (LV_MIN(LV_MIN(a,b), c)) -#define LV_MIN4(a, b, c, d) (LV_MIN(LV_MIN(a,b), LV_MIN(c,d))) - -#define LV_MAX(a, b) ((a) > (b) ? (a) : (b)) -#define LV_MAX3(a, b, c) (LV_MAX(LV_MAX(a,b), c)) -#define LV_MAX4(a, b, c, d) (LV_MAX(LV_MAX(a,b), LV_MAX(c,d))) - -#define LV_CLAMP(min, val, max) (LV_MAX(min, (LV_MIN(val, max)))) - -#define LV_ABS(x) ((x) > 0 ? (x) : (-(x))) -#define LV_UDIV255(x) (((x) * 0x8081U) >> 0x17) - -#define LV_IS_SIGNED(t) (((t)(-1)) < ((t)0)) -#define LV_UMAX_OF(t) (((0x1ULL << ((sizeof(t) * 8ULL) - 1ULL)) - 1ULL) | (0xFULL << ((sizeof(t) * 8ULL) - 4ULL))) -#define LV_SMAX_OF(t) (((0x1ULL << ((sizeof(t) * 8ULL) - 1ULL)) - 1ULL) | (0x7ULL << ((sizeof(t) * 8ULL) - 4ULL))) -#define LV_MAX_OF(t) ((unsigned long)(LV_IS_SIGNED(t) ? LV_SMAX_OF(t) : LV_UMAX_OF(t))) - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/misc/lv_mem.h b/src/lib/lvgl/src/misc/lv_mem.h deleted file mode 100644 index 7a83b3d..0000000 --- a/src/lib/lvgl/src/misc/lv_mem.h +++ /dev/null @@ -1,243 +0,0 @@ -/** - * @file lv_mem.h - * - */ - -#ifndef LV_MEM_H -#define LV_MEM_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include -#include - -#include "lv_types.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** - * Heap information structure. - */ -typedef struct { - uint32_t total_size; /**< Total heap size*/ - uint32_t free_cnt; - uint32_t free_size; /**< Size of available memory*/ - uint32_t free_biggest_size; - uint32_t used_cnt; - uint32_t max_used; /**< Max size of Heap memory used*/ - uint8_t used_pct; /**< Percentage used*/ - uint8_t frag_pct; /**< Amount of fragmentation*/ -} lv_mem_monitor_t; - -typedef struct { - void * p; - uint16_t size; - uint8_t used : 1; -} lv_mem_buf_t; - -typedef lv_mem_buf_t lv_mem_buf_arr_t[LV_MEM_BUF_MAX_NUM]; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Initialize the dyn_mem module (work memory and other variables) - */ -void lv_mem_init(void); - -/** - * Clean up the memory buffer which frees all the allocated memories. - * @note It work only if `LV_MEM_CUSTOM == 0` - */ -void lv_mem_deinit(void); - -/** - * Allocate a memory dynamically - * @param size size of the memory to allocate in bytes - * @return pointer to the allocated memory - */ -void * lv_mem_alloc(size_t size); - -/** - * Free an allocated data - * @param data pointer to an allocated memory - */ -void lv_mem_free(void * data); - -/** - * Reallocate a memory with a new size. The old content will be kept. - * @param data pointer to an allocated memory. - * Its content will be copied to the new memory block and freed - * @param new_size the desired new size in byte - * @return pointer to the new memory, NULL on failure - */ -void * lv_mem_realloc(void * data_p, size_t new_size); - -/** - * - * @return - */ -lv_res_t lv_mem_test(void); - -/** - * Give information about the work memory of dynamic allocation - * @param mon_p pointer to a lv_mem_monitor_t variable, - * the result of the analysis will be stored here - */ -void lv_mem_monitor(lv_mem_monitor_t * mon_p); - - -/** - * Get a temporal buffer with the given size. - * @param size the required size - */ -void * lv_mem_buf_get(uint32_t size); - -/** - * Release a memory buffer - * @param p buffer to release - */ -void lv_mem_buf_release(void * p); - -/** - * Free all memory buffers - */ -void lv_mem_buf_free_all(void); - -//! @cond Doxygen_Suppress - -#if LV_MEMCPY_MEMSET_STD - -/** - * Wrapper for the standard memcpy - * @param dst pointer to the destination buffer - * @param src pointer to the source buffer - * @param len number of byte to copy - */ -static inline void * lv_memcpy(void * dst, const void * src, size_t len) -{ - return memcpy(dst, src, len); -} - -/** - * Wrapper for the standard memcpy - * @param dst pointer to the destination buffer - * @param src pointer to the source buffer - * @param len number of byte to copy - */ -static inline void * lv_memcpy_small(void * dst, const void * src, size_t len) -{ - return memcpy(dst, src, len); -} - -/** - * Wrapper for the standard memset - * @param dst pointer to the destination buffer - * @param v value to set [0..255] - * @param len number of byte to set - */ -static inline void lv_memset(void * dst, uint8_t v, size_t len) -{ - memset(dst, v, len); -} - -/** - * Wrapper for the standard memset with fixed 0x00 value - * @param dst pointer to the destination buffer - * @param len number of byte to set - */ -static inline void lv_memset_00(void * dst, size_t len) -{ - memset(dst, 0x00, len); -} - -/** - * Wrapper for the standard memset with fixed 0xFF value - * @param dst pointer to the destination buffer - * @param len number of byte to set - */ -static inline void lv_memset_ff(void * dst, size_t len) -{ - memset(dst, 0xFF, len); -} - -#else -/** - * Same as `memcpy` but optimized for 4 byte operation. - * @param dst pointer to the destination buffer - * @param src pointer to the source buffer - * @param len number of byte to copy - */ -LV_ATTRIBUTE_FAST_MEM void * lv_memcpy(void * dst, const void * src, size_t len); - -/** - * Same as `memcpy` but optimized to copy only a few bytes. - * @param dst pointer to the destination buffer - * @param src pointer to the source buffer - * @param len number of byte to copy - */ -LV_ATTRIBUTE_FAST_MEM static inline void * lv_memcpy_small(void * dst, const void * src, size_t len) -{ - uint8_t * d8 = (uint8_t *)dst; - const uint8_t * s8 = (const uint8_t *)src; - - while(len) { - *d8 = *s8; - d8++; - s8++; - len--; - } - - return dst; -} - -/** - * Same as `memset` but optimized for 4 byte operation. - * @param dst pointer to the destination buffer - * @param v value to set [0..255] - * @param len number of byte to set - */ -LV_ATTRIBUTE_FAST_MEM void lv_memset(void * dst, uint8_t v, size_t len); - -/** - * Same as `memset(dst, 0x00, len)` but optimized for 4 byte operation. - * @param dst pointer to the destination buffer - * @param len number of byte to set - */ -LV_ATTRIBUTE_FAST_MEM void lv_memset_00(void * dst, size_t len); - -/** - * Same as `memset(dst, 0xFF, len)` but optimized for 4 byte operation. - * @param dst pointer to the destination buffer - * @param len number of byte to set - */ -LV_ATTRIBUTE_FAST_MEM void lv_memset_ff(void * dst, size_t len); - -//! @endcond - -#endif - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_MEM_H*/ diff --git a/src/lib/lvgl/src/misc/lv_printf.h b/src/lib/lvgl/src/misc/lv_printf.h deleted file mode 100644 index 4cbbd84..0000000 --- a/src/lib/lvgl/src/misc/lv_printf.h +++ /dev/null @@ -1,92 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// \author (c) Marco Paland (info@paland.com) -// 2014-2019, PALANDesign Hannover, Germany -// -// \license The MIT License (MIT) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// \brief Tiny printf, sprintf and snprintf implementation, optimized for speed on -// embedded systems with a very limited resources. -// Use this instead of bloated standard/newlib printf. -// These routines are thread safe and reentrant. -// -/////////////////////////////////////////////////////////////////////////////// - -/*Original repository: https://github.com/mpaland/printf*/ - -#ifndef _LV_PRINTF_H_ -#define _LV_PRINTF_H_ - -#if defined(__has_include) - #if __has_include() - #include - /* platform-specific printf format for int32_t, usually "d" or "ld" */ - #define LV_PRId32 PRId32 - #define LV_PRIu32 PRIu32 - #else - #define LV_PRId32 "d" - #define LV_PRIu32 "u" - #endif -#else - /* hope this is correct for ports without __has_include or without inttypes.h */ - #define LV_PRId32 "d" - #define LV_PRIu32 "u" -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include "../lv_conf_internal.h" - -#if LV_SPRINTF_CUSTOM == 0 - -#include -#include - -#include "lv_types.h" - -typedef struct { - const char * fmt; - va_list * va; -} lv_vaformat_t; - -/** - * Tiny snprintf/vsnprintf implementation - * \param buffer A pointer to the buffer where to store the formatted string - * \param count The maximum number of characters to store in the buffer, including a terminating null character - * \param format A string that specifies the format of the output - * \param va A value identifying a variable arguments list - * \return The number of characters that COULD have been written into the buffer, not counting the terminating - * null character. A value equal or larger than count indicates truncation. Only when the returned value - * is non-negative and less than count, the string has been completely written. - */ -int lv_snprintf(char * buffer, size_t count, const char * format, ...) LV_FORMAT_ATTRIBUTE(3, 4); -int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) LV_FORMAT_ATTRIBUTE(3, 0); - -#else -#include LV_SPRINTF_INCLUDE -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif // _LV_PRINTF_H_ diff --git a/src/lib/lvgl/src/misc/lv_style.h b/src/lib/lvgl/src/misc/lv_style.h deleted file mode 100644 index eee3a94..0000000 --- a/src/lib/lvgl/src/misc/lv_style.h +++ /dev/null @@ -1,543 +0,0 @@ -/** - * @file lv_style.h - * - */ - -#ifndef LV_STYLE_H -#define LV_STYLE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include -#include "../font/lv_font.h" -#include "lv_color.h" -#include "lv_area.h" -#include "lv_anim.h" -#include "lv_txt.h" -#include "lv_types.h" -#include "lv_assert.h" -#include "lv_bidi.h" - -/********************* - * DEFINES - *********************/ - -#define LV_STYLE_SENTINEL_VALUE 0xAABBCCDD - -/** - * Flags for style behavior - * - * The rest of the flags will have _FLAG added to their name in v9. - */ -#define LV_STYLE_PROP_FLAG_NONE (0) -#define LV_STYLE_PROP_INHERIT (1 << 0) /*Inherited*/ -#define LV_STYLE_PROP_EXT_DRAW (1 << 1) /*Requires ext. draw size update when changed*/ -#define LV_STYLE_PROP_LAYOUT_REFR (1 << 2) /*Requires layout update when changed*/ -#define LV_STYLE_PROP_PARENT_LAYOUT_REFR (1 << 3) /*Requires layout update on parent when changed*/ -#define LV_STYLE_PROP_ALL (0xf) /*Indicating all flags*/ - -/** - * Other constants - */ -#define LV_IMG_ZOOM_NONE 256 /*Value for not zooming the image*/ -LV_EXPORT_CONST_INT(LV_IMG_ZOOM_NONE); - -#if LV_USE_ASSERT_STYLE -#define LV_STYLE_CONST_INIT(var_name, prop_array) const lv_style_t var_name = { .sentinel = LV_STYLE_SENTINEL_VALUE, .v_p = { .const_props = prop_array }, .has_group = 0xFF, .is_const = 1 } -#else -#define LV_STYLE_CONST_INIT(var_name, prop_array) const lv_style_t var_name = { .v_p = { .const_props = prop_array }, .has_group = 0xFF, .is_const = 1 } -#endif - -/** On simple system, don't waste resources on gradients */ -#if !defined(LV_DRAW_COMPLEX) || !defined(LV_GRADIENT_MAX_STOPS) -#define LV_GRADIENT_MAX_STOPS 2 -#endif - - -/********************** - * TYPEDEFS - **********************/ - -/** - * Possible options how to blend opaque drawings - */ -enum { - LV_BLEND_MODE_NORMAL, /**< Simply mix according to the opacity value*/ - LV_BLEND_MODE_ADDITIVE, /**< Add the respective color channels*/ - LV_BLEND_MODE_SUBTRACTIVE,/**< Subtract the foreground from the background*/ - LV_BLEND_MODE_MULTIPLY, /**< Multiply the foreground and background*/ - LV_BLEND_MODE_REPLACE, /**< Replace background with foreground in the area*/ -}; - -typedef uint8_t lv_blend_mode_t; - -/** - * Some options to apply decorations on texts. - * 'OR'ed values can be used. - */ -enum { - LV_TEXT_DECOR_NONE = 0x00, - LV_TEXT_DECOR_UNDERLINE = 0x01, - LV_TEXT_DECOR_STRIKETHROUGH = 0x02, -}; - -typedef uint8_t lv_text_decor_t; - -/** - * Selects on which sides border should be drawn - * 'OR'ed values can be used. - */ -enum { - LV_BORDER_SIDE_NONE = 0x00, - LV_BORDER_SIDE_BOTTOM = 0x01, - LV_BORDER_SIDE_TOP = 0x02, - LV_BORDER_SIDE_LEFT = 0x04, - LV_BORDER_SIDE_RIGHT = 0x08, - LV_BORDER_SIDE_FULL = 0x0F, - LV_BORDER_SIDE_INTERNAL = 0x10, /**< FOR matrix-like objects (e.g. Button matrix)*/ -}; -typedef uint8_t lv_border_side_t; - -/** - * The direction of the gradient. - */ -enum { - LV_GRAD_DIR_NONE, /**< No gradient (the `grad_color` property is ignored)*/ - LV_GRAD_DIR_VER, /**< Vertical (top to bottom) gradient*/ - LV_GRAD_DIR_HOR, /**< Horizontal (left to right) gradient*/ -}; - -typedef uint8_t lv_grad_dir_t; - -/** - * The dithering algorithm for the gradient - * Depends on LV_DITHER_GRADIENT - */ -enum { - LV_DITHER_NONE, /**< No dithering, colors are just quantized to the output resolution*/ - LV_DITHER_ORDERED, /**< Ordered dithering. Faster to compute and use less memory but lower quality*/ - LV_DITHER_ERR_DIFF, /**< Error diffusion mode. Slower to compute and use more memory but give highest dither quality*/ -}; - -typedef uint8_t lv_dither_mode_t; - -/** A gradient stop definition. - * This matches a color and a position in a virtual 0-255 scale. - */ -typedef struct { - lv_color_t color; /**< The stop color */ - uint8_t frac; /**< The stop position in 1/255 unit */ -} lv_gradient_stop_t; - -/** A descriptor of a gradient. */ -typedef struct { - lv_gradient_stop_t stops[LV_GRADIENT_MAX_STOPS]; /**< A gradient stop array */ - uint8_t stops_count; /**< The number of used stops in the array */ - lv_grad_dir_t dir : 3; /**< The gradient direction. - * Any of LV_GRAD_DIR_HOR, LV_GRAD_DIR_VER, LV_GRAD_DIR_NONE */ - lv_dither_mode_t dither : 3; /**< Whether to dither the gradient or not. - * Any of LV_DITHER_NONE, LV_DITHER_ORDERED, LV_DITHER_ERR_DIFF */ -} lv_grad_dsc_t; - -/** - * A common type to handle all the property types in the same way. - */ -typedef union { - int32_t num; /**< Number integer number (opacity, enums, booleans or "normal" numbers)*/ - const void * ptr; /**< Constant pointers (font, cone text, etc)*/ - lv_color_t color; /**< Colors*/ -} lv_style_value_t; - -/** - * Enumeration of all built in style properties - * - * Props are split into groups of 16. When adding a new prop to a group, ensure it does not overflow into the next one. - */ -typedef enum { - LV_STYLE_PROP_INV, - - /*Group 0*/ - LV_STYLE_WIDTH = 1, - LV_STYLE_MIN_WIDTH = 2, - LV_STYLE_MAX_WIDTH = 3, - LV_STYLE_HEIGHT = 4, - LV_STYLE_MIN_HEIGHT = 5, - LV_STYLE_MAX_HEIGHT = 6, - LV_STYLE_X = 7, - LV_STYLE_Y = 8, - LV_STYLE_ALIGN = 9, - LV_STYLE_TRANSFORM_WIDTH = 10, - LV_STYLE_TRANSFORM_HEIGHT = 11, - LV_STYLE_TRANSLATE_X = 12, - LV_STYLE_TRANSLATE_Y = 13, - LV_STYLE_TRANSFORM_ZOOM = 14, - LV_STYLE_TRANSFORM_ANGLE = 15, - - /*Group 1*/ - LV_STYLE_PAD_TOP = 16, - LV_STYLE_PAD_BOTTOM = 17, - LV_STYLE_PAD_LEFT = 18, - LV_STYLE_PAD_RIGHT = 19, - LV_STYLE_PAD_ROW = 20, - LV_STYLE_PAD_COLUMN = 21, - - /*Group 2*/ - LV_STYLE_BG_COLOR = 32, - LV_STYLE_BG_OPA = 33, - LV_STYLE_BG_GRAD_COLOR = 34, - LV_STYLE_BG_GRAD_DIR = 35, - LV_STYLE_BG_MAIN_STOP = 36, - LV_STYLE_BG_GRAD_STOP = 37, - LV_STYLE_BG_GRAD = 38, - LV_STYLE_BG_DITHER_MODE = 39, - LV_STYLE_BG_IMG_SRC = 40, - LV_STYLE_BG_IMG_OPA = 41, - LV_STYLE_BG_IMG_RECOLOR = 42, - LV_STYLE_BG_IMG_RECOLOR_OPA = 43, - LV_STYLE_BG_IMG_TILED = 44, - - /*Group 3*/ - LV_STYLE_BORDER_COLOR = 48, - LV_STYLE_BORDER_OPA = 49, - LV_STYLE_BORDER_WIDTH = 50, - LV_STYLE_BORDER_SIDE = 51, - LV_STYLE_BORDER_POST = 52, - LV_STYLE_OUTLINE_WIDTH = 53, - LV_STYLE_OUTLINE_COLOR = 54, - LV_STYLE_OUTLINE_OPA = 55, - LV_STYLE_OUTLINE_PAD = 56, - - /*Group 4*/ - LV_STYLE_SHADOW_WIDTH = 64, - LV_STYLE_SHADOW_OFS_X = 65, - LV_STYLE_SHADOW_OFS_Y = 66, - LV_STYLE_SHADOW_SPREAD = 67, - LV_STYLE_SHADOW_COLOR = 68, - LV_STYLE_SHADOW_OPA = 69, - LV_STYLE_IMG_OPA = 70, - LV_STYLE_IMG_RECOLOR = 71, - LV_STYLE_IMG_RECOLOR_OPA = 72, - LV_STYLE_LINE_WIDTH = 73, - LV_STYLE_LINE_DASH_WIDTH = 74, - LV_STYLE_LINE_DASH_GAP = 75, - LV_STYLE_LINE_ROUNDED = 76, - LV_STYLE_LINE_COLOR = 77, - LV_STYLE_LINE_OPA = 78, - - /*Group 5*/ - LV_STYLE_ARC_WIDTH = 80, - LV_STYLE_ARC_ROUNDED = 81, - LV_STYLE_ARC_COLOR = 82, - LV_STYLE_ARC_OPA = 83, - LV_STYLE_ARC_IMG_SRC = 84, - LV_STYLE_TEXT_COLOR = 85, - LV_STYLE_TEXT_OPA = 86, - LV_STYLE_TEXT_FONT = 87, - LV_STYLE_TEXT_LETTER_SPACE = 88, - LV_STYLE_TEXT_LINE_SPACE = 89, - LV_STYLE_TEXT_DECOR = 90, - LV_STYLE_TEXT_ALIGN = 91, - - /*Group 6*/ - LV_STYLE_RADIUS = 96, - LV_STYLE_CLIP_CORNER = 97, - LV_STYLE_OPA = 98, - LV_STYLE_COLOR_FILTER_DSC = 99, - LV_STYLE_COLOR_FILTER_OPA = 100, - LV_STYLE_ANIM = 101, - LV_STYLE_ANIM_TIME = 102, - LV_STYLE_ANIM_SPEED = 103, - LV_STYLE_TRANSITION = 104, - LV_STYLE_BLEND_MODE = 105, - LV_STYLE_LAYOUT = 106, - LV_STYLE_BASE_DIR = 107, - - _LV_STYLE_LAST_BUILT_IN_PROP = 111, - _LV_STYLE_NUM_BUILT_IN_PROPS = _LV_STYLE_LAST_BUILT_IN_PROP + 1, - - LV_STYLE_PROP_ANY = 0xFFFF -} lv_style_prop_t; - -/** - * Descriptor for style transitions - */ -typedef struct { - const lv_style_prop_t * props; /**< An array with the properties to animate.*/ -#if LV_USE_USER_DATA - void * user_data; /**< A custom user data that will be passed to the animation's user_data */ -#endif - lv_anim_path_cb_t path_xcb; /**< A path for the animation.*/ - uint32_t time; /**< Duration of the transition in [ms]*/ - uint32_t delay; /**< Delay before the transition in [ms]*/ -} lv_style_transition_dsc_t; - -/** - * Descriptor of a constant style property. - */ -typedef struct { - lv_style_prop_t prop; - lv_style_value_t value; -} lv_style_const_prop_t; - -/** - * Descriptor of a style (a collection of properties and values). - */ -typedef struct { - -#if LV_USE_ASSERT_STYLE - uint32_t sentinel; -#endif - - /*If there is only one property store it directly. - *For more properties allocate an array*/ - union { - lv_style_value_t value1; - uint8_t * values_and_props; - const lv_style_const_prop_t * const_props; - } v_p; - - uint16_t prop1 : 15; - uint16_t is_const : 1; - uint8_t has_group; - uint8_t prop_cnt; -} lv_style_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - - -/** - * Initialize a style - * @param style pointer to a style to initialize - * @note Do not call `lv_style_init` on styles that already have some properties - * because this function won't free the used memory, just sets a default state for the style. - * In other words be sure to initialize styles only once! - */ -void lv_style_init(lv_style_t * style); - -/** - * Clear all properties from a style and free all allocated memories. - * @param style pointer to a style - */ -void lv_style_reset(lv_style_t * style); - -/** - * Register a new style property for custom usage - * @return a new property ID, or LV_STYLE_PROP_INV if there are no more available. - * @example - * lv_style_prop_t MY_PROP; - * static inline void lv_style_set_my_prop(lv_style_t * style, lv_color_t value) { - * lv_style_value_t v = {.color = value}; lv_style_set_prop(style, MY_PROP, v); } - * - * ... - * MY_PROP = lv_style_register_prop(); - * ... - * lv_style_set_my_prop(&style1, lv_palette_main(LV_PALETTE_RED)); - */ -lv_style_prop_t lv_style_register_prop(uint8_t flag); - -/** - * Get the number of custom properties that have been registered thus far. - */ -lv_style_prop_t lv_style_get_num_custom_props(void); - -/** - * Remove a property from a style - * @param style pointer to a style - * @param prop a style property ORed with a state. - * @return true: the property was found and removed; false: the property wasn't found - */ -bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop); - -/** - * Set the value of property in a style. - * This function shouldn't be used directly by the user. - * Instead use `lv_style_set_()`. E.g. `lv_style_set_bg_color()` - * @param style pointer to style - * @param prop the ID of a property (e.g. `LV_STYLE_BG_COLOR`) - * @param value `lv_style_value_t` variable in which a field is set according to the type of `prop` - */ -void lv_style_set_prop(lv_style_t * style, lv_style_prop_t prop, lv_style_value_t value); - -/** - * Get the value of a property - * @param style pointer to a style - * @param prop the ID of a property - * @param value pointer to a `lv_style_value_t` variable to store the value - * @return LV_RES_INV: the property wasn't found in the style (`value` is unchanged) - * LV_RES_OK: the property was fond, and `value` is set accordingly - * @note For performance reasons there are no sanity check on `style` - */ -lv_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value); - - -/** - * Get the value of a property - * @param style pointer to a style - * @param prop the ID of a property - * @param value pointer to a `lv_style_value_t` variable to store the value - * @return LV_RES_INV: the property wasn't found in the style (`value` is unchanged) - * LV_RES_OK: the property was fond, and `value` is set accordingly - * @note For performance reasons there are no sanity check on `style` - * @note This function is the same as ::lv_style_get_prop but inlined. Use it only on performance critical places - */ -static inline lv_res_t lv_style_get_prop_inlined(const lv_style_t * style, lv_style_prop_t prop, - lv_style_value_t * value) -{ - if(style->is_const) { - const lv_style_const_prop_t * const_prop; - for(const_prop = style->v_p.const_props; const_prop->prop != LV_STYLE_PROP_INV; const_prop++) { - if(const_prop->prop == prop) { - *value = const_prop->value; - return LV_RES_OK; - } - } - return LV_RES_INV; - } - - if(style->prop_cnt == 0) return LV_RES_INV; - - if(style->prop_cnt > 1) { - uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - uint16_t * props = (uint16_t *)tmp; - uint32_t i; - for(i = 0; i < style->prop_cnt; i++) { - if(props[i] == prop) { - lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props; - *value = values[i]; - return LV_RES_OK; - } - } - } - else if(style->prop1 == prop) { - *value = style->v_p.value1; - return LV_RES_OK; - } - return LV_RES_INV; -} - -/** - * Initialize a transition descriptor. - * @param tr pointer to a transition descriptor to initialize - * @param props an array with the properties to transition. The last element must be zero. - * @param path_cb an animation path (ease) callback. If `NULL` liner path will be used. - * @param time duration of the transition in [ms] - * @param delay delay before the transition in [ms] - * @param user_data any custom data that will be saved in the transition animation and will be available when `path_cb` is called - * @example - * const static lv_style_prop_t trans_props[] = { LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR, 0 }; - * static lv_style_transition_dsc_t trans1; - * lv_style_transition_dsc_init(&trans1, trans_props, NULL, 300, 0, NULL); - */ -void lv_style_transition_dsc_init(lv_style_transition_dsc_t * tr, const lv_style_prop_t props[], - lv_anim_path_cb_t path_cb, uint32_t time, uint32_t delay, void * user_data); - -/** - * Get the default value of a property - * @param prop the ID of a property - * @return the default value - */ -lv_style_value_t lv_style_prop_get_default(lv_style_prop_t prop); - -/** - * Checks if a style is empty (has no properties) - * @param style pointer to a style - * @return true if the style is empty - */ -bool lv_style_is_empty(const lv_style_t * style); - -/** - * Tell the group of a property. If the a property from a group is set in a style the (1 << group) bit of style->has_group is set. - * It allows early skipping the style if the property is not exists in the style at all. - * @param prop a style property - * @return the group [0..7] 7 means all the custom properties with index > 112 - */ -uint8_t _lv_style_get_prop_group(lv_style_prop_t prop); - -/** - * Get the flags of a built-in or custom property. - * - * @param prop a style property - * @return the flags of the property - */ -uint8_t _lv_style_prop_lookup_flags(lv_style_prop_t prop); - -#include "lv_style_gen.h" - -static inline void lv_style_set_size(lv_style_t * style, lv_coord_t value) -{ - lv_style_set_width(style, value); - lv_style_set_height(style, value); -} - -static inline void lv_style_set_pad_all(lv_style_t * style, lv_coord_t value) -{ - lv_style_set_pad_left(style, value); - lv_style_set_pad_right(style, value); - lv_style_set_pad_top(style, value); - lv_style_set_pad_bottom(style, value); -} - -static inline void lv_style_set_pad_hor(lv_style_t * style, lv_coord_t value) -{ - lv_style_set_pad_left(style, value); - lv_style_set_pad_right(style, value); -} - -static inline void lv_style_set_pad_ver(lv_style_t * style, lv_coord_t value) -{ - lv_style_set_pad_top(style, value); - lv_style_set_pad_bottom(style, value); -} - -static inline void lv_style_set_pad_gap(lv_style_t * style, lv_coord_t value) -{ - lv_style_set_pad_row(style, value); - lv_style_set_pad_column(style, value); -} - -/** - * @brief Check if the style property has a specified behavioral flag. - * - * Do not pass multiple flags to this function as backwards-compatibility is not guaranteed - * for that. - * - * @param prop Property ID - * @param flag Flag - * @return true if the flag is set for this property - */ -static inline bool lv_style_prop_has_flag(lv_style_prop_t prop, uint8_t flag) -{ - return _lv_style_prop_lookup_flags(prop) & flag; -} - -/************************* - * GLOBAL VARIABLES - *************************/ - -/********************** - * MACROS - **********************/ - -#if LV_USE_ASSERT_STYLE -# define LV_ASSERT_STYLE(style_p) \ - do { \ - LV_ASSERT_MSG(style_p != NULL, "The style is NULL"); \ - LV_ASSERT_MSG(style_p->sentinel == LV_STYLE_SENTINEL_VALUE, "Style is not initialized or corrupted"); \ - } while(0) -#else -# define LV_ASSERT_STYLE(p) do{}while(0) -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_STYLE_H*/ diff --git a/src/lib/lvgl/src/misc/lv_style_gen.h b/src/lib/lvgl/src/misc/lv_style_gen.h deleted file mode 100644 index f62206f..0000000 --- a/src/lib/lvgl/src/misc/lv_style_gen.h +++ /dev/null @@ -1,492 +0,0 @@ -void lv_style_set_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_min_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_max_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_height(lv_style_t * style, lv_coord_t value); -void lv_style_set_min_height(lv_style_t * style, lv_coord_t value); -void lv_style_set_max_height(lv_style_t * style, lv_coord_t value); -void lv_style_set_x(lv_style_t * style, lv_coord_t value); -void lv_style_set_y(lv_style_t * style, lv_coord_t value); -void lv_style_set_align(lv_style_t * style, lv_align_t value); -void lv_style_set_transform_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_transform_height(lv_style_t * style, lv_coord_t value); -void lv_style_set_translate_x(lv_style_t * style, lv_coord_t value); -void lv_style_set_translate_y(lv_style_t * style, lv_coord_t value); -void lv_style_set_transform_zoom(lv_style_t * style, lv_coord_t value); -void lv_style_set_transform_angle(lv_style_t * style, lv_coord_t value); -void lv_style_set_pad_top(lv_style_t * style, lv_coord_t value); -void lv_style_set_pad_bottom(lv_style_t * style, lv_coord_t value); -void lv_style_set_pad_left(lv_style_t * style, lv_coord_t value); -void lv_style_set_pad_right(lv_style_t * style, lv_coord_t value); -void lv_style_set_pad_row(lv_style_t * style, lv_coord_t value); -void lv_style_set_pad_column(lv_style_t * style, lv_coord_t value); -void lv_style_set_bg_color(lv_style_t * style, lv_color_t value); -void lv_style_set_bg_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_bg_grad_color(lv_style_t * style, lv_color_t value); -void lv_style_set_bg_grad_dir(lv_style_t * style, lv_grad_dir_t value); -void lv_style_set_bg_main_stop(lv_style_t * style, lv_coord_t value); -void lv_style_set_bg_grad_stop(lv_style_t * style, lv_coord_t value); -void lv_style_set_bg_grad(lv_style_t * style, const lv_grad_dsc_t * value); -void lv_style_set_bg_dither_mode(lv_style_t * style, lv_dither_mode_t value); -void lv_style_set_bg_img_src(lv_style_t * style, const void * value); -void lv_style_set_bg_img_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_bg_img_recolor(lv_style_t * style, lv_color_t value); -void lv_style_set_bg_img_recolor_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_bg_img_tiled(lv_style_t * style, bool value); -void lv_style_set_border_color(lv_style_t * style, lv_color_t value); -void lv_style_set_border_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_border_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_border_side(lv_style_t * style, lv_border_side_t value); -void lv_style_set_border_post(lv_style_t * style, bool value); -void lv_style_set_outline_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_outline_color(lv_style_t * style, lv_color_t value); -void lv_style_set_outline_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_outline_pad(lv_style_t * style, lv_coord_t value); -void lv_style_set_shadow_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_shadow_ofs_x(lv_style_t * style, lv_coord_t value); -void lv_style_set_shadow_ofs_y(lv_style_t * style, lv_coord_t value); -void lv_style_set_shadow_spread(lv_style_t * style, lv_coord_t value); -void lv_style_set_shadow_color(lv_style_t * style, lv_color_t value); -void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_img_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_img_recolor(lv_style_t * style, lv_color_t value); -void lv_style_set_img_recolor_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_line_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_line_dash_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_line_dash_gap(lv_style_t * style, lv_coord_t value); -void lv_style_set_line_rounded(lv_style_t * style, bool value); -void lv_style_set_line_color(lv_style_t * style, lv_color_t value); -void lv_style_set_line_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_arc_width(lv_style_t * style, lv_coord_t value); -void lv_style_set_arc_rounded(lv_style_t * style, bool value); -void lv_style_set_arc_color(lv_style_t * style, lv_color_t value); -void lv_style_set_arc_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_arc_img_src(lv_style_t * style, const void * value); -void lv_style_set_text_color(lv_style_t * style, lv_color_t value); -void lv_style_set_text_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_text_font(lv_style_t * style, const lv_font_t * value); -void lv_style_set_text_letter_space(lv_style_t * style, lv_coord_t value); -void lv_style_set_text_line_space(lv_style_t * style, lv_coord_t value); -void lv_style_set_text_decor(lv_style_t * style, lv_text_decor_t value); -void lv_style_set_text_align(lv_style_t * style, lv_text_align_t value); -void lv_style_set_radius(lv_style_t * style, lv_coord_t value); -void lv_style_set_clip_corner(lv_style_t * style, bool value); -void lv_style_set_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_color_filter_dsc(lv_style_t * style, const lv_color_filter_dsc_t * value); -void lv_style_set_color_filter_opa(lv_style_t * style, lv_opa_t value); -void lv_style_set_anim(lv_style_t * style, const lv_anim_t * value); -void lv_style_set_anim_time(lv_style_t * style, uint32_t value); -void lv_style_set_anim_speed(lv_style_t * style, uint32_t value); -void lv_style_set_transition(lv_style_t * style, const lv_style_transition_dsc_t * value); -void lv_style_set_blend_mode(lv_style_t * style, lv_blend_mode_t value); -void lv_style_set_layout(lv_style_t * style, uint16_t value); -void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value); - -#define LV_STYLE_CONST_WIDTH(val) \ - { \ - .prop = LV_STYLE_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_MIN_WIDTH(val) \ - { \ - .prop = LV_STYLE_MIN_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_MAX_WIDTH(val) \ - { \ - .prop = LV_STYLE_MAX_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_HEIGHT(val) \ - { \ - .prop = LV_STYLE_HEIGHT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_MIN_HEIGHT(val) \ - { \ - .prop = LV_STYLE_MIN_HEIGHT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_MAX_HEIGHT(val) \ - { \ - .prop = LV_STYLE_MAX_HEIGHT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_X(val) \ - { \ - .prop = LV_STYLE_X, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_Y(val) \ - { \ - .prop = LV_STYLE_Y, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ALIGN(val) \ - { \ - .prop = LV_STYLE_ALIGN, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSFORM_WIDTH(val) \ - { \ - .prop = LV_STYLE_TRANSFORM_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSFORM_HEIGHT(val) \ - { \ - .prop = LV_STYLE_TRANSFORM_HEIGHT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSLATE_X(val) \ - { \ - .prop = LV_STYLE_TRANSLATE_X, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSLATE_Y(val) \ - { \ - .prop = LV_STYLE_TRANSLATE_Y, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSFORM_ZOOM(val) \ - { \ - .prop = LV_STYLE_TRANSFORM_ZOOM, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSFORM_ANGLE(val) \ - { \ - .prop = LV_STYLE_TRANSFORM_ANGLE, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_PAD_TOP(val) \ - { \ - .prop = LV_STYLE_PAD_TOP, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_PAD_BOTTOM(val) \ - { \ - .prop = LV_STYLE_PAD_BOTTOM, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_PAD_LEFT(val) \ - { \ - .prop = LV_STYLE_PAD_LEFT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_PAD_RIGHT(val) \ - { \ - .prop = LV_STYLE_PAD_RIGHT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_PAD_ROW(val) \ - { \ - .prop = LV_STYLE_PAD_ROW, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_PAD_COLUMN(val) \ - { \ - .prop = LV_STYLE_PAD_COLUMN, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_COLOR(val) \ - { \ - .prop = LV_STYLE_BG_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_BG_OPA(val) \ - { \ - .prop = LV_STYLE_BG_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_GRAD_COLOR(val) \ - { \ - .prop = LV_STYLE_BG_GRAD_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_BG_GRAD_DIR(val) \ - { \ - .prop = LV_STYLE_BG_GRAD_DIR, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_MAIN_STOP(val) \ - { \ - .prop = LV_STYLE_BG_MAIN_STOP, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_GRAD_STOP(val) \ - { \ - .prop = LV_STYLE_BG_GRAD_STOP, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_GRAD(val) \ - { \ - .prop = LV_STYLE_BG_GRAD, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_BG_DITHER_MODE(val) \ - { \ - .prop = LV_STYLE_BG_DITHER_MODE, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_IMG_SRC(val) \ - { \ - .prop = LV_STYLE_BG_IMG_SRC, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_BG_IMG_OPA(val) \ - { \ - .prop = LV_STYLE_BG_IMG_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_IMG_RECOLOR(val) \ - { \ - .prop = LV_STYLE_BG_IMG_RECOLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_BG_IMG_RECOLOR_OPA(val) \ - { \ - .prop = LV_STYLE_BG_IMG_RECOLOR_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BG_IMG_TILED(val) \ - { \ - .prop = LV_STYLE_BG_IMG_TILED, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BORDER_COLOR(val) \ - { \ - .prop = LV_STYLE_BORDER_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_BORDER_OPA(val) \ - { \ - .prop = LV_STYLE_BORDER_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BORDER_WIDTH(val) \ - { \ - .prop = LV_STYLE_BORDER_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BORDER_SIDE(val) \ - { \ - .prop = LV_STYLE_BORDER_SIDE, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BORDER_POST(val) \ - { \ - .prop = LV_STYLE_BORDER_POST, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_OUTLINE_WIDTH(val) \ - { \ - .prop = LV_STYLE_OUTLINE_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_OUTLINE_COLOR(val) \ - { \ - .prop = LV_STYLE_OUTLINE_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_OUTLINE_OPA(val) \ - { \ - .prop = LV_STYLE_OUTLINE_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_OUTLINE_PAD(val) \ - { \ - .prop = LV_STYLE_OUTLINE_PAD, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_SHADOW_WIDTH(val) \ - { \ - .prop = LV_STYLE_SHADOW_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_SHADOW_OFS_X(val) \ - { \ - .prop = LV_STYLE_SHADOW_OFS_X, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_SHADOW_OFS_Y(val) \ - { \ - .prop = LV_STYLE_SHADOW_OFS_Y, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_SHADOW_SPREAD(val) \ - { \ - .prop = LV_STYLE_SHADOW_SPREAD, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_SHADOW_COLOR(val) \ - { \ - .prop = LV_STYLE_SHADOW_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_SHADOW_OPA(val) \ - { \ - .prop = LV_STYLE_SHADOW_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_IMG_OPA(val) \ - { \ - .prop = LV_STYLE_IMG_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_IMG_RECOLOR(val) \ - { \ - .prop = LV_STYLE_IMG_RECOLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_IMG_RECOLOR_OPA(val) \ - { \ - .prop = LV_STYLE_IMG_RECOLOR_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_LINE_WIDTH(val) \ - { \ - .prop = LV_STYLE_LINE_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_LINE_DASH_WIDTH(val) \ - { \ - .prop = LV_STYLE_LINE_DASH_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_LINE_DASH_GAP(val) \ - { \ - .prop = LV_STYLE_LINE_DASH_GAP, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_LINE_ROUNDED(val) \ - { \ - .prop = LV_STYLE_LINE_ROUNDED, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_LINE_COLOR(val) \ - { \ - .prop = LV_STYLE_LINE_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_LINE_OPA(val) \ - { \ - .prop = LV_STYLE_LINE_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ARC_WIDTH(val) \ - { \ - .prop = LV_STYLE_ARC_WIDTH, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ARC_ROUNDED(val) \ - { \ - .prop = LV_STYLE_ARC_ROUNDED, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ARC_COLOR(val) \ - { \ - .prop = LV_STYLE_ARC_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_ARC_OPA(val) \ - { \ - .prop = LV_STYLE_ARC_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ARC_IMG_SRC(val) \ - { \ - .prop = LV_STYLE_ARC_IMG_SRC, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_TEXT_COLOR(val) \ - { \ - .prop = LV_STYLE_TEXT_COLOR, .value = { .color = val } \ - } - -#define LV_STYLE_CONST_TEXT_OPA(val) \ - { \ - .prop = LV_STYLE_TEXT_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TEXT_FONT(val) \ - { \ - .prop = LV_STYLE_TEXT_FONT, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_TEXT_LETTER_SPACE(val) \ - { \ - .prop = LV_STYLE_TEXT_LETTER_SPACE, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TEXT_LINE_SPACE(val) \ - { \ - .prop = LV_STYLE_TEXT_LINE_SPACE, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TEXT_DECOR(val) \ - { \ - .prop = LV_STYLE_TEXT_DECOR, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TEXT_ALIGN(val) \ - { \ - .prop = LV_STYLE_TEXT_ALIGN, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_RADIUS(val) \ - { \ - .prop = LV_STYLE_RADIUS, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_CLIP_CORNER(val) \ - { \ - .prop = LV_STYLE_CLIP_CORNER, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_OPA(val) \ - { \ - .prop = LV_STYLE_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_COLOR_FILTER_DSC(val) \ - { \ - .prop = LV_STYLE_COLOR_FILTER_DSC, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_COLOR_FILTER_OPA(val) \ - { \ - .prop = LV_STYLE_COLOR_FILTER_OPA, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ANIM(val) \ - { \ - .prop = LV_STYLE_ANIM, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_ANIM_TIME(val) \ - { \ - .prop = LV_STYLE_ANIM_TIME, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_ANIM_SPEED(val) \ - { \ - .prop = LV_STYLE_ANIM_SPEED, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_TRANSITION(val) \ - { \ - .prop = LV_STYLE_TRANSITION, .value = { .ptr = val } \ - } - -#define LV_STYLE_CONST_BLEND_MODE(val) \ - { \ - .prop = LV_STYLE_BLEND_MODE, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_LAYOUT(val) \ - { \ - .prop = LV_STYLE_LAYOUT, .value = { .num = (int32_t)val } \ - } - -#define LV_STYLE_CONST_BASE_DIR(val) \ - { \ - .prop = LV_STYLE_BASE_DIR, .value = { .num = (int32_t)val } \ - } diff --git a/src/lib/lvgl/src/misc/lv_templ.h b/src/lib/lvgl/src/misc/lv_templ.h deleted file mode 100644 index f7e3c26..0000000 --- a/src/lib/lvgl/src/misc/lv_templ.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @file lv_templ.h - * - */ - -#ifndef LV_TEMPL_H -#define LV_TEMPL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TEMPL_H*/ diff --git a/src/lib/lvgl/src/misc/lv_timer.h b/src/lib/lvgl/src/misc/lv_timer.h deleted file mode 100644 index a9a8e50..0000000 --- a/src/lib/lvgl/src/misc/lv_timer.h +++ /dev/null @@ -1,183 +0,0 @@ -/** - * @file lv_timer.h - */ - -#ifndef LV_TIMER_H -#define LV_TIMER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "../hal/lv_hal_tick.h" - -#include -#include - -/********************* - * DEFINES - *********************/ -#ifndef LV_ATTRIBUTE_TIMER_HANDLER -#define LV_ATTRIBUTE_TIMER_HANDLER -#endif - -#define LV_NO_TIMER_READY 0xFFFFFFFF - -/********************** - * TYPEDEFS - **********************/ - -struct _lv_timer_t; - -/** - * Timers execute this type of functions. - */ -typedef void (*lv_timer_cb_t)(struct _lv_timer_t *); - -/** - * Descriptor of a lv_timer - */ -typedef struct _lv_timer_t { - uint32_t period; /**< How often the timer should run*/ - uint32_t last_run; /**< Last time the timer ran*/ - lv_timer_cb_t timer_cb; /**< Timer function*/ - void * user_data; /**< Custom user data*/ - int32_t repeat_count; /**< 1: One time; -1 : infinity; n>0: residual times*/ - uint32_t paused : 1; -} lv_timer_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Init the lv_timer module - */ -void _lv_timer_core_init(void); - -//! @cond Doxygen_Suppress - -/** - * Call it periodically to handle lv_timers. - * @return time till it needs to be run next (in ms) - */ -LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler(void); - -//! @endcond - -/** - * Call it in the super-loop of main() or threads. It will run lv_timer_handler() - * with a given period in ms. You can use it with sleep or delay in OS environment. - * This function is used to simplify the porting. - * @param __ms the period for running lv_timer_handler() - */ -static inline LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler_run_in_period(uint32_t ms) -{ - static uint32_t last_tick = 0; - uint32_t curr_tick = lv_tick_get(); - - if((curr_tick - last_tick) >= (ms)) { - last_tick = curr_tick; - return lv_timer_handler(); - } - return 1; -} - -/** - * Create an "empty" timer. It needs to initialized with at least - * `lv_timer_set_cb` and `lv_timer_set_period` - * @return pointer to the created timer - */ -lv_timer_t * lv_timer_create_basic(void); - -/** - * Create a new lv_timer - * @param timer_xcb a callback to call periodically. - * (the 'x' in the argument name indicates that it's not a fully generic function because it not follows - * the `func_name(object, callback, ...)` convention) - * @param period call period in ms unit - * @param user_data custom parameter - * @return pointer to the new timer - */ -lv_timer_t * lv_timer_create(lv_timer_cb_t timer_xcb, uint32_t period, void * user_data); - -/** - * Delete a lv_timer - * @param timer pointer to an lv_timer - */ -void lv_timer_del(lv_timer_t * timer); - -/** - * Pause/resume a timer. - * @param timer pointer to an lv_timer - */ -void lv_timer_pause(lv_timer_t * timer); - -void lv_timer_resume(lv_timer_t * timer); - -/** - * Set the callback the timer (the function to call periodically) - * @param timer pointer to a timer - * @param timer_cb the function to call periodically - */ -void lv_timer_set_cb(lv_timer_t * timer, lv_timer_cb_t timer_cb); - -/** - * Set new period for a lv_timer - * @param timer pointer to a lv_timer - * @param period the new period - */ -void lv_timer_set_period(lv_timer_t * timer, uint32_t period); - -/** - * Make a lv_timer ready. It will not wait its period. - * @param timer pointer to a lv_timer. - */ -void lv_timer_ready(lv_timer_t * timer); - -/** - * Set the number of times a timer will repeat. - * @param timer pointer to a lv_timer. - * @param repeat_count -1 : infinity; 0 : stop ; n>0: residual times - */ -void lv_timer_set_repeat_count(lv_timer_t * timer, int32_t repeat_count); - -/** - * Reset a lv_timer. - * It will be called the previously set period milliseconds later. - * @param timer pointer to a lv_timer. - */ -void lv_timer_reset(lv_timer_t * timer); - -/** - * Enable or disable the whole lv_timer handling - * @param en true: lv_timer handling is running, false: lv_timer handling is suspended - */ -void lv_timer_enable(bool en); - -/** - * Get idle percentage - * @return the lv_timer idle in percentage - */ -uint8_t lv_timer_get_idle(void); - -/** - * Iterate through the timers - * @param timer NULL to start iteration or the previous return value to get the next timer - * @return the next timer or NULL if there is no more timer - */ -lv_timer_t * lv_timer_get_next(lv_timer_t * timer); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/misc/lv_tlsf.h b/src/lib/lvgl/src/misc/lv_tlsf.h deleted file mode 100644 index 9380ee8..0000000 --- a/src/lib/lvgl/src/misc/lv_tlsf.h +++ /dev/null @@ -1,95 +0,0 @@ -#include "../lv_conf_internal.h" -#if LV_MEM_CUSTOM == 0 - -#ifndef LV_TLSF_H -#define LV_TLSF_H - -/* -** Two Level Segregated Fit memory allocator, version 3.1. -** Written by Matthew Conte -** http://tlsf.baisoku.org -** -** Based on the original documentation by Miguel Masmano: -** http://www.gii.upv.es/tlsf/main/docs -** -** This implementation was written to the specification -** of the document, therefore no GPL restrictions apply. -** -** Copyright (c) 2006-2016, Matthew Conte -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * 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. -** * Neither the name of the copyright holder 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 AND CONTRIBUTORS "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 MATTHEW CONTE 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. -*/ - -#include - -#if defined(__cplusplus) -extern "C" { -#endif - -/* lv_tlsf_t: a TLSF structure. Can contain 1 to N pools. */ -/* lv_pool_t: a block of memory that TLSF can manage. */ -typedef void * lv_tlsf_t; -typedef void * lv_pool_t; - -/* Create/destroy a memory pool. */ -lv_tlsf_t lv_tlsf_create(void * mem); -lv_tlsf_t lv_tlsf_create_with_pool(void * mem, size_t bytes); -void lv_tlsf_destroy(lv_tlsf_t tlsf); -lv_pool_t lv_tlsf_get_pool(lv_tlsf_t tlsf); - -/* Add/remove memory pools. */ -lv_pool_t lv_tlsf_add_pool(lv_tlsf_t tlsf, void * mem, size_t bytes); -void lv_tlsf_remove_pool(lv_tlsf_t tlsf, lv_pool_t pool); - -/* malloc/memalign/realloc/free replacements. */ -void * lv_tlsf_malloc(lv_tlsf_t tlsf, size_t bytes); -void * lv_tlsf_memalign(lv_tlsf_t tlsf, size_t align, size_t bytes); -void * lv_tlsf_realloc(lv_tlsf_t tlsf, void * ptr, size_t size); -void lv_tlsf_free(lv_tlsf_t tlsf, const void * ptr); - -/* Returns internal block size, not original request size */ -size_t lv_tlsf_block_size(void * ptr); - -/* Overheads/limits of internal structures. */ -size_t lv_tlsf_size(void); -size_t lv_tlsf_align_size(void); -size_t lv_tlsf_block_size_min(void); -size_t lv_tlsf_block_size_max(void); -size_t lv_tlsf_pool_overhead(void); -size_t lv_tlsf_alloc_overhead(void); - -/* Debugging. */ -typedef void (*lv_tlsf_walker)(void * ptr, size_t size, int used, void * user); -void lv_tlsf_walk_pool(lv_pool_t pool, lv_tlsf_walker walker, void * user); -/* Returns nonzero if any internal consistency check fails. */ -int lv_tlsf_check(lv_tlsf_t tlsf); -int lv_tlsf_check_pool(lv_pool_t pool); - -#if defined(__cplusplus) -}; -#endif - -#endif /*LV_TLSF_H*/ - -#endif /* LV_MEM_CUSTOM == 0 */ diff --git a/src/lib/lvgl/src/misc/lv_txt.h b/src/lib/lvgl/src/misc/lv_txt.h deleted file mode 100644 index 46050dc..0000000 --- a/src/lib/lvgl/src/misc/lv_txt.h +++ /dev/null @@ -1,264 +0,0 @@ -/** - * @file lv_txt.h - * - */ - -#ifndef LV_TXT_H -#define LV_TXT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#include -#include -#include "lv_area.h" -#include "../font/lv_font.h" -#include "lv_printf.h" -#include "lv_types.h" - -/********************* - * DEFINES - *********************/ -#ifndef LV_TXT_COLOR_CMD -#define LV_TXT_COLOR_CMD "#" -#endif - -#define LV_TXT_ENC_UTF8 1 -#define LV_TXT_ENC_ASCII 2 - -/********************** - * TYPEDEFS - **********************/ - -/** - * Options for text rendering. - */ -enum { - LV_TEXT_FLAG_NONE = 0x00, - LV_TEXT_FLAG_RECOLOR = 0x01, /**< Enable parsing of recolor command*/ - LV_TEXT_FLAG_EXPAND = 0x02, /**< Ignore max-width to avoid automatic word wrapping*/ - LV_TEXT_FLAG_FIT = 0x04, /**< Max-width is already equal to the longest line. (Used to skip some calculation)*/ -}; -typedef uint8_t lv_text_flag_t; - -/** - * State machine for text renderer.*/ -enum { - LV_TEXT_CMD_STATE_WAIT, /**< Waiting for command*/ - LV_TEXT_CMD_STATE_PAR, /**< Processing the parameter*/ - LV_TEXT_CMD_STATE_IN, /**< Processing the command*/ -}; -typedef uint8_t lv_text_cmd_state_t; - -/** Label align policy*/ -enum { - LV_TEXT_ALIGN_AUTO, /**< Align text auto*/ - LV_TEXT_ALIGN_LEFT, /**< Align text to left*/ - LV_TEXT_ALIGN_CENTER, /**< Align text to center*/ - LV_TEXT_ALIGN_RIGHT, /**< Align text to right*/ -}; -typedef uint8_t lv_text_align_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Get size of a text - * @param size_res pointer to a 'point_t' variable to store the result - * @param text pointer to a text - * @param font pointer to font of the text - * @param letter_space letter space of the text - * @param line_space line space of the text - * @param flags settings for the text from ::lv_text_flag_t - * @param max_width max width of the text (break the lines to fit this size). Set COORD_MAX to avoid - * line breaks - */ -void lv_txt_get_size(lv_point_t * size_res, const char * text, const lv_font_t * font, lv_coord_t letter_space, - lv_coord_t line_space, lv_coord_t max_width, lv_text_flag_t flag); - -/** - * Get the next line of text. Check line length and break chars too. - * @param txt a '\0' terminated string - * @param font pointer to a font - * @param letter_space letter space - * @param max_width max width of the text (break the lines to fit this size). Set COORD_MAX to avoid - * line breaks - * @param used_width When used_width != NULL, save the width of this line if - * flag == LV_TEXT_FLAG_NONE, otherwise save -1. - * @param flags settings for the text from 'txt_flag_type' enum - * @return the index of the first char of the new line (in byte index not letter index. With UTF-8 - * they are different) - */ -uint32_t _lv_txt_get_next_line(const char * txt, const lv_font_t * font, lv_coord_t letter_space, - lv_coord_t max_width, lv_coord_t * used_width, lv_text_flag_t flag); - -/** - * Give the length of a text with a given font - * @param txt a '\0' terminate string - * @param length length of 'txt' in byte count and not characters (Á is 1 character but 2 bytes in - * UTF-8) - * @param font pointer to a font - * @param letter_space letter space - * @param flags settings for the text from 'txt_flag_t' enum - * @return length of a char_num long text - */ -lv_coord_t lv_txt_get_width(const char * txt, uint32_t length, const lv_font_t * font, lv_coord_t letter_space, - lv_text_flag_t flag); - -/** - * Check next character in a string and decide if the character is part of the command or not - * @param state pointer to a txt_cmd_state_t variable which stores the current state of command - * processing - * @param c the current character - * @return true: the character is part of a command and should not be written, - * false: the character should be written - */ -bool _lv_txt_is_cmd(lv_text_cmd_state_t * state, uint32_t c); - -/** - * Insert a string into an other - * @param txt_buf the original text (must be big enough for the result text and NULL terminated) - * @param pos position to insert (0: before the original text, 1: after the first char etc.) - * @param ins_txt text to insert, must be '\0' terminated - */ -void _lv_txt_ins(char * txt_buf, uint32_t pos, const char * ins_txt); - -/** - * Delete a part of a string - * @param txt string to modify, must be '\0' terminated and should point to a heap or stack frame, not read-only memory. - * @param pos position where to start the deleting (0: before the first char, 1: after the first - * char etc.) - * @param len number of characters to delete - */ -void _lv_txt_cut(char * txt, uint32_t pos, uint32_t len); - -/** - * return a new formatted text. Memory will be allocated to store the text. - * @param fmt `printf`-like format - * @return pointer to the allocated text string. - */ -char * _lv_txt_set_text_vfmt(const char * fmt, va_list ap) LV_FORMAT_ATTRIBUTE(1, 0); - -/** - * Decode two encoded character from a string. - * @param txt pointer to '\0' terminated string - * @param letter the first decoded Unicode character or 0 on invalid data code - * @param letter_next the second decoded Unicode character or 0 on invalid data code - * @param ofs start index in 'txt' where to start. - * After the call it will point to the next encoded char in 'txt'. - * NULL to use txt[0] as index - */ -void _lv_txt_encoded_letter_next_2(const char * txt, uint32_t * letter, uint32_t * letter_next, uint32_t * ofs); - -/** - * Test if char is break char or not (a text can broken here or not) - * @param letter a letter - * @return false: 'letter' is not break char - */ -static inline bool _lv_txt_is_break_char(uint32_t letter) -{ - uint8_t i; - bool ret = false; - - /* each chinese character can be break */ - if(letter >= 0x4E00 && letter <= 0x9FA5) { - return true; - } - - /*Compare the letter to TXT_BREAK_CHARS*/ - for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) { - if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) { - ret = true; /*If match then it is break char*/ - break; - } - } - - return ret; -} - -/*************************************************************** - * GLOBAL FUNCTION POINTERS FOR CHARACTER ENCODING INTERFACE - ***************************************************************/ - -/** - * Give the size of an encoded character - * @param str pointer to a character in a string - * @return length of the encoded character (1,2,3 ...). O in invalid - */ -extern uint8_t (*_lv_txt_encoded_size)(const char *); - -/** - * Convert a Unicode letter to encoded - * @param letter_uni a Unicode letter - * @return Encoded character in Little Endian to be compatible with C chars (e.g. 'Á', 'Ü') - */ -extern uint32_t (*_lv_txt_unicode_to_encoded)(uint32_t); - -/** - * Convert a wide character, e.g. 'Á' little endian to be compatible with the encoded format. - * @param c a wide character - * @return `c` in the encoded format - */ -extern uint32_t (*_lv_txt_encoded_conv_wc)(uint32_t c); - -/** - * Decode the next encoded character from a string. - * @param txt pointer to '\0' terminated string - * @param i start index in 'txt' where to start. - * After the call it will point to the next encoded char in 'txt'. - * NULL to use txt[0] as index - * @return the decoded Unicode character or 0 on invalid data code - */ -extern uint32_t (*_lv_txt_encoded_next)(const char *, uint32_t *); - -/** - * Get the previous encoded character form a string. - * @param txt pointer to '\0' terminated string - * @param i_start index in 'txt' where to start. After the call it will point to the previous - * encoded char in 'txt'. - * @return the decoded Unicode character or 0 on invalid data - */ -extern uint32_t (*_lv_txt_encoded_prev)(const char *, uint32_t *); - -/** - * Convert a letter index (in the encoded text) to byte index. - * E.g. in UTF-8 "AÁRT" index of 'R' is 2 but start at byte 3 because 'Á' is 2 bytes long - * @param txt a '\0' terminated UTF-8 string - * @param enc_id letter index - * @return byte index of the 'enc_id'th letter - */ -extern uint32_t (*_lv_txt_encoded_get_byte_id)(const char *, uint32_t); - -/** - * Convert a byte index (in an encoded text) to character index. - * E.g. in UTF-8 "AÁRT" index of 'R' is 2 but start at byte 3 because 'Á' is 2 bytes long - * @param txt a '\0' terminated UTF-8 string - * @param byte_id byte index - * @return character index of the letter at 'byte_id'th position - */ -extern uint32_t (*_lv_txt_encoded_get_char_id)(const char *, uint32_t); - -/** - * Get the number of characters (and NOT bytes) in a string. - * E.g. in UTF-8 "ÁBC" is 3 characters (but 4 bytes) - * @param txt a '\0' terminated char string - * @return number of characters - */ -extern uint32_t (*_lv_txt_get_encoded_length)(const char *); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TXT_H*/ diff --git a/src/lib/lvgl/src/misc/lv_txt_ap.h b/src/lib/lvgl/src/misc/lv_txt_ap.h deleted file mode 100644 index e2d94b8..0000000 --- a/src/lib/lvgl/src/misc/lv_txt_ap.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file lv_txt_ap.h - * - */ - -#ifndef LV_TXT_AP_H -#define LV_TXT_AP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include -#include "lv_txt.h" -#include "../draw/lv_draw.h" - -#if LV_USE_ARABIC_PERSIAN_CHARS == 1 - -/********************* - * DEFINES - *********************/ - -#define LV_UNDEF_ARABIC_PERSIAN_CHARS (UINT32_MAX) -#define LV_AP_ALPHABET_BASE_CODE 0x0622 -#define LV_AP_END_CHARS_LIST {0,0,0,0,0,{0,0}} -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ -uint32_t _lv_txt_ap_calc_bytes_cnt(const char * txt); -void _lv_txt_ap_proc(const char * txt, char * txt_out); - -/********************** - * MACROS - **********************/ - -#endif // LV_USE_ARABIC_PERSIAN_CHARS - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TXT_AP_H*/ diff --git a/src/lib/lvgl/src/misc/lv_types.h b/src/lib/lvgl/src/misc/lv_types.h deleted file mode 100644 index 9f8ef4c..0000000 --- a/src/lib/lvgl/src/misc/lv_types.h +++ /dev/null @@ -1,94 +0,0 @@ -/** - * @file lv_types.h - * - */ - -#ifndef LV_TYPES_H -#define LV_TYPES_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include - -/********************* - * DEFINES - *********************/ - -// If __UINTPTR_MAX__ or UINTPTR_MAX are available, use them to determine arch size -#if defined(__UINTPTR_MAX__) && __UINTPTR_MAX__ > 0xFFFFFFFF -#define LV_ARCH_64 - -#elif defined(UINTPTR_MAX) && UINTPTR_MAX > 0xFFFFFFFF -#define LV_ARCH_64 - -// Otherwise use compiler-dependent means to determine arch size -#elif defined(_WIN64) || defined(__x86_64__) || defined(__ppc64__) || defined (__aarch64__) -#define LV_ARCH_64 - -#endif - -/********************** - * TYPEDEFS - **********************/ - -/** - * LVGL error codes. - */ -enum { - LV_RES_INV = 0, /*Typically indicates that the object is deleted (become invalid) in the action - function or an operation was failed*/ - LV_RES_OK, /*The object is valid (no deleted) after the action*/ -}; -typedef uint8_t lv_res_t; - -#if defined(__cplusplus) || __STDC_VERSION__ >= 199901L -// If c99 or newer, use the definition of uintptr_t directly from -typedef uintptr_t lv_uintptr_t; - -#else - -// Otherwise, use the arch size determination -#ifdef LV_ARCH_64 -typedef uint64_t lv_uintptr_t; -#else -typedef uint32_t lv_uintptr_t; -#endif - -#endif - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/********************** - * MACROS - **********************/ - -#define LV_UNUSED(x) ((void)x) - -#define _LV_CONCAT(x, y) x ## y -#define LV_CONCAT(x, y) _LV_CONCAT(x, y) - -#define _LV_CONCAT3(x, y, z) x ## y ## z -#define LV_CONCAT3(x, y, z) _LV_CONCAT3(x, y, z) - -#if defined(PYCPARSER) -#define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) -#elif defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4) -#define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) __attribute__((format(gnu_printf, fmtstr, vararg))) -#elif (defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)) -#define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) __attribute__((format(printf, fmtstr, vararg))) -#else -#define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TYPES_H*/ diff --git a/src/lib/lvgl/src/misc/lv_utils.h b/src/lib/lvgl/src/misc/lv_utils.h deleted file mode 100644 index 84d2bb9..0000000 --- a/src/lib/lvgl/src/misc/lv_utils.h +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @file lv_utils.h - * - */ - -#ifndef LV_UTILS_H -#define LV_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** Searches base[0] to base[n - 1] for an item that matches *key. - * - * @note The function cmp must return negative if it's first - * argument (the search key) is less that it's second (a table entry), - * zero if equal, and positive if greater. - * - * @note Items in the array must be in ascending order. - * - * @param key Pointer to item being searched for - * @param base Pointer to first element to search - * @param n Number of elements - * @param size Size of each element - * @param cmp Pointer to comparison function (see #unicode_list_compare as a comparison function - * example) - * - * @return a pointer to a matching item, or NULL if none exists. - */ -void * _lv_utils_bsearch(const void * key, const void * base, uint32_t n, uint32_t size, - int32_t (*cmp)(const void * pRef, const void * pElement)); - -/********************** - * MACROS - **********************/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/src/lib/lvgl/src/widgets/lv_arc.h b/src/lib/lvgl/src/widgets/lv_arc.h deleted file mode 100644 index 8ec39a4..0000000 --- a/src/lib/lvgl/src/widgets/lv_arc.h +++ /dev/null @@ -1,240 +0,0 @@ -/** - * @file lv_arc.h - * - */ - -#ifndef LV_ARC_H -#define LV_ARC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_ARC != 0 - -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_ARC_MODE_NORMAL, - LV_ARC_MODE_SYMMETRICAL, - LV_ARC_MODE_REVERSE -}; -typedef uint8_t lv_arc_mode_t; - -typedef struct { - lv_obj_t obj; - uint16_t rotation; - uint16_t indic_angle_start; - uint16_t indic_angle_end; - uint16_t bg_angle_start; - uint16_t bg_angle_end; - int16_t value; /*Current value of the arc*/ - int16_t min_value; /*Minimum value of the arc*/ - int16_t max_value; /*Maximum value of the arc*/ - uint16_t dragging : 1; - uint16_t type : 2; - uint16_t min_close : 1; /*1: the last pressed angle was closer to minimum end*/ - uint16_t chg_rate; /*Drag angle rate of change of the arc (degrees/sec)*/ - uint32_t last_tick; /*Last dragging event timestamp of the arc*/ - int16_t last_angle; /*Last dragging angle of the arc*/ -} lv_arc_t; - -extern const lv_obj_class_t lv_arc_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_arc_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_ARC_DRAW_PART_BACKGROUND, /**< The background arc*/ - LV_ARC_DRAW_PART_FOREGROUND, /**< The foreground arc*/ - LV_ARC_DRAW_PART_KNOB, /**< The knob*/ -} lv_arc_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create an arc object - * @param parent pointer to an object, it will be the parent of the new arc - * @return pointer to the created arc - */ -lv_obj_t * lv_arc_create(lv_obj_t * parent); - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the start angle of an arc. 0 deg: right, 90 bottom, etc. - * @param arc pointer to an arc object - * @param start the start angle - */ -void lv_arc_set_start_angle(lv_obj_t * arc, uint16_t start); - -/** - * Set the end angle of an arc. 0 deg: right, 90 bottom, etc. - * @param arc pointer to an arc object - * @param end the end angle - */ -void lv_arc_set_end_angle(lv_obj_t * arc, uint16_t end); - -/** - * Set the start and end angles - * @param arc pointer to an arc object - * @param start the start angle - * @param end the end angle - */ -void lv_arc_set_angles(lv_obj_t * arc, uint16_t start, uint16_t end); - -/** - * Set the start angle of an arc background. 0 deg: right, 90 bottom, etc. - * @param arc pointer to an arc object - * @param start the start angle - */ -void lv_arc_set_bg_start_angle(lv_obj_t * arc, uint16_t start); - -/** - * Set the start angle of an arc background. 0 deg: right, 90 bottom etc. - * @param arc pointer to an arc object - * @param end the end angle - */ -void lv_arc_set_bg_end_angle(lv_obj_t * arc, uint16_t end); - -/** - * Set the start and end angles of the arc background - * @param arc pointer to an arc object - * @param start the start angle - * @param end the end angle - */ -void lv_arc_set_bg_angles(lv_obj_t * arc, uint16_t start, uint16_t end); - -/** - * Set the rotation for the whole arc - * @param arc pointer to an arc object - * @param rotation rotation angle - */ -void lv_arc_set_rotation(lv_obj_t * arc, uint16_t rotation); - -/** - * Set the type of arc. - * @param arc pointer to arc object - * @param mode arc's mode - */ -void lv_arc_set_mode(lv_obj_t * arc, lv_arc_mode_t type); - -/** - * Set a new value on the arc - * @param arc pointer to an arc object - * @param value new value - */ -void lv_arc_set_value(lv_obj_t * arc, int16_t value); - -/** - * Set minimum and the maximum values of an arc - * @param arc pointer to the arc object - * @param min minimum value - * @param max maximum value - */ -void lv_arc_set_range(lv_obj_t * arc, int16_t min, int16_t max); - -/** - * Set a change rate to limit the speed how fast the arc should reach the pressed point. - * @param arc pointer to an arc object - * @param rate the change rate - */ -void lv_arc_set_change_rate(lv_obj_t * arc, uint16_t rate); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the start angle of an arc. - * @param arc pointer to an arc object - * @return the start angle [0..360] - */ -uint16_t lv_arc_get_angle_start(lv_obj_t * obj); - -/** - * Get the end angle of an arc. - * @param arc pointer to an arc object - * @return the end angle [0..360] - */ -uint16_t lv_arc_get_angle_end(lv_obj_t * obj); - -/** - * Get the start angle of an arc background. - * @param arc pointer to an arc object - * @return the start angle [0..360] - */ -uint16_t lv_arc_get_bg_angle_start(lv_obj_t * obj); - -/** - * Get the end angle of an arc background. - * @param arc pointer to an arc object - * @return the end angle [0..360] - */ -uint16_t lv_arc_get_bg_angle_end(lv_obj_t * obj); - -/** - * Get the value of an arc - * @param arc pointer to an arc object - * @return the value of the arc - */ -int16_t lv_arc_get_value(const lv_obj_t * obj); - -/** - * Get the minimum value of an arc - * @param arc pointer to an arc object - * @return the minimum value of the arc - */ -int16_t lv_arc_get_min_value(const lv_obj_t * obj); - -/** - * Get the maximum value of an arc - * @param arc pointer to an arc object - * @return the maximum value of the arc - */ -int16_t lv_arc_get_max_value(const lv_obj_t * obj); - -/** - * Get whether the arc is type or not. - * @param arc pointer to an arc object - * @return arc's mode - */ -lv_arc_mode_t lv_arc_get_mode(const lv_obj_t * obj); - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_ARC*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_ARC_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_bar.h b/src/lib/lvgl/src/widgets/lv_bar.h deleted file mode 100644 index 1726425..0000000 --- a/src/lib/lvgl/src/widgets/lv_bar.h +++ /dev/null @@ -1,164 +0,0 @@ -/** - * @file lv_bar.h - * - */ - -#ifndef LV_BAR_H -#define LV_BAR_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_BAR != 0 - -#include "../core/lv_obj.h" -#include "../misc/lv_anim.h" -#include "lv_btn.h" -#include "lv_label.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_BAR_MODE_NORMAL, - LV_BAR_MODE_SYMMETRICAL, - LV_BAR_MODE_RANGE -}; -typedef uint8_t lv_bar_mode_t; - -typedef struct { - lv_obj_t * bar; - int32_t anim_start; - int32_t anim_end; - int32_t anim_state; -} _lv_bar_anim_t; - -typedef struct { - lv_obj_t obj; - int32_t cur_value; /**< Current value of the bar*/ - int32_t min_value; /**< Minimum value of the bar*/ - int32_t max_value; /**< Maximum value of the bar*/ - int32_t start_value; /**< Start value of the bar*/ - lv_area_t indic_area; /**< Save the indicator area. Might be used by derived types*/ - _lv_bar_anim_t cur_value_anim; - _lv_bar_anim_t start_value_anim; - lv_bar_mode_t mode : 2; /**< Type of bar*/ -} lv_bar_t; - -extern const lv_obj_class_t lv_bar_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_bar_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_BAR_DRAW_PART_INDICATOR, /**< The indicator*/ -} lv_bar_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a bar object - * @param parent pointer to an object, it will be the parent of the new bar - * @return pointer to the created bar - */ -lv_obj_t * lv_bar_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set a new value on the bar - * @param bar pointer to a bar object - * @param value new value - * @param anim LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately - */ -void lv_bar_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim); - -/** - * Set a new start value on the bar - * @param obj pointer to a bar object - * @param value new start value - * @param anim LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately - */ -void lv_bar_set_start_value(lv_obj_t * obj, int32_t start_value, lv_anim_enable_t anim); - -/** - * Set minimum and the maximum values of a bar - * @param obj pointer to the bar object - * @param min minimum value - * @param max maximum value - */ -void lv_bar_set_range(lv_obj_t * obj, int32_t min, int32_t max); - -/** - * Set the type of bar. - * @param obj pointer to bar object - * @param mode bar type from ::lv_bar_mode_t - */ -void lv_bar_set_mode(lv_obj_t * obj, lv_bar_mode_t mode); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the value of a bar - * @param obj pointer to a bar object - * @return the value of the bar - */ -int32_t lv_bar_get_value(const lv_obj_t * obj); - -/** - * Get the start value of a bar - * @param obj pointer to a bar object - * @return the start value of the bar - */ -int32_t lv_bar_get_start_value(const lv_obj_t * obj); - -/** - * Get the minimum value of a bar - * @param obj pointer to a bar object - * @return the minimum value of the bar - */ -int32_t lv_bar_get_min_value(const lv_obj_t * obj); - -/** - * Get the maximum value of a bar - * @param obj pointer to a bar object - * @return the maximum value of the bar - */ -int32_t lv_bar_get_max_value(const lv_obj_t * obj); - -/** - * Get the type of bar. - * @param obj pointer to bar object - * @return bar type from ::lv_bar_mode_t - */ -lv_bar_mode_t lv_bar_get_mode(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_BAR*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_BAR_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_btn.h b/src/lib/lvgl/src/widgets/lv_btn.h deleted file mode 100644 index 1d471f9..0000000 --- a/src/lib/lvgl/src/widgets/lv_btn.h +++ /dev/null @@ -1,56 +0,0 @@ -/** - * @file lv_btn.h - * - */ - -#ifndef LV_BTN_H -#define LV_BTN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_BTN != 0 -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_obj_t obj; -} lv_btn_t; - -extern const lv_obj_class_t lv_btn_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a button object - * @param parent pointer to an object, it will be the parent of the new button - * @return pointer to the created button - */ -lv_obj_t * lv_btn_create(lv_obj_t * parent); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_BTN*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_BTN_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_btnmatrix.h b/src/lib/lvgl/src/widgets/lv_btnmatrix.h deleted file mode 100644 index 780d57b..0000000 --- a/src/lib/lvgl/src/widgets/lv_btnmatrix.h +++ /dev/null @@ -1,225 +0,0 @@ -/** - * @file lv_btnmatrix.h - * - */ - -#ifndef LV_BTNMATRIX_H -#define LV_BTNMATRIX_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_BTNMATRIX != 0 - -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ -#define LV_BTNMATRIX_BTN_NONE 0xFFFF -LV_EXPORT_CONST_INT(LV_BTNMATRIX_BTN_NONE); - -/********************** - * TYPEDEFS - **********************/ - -/** Type to store button control bits (disabled, hidden etc.) - * The first 3 bits are used to store the width*/ -enum { - _LV_BTNMATRIX_WIDTH = 0x0007, /**< Reserved to stire the size units*/ - LV_BTNMATRIX_CTRL_HIDDEN = 0x0008, /**< Button hidden*/ - LV_BTNMATRIX_CTRL_NO_REPEAT = 0x0010, /**< Do not repeat press this button.*/ - LV_BTNMATRIX_CTRL_DISABLED = 0x0020, /**< Disable this button.*/ - LV_BTNMATRIX_CTRL_CHECKABLE = 0x0040, /**< The button can be toggled.*/ - LV_BTNMATRIX_CTRL_CHECKED = 0x0080, /**< Button is currently toggled (e.g. checked).*/ - LV_BTNMATRIX_CTRL_CLICK_TRIG = 0x0100, /**< 1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS*/ - LV_BTNMATRIX_CTRL_POPOVER = 0x0200, /**< Show a popover when pressing this key*/ - LV_BTNMATRIX_CTRL_RECOLOR = 0x1000, /**< Enable text recoloring with `#color`*/ - _LV_BTNMATRIX_CTRL_RESERVED = 0x2000, /**< Reserved for later use*/ - LV_BTNMATRIX_CTRL_CUSTOM_1 = 0x4000, /**< Custom free to use flag*/ - LV_BTNMATRIX_CTRL_CUSTOM_2 = 0x8000, /**< Custom free to use flag*/ -}; - -typedef uint16_t lv_btnmatrix_ctrl_t; - -typedef bool (*lv_btnmatrix_btn_draw_cb_t)(lv_obj_t * btnm, uint32_t btn_id, const lv_area_t * draw_area, - const lv_area_t * clip_area); - -/*Data of button matrix*/ -typedef struct { - lv_obj_t obj; - const char ** map_p; /*Pointer to the current map*/ - lv_area_t * button_areas; /*Array of areas of buttons*/ - lv_btnmatrix_ctrl_t * ctrl_bits; /*Array of control bytes*/ - uint16_t btn_cnt; /*Number of button in 'map_p'(Handled by the library)*/ - uint16_t row_cnt; /*Number of rows in 'map_p'(Handled by the library)*/ - uint16_t btn_id_sel; /*Index of the active button (being pressed/released etc) or LV_BTNMATRIX_BTN_NONE*/ - uint8_t one_check : 1; /*Single button toggled at once*/ -} lv_btnmatrix_t; - -extern const lv_obj_class_t lv_btnmatrix_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_btnmatrix_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_BTNMATRIX_DRAW_PART_BTN, /**< The rectangle and label of buttons*/ -} lv_btnmatrix_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a button matrix object - * @param parent pointer to an object, it will be the parent of the new button matrix - * @return pointer to the created button matrix - */ -lv_obj_t * lv_btnmatrix_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set a new map. Buttons will be created/deleted according to the map. The - * button matrix keeps a reference to the map and so the string array must not - * be deallocated during the life of the matrix. - * @param obj pointer to a button matrix object - * @param map pointer a string array. The last string has to be: "". Use "\n" to make a line break. - */ -void lv_btnmatrix_set_map(lv_obj_t * obj, const char * map[]); - -/** - * Set the button control map (hidden, disabled etc.) for a button matrix. - * The control map array will be copied and so may be deallocated after this - * function returns. - * @param obj pointer to a button matrix object - * @param ctrl_map pointer to an array of `lv_btn_ctrl_t` control bytes. The - * length of the array and position of the elements must match - * the number and order of the individual buttons (i.e. excludes - * newline entries). - * An element of the map should look like e.g.: - * `ctrl_map[0] = width | LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_TGL_ENABLE` - */ -void lv_btnmatrix_set_ctrl_map(lv_obj_t * obj, const lv_btnmatrix_ctrl_t ctrl_map[]); - -/** - * Set the selected buttons - * @param obj pointer to button matrix object - * @param btn_id 0 based index of the button to modify. (Not counting new lines) - */ -void lv_btnmatrix_set_selected_btn(lv_obj_t * obj, uint16_t btn_id); - -/** - * Set the attributes of a button of the button matrix - * @param obj pointer to button matrix object - * @param btn_id 0 based index of the button to modify. (Not counting new lines) - * @param ctrl OR-ed attributs. E.g. `LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_CHECKABLE` - */ -void lv_btnmatrix_set_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctrl_t ctrl); - -/** - * Clear the attributes of a button of the button matrix - * @param obj pointer to button matrix object - * @param btn_id 0 based index of the button to modify. (Not counting new lines) - * @param ctrl OR-ed attributs. E.g. `LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_CHECKABLE` - */ -void lv_btnmatrix_clear_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctrl_t ctrl); - -/** - * Set attributes of all buttons of a button matrix - * @param obj pointer to a button matrix object - * @param ctrl attribute(s) to set from `lv_btnmatrix_ctrl_t`. Values can be ORed. - */ -void lv_btnmatrix_set_btn_ctrl_all(lv_obj_t * obj, lv_btnmatrix_ctrl_t ctrl); - -/** - * Clear the attributes of all buttons of a button matrix - * @param obj pointer to a button matrix object - * @param ctrl attribute(s) to set from `lv_btnmatrix_ctrl_t`. Values can be ORed. - * @param en true: set the attributes; false: clear the attributes - */ -void lv_btnmatrix_clear_btn_ctrl_all(lv_obj_t * obj, lv_btnmatrix_ctrl_t ctrl); - -/** - * Set a single button's relative width. - * This method will cause the matrix be regenerated and is a relatively - * expensive operation. It is recommended that initial width be specified using - * `lv_btnmatrix_set_ctrl_map` and this method only be used for dynamic changes. - * @param obj pointer to button matrix object - * @param btn_id 0 based index of the button to modify. - * @param width relative width compared to the buttons in the same row. [1..7] - */ -void lv_btnmatrix_set_btn_width(lv_obj_t * obj, uint16_t btn_id, uint8_t width); - -/** - * Make the button matrix like a selector widget (only one button may be checked at a time). - * `LV_BTNMATRIX_CTRL_CHECKABLE` must be enabled on the buttons to be selected using - * `lv_btnmatrix_set_ctrl()` or `lv_btnmatrix_set_btn_ctrl_all()`. - * @param obj pointer to a button matrix object - * @param en whether "one check" mode is enabled - */ -void lv_btnmatrix_set_one_checked(lv_obj_t * obj, bool en); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the current map of a button matrix - * @param obj pointer to a button matrix object - * @return the current map - */ -const char ** lv_btnmatrix_get_map(const lv_obj_t * obj); - -/** - * Get the index of the lastly "activated" button by the user (pressed, released, focused etc) - * Useful in the `event_cb` to get the text of the button, check if hidden etc. - * @param obj pointer to button matrix object - * @return index of the last released button (LV_BTNMATRIX_BTN_NONE: if unset) - */ -uint16_t lv_btnmatrix_get_selected_btn(const lv_obj_t * obj); - -/** - * Get the button's text - * @param obj pointer to button matrix object - * @param btn_id the index a button not counting new line characters. - * @return text of btn_index` button - */ -const char * lv_btnmatrix_get_btn_text(const lv_obj_t * obj, uint16_t btn_id); - -/** - * Get the whether a control value is enabled or disabled for button of a button matrix - * @param obj pointer to a button matrix object - * @param btn_id the index of a button not counting new line characters. - * @param ctrl control values to check (ORed value can be used) - * @return true: the control attribute is enabled false: disabled - */ -bool lv_btnmatrix_has_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctrl_t ctrl); - -/** - * Tell whether "one check" mode is enabled or not. - * @param obj Button matrix object - * @return true: "one check" mode is enabled; false: disabled - */ -bool lv_btnmatrix_get_one_checked(const lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_BTNMATRIX*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_BTNMATRIX_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_canvas.h b/src/lib/lvgl/src/widgets/lv_canvas.h deleted file mode 100644 index 71f0516..0000000 --- a/src/lib/lvgl/src/widgets/lv_canvas.h +++ /dev/null @@ -1,280 +0,0 @@ -/** - * @file lv_canvas.h - * - */ - -#ifndef LV_CANVAS_H -#define LV_CANVAS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_CANVAS != 0 - -#include "../core/lv_obj.h" -#include "../widgets/lv_img.h" -#include "../draw/lv_draw_img.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -extern const lv_obj_class_t lv_canvas_class; - -/*Data of canvas*/ -typedef struct { - lv_img_t img; - lv_img_dsc_t dsc; -} lv_canvas_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a canvas object - * @param parent pointer to an object, it will be the parent of the new canvas - * @return pointer to the created canvas - */ -lv_obj_t * lv_canvas_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set a buffer for the canvas. - * @param buf a buffer where the content of the canvas will be. - * The required size is (lv_img_color_format_get_px_size(cf) * w) / 8 * h) - * It can be allocated with `lv_mem_alloc()` or - * it can be statically allocated array (e.g. static lv_color_t buf[100*50]) or - * it can be an address in RAM or external SRAM - * @param canvas pointer to a canvas object - * @param w width of the canvas - * @param h height of the canvas - * @param cf color format. `LV_IMG_CF_...` - */ -void lv_canvas_set_buffer(lv_obj_t * canvas, void * buf, lv_coord_t w, lv_coord_t h, lv_img_cf_t cf); - -/** - * Set the color of a pixel on the canvas - * @param canvas - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param c color of the pixel - */ -void lv_canvas_set_px_color(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_color_t c); - -/** - * DEPRECATED: added only for backward compatibility - */ -static inline void lv_canvas_set_px(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_color_t c) -{ - lv_canvas_set_px_color(canvas, x, y, c); -} - -/** - * Set the opacity of a pixel on the canvas - * @param canvas - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param opa opacity of the pixel (0..255) - */ -void lv_canvas_set_px_opa(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_opa_t opa); - - -/** - * Set the palette color of a canvas with index format. Valid only for `LV_IMG_CF_INDEXED1/2/4/8` - * @param canvas pointer to canvas object - * @param id the palette color to set: - * - for `LV_IMG_CF_INDEXED1`: 0..1 - * - for `LV_IMG_CF_INDEXED2`: 0..3 - * - for `LV_IMG_CF_INDEXED4`: 0..15 - * - for `LV_IMG_CF_INDEXED8`: 0..255 - * @param c the color to set - */ -void lv_canvas_set_palette(lv_obj_t * canvas, uint8_t id, lv_color_t c); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the color of a pixel on the canvas - * @param canvas - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @return color of the point - */ -lv_color_t lv_canvas_get_px(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y); - -/** - * Get the image of the canvas as a pointer to an `lv_img_dsc_t` variable. - * @param canvas pointer to a canvas object - * @return pointer to the image descriptor. - */ -lv_img_dsc_t * lv_canvas_get_img(lv_obj_t * canvas); - -/*===================== - * Other functions - *====================*/ - -/** - * Copy a buffer to the canvas - * @param canvas pointer to a canvas object - * @param to_copy buffer to copy. The color format has to match with the canvas's buffer color - * format - * @param x left side of the destination position - * @param y top side of the destination position - * @param w width of the buffer to copy - * @param h height of the buffer to copy - */ -void lv_canvas_copy_buf(lv_obj_t * canvas, const void * to_copy, lv_coord_t x, lv_coord_t y, lv_coord_t w, - lv_coord_t h); - -/** - * Transform and image and store the result on a canvas. - * @param canvas pointer to a canvas object to store the result of the transformation. - * @param img pointer to an image descriptor to transform. - * Can be the image descriptor of an other canvas too (`lv_canvas_get_img()`). - * @param angle the angle of rotation (0..3600), 0.1 deg resolution - * @param zoom zoom factor (256 no zoom); - * @param offset_x offset X to tell where to put the result data on destination canvas - * @param offset_y offset X to tell where to put the result data on destination canvas - * @param pivot_x pivot X of rotation. Relative to the source canvas - * Set to `source width / 2` to rotate around the center - * @param pivot_y pivot Y of rotation. Relative to the source canvas - * Set to `source height / 2` to rotate around the center - * @param antialias apply anti-aliasing during the transformation. Looks better but slower. - */ -void lv_canvas_transform(lv_obj_t * canvas, lv_img_dsc_t * img, int16_t angle, uint16_t zoom, lv_coord_t offset_x, - lv_coord_t offset_y, - int32_t pivot_x, int32_t pivot_y, bool antialias); - -/** - * Apply horizontal blur on the canvas - * @param canvas pointer to a canvas object - * @param area the area to blur. If `NULL` the whole canvas will be blurred. - * @param r radius of the blur - */ -void lv_canvas_blur_hor(lv_obj_t * canvas, const lv_area_t * area, uint16_t r); - -/** - * Apply vertical blur on the canvas - * @param canvas pointer to a canvas object - * @param area the area to blur. If `NULL` the whole canvas will be blurred. - * @param r radius of the blur - */ -void lv_canvas_blur_ver(lv_obj_t * canvas, const lv_area_t * area, uint16_t r); - -/** - * Fill the canvas with color - * @param canvas pointer to a canvas - * @param color the background color - * @param opa the desired opacity - */ -void lv_canvas_fill_bg(lv_obj_t * canvas, lv_color_t color, lv_opa_t opa); - -/** - * Draw a rectangle on the canvas - * @param canvas pointer to a canvas object - * @param x left coordinate of the rectangle - * @param y top coordinate of the rectangle - * @param w width of the rectangle - * @param h height of the rectangle - * @param draw_dsc descriptor of the rectangle - */ -void lv_canvas_draw_rect(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_coord_t w, lv_coord_t h, - const lv_draw_rect_dsc_t * draw_dsc); - -/** - * Draw a text on the canvas. - * @param canvas pointer to a canvas object - * @param x left coordinate of the text - * @param y top coordinate of the text - * @param max_w max width of the text. The text will be wrapped to fit into this size - * @param draw_dsc pointer to a valid label descriptor `lv_draw_label_dsc_t` - * @param txt text to display - */ -void lv_canvas_draw_text(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_coord_t max_w, - lv_draw_label_dsc_t * draw_dsc, const char * txt); - -/** - * Draw an image on the canvas - * @param canvas pointer to a canvas object - * @param x left coordinate of the image - * @param y top coordinate of the image - * @param src image source. Can be a pointer an `lv_img_dsc_t` variable or a path an image. - * @param draw_dsc pointer to a valid label descriptor `lv_draw_img_dsc_t` - */ -void lv_canvas_draw_img(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, const void * src, - const lv_draw_img_dsc_t * draw_dsc); - -/** - * Draw a line on the canvas - * @param canvas pointer to a canvas object - * @param points point of the line - * @param point_cnt number of points - * @param draw_dsc pointer to an initialized `lv_draw_line_dsc_t` variable - */ -void lv_canvas_draw_line(lv_obj_t * canvas, const lv_point_t points[], uint32_t point_cnt, - const lv_draw_line_dsc_t * draw_dsc); - -/** - * Draw a polygon on the canvas - * @param canvas pointer to a canvas object - * @param points point of the polygon - * @param point_cnt number of points - * @param draw_dsc pointer to an initialized `lv_draw_rect_dsc_t` variable - */ -void lv_canvas_draw_polygon(lv_obj_t * canvas, const lv_point_t points[], uint32_t point_cnt, - const lv_draw_rect_dsc_t * draw_dsc); - -/** - * Draw an arc on the canvas - * @param canvas pointer to a canvas object - * @param x origo x of the arc - * @param y origo y of the arc - * @param r radius of the arc - * @param start_angle start angle in degrees - * @param end_angle end angle in degrees - * @param draw_dsc pointer to an initialized `lv_draw_line_dsc_t` variable - */ -void lv_canvas_draw_arc(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_coord_t r, int32_t start_angle, - int32_t end_angle, const lv_draw_arc_dsc_t * draw_dsc); - -/********************** - * MACROS - **********************/ -#define LV_CANVAS_BUF_SIZE_TRUE_COLOR(w, h) LV_IMG_BUF_SIZE_TRUE_COLOR(w, h) -#define LV_CANVAS_BUF_SIZE_TRUE_COLOR_CHROMA_KEYED(w, h) LV_IMG_BUF_SIZE_TRUE_COLOR_CHROMA_KEYED(w, h) -#define LV_CANVAS_BUF_SIZE_TRUE_COLOR_ALPHA(w, h) LV_IMG_BUF_SIZE_TRUE_COLOR_ALPHA(w, h) - -/*+ 1: to be sure no fractional row*/ -#define LV_CANVAS_BUF_SIZE_ALPHA_1BIT(w, h) LV_IMG_BUF_SIZE_ALPHA_1BIT(w, h) -#define LV_CANVAS_BUF_SIZE_ALPHA_2BIT(w, h) LV_IMG_BUF_SIZE_ALPHA_2BIT(w, h) -#define LV_CANVAS_BUF_SIZE_ALPHA_4BIT(w, h) LV_IMG_BUF_SIZE_ALPHA_4BIT(w, h) -#define LV_CANVAS_BUF_SIZE_ALPHA_8BIT(w, h) LV_IMG_BUF_SIZE_ALPHA_8BIT(w, h) - -/*4 * X: for palette*/ -#define LV_CANVAS_BUF_SIZE_INDEXED_1BIT(w, h) LV_IMG_BUF_SIZE_INDEXED_1BIT(w, h) -#define LV_CANVAS_BUF_SIZE_INDEXED_2BIT(w, h) LV_IMG_BUF_SIZE_INDEXED_2BIT(w, h) -#define LV_CANVAS_BUF_SIZE_INDEXED_4BIT(w, h) LV_IMG_BUF_SIZE_INDEXED_4BIT(w, h) -#define LV_CANVAS_BUF_SIZE_INDEXED_8BIT(w, h) LV_IMG_BUF_SIZE_INDEXED_8BIT(w, h) - -#endif /*LV_USE_CANVAS*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CANVAS_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_checkbox.h b/src/lib/lvgl/src/widgets/lv_checkbox.h deleted file mode 100644 index 772f500..0000000 --- a/src/lib/lvgl/src/widgets/lv_checkbox.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file lv_cb.h - * - */ - -#ifndef LV_CHECKBOX_H -#define LV_CHECKBOX_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" -#include "../core/lv_obj.h" - -#if LV_USE_CHECKBOX != 0 - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_obj_t obj; - char * txt; - uint32_t static_txt : 1; -} lv_checkbox_t; - -extern const lv_obj_class_t lv_checkbox_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_checkbox_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_CHECKBOX_DRAW_PART_BOX, /**< The tick box*/ -} lv_checkbox_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a check box object - * @param parent pointer to an object, it will be the parent of the new button - * @return pointer to the created check box - */ -lv_obj_t * lv_checkbox_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the text of a check box. `txt` will be copied and may be deallocated - * after this function returns. - * @param cb pointer to a check box - * @param txt the text of the check box. NULL to refresh with the current text. - */ -void lv_checkbox_set_text(lv_obj_t * obj, const char * txt); - -/** - * Set the text of a check box. `txt` must not be deallocated during the life - * of this checkbox. - * @param cb pointer to a check box - * @param txt the text of the check box. - */ -void lv_checkbox_set_text_static(lv_obj_t * obj, const char * txt); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the text of a check box - * @param cb pointer to check box object - * @return pointer to the text of the check box - */ -const char * lv_checkbox_get_text(const lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_CHECKBOX*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_CHECKBOX_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_dropdown.h b/src/lib/lvgl/src/widgets/lv_dropdown.h deleted file mode 100644 index 63412f7..0000000 --- a/src/lib/lvgl/src/widgets/lv_dropdown.h +++ /dev/null @@ -1,246 +0,0 @@ -/** - * @file lv_dropdown.h - * - */ - -#ifndef LV_DROPDOWN_H -#define LV_DROPDOWN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_DROPDOWN != 0 - -/*Testing of dependencies*/ - -#if LV_USE_LABEL == 0 -#error "lv_dropdown: lv_label is required. Enable it in lv_conf.h (LV_USE_LABEL 1)" -#endif - -#include "../widgets/lv_label.h" - -/********************* - * DEFINES - *********************/ -#define LV_DROPDOWN_POS_LAST 0xFFFF -LV_EXPORT_CONST_INT(LV_DROPDOWN_POS_LAST); - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_obj_t obj; - lv_obj_t * list; /**< The dropped down list*/ - const char * text; /**< Text to display on the dropdown's button*/ - const void * symbol; /**< Arrow or other icon when the drop-down list is closed*/ - char * options; /**< Options in a '\n' separated list*/ - uint16_t option_cnt; /**< Number of options*/ - uint16_t sel_opt_id; /**< Index of the currently selected option*/ - uint16_t sel_opt_id_orig; /**< Store the original index on focus*/ - uint16_t pr_opt_id; /**< Index of the currently pressed option*/ - lv_dir_t dir : 4; /**< Direction in which the list should open*/ - uint8_t static_txt : 1; /**< 1: Only a pointer is saved in `options`*/ - uint8_t selected_highlight: 1; /**< 1: Make the selected option highlighted in the list*/ -} lv_dropdown_t; - -typedef struct { - lv_obj_t obj; - lv_obj_t * dropdown; -} lv_dropdown_list_t; - -extern const lv_obj_class_t lv_dropdown_class; -extern const lv_obj_class_t lv_dropdownlist_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a drop-down list object - * @param parent pointer to an object, it will be the parent of the new drop-down list - * @return pointer to the created drop-down list - */ -lv_obj_t * lv_dropdown_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set text of the drop-down list's button. - * If set to `NULL` the selected option's text will be displayed on the button. - * If set to a specific text then that text will be shown regardless of the selected option. - * @param obj pointer to a drop-down list object - * @param txt the text as a string (Only its pointer is saved) - */ -void lv_dropdown_set_text(lv_obj_t * obj, const char * txt); - -/** - * Set the options in a drop-down list from a string. - * The options will be copied and saved in the object so the `options` can be destroyed after calling this function - * @param obj pointer to drop-down list object - * @param options a string with '\n' separated options. E.g. "One\nTwo\nThree" - */ -void lv_dropdown_set_options(lv_obj_t * obj, const char * options); - -/** - * Set the options in a drop-down list from a static string (global, static or dynamically allocated). - * Only the pointer of the option string will be saved. - * @param obj pointer to drop-down list object - * @param options a static string with '\n' separated options. E.g. "One\nTwo\nThree" - */ -void lv_dropdown_set_options_static(lv_obj_t * obj, const char * options); - -/** - * Add an options to a drop-down list from a string. Only works for non-static options. - * @param obj pointer to drop-down list object - * @param option a string without '\n'. E.g. "Four" - * @param pos the insert position, indexed from 0, LV_DROPDOWN_POS_LAST = end of string - */ -void lv_dropdown_add_option(lv_obj_t * obj, const char * option, uint32_t pos); - -/** - * Clear all options in a drop-down list. Works with both static and dynamic options. - * @param obj pointer to drop-down list object - */ -void lv_dropdown_clear_options(lv_obj_t * obj); - -/** - * Set the selected option - * @param obj pointer to drop-down list object - * @param sel_opt id of the selected option (0 ... number of option - 1); - */ -void lv_dropdown_set_selected(lv_obj_t * obj, uint16_t sel_opt); - -/** - * Set the direction of the a drop-down list - * @param obj pointer to a drop-down list object - * @param dir LV_DIR_LEFT/RIGHT/TOP/BOTTOM - */ -void lv_dropdown_set_dir(lv_obj_t * obj, lv_dir_t dir); - -/** - * Set an arrow or other symbol to display when on drop-down list's button. Typically a down caret or arrow. - * @param obj pointer to drop-down list object - * @param symbol a text like `LV_SYMBOL_DOWN`, an image (pointer or path) or NULL to not draw symbol icon - * @note angle and zoom transformation can be applied if the symbol is an image. - * E.g. when drop down is checked (opened) rotate the symbol by 180 degree - */ -void lv_dropdown_set_symbol(lv_obj_t * obj, const void * symbol); - -/** - * Set whether the selected option in the list should be highlighted or not - * @param obj pointer to drop-down list object - * @param en true: highlight enabled; false: disabled - */ -void lv_dropdown_set_selected_highlight(lv_obj_t * obj, bool en); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the list of a drop-down to allow styling or other modifications - * @param obj pointer to a drop-down list object - * @return pointer to the list of the drop-down - */ -lv_obj_t * lv_dropdown_get_list(lv_obj_t * obj); - -/** - * Get text of the drop-down list's button. - * @param obj pointer to a drop-down list object - * @return the text as string, `NULL` if no text - */ -const char * lv_dropdown_get_text(lv_obj_t * obj); - -/** - * Get the options of a drop-down list - * @param obj pointer to drop-down list object - * @return the options separated by '\n'-s (E.g. "Option1\nOption2\nOption3") - */ -const char * lv_dropdown_get_options(const lv_obj_t * obj); - -/** - * Get the index of the selected option - * @param obj pointer to drop-down list object - * @return index of the selected option (0 ... number of option - 1); - */ -uint16_t lv_dropdown_get_selected(const lv_obj_t * obj); - -/** - * Get the total number of options - * @param obj pointer to drop-down list object - * @return the total number of options in the list - */ -uint16_t lv_dropdown_get_option_cnt(const lv_obj_t * obj); - -/** - * Get the current selected option as a string - * @param obj pointer to drop-down object - * @param buf pointer to an array to store the string - * @param buf_size size of `buf` in bytes. 0: to ignore it. - */ -void lv_dropdown_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size); - -/** - * Get the symbol on the drop-down list. Typically a down caret or arrow. - * @param obj pointer to drop-down list object - * @return the symbol or NULL if not enabled - */ -const char * lv_dropdown_get_symbol(lv_obj_t * obj); - -/** - * Get whether the selected option in the list should be highlighted or not - * @param obj pointer to drop-down list object - * @return true: highlight enabled; false: disabled - */ -bool lv_dropdown_get_selected_highlight(lv_obj_t * obj); - -/** - * Get the direction of the drop-down list - * @param obj pointer to a drop-down list object - * @return LV_DIR_LEF/RIGHT/TOP/BOTTOM - */ -lv_dir_t lv_dropdown_get_dir(const lv_obj_t * obj); - -/*===================== - * Other functions - *====================*/ - -/** - * Open the drop.down list - * @param obj pointer to drop-down list object - */ -void lv_dropdown_open(lv_obj_t * dropdown_obj); - -/** - * Close (Collapse) the drop-down list - * @param obj pointer to drop-down list object - */ -void lv_dropdown_close(lv_obj_t * obj); - -/** - * Tells whether the list is opened or not - * @param obj pointer to a drop-down list object - * @return true if the list os opened - */ -bool lv_dropdown_is_open(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_DROPDOWN*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_DROPDOWN_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_img.h b/src/lib/lvgl/src/widgets/lv_img.h deleted file mode 100644 index 9068c50..0000000 --- a/src/lib/lvgl/src/widgets/lv_img.h +++ /dev/null @@ -1,232 +0,0 @@ -/** - * @file lv_img.h - * - */ - -#ifndef LV_IMG_H -#define LV_IMG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_IMG != 0 - -/*Testing of dependencies*/ -#if LV_USE_LABEL == 0 -#error "lv_img: lv_label is required. Enable it in lv_conf.h (LV_USE_LABEL 1)" -#endif - -#include "../core/lv_obj.h" -#include "../misc/lv_fs.h" -#include "../draw/lv_draw.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** - * Data of image - */ -typedef struct { - lv_obj_t obj; - const void * src; /*Image source: Pointer to an array or a file or a symbol*/ - lv_point_t offset; - lv_coord_t w; /*Width of the image (Handled by the library)*/ - lv_coord_t h; /*Height of the image (Handled by the library)*/ - uint16_t angle; /*rotation angle of the image*/ - lv_point_t pivot; /*rotation center of the image*/ - uint16_t zoom; /*256 means no zoom, 512 double size, 128 half size*/ - uint8_t src_type : 2; /*See: lv_img_src_t*/ - uint8_t cf : 5; /*Color format from `lv_img_color_format_t`*/ - uint8_t antialias : 1; /*Apply anti-aliasing in transformations (rotate, zoom)*/ - uint8_t obj_size_mode: 2; /*Image size mode when image size and object size is different.*/ -} lv_img_t; - -extern const lv_obj_class_t lv_img_class; - -/** - * Image size mode, when image size and object size is different - */ -enum { - /** Zoom doesn't affect the coordinates of the object, - * however if zoomed in the image is drawn out of the its coordinates. - * The layout's won't change on zoom */ - LV_IMG_SIZE_MODE_VIRTUAL = 0, - - /** If the object size is set to SIZE_CONTENT, then object size equals zoomed image size. - * It causes layout recalculation. - * If the object size is set explicitly, the image will be cropped when zoomed in.*/ - LV_IMG_SIZE_MODE_REAL, -}; - -typedef uint8_t lv_img_size_mode_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create an image object - * @param parent pointer to an object, it will be the parent of the new image - * @return pointer to the created image - */ -lv_obj_t * lv_img_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the image data to display on the object - * @param obj pointer to an image object - * @param src_img 1) pointer to an ::lv_img_dsc_t descriptor (converted by LVGL's image converter) (e.g. &my_img) or - * 2) path to an image file (e.g. "S:/dir/img.bin")or - * 3) a SYMBOL (e.g. LV_SYMBOL_OK) - */ -void lv_img_set_src(lv_obj_t * obj, const void * src); - -/** - * Set an offset for the source of an image so the image will be displayed from the new origin. - * @param obj pointer to an image - * @param x the new offset along x axis. - */ -void lv_img_set_offset_x(lv_obj_t * obj, lv_coord_t x); - -/** - * Set an offset for the source of an image. - * so the image will be displayed from the new origin. - * @param obj pointer to an image - * @param y the new offset along y axis. - */ -void lv_img_set_offset_y(lv_obj_t * obj, lv_coord_t y); - - -/** - * Set the rotation angle of the image. - * The image will be rotated around the set pivot set by `lv_img_set_pivot()` - * @param obj pointer to an image object - * @param angle rotation angle in degree with 0.1 degree resolution (0..3600: clock wise) - */ -void lv_img_set_angle(lv_obj_t * obj, int16_t angle); - -/** - * Set the rotation center of the image. - * The image will be rotated around this point - * @param obj pointer to an image object - * @param x rotation center x of the image - * @param y rotation center y of the image - */ -void lv_img_set_pivot(lv_obj_t * obj, lv_coord_t x, lv_coord_t y); - - -/** - * Set the zoom factor of the image. - * @param img pointer to an image object - * @param zoom the zoom factor. - * @example 256 or LV_ZOOM_IMG_NONE for no zoom - * @example <256: scale down - * @example >256 scale up - * @example 128 half size - * @example 512 double size - */ -void lv_img_set_zoom(lv_obj_t * obj, uint16_t zoom); - -/** - * Enable/disable anti-aliasing for the transformations (rotate, zoom) or not. - * The quality is better with anti-aliasing looks better but slower. - * @param obj pointer to an image object - * @param antialias true: anti-aliased; false: not anti-aliased - */ -void lv_img_set_antialias(lv_obj_t * obj, bool antialias); - -/** - * Set the image object size mode. - * - * @param obj pointer to an image object - * @param mode the new size mode. - */ -void lv_img_set_size_mode(lv_obj_t * obj, lv_img_size_mode_t mode); -/*===================== - * Getter functions - *====================*/ - -/** - * Get the source of the image - * @param obj pointer to an image object - * @return the image source (symbol, file name or ::lv-img_dsc_t for C arrays) - */ -const void * lv_img_get_src(lv_obj_t * obj); - -/** - * Get the offset's x attribute of the image object. - * @param img pointer to an image - * @return offset X value. - */ -lv_coord_t lv_img_get_offset_x(lv_obj_t * obj); - -/** - * Get the offset's y attribute of the image object. - * @param obj pointer to an image - * @return offset Y value. - */ -lv_coord_t lv_img_get_offset_y(lv_obj_t * obj); - -/** - * Get the rotation angle of the image. - * @param obj pointer to an image object - * @return rotation angle in 0.1 degrees (0..3600) - */ -uint16_t lv_img_get_angle(lv_obj_t * obj); - -/** - * Get the pivot (rotation center) of the image. - * @param img pointer to an image object - * @param pivot store the rotation center here - */ -void lv_img_get_pivot(lv_obj_t * obj, lv_point_t * pivot); - -/** - * Get the zoom factor of the image. - * @param obj pointer to an image object - * @return zoom factor (256: no zoom) - */ -uint16_t lv_img_get_zoom(lv_obj_t * obj); - -/** - * Get whether the transformations (rotate, zoom) are anti-aliased or not - * @param obj pointer to an image object - * @return true: anti-aliased; false: not anti-aliased - */ -bool lv_img_get_antialias(lv_obj_t * obj); - -/** - * Get the size mode of the image - * @param obj pointer to an image object - * @return element of @ref lv_img_size_mode_t - */ -lv_img_size_mode_t lv_img_get_size_mode(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -/** Use this macro to declare an image in a C file*/ -#define LV_IMG_DECLARE(var_name) extern const lv_img_dsc_t var_name; - -#endif /*LV_USE_IMG*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_IMG_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_label.h b/src/lib/lvgl/src/widgets/lv_label.h deleted file mode 100644 index b31a63e..0000000 --- a/src/lib/lvgl/src/widgets/lv_label.h +++ /dev/null @@ -1,246 +0,0 @@ -/** - * @file lv_label.h - * - */ - -#ifndef LV_LABEL_H -#define LV_LABEL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_LABEL != 0 - -#include -#include "../core/lv_obj.h" -#include "../font/lv_font.h" -#include "../font/lv_symbol_def.h" -#include "../misc/lv_txt.h" -#include "../draw/lv_draw.h" - -/********************* - * DEFINES - *********************/ -#define LV_LABEL_WAIT_CHAR_COUNT 3 -#define LV_LABEL_DOT_NUM 3 -#define LV_LABEL_POS_LAST 0xFFFF -#define LV_LABEL_TEXT_SELECTION_OFF LV_DRAW_LABEL_NO_TXT_SEL - -LV_EXPORT_CONST_INT(LV_LABEL_DOT_NUM); -LV_EXPORT_CONST_INT(LV_LABEL_POS_LAST); -LV_EXPORT_CONST_INT(LV_LABEL_TEXT_SELECTION_OFF); - -/********************** - * TYPEDEFS - **********************/ - -/** Long mode behaviors. Used in 'lv_label_ext_t'*/ -enum { - LV_LABEL_LONG_WRAP, /**< Keep the object width, wrap the too long lines and expand the object height*/ - LV_LABEL_LONG_DOT, /**< Keep the size and write dots at the end if the text is too long*/ - LV_LABEL_LONG_SCROLL, /**< Keep the size and roll the text back and forth*/ - LV_LABEL_LONG_SCROLL_CIRCULAR, /**< Keep the size and roll the text circularly*/ - LV_LABEL_LONG_CLIP, /**< Keep the size and clip the text out of it*/ -}; -typedef uint8_t lv_label_long_mode_t; - -typedef struct { - lv_obj_t obj; - char * text; - union { - char * tmp_ptr; /*Pointer to the allocated memory containing the character replaced by dots*/ - char tmp[LV_LABEL_DOT_NUM + 1]; /*Directly store the characters if <=4 characters*/ - } dot; - uint32_t dot_end; /*The real text length, used in dot mode*/ - -#if LV_LABEL_LONG_TXT_HINT - lv_draw_label_hint_t hint; -#endif - -#if LV_LABEL_TEXT_SELECTION - uint32_t sel_start; - uint32_t sel_end; -#endif - - lv_point_t offset; /*Text draw position offset*/ - lv_label_long_mode_t long_mode : 3; /*Determine what to do with the long texts*/ - uint8_t static_txt : 1; /*Flag to indicate the text is static*/ - uint8_t recolor : 1; /*Enable in-line letter re-coloring*/ - uint8_t expand : 1; /*Ignore real width (used by the library with LV_LABEL_LONG_SCROLL)*/ - uint8_t dot_tmp_alloc : 1; /*1: dot is allocated, 0: dot directly holds up to 4 chars*/ -} lv_label_t; - -extern const lv_obj_class_t lv_label_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a label object - * @param parent pointer to an object, it will be the parent of the new label. - * @return pointer to the created button - */ -lv_obj_t * lv_label_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set a new text for a label. Memory will be allocated to store the text by the label. - * @param obj pointer to a label object - * @param text '\0' terminated character string. NULL to refresh with the current text. - */ -void lv_label_set_text(lv_obj_t * obj, const char * text); - -/** - * Set a new formatted text for a label. Memory will be allocated to store the text by the label. - * @param obj pointer to a label object - * @param fmt `printf`-like format - * @example lv_label_set_text_fmt(label1, "%d user", user_num); - */ -void lv_label_set_text_fmt(lv_obj_t * obj, const char * fmt, ...) LV_FORMAT_ATTRIBUTE(2, 3); - -/** - * Set a static text. It will not be saved by the label so the 'text' variable - * has to be 'alive' while the label exists. - * @param obj pointer to a label object - * @param text pointer to a text. NULL to refresh with the current text. - */ -void lv_label_set_text_static(lv_obj_t * obj, const char * text); - -/** - * Set the behavior of the label with longer text then the object size - * @param obj pointer to a label object - * @param long_mode the new mode from 'lv_label_long_mode' enum. - * In LV_LONG_WRAP/DOT/SCROLL/SCROLL_CIRC the size of the label should be set AFTER this function - */ -void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode); - -/** - * Enable the recoloring by in-line commands - * @param obj pointer to a label object - * @param en true: enable recoloring, false: disable - * @example "This is a #ff0000 red# word" - */ -void lv_label_set_recolor(lv_obj_t * obj, bool en); - -/** - * Set where text selection should start - * @param obj pointer to a label object - * @param index character index from where selection should start. `LV_LABEL_TEXT_SELECTION_OFF` for no selection - */ -void lv_label_set_text_sel_start(lv_obj_t * obj, uint32_t index); - -/** - * Set where text selection should end - * @param obj pointer to a label object - * @param index character index where selection should end. `LV_LABEL_TEXT_SELECTION_OFF` for no selection - */ -void lv_label_set_text_sel_end(lv_obj_t * obj, uint32_t index); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the text of a label - * @param obj pointer to a label object - * @return the text of the label - */ -char * lv_label_get_text(const lv_obj_t * obj); - -/** - * Get the long mode of a label - * @param obj pointer to a label object - * @return the current long mode - */ -lv_label_long_mode_t lv_label_get_long_mode(const lv_obj_t * obj); - -/** - * Get the recoloring attribute - * @param obj pointer to a label object - * @return true: recoloring is enabled, false: disable - */ -bool lv_label_get_recolor(const lv_obj_t * obj); - -/** - * Get the relative x and y coordinates of a letter - * @param obj pointer to a label object - * @param index index of the character [0 ... text length - 1]. - * Expressed in character index, not byte index (different in UTF-8) - * @param pos store the result here (E.g. index = 0 gives 0;0 coordinates if the text if aligned to the left) - */ -void lv_label_get_letter_pos(const lv_obj_t * obj, uint32_t char_id, lv_point_t * pos); - -/** - * Get the index of letter on a relative point of a label. - * @param obj pointer to label object - * @param pos pointer to point with coordinates on a the label - * @return The index of the letter on the 'pos_p' point (E.g. on 0;0 is the 0. letter if aligned to the left) - * Expressed in character index and not byte index (different in UTF-8) - */ -uint32_t lv_label_get_letter_on(const lv_obj_t * obj, lv_point_t * pos_in); - -/** - * Check if a character is drawn under a point. - * @param obj pointer to a label object - * @param pos Point to check for character under - * @return whether a character is drawn under the point - */ -bool lv_label_is_char_under_pos(const lv_obj_t * obj, lv_point_t * pos); - -/** - * @brief Get the selection start index. - * @param obj pointer to a label object. - * @return selection start index. `LV_LABEL_TEXT_SELECTION_OFF` if nothing is selected. - */ -uint32_t lv_label_get_text_selection_start(const lv_obj_t * obj); - -/** - * @brief Get the selection end index. - * @param obj pointer to a label object. - * @return selection end index. `LV_LABEL_TXT_SEL_OFF` if nothing is selected. - */ -uint32_t lv_label_get_text_selection_end(const lv_obj_t * obj); - -/*===================== - * Other functions - *====================*/ - -/** - * Insert a text to a label. The label text can not be static. - * @param obj pointer to a label object - * @param pos character index to insert. Expressed in character index and not byte index. - * 0: before first char. LV_LABEL_POS_LAST: after last char. - * @param txt pointer to the text to insert - */ -void lv_label_ins_text(lv_obj_t * obj, uint32_t pos, const char * txt); - -/** - * Delete characters from a label. The label text can not be static. - * @param obj pointer to a label object - * @param pos character index from where to cut. Expressed in character index and not byte index. - * 0: start in from of the first character - * @param cnt number of characters to cut - */ -void lv_label_cut_text(lv_obj_t * obj, uint32_t pos, uint32_t cnt); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_LABEL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LABEL_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_line.h b/src/lib/lvgl/src/widgets/lv_line.h deleted file mode 100644 index 54fa248..0000000 --- a/src/lib/lvgl/src/widgets/lv_line.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - * @file lv_line.h - * - */ - -#ifndef LV_LINE_H -#define LV_LINE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_LINE != 0 - -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/*Data of line*/ -typedef struct { - lv_obj_t obj; - const lv_point_t * point_array; /**< Pointer to an array with the points of the line*/ - uint16_t point_num; /**< Number of points in 'point_array'*/ - uint8_t y_inv : 1; /**< 1: y == 0 will be on the bottom*/ -} lv_line_t; - -extern const lv_obj_class_t lv_line_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a line object - * @param parent pointer to an object, it will be the parent of the new line - * @return pointer to the created line - */ -lv_obj_t * lv_line_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set an array of points. The line object will connect these points. - * @param obj pointer to a line object - * @param points an array of points. Only the address is saved, so the array needs to be alive while the line exists - * @param point_num number of points in 'point_a' - */ -void lv_line_set_points(lv_obj_t * obj, const lv_point_t points[], uint16_t point_num); - -/** - * Enable (or disable) the y coordinate inversion. - * If enabled then y will be subtracted from the height of the object, - * therefore the y = 0 coordinate will be on the bottom. - * @param obj pointer to a line object - * @param en true: enable the y inversion, false:disable the y inversion - */ -void lv_line_set_y_invert(lv_obj_t * obj, bool en); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the y inversion attribute - * @param obj pointer to a line object - * @return true: y inversion is enabled, false: disabled - */ -bool lv_line_get_y_invert(const lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_LINE*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_LINE_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_objx_templ.h b/src/lib/lvgl/src/widgets/lv_objx_templ.h deleted file mode 100644 index 9de5285..0000000 --- a/src/lib/lvgl/src/widgets/lv_objx_templ.h +++ /dev/null @@ -1,81 +0,0 @@ -/** - * @file lv_templ.h - * - */ - -/** - * TODO Remove these instructions - * Search and replace: templ -> object short name with lower case(e.g. btn, label etc) - * TEMPL -> object short name with upper case (e.g. BTN, LABEL etc.) - * - */ - -#ifndef LV_TEMPL_H -#define LV_TEMPL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_TEMPL != 0 - -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ -/*Data of template*/ -typedef struct { - lv_ANCESTOR_t ancestor; /*The ancestor widget, e.g. lv_slider_t slider*/ - /*New data for this type*/ -} lv_templ_t; - -extern const lv_obj_class_t lv_templ_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a templ object - * @param parent pointer to an object, it will be the parent of the new templ - * @return pointer to the created bar - */ -lv_obj_t * lv_templ_create(lv_obj_t * parent); - -/*====================== - * Add/remove functions - *=====================*/ - -/*===================== - * Setter functions - *====================*/ - -/*===================== - * Getter functions - *====================*/ - -/*===================== - * Other functions - *====================*/ - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_TEMPL*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TEMPL_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_roller.h b/src/lib/lvgl/src/widgets/lv_roller.h deleted file mode 100644 index 14411de..0000000 --- a/src/lib/lvgl/src/widgets/lv_roller.h +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @file lv_roller.h - * - */ - -#ifndef LV_ROLLER_H -#define LV_ROLLER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_ROLLER != 0 - -/*Testing of dependencies*/ -#if LV_USE_LABEL == 0 -#error "lv_roller: lv_label is required. Enable it in lv_conf.h (LV_USE_ROLLER 1)" -#endif - -#include "../core/lv_obj.h" -#include "lv_label.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -/** Roller mode.*/ -enum { - LV_ROLLER_MODE_NORMAL, /**< Normal mode (roller ends at the end of the options).*/ - LV_ROLLER_MODE_INFINITE, /**< Infinite mode (roller can be scrolled forever).*/ -}; - -typedef uint8_t lv_roller_mode_t; - -typedef struct { - lv_obj_t obj; - uint16_t option_cnt; /**< Number of options*/ - uint16_t sel_opt_id; /**< Index of the current option*/ - uint16_t sel_opt_id_ori; /**< Store the original index on focus*/ - lv_roller_mode_t mode : 1; - uint32_t moved : 1; -} lv_roller_t; - -extern const lv_obj_class_t lv_roller_class; - - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a roller object - * @param parent pointer to an object, it will be the parent of the new roller. - * @return pointer to the created roller - */ -lv_obj_t * lv_roller_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the options on a roller - * @param obj pointer to roller object - * @param options a string with '\n' separated options. E.g. "One\nTwo\nThree" - * @param mode `LV_ROLLER_MODE_NORMAL` or `LV_ROLLER_MODE_INFINITE` - */ -void lv_roller_set_options(lv_obj_t * obj, const char * options, lv_roller_mode_t mode); - -/** - * Set the selected option - * @param obj pointer to a roller object - * @param sel_opt index of the selected option (0 ... number of option - 1); - * @param anim_en LV_ANIM_ON: set with animation; LV_ANOM_OFF set immediately - */ -void lv_roller_set_selected(lv_obj_t * obj, uint16_t sel_opt, lv_anim_enable_t anim); - -/** - * Set the height to show the given number of rows (options) - * @param obj pointer to a roller object - * @param row_cnt number of desired visible rows - */ -void lv_roller_set_visible_row_count(lv_obj_t * obj, uint8_t row_cnt); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the index of the selected option - * @param obj pointer to a roller object - * @return index of the selected option (0 ... number of option - 1); - */ -uint16_t lv_roller_get_selected(const lv_obj_t * obj); - -/** - * Get the current selected option as a string. - * @param obj pointer to ddlist object - * @param buf pointer to an array to store the string - * @param buf_size size of `buf` in bytes. 0: to ignore it. - */ -void lv_roller_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size); - - -/** - * Get the options of a roller - * @param obj pointer to roller object - * @return the options separated by '\n'-s (E.g. "Option1\nOption2\nOption3") - */ -const char * lv_roller_get_options(const lv_obj_t * obj); - -/** - * Get the total number of options - * @param obj pointer to a roller object - * @return the total number of options - */ -uint16_t lv_roller_get_option_cnt(const lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_ROLLER*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_ROLLER_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_slider.h b/src/lib/lvgl/src/widgets/lv_slider.h deleted file mode 100644 index 386950c..0000000 --- a/src/lib/lvgl/src/widgets/lv_slider.h +++ /dev/null @@ -1,195 +0,0 @@ -/** - * @file lv_slider.h - * - */ - -#ifndef LV_SLIDER_H -#define LV_SLIDER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_SLIDER != 0 - -/*Testing of dependencies*/ -#if LV_USE_BAR == 0 -#error "lv_slider: lv_bar is required. Enable it in lv_conf.h (LV_USE_BAR 1)" -#endif - -#include "../core/lv_obj.h" -#include "lv_bar.h" - -/********************* - * DEFINES - *********************/ - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_SLIDER_MODE_NORMAL = LV_BAR_MODE_NORMAL, - LV_SLIDER_MODE_SYMMETRICAL = LV_BAR_MODE_SYMMETRICAL, - LV_SLIDER_MODE_RANGE = LV_BAR_MODE_RANGE -}; -typedef uint8_t lv_slider_mode_t; - -typedef struct { - lv_bar_t bar; /*Add the ancestor's type first*/ - lv_area_t left_knob_area; - lv_area_t right_knob_area; - int32_t * value_to_set; /*Which bar value to set*/ - uint8_t dragging : 1; /*1: the slider is being dragged*/ - uint8_t left_knob_focus : 1; /*1: with encoder now the right knob can be adjusted*/ -} lv_slider_t; - -extern const lv_obj_class_t lv_slider_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_slider_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_SLIDER_DRAW_PART_KNOB, /**< The main (right) knob's rectangle*/ - LV_SLIDER_DRAW_PART_KNOB_LEFT, /**< The left knob's rectangle*/ -} lv_slider_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a slider object - * @param parent pointer to an object, it will be the parent of the new slider. - * @return pointer to the created slider - */ -lv_obj_t * lv_slider_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set a new value on the slider - * @param obj pointer to a slider object - * @param value the new value - * @param anim LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately - */ -static inline void lv_slider_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) -{ - lv_bar_set_value(obj, value, anim); -} - -/** - * Set a new value for the left knob of a slider - * @param obj pointer to a slider object - * @param value new value - * @param anim LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately - */ -static inline void lv_slider_set_left_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) -{ - lv_bar_set_start_value(obj, value, anim); -} - -/** - * Set minimum and the maximum values of a bar - * @param obj pointer to the slider object - * @param min minimum value - * @param max maximum value - */ -static inline void lv_slider_set_range(lv_obj_t * obj, int32_t min, int32_t max) -{ - lv_bar_set_range(obj, min, max); -} - -/** - * Set the mode of slider. - * @param obj pointer to a slider object - * @param mode the mode of the slider. See ::lv_slider_mode_t - */ -static inline void lv_slider_set_mode(lv_obj_t * obj, lv_slider_mode_t mode) -{ - lv_bar_set_mode(obj, (lv_bar_mode_t)mode); -} - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the value of the main knob of a slider - * @param obj pointer to a slider object - * @return the value of the main knob of the slider - */ -static inline int32_t lv_slider_get_value(const lv_obj_t * obj) -{ - return lv_bar_get_value(obj); -} - -/** - * Get the value of the left knob of a slider - * @param obj pointer to a slider object - * @return the value of the left knob of the slider - */ -static inline int32_t lv_slider_get_left_value(const lv_obj_t * obj) -{ - return lv_bar_get_start_value(obj); -} - -/** - * Get the minimum value of a slider - * @param obj pointer to a slider object - * @return the minimum value of the slider - */ -static inline int32_t lv_slider_get_min_value(const lv_obj_t * obj) -{ - return lv_bar_get_min_value(obj); -} - -/** - * Get the maximum value of a slider - * @param obj pointer to a slider object - * @return the maximum value of the slider - */ -static inline int32_t lv_slider_get_max_value(const lv_obj_t * obj) -{ - return lv_bar_get_max_value(obj); -} - -/** - * Give the slider is being dragged or not - * @param obj pointer to a slider object - * @return true: drag in progress false: not dragged - */ -bool lv_slider_is_dragged(const lv_obj_t * obj); - -/** - * Get the mode of the slider. - * @param obj pointer to a bar object - * @return see ::lv_slider_mode_t - */ -static inline lv_slider_mode_t lv_slider_get_mode(lv_obj_t * slider) -{ - lv_bar_mode_t mode = lv_bar_get_mode(slider); - if(mode == LV_BAR_MODE_SYMMETRICAL) return LV_SLIDER_MODE_SYMMETRICAL; - else if(mode == LV_BAR_MODE_RANGE) return LV_SLIDER_MODE_RANGE; - else return LV_SLIDER_MODE_NORMAL; -} - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_SLIDER*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SLIDER_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_switch.h b/src/lib/lvgl/src/widgets/lv_switch.h deleted file mode 100644 index 83ca81b..0000000 --- a/src/lib/lvgl/src/widgets/lv_switch.h +++ /dev/null @@ -1,61 +0,0 @@ -/** - * @file lv_switch.h - * - */ - -#ifndef LV_SWITCH_H -#define LV_SWITCH_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_SWITCH != 0 - -#include "../core/lv_obj.h" - -/********************* - * DEFINES - *********************/ - -/** Switch knob extra area correction factor */ -#define _LV_SWITCH_KNOB_EXT_AREA_CORRECTION 2 - -/********************** - * TYPEDEFS - **********************/ - -typedef struct { - lv_obj_t obj; - int32_t anim_state; -} lv_switch_t; - -extern const lv_obj_class_t lv_switch_class; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a switch object - * @param parent pointer to an object, it will be the parent of the new switch - * @return pointer to the created switch - */ -lv_obj_t * lv_switch_create(lv_obj_t * parent); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_SWITCH*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_SWITCH_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_table.h b/src/lib/lvgl/src/widgets/lv_table.h deleted file mode 100644 index 9106270..0000000 --- a/src/lib/lvgl/src/widgets/lv_table.h +++ /dev/null @@ -1,210 +0,0 @@ -/** - * @file lv_table.h - * - */ - -#ifndef LV_TABLE_H -#define LV_TABLE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_TABLE != 0 - -/*Testing of dependencies*/ -#if LV_USE_LABEL == 0 -#error "lv_table: lv_label is required. Enable it in lv_conf.h (LV_USE_LABEL 1)" -#endif - -#include "../core/lv_obj.h" -#include "lv_label.h" - -/********************* - * DEFINES - *********************/ -#define LV_TABLE_CELL_NONE 0XFFFF -LV_EXPORT_CONST_INT(LV_TABLE_CELL_NONE); - -/********************** - * TYPEDEFS - **********************/ - -enum { - LV_TABLE_CELL_CTRL_MERGE_RIGHT = 1 << 0, - LV_TABLE_CELL_CTRL_TEXT_CROP = 1 << 1, - LV_TABLE_CELL_CTRL_CUSTOM_1 = 1 << 4, - LV_TABLE_CELL_CTRL_CUSTOM_2 = 1 << 5, - LV_TABLE_CELL_CTRL_CUSTOM_3 = 1 << 6, - LV_TABLE_CELL_CTRL_CUSTOM_4 = 1 << 7, -}; - -typedef uint8_t lv_table_cell_ctrl_t; - -/*Data of table*/ -typedef struct { - lv_obj_t obj; - uint16_t col_cnt; - uint16_t row_cnt; - char ** cell_data; - lv_coord_t * row_h; - lv_coord_t * col_w; - uint16_t col_act; - uint16_t row_act; -} lv_table_t; - -extern const lv_obj_class_t lv_table_class; - -/** - * `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_table_class` - * Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` - */ -typedef enum { - LV_TABLE_DRAW_PART_CELL, /**< A cell*/ -} lv_table_draw_part_type_t; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a table object - * @param parent pointer to an object, it will be the parent of the new table - * @return pointer to the created table - */ -lv_obj_t * lv_table_create(lv_obj_t * parent); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the value of a cell. - * @param obj pointer to a Table object - * @param row id of the row [0 .. row_cnt -1] - * @param col id of the column [0 .. col_cnt -1] - * @param txt text to display in the cell. It will be copied and saved so this variable is not required after this function call. - * @note New roes/columns are added automatically if required - */ -void lv_table_set_cell_value(lv_obj_t * obj, uint16_t row, uint16_t col, const char * txt); - -/** - * Set the value of a cell. Memory will be allocated to store the text by the table. - * @param obj pointer to a Table object - * @param row id of the row [0 .. row_cnt -1] - * @param col id of the column [0 .. col_cnt -1] - * @param fmt `printf`-like format - * @note New roes/columns are added automatically if required - */ -void lv_table_set_cell_value_fmt(lv_obj_t * obj, uint16_t row, uint16_t col, const char * fmt, ...); - -/** - * Set the number of rows - * @param obj table pointer to a Table object - * @param row_cnt number of rows - */ -void lv_table_set_row_cnt(lv_obj_t * obj, uint16_t row_cnt); - -/** - * Set the number of columns - * @param obj table pointer to a Table object - * @param col_cnt number of columns. - */ -void lv_table_set_col_cnt(lv_obj_t * obj, uint16_t col_cnt); - -/** - * Set the width of a column - * @param obj table pointer to a Table object - * @param col_id id of the column [0 .. LV_TABLE_COL_MAX -1] - * @param w width of the column - */ -void lv_table_set_col_width(lv_obj_t * obj, uint16_t col_id, lv_coord_t w); - -/** - * Add control bits to the cell. - * @param obj pointer to a Table object - * @param row id of the row [0 .. row_cnt -1] - * @param col id of the column [0 .. col_cnt -1] - * @param ctrl OR-ed values from ::lv_table_cell_ctrl_t - */ -void lv_table_add_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_table_cell_ctrl_t ctrl); - - -/** - * Clear control bits of the cell. - * @param obj pointer to a Table object - * @param row id of the row [0 .. row_cnt -1] - * @param col id of the column [0 .. col_cnt -1] - * @param ctrl OR-ed values from ::lv_table_cell_ctrl_t - */ -void lv_table_clear_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_table_cell_ctrl_t ctrl); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the value of a cell. - * @param obj pointer to a Table object - * @param row id of the row [0 .. row_cnt -1] - * @param col id of the column [0 .. col_cnt -1] - * @return text in the cell - */ -const char * lv_table_get_cell_value(lv_obj_t * obj, uint16_t row, uint16_t col); - -/** - * Get the number of rows. - * @param obj table pointer to a Table object - * @return number of rows. - */ -uint16_t lv_table_get_row_cnt(lv_obj_t * obj); - -/** - * Get the number of columns. - * @param obj table pointer to a Table object - * @return number of columns. - */ -uint16_t lv_table_get_col_cnt(lv_obj_t * obj); - -/** - * Get the width of a column - * @param obj table pointer to a Table object - * @param col id of the column [0 .. LV_TABLE_COL_MAX -1] - * @return width of the column - */ -lv_coord_t lv_table_get_col_width(lv_obj_t * obj, uint16_t col); - -/** - * Get whether a cell has the control bits - * @param obj pointer to a Table object - * @param row id of the row [0 .. row_cnt -1] - * @param col id of the column [0 .. col_cnt -1] - * @param ctrl OR-ed values from ::lv_table_cell_ctrl_t - * @return true: all control bits are set; false: not all control bits are set - */ -bool lv_table_has_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_table_cell_ctrl_t ctrl); - -/** - * Get the selected cell (pressed and or focused) - * @param obj pointer to a table object - * @param row pointer to variable to store the selected row (LV_TABLE_CELL_NONE: if no cell selected) - * @param col pointer to variable to store the selected column (LV_TABLE_CELL_NONE: if no cell selected) - */ -void lv_table_get_selected_cell(lv_obj_t * obj, uint16_t * row, uint16_t * col); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_TABLE*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TABLE_H*/ diff --git a/src/lib/lvgl/src/widgets/lv_textarea.h b/src/lib/lvgl/src/widgets/lv_textarea.h deleted file mode 100644 index 219e272..0000000 --- a/src/lib/lvgl/src/widgets/lv_textarea.h +++ /dev/null @@ -1,343 +0,0 @@ -/** - * @file lv_textarea.h - * - */ - -#ifndef LV_TEXTAREA_H -#define LV_TEXTAREA_H - -#ifdef __cplusplus -extern "C" { -#endif - -/********************* - * INCLUDES - *********************/ -#include "../lv_conf_internal.h" - -#if LV_USE_TEXTAREA != 0 - -/*Testing of dependencies*/ -#if LV_USE_LABEL == 0 -#error "lv_ta: lv_label is required. Enable it in lv_conf.h (LV_USE_LABEL 1)" -#endif - -#include "../core/lv_obj.h" -#include "lv_label.h" - -/********************* - * DEFINES - *********************/ -#define LV_TEXTAREA_CURSOR_LAST (0x7FFF) /*Put the cursor after the last character*/ - -LV_EXPORT_CONST_INT(LV_TEXTAREA_CURSOR_LAST); - -/********************** - * TYPEDEFS - **********************/ - -/*Data of text area*/ -typedef struct { - lv_obj_t obj; - lv_obj_t * label; /*Label of the text area*/ - char * placeholder_txt; /*Place holder label. only visible if text is an empty string*/ - char * pwd_tmp; /*Used to store the original text in password mode*/ - const char * accepted_chars; /*Only these characters will be accepted. NULL: accept all*/ - uint32_t max_length; /*The max. number of characters. 0: no limit*/ - uint16_t pwd_show_time; /*Time to show characters in password mode before change them to '*'*/ - struct { - lv_coord_t valid_x; /*Used when stepping up/down to a shorter line. - *(Used by the library)*/ - uint32_t pos; /*The current cursor position - *(0: before 1st letter; 1: before 2nd letter ...)*/ - lv_area_t area; /*Cursor area relative to the Text Area*/ - uint32_t txt_byte_pos; /*Byte index of the letter after (on) the cursor*/ - uint8_t show : 1; /*Cursor is visible now or not (Handled by the library)*/ - uint8_t click_pos : 1; /*1: Enable positioning the cursor by clicking the text area*/ - } cursor; -#if LV_LABEL_TEXT_SELECTION - uint32_t sel_start; /*Temporary values for text selection*/ - uint32_t sel_end; - uint8_t text_sel_in_prog : 1; /*User is in process of selecting*/ - uint8_t text_sel_en : 1; /*Text can be selected on this text area*/ -#endif - uint8_t pwd_mode : 1; /*Replace characters with '*'*/ - uint8_t one_line : 1; /*One line mode (ignore line breaks)*/ -} lv_textarea_t; - -extern const lv_obj_class_t lv_textarea_class; - -enum { - LV_PART_TEXTAREA_PLACEHOLDER = LV_PART_CUSTOM_FIRST, -}; - -/********************** - * GLOBAL PROTOTYPES - **********************/ - -/** - * Create a text area object - * @param parent pointer to an object, it will be the parent of the new text area - * @return pointer to the created text area - */ -lv_obj_t * lv_textarea_create(lv_obj_t * parent); - -/*====================== - * Add/remove functions - *=====================*/ - -/** - * Insert a character to the current cursor position. - * To add a wide char, e.g. 'Á' use `_lv_txt_encoded_conv_wc('Á')` - * @param obj pointer to a text area object - * @param c a character (e.g. 'a') - */ -void lv_textarea_add_char(lv_obj_t * obj, uint32_t c); - -/** - * Insert a text to the current cursor position - * @param obj pointer to a text area object - * @param txt a '\0' terminated string to insert - */ -void lv_textarea_add_text(lv_obj_t * obj, const char * txt); - -/** - * Delete a the left character from the current cursor position - * @param obj pointer to a text area object - */ -void lv_textarea_del_char(lv_obj_t * obj); - -/** - * Delete the right character from the current cursor position - * @param obj pointer to a text area object - */ -void lv_textarea_del_char_forward(lv_obj_t * obj); - -/*===================== - * Setter functions - *====================*/ - -/** - * Set the text of a text area - * @param obj pointer to a text area object - * @param txt pointer to the text - */ -void lv_textarea_set_text(lv_obj_t * obj, const char * txt); - -/** - * Set the placeholder text of a text area - * @param obj pointer to a text area object - * @param txt pointer to the text - */ -void lv_textarea_set_placeholder_text(lv_obj_t * obj, const char * txt); - -/** - * Set the cursor position - * @param obj pointer to a text area object - * @param pos the new cursor position in character index - * < 0 : index from the end of the text - * LV_TEXTAREA_CURSOR_LAST: go after the last character - */ -void lv_textarea_set_cursor_pos(lv_obj_t * obj, int32_t pos); - -/** - * Enable/Disable the positioning of the cursor by clicking the text on the text area. - * @param obj pointer to a text area object - * @param en true: enable click positions; false: disable - */ -void lv_textarea_set_cursor_click_pos(lv_obj_t * obj, bool en); - -/** - * Enable/Disable password mode - * @param obj pointer to a text area object - * @param en true: enable, false: disable - */ -void lv_textarea_set_password_mode(lv_obj_t * obj, bool en); - -/** - * Configure the text area to one line or back to normal - * @param obj pointer to a text area object - * @param en true: one line, false: normal - */ -void lv_textarea_set_one_line(lv_obj_t * obj, bool en); - -/** - * Set a list of characters. Only these characters will be accepted by the text area - * @param obj pointer to a text area object - * @param list list of characters. Only the pointer is saved. E.g. "+-.,0123456789" - */ -void lv_textarea_set_accepted_chars(lv_obj_t * obj, const char * list); - -/** - * Set max length of a Text Area. - * @param obj pointer to a text area object - * @param num the maximal number of characters can be added (`lv_textarea_set_text` ignores it) - */ -void lv_textarea_set_max_length(lv_obj_t * obj, uint32_t num); - -/** - * In `LV_EVENT_INSERT` the text which planned to be inserted can be replaced by an other text. - * It can be used to add automatic formatting to the text area. - * @param obj pointer to a text area object - * @param txt pointer to a new string to insert. If `""` no text will be added. - * The variable must be live after the `event_cb` exists. (Should be `global` or `static`) - */ -void lv_textarea_set_insert_replace(lv_obj_t * obj, const char * txt); - -/** - * Enable/disable selection mode. - * @param obj pointer to a text area object - * @param en true or false to enable/disable selection mode - */ -void lv_textarea_set_text_selection(lv_obj_t * obj, bool en); - -/** - * Set how long show the password before changing it to '*' - * @param obj pointer to a text area object - * @param time show time in milliseconds. 0: hide immediately. - */ -void lv_textarea_set_password_show_time(lv_obj_t * obj, uint16_t time); - -/** - * Deprecated: use the normal text_align style property instead - * Set the label's alignment. - * It sets where the label is aligned (in one line mode it can be smaller than the text area) - * and how the lines of the area align in case of multiline text area - * @param obj pointer to a text area object - * @param align the align mode from ::lv_text_align_t - */ -void lv_textarea_set_align(lv_obj_t * obj, lv_text_align_t align); - -/*===================== - * Getter functions - *====================*/ - -/** - * Get the text of a text area. In password mode it gives the real text (not '*'s). - * @param obj pointer to a text area object - * @return pointer to the text - */ -const char * lv_textarea_get_text(const lv_obj_t * obj); - -/** - * Get the placeholder text of a text area - * @param obj pointer to a text area object - * @return pointer to the text - */ -const char * lv_textarea_get_placeholder_text(lv_obj_t * obj); - -/** - * Get the label of a text area - * @param obj pointer to a text area object - * @return pointer to the label object - */ -lv_obj_t * lv_textarea_get_label(const lv_obj_t * obj); - -/** - * Get the current cursor position in character index - * @param obj pointer to a text area object - * @return the cursor position - */ -uint32_t lv_textarea_get_cursor_pos(const lv_obj_t * obj); - -/** - * Get whether the cursor click positioning is enabled or not. - * @param obj pointer to a text area object - * @return true: enable click positions; false: disable - */ -bool lv_textarea_get_cursor_click_pos(lv_obj_t * obj); - -/** - * Get the password mode attribute - * @param obj pointer to a text area object - * @return true: password mode is enabled, false: disabled - */ -bool lv_textarea_get_password_mode(const lv_obj_t * obj); - -/** - * Get the one line configuration attribute - * @param obj pointer to a text area object - * @return true: one line configuration is enabled, false: disabled - */ -bool lv_textarea_get_one_line(const lv_obj_t * obj); - -/** - * Get a list of accepted characters. - * @param obj pointer to a text area object - * @return list of accented characters. - */ -const char * lv_textarea_get_accepted_chars(lv_obj_t * obj); - -/** - * Get max length of a Text Area. - * @param obj pointer to a text area object - * @return the maximal number of characters to be add - */ -uint32_t lv_textarea_get_max_length(lv_obj_t * obj); - -/** - * Find whether text is selected or not. - * @param obj pointer to a text area object - * @return whether text is selected or not - */ -bool lv_textarea_text_is_selected(const lv_obj_t * obj); - -/** - * Find whether selection mode is enabled. - * @param obj pointer to a text area object - * @return true: selection mode is enabled, false: disabled - */ -bool lv_textarea_get_text_selection(lv_obj_t * obj); - -/** - * Set how long show the password before changing it to '*' - * @param obj pointer to a text area object - * @return show time in milliseconds. 0: hide immediately. - */ -uint16_t lv_textarea_get_password_show_time(lv_obj_t * obj); - -/*===================== - * Other functions - *====================*/ - -/** - * Clear the selection on the text area. - * @param obj pointer to a text area object - */ -void lv_textarea_clear_selection(lv_obj_t * obj); - -/** - * Move the cursor one character right - * @param obj pointer to a text area object - */ -void lv_textarea_cursor_right(lv_obj_t * obj); - -/** - * Move the cursor one character left - * @param obj pointer to a text area object - */ -void lv_textarea_cursor_left(lv_obj_t * obj); - -/** - * Move the cursor one line down - * @param obj pointer to a text area object - */ -void lv_textarea_cursor_down(lv_obj_t * obj); - -/** - * Move the cursor one line up - * @param obj pointer to a text area object - */ -void lv_textarea_cursor_up(lv_obj_t * obj); - -/********************** - * MACROS - **********************/ - -#endif /*LV_USE_TEXTAREA_H*/ - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*LV_TEXTAREA_H*/