1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-14 06:42:58 +08:00
lvgl/lv_conf_template.h

361 lines
13 KiB
C
Raw Normal View History

2016-06-08 07:25:08 +02:00
/**
* @file lv_conf.h
2018-06-19 09:49:58 +02:00
*
2016-06-08 07:25:08 +02:00
*/
2018-10-05 10:38:49 +02:00
/*
* COPY THIS FILE AS lv_conf.h
*/
#if 0 /*Set it to "1" to enable content*/
2017-01-02 15:00:21 +01:00
2019-02-25 06:50:20 +01:00
2017-11-19 21:54:07 +01:00
#ifndef LV_CONF_H
#define LV_CONF_H
2019-02-25 06:50:20 +01:00
/*===================
Graphical settings
*===================*/
/* Horizontal and vertical resolution of the library.*/
#define LV_HOR_RES_MAX (480)
#define LV_VER_RES_MAX (320)
/*Color settings*/
#define LV_COLOR_DEPTH 16 /*Color depth: 1/8/16/32*/
#define LV_COLOR_16_SWAP 0 /*Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI)*/
#define LV_COLOR_SCREEN_TRANSP 0 /*1: Enable screen transparency. Useful for OSD or other overlapping GUIs. Requires ARGB8888 colors*/
#define LV_COLOR_TRANSP LV_COLOR_LIME /*Images pixels with this color will not be drawn (with chroma keying)*/
/* Enable anti-aliasing (lines, and radiuses will be smoothed) */
#define LV_ANTIALIAS 1 /*1: Enable anti-aliasing*/
/*Default screen refresh period in milliseconds. LittlevGL will redraw the screen with this period*/
2019-02-25 06:50:20 +01:00
#define LV_REFR_PERIOD 30 /*[ms]*/
/* Dot Per Inch: used to initialize default sizes. E.g. a button with width = LV_DPI / 2 -> half inch wide
* (Not so important, you can adjust it to modify default sizes and spaces)*/
#define LV_DPI 100 /*[px]*/
/*===================
Dynamic memory
*===================*/
2018-02-23 17:07:02 +01:00
/* Memory size which will be used by the library
* to store the graphical objects and other data */
2018-12-29 09:12:46 +01:00
#define LV_MEM_CUSTOM 0 /*1: use custom malloc/free, 0: use the built-in lv_mem_alloc/lv_mem_free*/
2017-11-26 13:13:45 +01:00
#if LV_MEM_CUSTOM == 0
2019-03-08 07:54:36 +01:00
# define LV_MEM_SIZE (32U * 1024U) /*Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
2019-01-28 16:01:59 +01:00
# define LV_MEM_ATTR /*Complier prefix for big array declaration*/
# define LV_MEM_ADR 0 /*Set an address for memory pool instead of allocation it as an array. Can be in external SRAM too.*/
# define LV_MEM_AUTO_DEFRAG 1 /*Automatically defrag on free*/
2017-11-26 13:13:45 +01:00
#else /*LV_MEM_CUSTOM*/
2019-01-28 16:01:59 +01:00
# define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
# define LV_MEM_CUSTOM_ALLOC malloc /*Wrapper to malloc*/
# define LV_MEM_CUSTOM_FREE free /*Wrapper to free*/
2017-12-07 19:27:13 +01:00
#endif /*LV_MEM_CUSTOM*/
2017-11-19 21:54:07 +01:00
2019-02-01 05:03:35 +01:00
/* Garbage Collector settings
* Used if lvgl is binded to higher language and the memory is managed by that language */
2019-01-28 16:01:59 +01:00
#define LV_ENABLE_GC 0
#if LV_ENABLE_GC != 0
# define LV_MEM_CUSTOM_REALLOC your_realloc /*Wrapper to realloc*/
# define LV_MEM_CUSTOM_GET_SIZE your_mem_get_size /*Wrapper to lv_mem_get_size*/
# define LV_GC_INCLUDE "gc.h" /*Include Garbage Collector related things*/
#endif /* LV_ENABLE_GC */
2016-06-08 07:25:08 +02:00
/*=================
Misc. setting
*=================*/
2017-11-19 21:54:07 +01:00
/*Input device settings*/
2019-02-25 06:50:20 +01:00
#define LV_INDEV_READ_PERIOD 30 /*Input device read period in milliseconds*/
#define LV_INDEV_POINT_MARKER 0 /*Mark the pressed points (required: LV_USE_REAL_DRAW = 1)*/
#define LV_INDEV_DRAG_LIMIT 10 /*Drag threshold in pixels */
2019-02-25 06:50:20 +01:00
#define LV_INDEV_DRAG_THROW 20 /*Drag throw slow-down in [%]. Greater value means faster slow-down */
2017-11-26 13:13:45 +01:00
#define LV_INDEV_LONG_PRESS_TIME 400 /*Long press time in milliseconds*/
#define LV_INDEV_LONG_PRESS_REP_TIME 100 /*Repeated trigger period in long press [ms] */
/*Text settings*/
2018-01-02 12:40:09 +01:00
#define LV_TXT_BREAK_CHARS " ,.;:-_" /*Can break texts on these chars*/
#define LV_TXT_LINE_BREAK_LONG_LEN 12 /* If a character is at least this long, will break wherever "prettiest" */
#define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3 /* Minimum number of characters of a word to put on a line before a break */
#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 1 /* Minimum number of characters of a word to put on a line after a break */
2017-11-27 17:48:54 +01:00
2018-12-29 09:12:46 +01:00
/*Feature usage*/
#define LV_USE_ANIMATION 1 /*1: Enable all animations*/
#define LV_USE_SHADOW 1 /*1: Enable shadows*/
#define LV_USE_GROUP 1 /*1: Enable object groups (for keyboards)*/
#if LV_USE_GROUP
2019-03-06 23:14:35 +01:00
typedef void * lv_group_user_data_t;
#endif /*LV_USE_GROUP*/
#define LV_USE_GPU 1 /*1: Enable GPU interface*/
#define LV_USE_FILESYSTEM 1 /*1: Enable file system (might be required for images*/
#define LV_USE_USER_DATA_SINGLE 1 /*1: Add a `user_data` to drivers and objects*/
#define LV_USE_USER_DATA_MULTI 0 /*1: Add separate `user_data` for every callback*/
2017-11-19 21:54:07 +01:00
/*Compiler settings*/
#define LV_ATTRIBUTE_TICK_INC /* Define a custom attribute to `lv_tick_inc` function */
#define LV_ATTRIBUTE_TASK_HANDLER /* Define a custom attribute to `lv_task_handler` function */
2018-10-03 09:00:32 +02:00
#define LV_COMPILER_VLA_SUPPORTED 1 /* 1: Variable length array is supported*/
#define LV_COMPILER_NON_CONST_INIT_SUPPORTED 1 /* 1: Initialization with non constant values are supported */
2018-09-06 01:28:58 +02:00
/*HAL settings*/
#define LV_TICK_CUSTOM 0 /*1: use a custom tick source (removing the need to manually update the tick with `lv_tick_inc`) */
#if LV_TICK_CUSTOM == 1
2019-02-25 06:50:20 +01:00
#define LV_TICK_CUSTOM_INCLUDE "something.h" /*Header for the sys time function*/
2018-09-06 01:28:58 +02:00
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current systime in ms*/
2019-02-25 06:50:20 +01:00
#endif /*LV_TICK_CUSTOM*/
2018-09-06 01:28:58 +02:00
2019-02-25 06:50:20 +01:00
typedef void * lv_disp_drv_user_data_t; /*Type of user data in the display driver*/
typedef void * lv_indev_drv_user_data_t; /*Type of user data in the display driver*/
2018-12-29 09:12:46 +01:00
/*Log settings*/
#define LV_USE_LOG 1 /*Enable/disable the log module*/
#if LV_USE_LOG
2018-07-25 17:58:34 +02:00
/* 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
2019-02-25 06:50:20 +01:00
* 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
2018-07-25 17:58:34 +02:00
*/
2019-01-28 16:01:59 +01:00
# define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
2018-07-25 17:58:34 +02:00
2019-02-25 06:50:20 +01:00
/* 1: Print the log with 'printf'; 0: user need to register a callback*/
2019-02-01 05:03:35 +01:00
# define LV_LOG_PRINTF 0
#endif /*LV_USE_LOG*/
2017-12-21 00:19:59 +01:00
/*================
2017-11-19 21:54:07 +01:00
* THEME USAGE
2017-11-26 13:13:45 +01:00
*================*/
2019-02-25 06:50:20 +01:00
#define LV_THEME_LIVE_UPDATE 0 /*1: Allow theme switching at run time. Uses 8..10 kB of RAM*/
2018-09-06 01:28:58 +02:00
#define LV_USE_THEME_TEMPL 0 /*Just for test*/
2019-03-08 07:54:36 +01:00
#define LV_USE_THEME_DEFAULT 0 /*Built mainly from the built-in styles. Consumes very few RAM*/
#define LV_USE_THEME_ALIEN 0 /*Dark futuristic theme*/
#define LV_USE_THEME_NIGHT 0 /*Dark elegant theme*/
#define LV_USE_THEME_MONO 0 /*Mono color theme for monochrome displays*/
#define LV_USE_THEME_MATERIAL 0 /*Flat theme with bold colors and light shadows*/
#define LV_USE_THEME_ZEN 0 /*Peaceful, mainly light theme */
#define LV_USE_THEME_NEMO 0 /*Water-like theme based on the movie "Finding Nemo"*/
2017-12-03 00:38:08 +01:00
2017-11-26 13:13:45 +01:00
/*==================
* FONT USAGE
*===================*/
2018-02-23 17:07:02 +01:00
2018-12-29 09:12:46 +01:00
/* More info about fonts: https://docs.littlevgl.com/#Fonts
2018-02-23 17:07:02 +01:00
* To enable a built-in font use 1,2,4 or 8 values
2018-12-29 09:12:46 +01:00
* which will determine the bit-per-pixel. Higher value means smoother fonts */
#define LV_USE_FONT_DEJAVU_10 0
#define LV_USE_FONT_DEJAVU_10_LATIN_SUP 0
#define LV_USE_FONT_DEJAVU_10_CYRILLIC 0
#define LV_USE_FONT_SYMBOL_10 0
#define LV_USE_FONT_DEJAVU_20 4
#define LV_USE_FONT_DEJAVU_20_LATIN_SUP 4
#define LV_USE_FONT_DEJAVU_20_CYRILLIC 4
#define LV_USE_FONT_SYMBOL_20 4
2017-11-26 13:13:45 +01:00
#define LV_USE_FONT_DEJAVU_30 0
#define LV_USE_FONT_DEJAVU_30_LATIN_SUP 0
#define LV_USE_FONT_DEJAVU_30_CYRILLIC 0
#define LV_USE_FONT_SYMBOL_30 0
#define LV_USE_FONT_DEJAVU_40 0
#define LV_USE_FONT_DEJAVU_40_LATIN_SUP 0
#define LV_USE_FONT_DEJAVU_40_CYRILLIC 0
#define LV_USE_FONT_SYMBOL_40 0
2017-11-26 13:13:45 +01:00
2019-03-08 07:54:36 +01:00
#define LV_USE_FONT_MONOSPACE_8 0
/* Optionally declare your custom fonts here.
2018-10-05 10:38:49 +02:00
* 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) \
*/
#define LV_FONT_CUSTOM_DECLARE
2018-12-29 09:12:46 +01:00
#define LV_FONT_DEFAULT &lv_font_dejavu_20 /*Always set a default font from the built-in fonts*/
2017-12-07 19:27:13 +01:00
/*===================
2017-11-26 14:39:22 +01:00
* LV_OBJ SETTINGS
*==================*/
typedef void * lv_obj_user_data_t; /*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
2019-03-08 14:11:13 +01:00
#define LV_OBJ_REALIGN 0 /*Enable `lv_obj_realign()` based on `lv_obj_align()` parameters*/
2017-11-26 13:13:45 +01:00
2016-06-08 07:25:08 +02:00
/*==================
2018-06-19 09:49:58 +02:00
* LV OBJ X USAGE
2017-11-26 13:13:45 +01:00
*================*/
2018-01-02 12:40:09 +01:00
/*
2018-12-29 09:12:46 +01:00
* Documentation of the object types: https://docs.littlevgl.com/#Object-types
2018-01-02 12:40:09 +01:00
*/
2017-01-02 15:00:21 +01:00
2017-04-24 16:16:36 +02:00
/*****************
* Simple object
*****************/
2016-06-08 07:25:08 +02:00
2017-01-02 15:29:05 +01:00
/*Label (dependencies: -*/
#define LV_USE_LABEL 1
#if LV_USE_LABEL != 0
2019-01-28 16:01:59 +01:00
# define LV_LABEL_SCROLL_SPEED 25 /*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_SCROLL/ROLL' mode*/
#endif
2016-06-08 07:25:08 +02:00
/*Image (dependencies: lv_label*/
#define LV_USE_IMG 1
#if LV_USE_IMG != 0
2019-01-28 16:01:59 +01:00
# define LV_IMG_CF_INDEXED 1 /*Enable indexed (palette) images*/
# define LV_IMG_CF_ALPHA 1 /*Enable alpha indexed images*/
#endif
2016-06-08 07:25:08 +02:00
2017-04-24 16:16:36 +02:00
/*Line (dependencies: -*/
#define LV_USE_LINE 1
2017-04-24 16:16:36 +02:00
2018-06-08 10:26:10 +02:00
/*Arc (dependencies: -)*/
#define LV_USE_ARC 1
2018-06-08 10:26:10 +02:00
2017-04-24 16:16:36 +02:00
/*******************
2017-11-30 11:35:33 +01:00
* Container objects
2017-04-24 16:16:36 +02:00
*******************/
/*Container (dependencies: -*/
#define LV_USE_CONT 1
2017-04-24 16:16:36 +02:00
2017-05-15 09:14:48 +02:00
/*Page (dependencies: lv_cont)*/
#define LV_USE_PAGE 1
2016-06-08 07:25:08 +02:00
/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
#define LV_USE_WIN 1
2017-01-02 15:00:21 +01:00
/*Tab (dependencies: lv_page, lv_btnm)*/
#define LV_USE_TABVIEW 1
# if LV_USE_TABVIEW != 0
2019-01-28 16:01:59 +01:00
# define LV_TABVIEW_ANIM_TIME 300 /*Time of slide animation [ms] (0: no animation)*/
#endif
/*Tileview (dependencies: lv_page) */
#define LV_USE_TILEVIEW 1
#if LV_USE_TILEVIEW
2019-01-28 16:01:59 +01:00
# define LV_TILEVIEW_ANIM_TIME 300 /*Time of slide animation [ms] (0: no animation)*/
#endif
2017-04-24 16:16:36 +02:00
/*************************
2017-11-30 11:35:33 +01:00
* Data visualizer objects
2017-04-24 16:16:36 +02:00
*************************/
/*Bar (dependencies: -)*/
#define LV_USE_BAR 1
2017-04-24 16:16:36 +02:00
/*Line meter (dependencies: *;)*/
#define LV_USE_LMETER 1
2017-04-24 16:16:36 +02:00
2019-01-14 16:03:40 +01:00
/*Gauge (dependencies:lv_bar, lv_lmeter)*/
#define LV_USE_GAUGE 1
2016-06-08 07:25:08 +02:00
2017-04-24 16:16:36 +02:00
/*Chart (dependencies: -)*/
#define LV_USE_CHART 1
#define LV_CHART_AXIS_TICK_LABEL_MAX_LEN 16
2016-09-30 13:35:54 +02:00
2018-12-13 17:41:59 +01:00
/*Table (dependencies: lv_label)*/
#define LV_USE_TABLE 1
#if LV_USE_TABLE
2019-01-28 16:01:59 +01:00
# define LV_TABLE_COL_MAX 12
2018-12-13 17:41:59 +01:00
#endif
2017-05-15 09:14:48 +02:00
/*LED (dependencies: -)*/
#define LV_USE_LED 1
2016-09-30 13:35:54 +02:00
/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
#define LV_USE_MBOX 1
2016-09-30 13:35:54 +02:00
2017-01-02 15:29:05 +01:00
/*Text area (dependencies: lv_label, lv_page)*/
#define LV_USE_TA 1
#if LV_USE_TA != 0
2019-01-28 16:01:59 +01:00
# define LV_TA_CURSOR_BLINK_TIME 400 /*ms*/
# define LV_TA_PWD_SHOW_TIME 1500 /*ms*/
2017-01-02 15:00:21 +01:00
#endif
2016-09-30 13:35:54 +02:00
2018-12-20 00:01:24 +01:00
/*Spinbox (dependencies: lv_ta)*/
#define LV_USE_SPINBOX 1
2018-12-20 00:01:24 +01:00
2018-06-08 09:51:11 +02:00
/*Calendar (dependencies: -)*/
#define LV_USE_CALENDAR 1
2018-06-08 09:51:11 +02:00
2019-01-14 16:03:40 +01:00
/*Preload (dependencies: lv_arc)*/
#define LV_USE_PRELOAD 1
#if LV_USE_PRELOAD != 0
2019-01-28 16:01:59 +01:00
# define LV_PRELOAD_DEF_ARC_LENGTH 60 /*[deg]*/
# define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
# define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_SPINNING_ARC
2018-06-11 10:36:36 +02:00
#endif
2019-01-14 16:03:40 +01:00
/*Canvas (dependencies: lv_img)*/
#define LV_USE_CANVAS 1
2017-04-24 16:16:36 +02:00
/*************************
2017-11-30 11:35:33 +01:00
* User input objects
2017-04-24 16:16:36 +02:00
*************************/
/*Button (dependencies: lv_cont*/
#define LV_USE_BTN 1
#if LV_USE_BTN != 0
# define LV_BTN_INK_EFFECT 1 /*Enable button-state animations - draw a circle on click (dependencies: LV_USE_ANIMATION)*/
2018-09-21 06:56:37 +02:00
#endif
2018-09-21 14:16:10 +02:00
2018-09-06 20:57:59 +02:00
/*Image Button (dependencies: lv_btn*/
#define LV_USE_IMGBTN 1
#if LV_USE_IMGBTN
2019-01-28 16:01:59 +01:00
# define LV_IMGBTN_TILED 0 /*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
2018-11-20 17:05:55 +01:00
#endif
2018-09-06 20:57:59 +02:00
2017-04-24 16:16:36 +02:00
/*Button matrix (dependencies: -)*/
#define LV_USE_BTNM 1
2016-09-30 13:35:54 +02:00
/*Keyboard (dependencies: lv_btnm)*/
#define LV_USE_KB 1
2017-04-24 16:16:36 +02:00
/*Check box (dependencies: lv_btn, lv_label)*/
#define LV_USE_CB 1
2017-04-24 16:16:36 +02:00
2017-11-19 21:54:07 +01:00
/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
#define LV_USE_LIST 1
#if LV_USE_LIST != 0
2019-01-28 16:01:59 +01:00
# define LV_LIST_FOCUS_TIME 100 /*Default animation time of focusing to a list element [ms] (0: no animation) */
#endif
2017-04-24 16:16:36 +02:00
2018-11-08 23:30:13 +08:00
/*Drop down list (dependencies: lv_page, lv_label, lv_symbol_def.h)*/
#define LV_USE_DDLIST 1
#if LV_USE_DDLIST != 0
2019-01-28 16:01:59 +01:00
# define LV_DDLIST_ANIM_TIME 200 /*Open and close default animation time [ms] (0: no animation)*/
2017-05-15 09:14:48 +02:00
#endif
2017-12-21 00:19:59 +01:00
/*Roller (dependencies: lv_ddlist)*/
#define LV_USE_ROLLER 1
#if LV_USE_ROLLER != 0
2019-01-28 16:01:59 +01:00
# define LV_ROLLER_ANIM_TIME 200 /*Focus animation time [ms] (0: no animation)*/
2019-03-17 04:32:37 +01:00
# define LV_ROLLER_INF_PAGES 7 /*With inifinite rollers the options are added multiple times (on select positioned back to the center)*/
2017-12-21 00:19:59 +01:00
#endif
2017-02-06 10:07:25 +01:00
2017-05-15 09:14:48 +02:00
/*Slider (dependencies: lv_bar)*/
#define LV_USE_SLIDER 1
2017-01-02 15:00:21 +01:00
2017-12-21 00:19:59 +01:00
/*Switch (dependencies: lv_slider)*/
#define LV_USE_SW 1
2017-12-21 00:19:59 +01:00
2018-03-22 14:41:55 +01:00
/*************************
* Non-user section
*************************/
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) /* Disable warnings for Visual Studio*/
2019-01-28 16:01:59 +01:00
# define _CRT_SECURE_NO_WARNINGS
2018-03-22 14:41:55 +01:00
#endif
2018-12-20 00:01:24 +01:00
/*--END OF LV_CONF_H--*/
/*Be sure every define has a default value*/
2019-03-17 08:33:03 +01:00
#include "lvgl/src/lv_conf_checker.h"
2018-12-20 00:01:24 +01:00
2017-01-02 15:00:21 +01:00
#endif /*LV_CONF_H*/
2019-02-25 06:50:20 +01:00
#endif /*End of "Content enable"*/