回放界面重叠问题, loop异常, 拍照0还能拍照问题

This commit is contained in:
xiehongyan 2024-01-19 16:17:33 +08:00
parent 718af0e9ea
commit f85b8ebec1
10 changed files with 575 additions and 305 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
#用于gitlab-ci.yml编译使用 #用于gitlab-ci.yml编译使用
make app_clean #make app_clean
echo "Start compile." echo "Start compile."
export ROOT_PATH=$PWD export ROOT_PATH=$PWD
@ -9,7 +9,7 @@ export ROOT_PATH=$PWD
cd rtos cd rtos
source build/envsetup.sh source build/envsetup.sh
lunch rtos cfg_565_HUNTING_EVB_LINUX_4G_S550 gcc-6.5-newlib-2.4-2019.11-arm-ca9-eabihf lunch rtos cfg_565_HUNTING_EVB_LINUX_4G_S550 gcc-6.5-newlib-2.4-2019.11-arm-ca9-eabihf
make clean #make clean
bear make all > /dev/null bear make all > /dev/null
cp output/application.bin ../ cp output/application.bin ../
cp output/rtos-main.bin ../ cp output/rtos-main.bin ../
@ -18,7 +18,7 @@ cp output/rtos-main.bin ../
cd $ROOT_PATH cd $ROOT_PATH
source build/envsetup.sh source build/envsetup.sh
lunch Linux cfg_565_HUNTING_EVB_LINUX_4G_S550 arm-ca9-linux-uclibcgnueabihf-8.4.01 lunch Linux cfg_565_HUNTING_EVB_LINUX_4G_S550 arm-ca9-linux-uclibcgnueabihf-8.4.01
make clean #make clean
bear make all > /dev/null bear make all > /dev/null
cd $ROOT_PATH cd $ROOT_PATH

View File

@ -774,6 +774,10 @@ UINT32 PhotoExe_GetFreePicNum(void)
freeImgNum = 0; freeImgNum = 0;
} else { } else {
freeImgNum = (uiFreeSpace - reserveSize) / CaptureSize; freeImgNum = (uiFreeSpace - reserveSize) / CaptureSize;
if(freeImgNum == 0)
{
freeImgNum = 1;
}
} }
//DBG_IND("[cap]Free ImgNum = %d\r\n", freeImgNum); //DBG_IND("[cap]Free ImgNum = %d\r\n", freeImgNum);

View File

@ -783,6 +783,9 @@ LV_PLUG_RET lv_plugin_scr_close(lv_obj_t* scr, const void * data)
if(_lv_plugin_scr_is_attached(scr) == false) if(_lv_plugin_scr_is_attached(scr) == false)
return LV_PLUG_SUCCESS; return LV_PLUG_SUCCESS;
/* avoid recursively close */
if(lv_plugin_scr_is_ready_to_be_closed(scr))
return LV_PLUG_SUCCESS;
/* add all screens ready to be closed LV_STATE_DISABLED */ /* add all screens ready to be closed LV_STATE_DISABLED */
child = NULL; child = NULL;
@ -793,7 +796,7 @@ LV_PLUG_RET lv_plugin_scr_close(lv_obj_t* scr, const void * data)
do do
{ {
next_child = lv_obj_get_child(inter_param->root_scr, child); next_child = lv_obj_get_child(inter_param->root_scr, child);
lv_obj_add_state(scr, LV_STATE_DISABLED); lv_obj_add_state(child, LV_STATE_DISABLED);
if(NULL == next_child) if(NULL == next_child)
break; break;

View File

@ -1,297 +1,551 @@
#ifndef LV_PLUGIN_COMMON_H #ifndef LV_PLUGIN_COMMON_H
#define LV_PLUGIN_COMMON_H #define LV_PLUGIN_COMMON_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include "lvgl/lvgl.h" #include "lvgl/lvgl.h"
#define LV_PLUGIN_VERSION_MAJOR 1
#define LV_PLUGIN_RES_ID_NONE 0 #define LV_PLUGIN_VERSION_MINOR 1
#define LV_PLUGIN_RES_ID_MAX (UINT16_MAX) #define LV_PLUGIN_VERSION_PATCH 0
#define LV_PLUGIN_EVENT_FIRST _LV_EVENT_LAST #define LV_PLUGIN_RES_ID_NONE 0
#define LV_PLUGIN_RES_ID_MAX (UINT16_MAX)
/* copy from lv_mem.c */
#ifdef LV_ARCH_64 #define LV_PLUGIN_EVENT_FIRST _LV_EVENT_LAST
#define ALIGN_MASK 0x7
#else /* copy from lv_mem.c */
#define ALIGN_MASK 0x3 #ifdef LV_ARCH_64
#endif #define ALIGN_MASK 0x7
#else
#ifdef LV_ARCH_64 #define ALIGN_MASK 0x3
#define MEM_UNIT uint64_t #endif
#else
#define MEM_UNIT uint32_t #ifdef LV_ARCH_64
#endif #define MEM_UNIT uint64_t
#else
#define LV_PLUGIN_PADD MEM_UNIT padd; #define MEM_UNIT uint32_t
#endif
typedef void (*lv_plugin_iterator_callback)(lv_obj_t* obj);
#define LV_PLUGIN_PADD MEM_UNIT padd;
typedef struct {
const char* ptr; typedef void (*lv_plugin_iterator_callback)(lv_obj_t* obj);
const uint32_t size;
} lv_plugin_string_t; typedef struct {
const char* ptr;
typedef struct { const uint32_t size;
const lv_img_dsc_t* img; } lv_plugin_string_t;
} lv_plugin_img_t;
typedef struct {
typedef struct { const lv_img_dsc_t* img;
const lv_font_t* font; } lv_plugin_img_t;
} lv_plugin_font_t;
typedef struct {
typedef enum { const lv_font_t* font;
LV_PLUG_SUCCESS = 0, } lv_plugin_font_t;
LV_PLUG_ERR_INVALID_PARAM,
LV_PLUG_ERR_INVALID_RES, typedef enum {
LV_PLUG_ERR_INVALID_OBJ, LV_PLUG_SUCCESS = 0,
LV_PLUG_ERR_INVALID_RES_ID, LV_PLUG_ERR_INVALID_PARAM,
LV_PLUG_ERR_STYLE_LIST_NOT_FOUND, LV_PLUG_ERR_INVALID_RES,
LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED, LV_PLUG_ERR_INVALID_OBJ,
LV_PLUG_ERR_MENU_OUT_OF_IDX, LV_PLUG_ERR_INVALID_RES_ID,
LV_PLUG_ERR_MENU_ALREADY_ALLOCATED, LV_PLUG_ERR_STYLE_LIST_NOT_FOUND,
LV_PLUG_ERR_MENU_NOT_ALLOCATED, LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED,
} LV_PLUG_RET; LV_PLUG_ERR_MENU_OUT_OF_IDX,
LV_PLUG_ERR_MENU_ALREADY_ALLOCATED,
enum { LV_PLUG_ERR_MENU_NOT_ALLOCATED,
LV_PLUGIN_EVENT_SCR_OPEN = LV_PLUGIN_EVENT_FIRST, } LV_PLUG_RET;
LV_PLUGIN_EVENT_SCR_CLOSE,
LV_PLUGIN_EVENT_CHILD_SCR_CLOSE, enum {
LV_PLUGIN_EVENT_MENU_ITEM_FOCUSED, LV_PLUGIN_EVENT_SCR_OPEN = LV_PLUGIN_EVENT_FIRST,
LV_PLUGIN_EVENT_MENU_ITEM_DEFOCUSED, LV_PLUGIN_EVENT_SCR_CLOSE,
LV_PLUGIN_EVENT_MENU_ITEM_SELECTED, LV_PLUGIN_EVENT_CHILD_SCR_CLOSE,
LV_PLUGIN_EVENT_MENU_NOTIFY_END_OF_ITEM, LV_PLUGIN_EVENT_MENU_ITEM_FOCUSED,
_LV_PLUGIN_EVENT_LAST LV_PLUGIN_EVENT_MENU_ITEM_DEFOCUSED,
}; LV_PLUGIN_EVENT_MENU_ITEM_SELECTED,
LV_PLUGIN_EVENT_MENU_NOTIFY_END_OF_ITEM,
typedef enum { _LV_PLUGIN_EVENT_LAST
LV_PLUGIN_LANGUAGE_FONT_TYPE_0 = 0, };
LV_PLUGIN_LANGUAGE_FONT_TYPE_1,
LV_PLUGIN_LANGUAGE_FONT_TYPE_2, typedef enum {
LV_PLUGIN_LANGUAGE_FONT_TYPE_3, LV_PLUGIN_LANGUAGE_FONT_TYPE_0 = 0,
LV_PLUGIN_LANGUAGE_FONT_TYPE_4, LV_PLUGIN_LANGUAGE_FONT_TYPE_1,
LV_PLUGIN_LANGUAGE_FONT_TYPE_NUM LV_PLUGIN_LANGUAGE_FONT_TYPE_2,
} LV_PLUGIN_LANGUAGE_FONT_TYPE; LV_PLUGIN_LANGUAGE_FONT_TYPE_3,
LV_PLUGIN_LANGUAGE_FONT_TYPE_4,
typedef uint16_t lv_plugin_res_id; LV_PLUGIN_LANGUAGE_FONT_TYPE_5,
LV_PLUGIN_LANGUAGE_FONT_TYPE_6,
typedef struct { LV_PLUGIN_LANGUAGE_FONT_TYPE_7,
LV_PLUGIN_LANGUAGE_FONT_TYPE_8,
lv_plugin_img_t* img_table; LV_PLUGIN_LANGUAGE_FONT_TYPE_9,
lv_plugin_font_t* font_table; LV_PLUGIN_LANGUAGE_FONT_TYPE_10,
lv_plugin_string_t** language_table; LV_PLUGIN_LANGUAGE_FONT_TYPE_11,
lv_plugin_res_id** language_font_map; /* language - font map, one language coulde associates multiple fonts */ LV_PLUGIN_LANGUAGE_FONT_TYPE_12,
lv_plugin_res_id* fixed_language_string_id_table; LV_PLUGIN_LANGUAGE_FONT_TYPE_13,
LV_PLUGIN_LANGUAGE_FONT_TYPE_14,
uint16_t img_table_size; /* how many images */ LV_PLUGIN_LANGUAGE_FONT_TYPE_15,
uint16_t font_table_size; /* how many fonts */ LV_PLUGIN_LANGUAGE_FONT_TYPE_16,
uint16_t language_table_size; /* how many languages */ LV_PLUGIN_LANGUAGE_FONT_TYPE_17,
uint16_t string_table_size; /* how many string ids */ LV_PLUGIN_LANGUAGE_FONT_TYPE_18,
uint8_t language_font_type_size; /* how many fonts associated with per language */ LV_PLUGIN_LANGUAGE_FONT_TYPE_19,
LV_PLUGIN_LANGUAGE_FONT_TYPE_20,
} lv_plugin_res_t; LV_PLUGIN_LANGUAGE_FONT_TYPE_21,
LV_PLUGIN_LANGUAGE_FONT_TYPE_22,
LV_PLUGIN_LANGUAGE_FONT_TYPE_23,
typedef struct { LV_PLUGIN_LANGUAGE_FONT_TYPE_24,
lv_label_ext_t base_ext; LV_PLUGIN_LANGUAGE_FONT_TYPE_25,
lv_plugin_res_id string_id; LV_PLUGIN_LANGUAGE_FONT_TYPE_26,
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type; LV_PLUGIN_LANGUAGE_FONT_TYPE_27,
LV_PLUGIN_PADD LV_PLUGIN_LANGUAGE_FONT_TYPE_28,
} lv_plugin_label_ext_t; LV_PLUGIN_LANGUAGE_FONT_TYPE_29,
LV_PLUGIN_LANGUAGE_FONT_TYPE_30,
typedef struct { LV_PLUGIN_LANGUAGE_FONT_TYPE_31,
lv_img_ext_t base_ext; LV_PLUGIN_LANGUAGE_FONT_TYPE_32,
lv_plugin_res_id img_id; LV_PLUGIN_LANGUAGE_FONT_TYPE_33,
LV_PLUGIN_PADD LV_PLUGIN_LANGUAGE_FONT_TYPE_34,
} lv_plugin_img_ext_t; LV_PLUGIN_LANGUAGE_FONT_TYPE_35,
LV_PLUGIN_LANGUAGE_FONT_TYPE_36,
LV_PLUGIN_LANGUAGE_FONT_TYPE_37,
typedef struct { LV_PLUGIN_LANGUAGE_FONT_TYPE_38,
lv_msgbox_ext_t base_ext; LV_PLUGIN_LANGUAGE_FONT_TYPE_39,
lv_plugin_res_id string_id; LV_PLUGIN_LANGUAGE_FONT_TYPE_40,
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type_bg; LV_PLUGIN_LANGUAGE_FONT_TYPE_41,
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type_btn; LV_PLUGIN_LANGUAGE_FONT_TYPE_42,
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type_btn_bg; LV_PLUGIN_LANGUAGE_FONT_TYPE_43,
LV_PLUGIN_PADD LV_PLUGIN_LANGUAGE_FONT_TYPE_44,
} lv_plugin_msgbox_ext_t; LV_PLUGIN_LANGUAGE_FONT_TYPE_45,
LV_PLUGIN_LANGUAGE_FONT_TYPE_46,
void lv_plugin_init(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_47,
LV_PLUGIN_LANGUAGE_FONT_TYPE_48,
LV_PLUG_RET lv_plugin_install_resource(lv_plugin_res_t* res); LV_PLUGIN_LANGUAGE_FONT_TYPE_49,
LV_PLUGIN_LANGUAGE_FONT_TYPE_50,
const lv_plugin_img_t* lv_plugin_get_img(lv_plugin_res_id id); LV_PLUGIN_LANGUAGE_FONT_TYPE_51,
const lv_plugin_font_t* lv_plugin_get_font(lv_plugin_res_id id); LV_PLUGIN_LANGUAGE_FONT_TYPE_52,
LV_PLUGIN_LANGUAGE_FONT_TYPE_53,
LV_PLUGIN_LANGUAGE_FONT_TYPE_54,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_55,
* Set object font, this API simplify style configuration. LV_PLUGIN_LANGUAGE_FONT_TYPE_56,
* @param obj LV_PLUGIN_LANGUAGE_FONT_TYPE_57,
* @param id font resource id LV_PLUGIN_LANGUAGE_FONT_TYPE_58,
* @param part please refer to lvgl document or just set -1. LV_PLUGIN_LANGUAGE_FONT_TYPE_59,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_60,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_61,
LV_PLUG_RET lv_plugin_obj_set_font(lv_obj_t* obj, lv_plugin_res_id font_id, int16_t part); LV_PLUGIN_LANGUAGE_FONT_TYPE_62,
LV_PLUGIN_LANGUAGE_FONT_TYPE_63,
LV_PLUGIN_LANGUAGE_FONT_TYPE_64,
LV_PLUG_RET lv_plugin_label_update_font(lv_obj_t* label, int16_t part); LV_PLUGIN_LANGUAGE_FONT_TYPE_65,
LV_PLUG_RET lv_plugin_msgbox_update_font(lv_obj_t* msgbox, int16_t part); LV_PLUGIN_LANGUAGE_FONT_TYPE_66,
LV_PLUGIN_LANGUAGE_FONT_TYPE_67,
LV_PLUG_RET lv_plugin_set_active_language(lv_plugin_res_id language_id); LV_PLUGIN_LANGUAGE_FONT_TYPE_68,
lv_plugin_res_id lv_plugin_get_active_language(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_69,
const lv_plugin_string_t* lv_plugin_get_string(lv_plugin_res_id string_id); LV_PLUGIN_LANGUAGE_FONT_TYPE_70,
LV_PLUGIN_LANGUAGE_FONT_TYPE_71,
LV_PLUG_RET lv_plugin_obj_update_font(lv_obj_t* obj, lv_plugin_res_id string_id, int16_t part); LV_PLUGIN_LANGUAGE_FONT_TYPE_72,
LV_PLUG_RET lv_plugin_obj_update_font_ex(lv_obj_t* obj, lv_plugin_res_id string_id, int16_t part, LV_PLUGIN_LANGUAGE_FONT_TYPE type); LV_PLUGIN_LANGUAGE_FONT_TYPE_73,
LV_PLUGIN_LANGUAGE_FONT_TYPE_74,
LV_PLUGIN_LANGUAGE_FONT_TYPE_75,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_76,
* Internal API, check object plug-in extended attributes is allocated, the base_size should be ext size of obj. LV_PLUGIN_LANGUAGE_FONT_TYPE_77,
* @param obj LV_PLUGIN_LANGUAGE_FONT_TYPE_78,
* @param base_size generic widget ext size LV_PLUGIN_LANGUAGE_FONT_TYPE_79,
* @return bool LV_PLUGIN_LANGUAGE_FONT_TYPE_80,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_81,
bool _lv_plugin_obj_is_ext_attr_allocated(lv_obj_t* obj, uint32_t base_size); LV_PLUGIN_LANGUAGE_FONT_TYPE_82,
LV_PLUGIN_LANGUAGE_FONT_TYPE_83,
LV_PLUGIN_LANGUAGE_FONT_TYPE_84,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_85,
* Internal API, allocate object plug-in extended attributes, ext_size is plug-in ext size and should be larger than generic ext size. LV_PLUGIN_LANGUAGE_FONT_TYPE_86,
* @param obj LV_PLUGIN_LANGUAGE_FONT_TYPE_87,
* @param base_size generic widget ext size LV_PLUGIN_LANGUAGE_FONT_TYPE_88,
* @return void* LV_PLUGIN_LANGUAGE_FONT_TYPE_89,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_90,
void* _lv_plugin_obj_allocate_ext_attr(lv_obj_t* obj, uint32_t ext_size); LV_PLUGIN_LANGUAGE_FONT_TYPE_91,
LV_PLUGIN_LANGUAGE_FONT_TYPE_92,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_93,
* Set label font type. LV_PLUGIN_LANGUAGE_FONT_TYPE_94,
* @param label LV_PLUGIN_LANGUAGE_FONT_TYPE_95,
* @param font_type LV_PLUGIN_LANGUAGE_FONT_TYPE_96,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_97,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_98,
LV_PLUG_RET lv_plugin_label_set_font_type(lv_obj_t* label, LV_PLUGIN_LANGUAGE_FONT_TYPE font_type); LV_PLUGIN_LANGUAGE_FONT_TYPE_99,
LV_PLUG_RET lv_plugin_msgbox_set_font_type(lv_obj_t* msgbox, LV_PLUGIN_LANGUAGE_FONT_TYPE font_type, int8_t part); LV_PLUGIN_LANGUAGE_FONT_TYPE_100,
LV_PLUGIN_LANGUAGE_FONT_TYPE_101,
LV_PLUGIN_LANGUAGE_FONT_TYPE_102,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_103,
* Set label text by string id of the active language. LV_PLUGIN_LANGUAGE_FONT_TYPE_104,
* @param label LV_PLUGIN_LANGUAGE_FONT_TYPE_105,
* @param string_id LV_PLUGIN_LANGUAGE_FONT_TYPE_106,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_107,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_108,
LV_PLUG_RET lv_plugin_label_set_text(lv_obj_t* label, lv_plugin_res_id string_id); LV_PLUGIN_LANGUAGE_FONT_TYPE_109,
LV_PLUG_RET lv_plugin_msgbox_set_text(lv_obj_t* msgbox, lv_plugin_res_id string_id); LV_PLUGIN_LANGUAGE_FONT_TYPE_110,
LV_PLUGIN_LANGUAGE_FONT_TYPE_111,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_112,
* Update label text by string id of the active language. LV_PLUGIN_LANGUAGE_FONT_TYPE_113,
* @param label LV_PLUGIN_LANGUAGE_FONT_TYPE_114,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_115,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_116,
LV_PLUG_RET lv_plugin_label_update_text(lv_obj_t* label); LV_PLUGIN_LANGUAGE_FONT_TYPE_117,
LV_PLUG_RET lv_plugin_msgbox_update_text(lv_obj_t* msgbox); LV_PLUGIN_LANGUAGE_FONT_TYPE_118,
LV_PLUGIN_LANGUAGE_FONT_TYPE_119,
LV_PLUGIN_LANGUAGE_FONT_TYPE_120,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_121,
* Check label object plug-in extended attributes is allocated. LV_PLUGIN_LANGUAGE_FONT_TYPE_122,
* @param label LV_PLUGIN_LANGUAGE_FONT_TYPE_123,
* @return bool LV_PLUGIN_LANGUAGE_FONT_TYPE_124,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_125,
bool lv_plugin_label_is_ext_attr_allocated(lv_obj_t* label); LV_PLUGIN_LANGUAGE_FONT_TYPE_126,
bool lv_plugin_msgbox_is_ext_attr_allocated(lv_obj_t* label); LV_PLUGIN_LANGUAGE_FONT_TYPE_127,
LV_PLUGIN_LANGUAGE_FONT_TYPE_128,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_129,
* Allocate label object plug-in extended attributes. LV_PLUGIN_LANGUAGE_FONT_TYPE_130,
* @param label LV_PLUGIN_LANGUAGE_FONT_TYPE_131,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_132,
void* lv_plugin_label_allocate_ext_attr(lv_obj_t* label); LV_PLUGIN_LANGUAGE_FONT_TYPE_133,
void* lv_plugin_msgbox_allocate_ext_attr(lv_obj_t* msgbox); LV_PLUGIN_LANGUAGE_FONT_TYPE_134,
LV_PLUGIN_LANGUAGE_FONT_TYPE_135,
LV_PLUGIN_LANGUAGE_FONT_TYPE_136,
LV_PLUG_RET lv_plugin_img_set_src(lv_obj_t* obj, lv_plugin_res_id img_id); LV_PLUGIN_LANGUAGE_FONT_TYPE_137,
LV_PLUGIN_LANGUAGE_FONT_TYPE_138,
LV_PLUGIN_LANGUAGE_FONT_TYPE_139,
LV_PLUGIN_LANGUAGE_FONT_TYPE_140,
bool lv_plugin_scr_is_ready_to_be_closed(lv_obj_t* scr); LV_PLUGIN_LANGUAGE_FONT_TYPE_141,
LV_PLUGIN_LANGUAGE_FONT_TYPE_142,
LV_PLUGIN_LANGUAGE_FONT_TYPE_143,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_144,
* Open a screen object and send LV_PLUGIN_EVENT_SCR_OPEN events. LV_PLUGIN_LANGUAGE_FONT_TYPE_145,
* @param scr LV_PLUGIN_LANGUAGE_FONT_TYPE_146,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_147,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_148,
LV_PLUG_RET lv_plugin_scr_open(lv_obj_t* scr, const void * data); LV_PLUGIN_LANGUAGE_FONT_TYPE_149,
LV_PLUGIN_LANGUAGE_FONT_TYPE_150,
LV_PLUGIN_LANGUAGE_FONT_TYPE_151,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_152,
* Close a screen object and send LV_PLUGIN_EVENT_SCR_CLOSE events. LV_PLUGIN_LANGUAGE_FONT_TYPE_153,
* @param scr LV_PLUGIN_LANGUAGE_FONT_TYPE_154,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_155,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_156,
LV_PLUG_RET lv_plugin_scr_close(lv_obj_t* scr, const void * data); LV_PLUGIN_LANGUAGE_FONT_TYPE_157,
LV_PLUGIN_LANGUAGE_FONT_TYPE_158,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_159,
* Internal API, attach a screen object to root screen from tmp screen. LV_PLUGIN_LANGUAGE_FONT_TYPE_160,
* @param scr LV_PLUGIN_LANGUAGE_FONT_TYPE_161,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_162,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_163,
LV_PLUG_RET _lv_plugin_scr_attach(lv_obj_t* scr); LV_PLUGIN_LANGUAGE_FONT_TYPE_164,
LV_PLUGIN_LANGUAGE_FONT_TYPE_165,
LV_PLUGIN_LANGUAGE_FONT_TYPE_166,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_167,
* Internal API, detach a screen object from root screen to tmp screen. LV_PLUGIN_LANGUAGE_FONT_TYPE_168,
* @param scr LV_PLUGIN_LANGUAGE_FONT_TYPE_169,
* @return LV_PLUG_RET return code LV_PLUGIN_LANGUAGE_FONT_TYPE_170,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_171,
LV_PLUG_RET _lv_plugin_scr_detach(lv_obj_t* scr); LV_PLUGIN_LANGUAGE_FONT_TYPE_172,
LV_PLUGIN_LANGUAGE_FONT_TYPE_173,
LV_PLUGIN_LANGUAGE_FONT_TYPE_174,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_175,
* Create a plug-in screen. LV_PLUGIN_LANGUAGE_FONT_TYPE_176,
* @return lv_obj_t* plug-in screen LV_PLUGIN_LANGUAGE_FONT_TYPE_177,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_178,
lv_obj_t* lv_plugin_scr_create(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_179,
LV_PLUGIN_LANGUAGE_FONT_TYPE_180,
LV_PLUGIN_LANGUAGE_FONT_TYPE_181,
void lv_plugin_obj_iterator(lv_obj_t* parent, lv_plugin_iterator_callback cb, bool recursive); LV_PLUGIN_LANGUAGE_FONT_TYPE_182,
LV_PLUGIN_LANGUAGE_FONT_TYPE_183,
typedef lv_obj_t * (*lv_plugin_obj_create_cb_t)(lv_obj_t * par, const lv_obj_t * copy); LV_PLUGIN_LANGUAGE_FONT_TYPE_184,
LV_PLUGIN_LANGUAGE_FONT_TYPE_185,
const char* lv_plugin_label_type_name(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_186,
const char* lv_plugin_img_type_name(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_187,
const char* lv_plugin_btn_type_name(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_188,
const char* lv_plugin_cont_type_name(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_189,
const char* lv_plugin_imgbtn_type_name(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_190,
const char* lv_plugin_msgbox_type_name(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_191,
LV_PLUGIN_LANGUAGE_FONT_TYPE_192,
bool lv_plugin_obj_is_label(lv_obj_t* obj); LV_PLUGIN_LANGUAGE_FONT_TYPE_193,
bool lv_plugin_obj_is_img(lv_obj_t* obj); LV_PLUGIN_LANGUAGE_FONT_TYPE_194,
bool lv_plugin_obj_is_imgbtn(lv_obj_t* obj); LV_PLUGIN_LANGUAGE_FONT_TYPE_195,
bool lv_plugin_obj_is_cont(lv_obj_t* obj); LV_PLUGIN_LANGUAGE_FONT_TYPE_196,
bool lv_plugin_obj_is_btn(lv_obj_t* obj); LV_PLUGIN_LANGUAGE_FONT_TYPE_197,
bool lv_plugin_obj_is_msgbox(lv_obj_t* obj); LV_PLUGIN_LANGUAGE_FONT_TYPE_198,
LV_PLUGIN_LANGUAGE_FONT_TYPE_199,
lv_obj_t* lv_plugin_find_child_by_type(lv_obj_t* obj, lv_obj_t* start_child, const char* type); LV_PLUGIN_LANGUAGE_FONT_TYPE_200,
lv_indev_t* lv_plugin_find_indev_by_type(lv_indev_type_t type); LV_PLUGIN_LANGUAGE_FONT_TYPE_201,
LV_PLUGIN_LANGUAGE_FONT_TYPE_202,
lv_obj_t* lv_plugin_scr_act(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_203,
LV_PLUGIN_LANGUAGE_FONT_TYPE_204,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_205,
* Get screen handle by index. LV_PLUGIN_LANGUAGE_FONT_TYPE_206,
* @param index start from bottom(0) to top(count-1) LV_PLUGIN_LANGUAGE_FONT_TYPE_207,
* @return lv_obj_t* plug-in screen LV_PLUGIN_LANGUAGE_FONT_TYPE_208,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_209,
lv_obj_t* lv_plugin_scr_by_index(uint16_t index); LV_PLUGIN_LANGUAGE_FONT_TYPE_210,
LV_PLUGIN_LANGUAGE_FONT_TYPE_211,
/** LV_PLUGIN_LANGUAGE_FONT_TYPE_212,
* Get number of opened screen. LV_PLUGIN_LANGUAGE_FONT_TYPE_213,
* @return uint16_t number of opened screen LV_PLUGIN_LANGUAGE_FONT_TYPE_214,
*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_215,
uint16_t lv_plugin_scr_count(void); LV_PLUGIN_LANGUAGE_FONT_TYPE_216,
LV_PLUGIN_LANGUAGE_FONT_TYPE_217,
#ifdef __cplusplus LV_PLUGIN_LANGUAGE_FONT_TYPE_218,
} /* extern "C" */ LV_PLUGIN_LANGUAGE_FONT_TYPE_219,
#endif LV_PLUGIN_LANGUAGE_FONT_TYPE_220,
LV_PLUGIN_LANGUAGE_FONT_TYPE_221,
#endif /*LV_PLUGIN_H*/ LV_PLUGIN_LANGUAGE_FONT_TYPE_222,
LV_PLUGIN_LANGUAGE_FONT_TYPE_223,
LV_PLUGIN_LANGUAGE_FONT_TYPE_224,
LV_PLUGIN_LANGUAGE_FONT_TYPE_225,
LV_PLUGIN_LANGUAGE_FONT_TYPE_226,
LV_PLUGIN_LANGUAGE_FONT_TYPE_227,
LV_PLUGIN_LANGUAGE_FONT_TYPE_228,
LV_PLUGIN_LANGUAGE_FONT_TYPE_229,
LV_PLUGIN_LANGUAGE_FONT_TYPE_230,
LV_PLUGIN_LANGUAGE_FONT_TYPE_231,
LV_PLUGIN_LANGUAGE_FONT_TYPE_232,
LV_PLUGIN_LANGUAGE_FONT_TYPE_233,
LV_PLUGIN_LANGUAGE_FONT_TYPE_234,
LV_PLUGIN_LANGUAGE_FONT_TYPE_235,
LV_PLUGIN_LANGUAGE_FONT_TYPE_236,
LV_PLUGIN_LANGUAGE_FONT_TYPE_237,
LV_PLUGIN_LANGUAGE_FONT_TYPE_238,
LV_PLUGIN_LANGUAGE_FONT_TYPE_239,
LV_PLUGIN_LANGUAGE_FONT_TYPE_240,
LV_PLUGIN_LANGUAGE_FONT_TYPE_241,
LV_PLUGIN_LANGUAGE_FONT_TYPE_242,
LV_PLUGIN_LANGUAGE_FONT_TYPE_243,
LV_PLUGIN_LANGUAGE_FONT_TYPE_244,
LV_PLUGIN_LANGUAGE_FONT_TYPE_245,
LV_PLUGIN_LANGUAGE_FONT_TYPE_246,
LV_PLUGIN_LANGUAGE_FONT_TYPE_247,
LV_PLUGIN_LANGUAGE_FONT_TYPE_248,
LV_PLUGIN_LANGUAGE_FONT_TYPE_249,
LV_PLUGIN_LANGUAGE_FONT_TYPE_250,
LV_PLUGIN_LANGUAGE_FONT_TYPE_251,
LV_PLUGIN_LANGUAGE_FONT_TYPE_252,
LV_PLUGIN_LANGUAGE_FONT_TYPE_253,
LV_PLUGIN_LANGUAGE_FONT_TYPE_254,
LV_PLUGIN_LANGUAGE_FONT_TYPE_255,
LV_PLUGIN_LANGUAGE_FONT_TYPE_NUM
} LV_PLUGIN_LANGUAGE_FONT_TYPE;
typedef uint16_t lv_plugin_res_id;
typedef struct {
lv_plugin_img_t* img_table;
lv_plugin_font_t* font_table;
lv_plugin_string_t** language_table;
lv_plugin_res_id** language_font_map; /* language - font map, one language coulde associates multiple fonts */
lv_plugin_res_id* fixed_language_string_id_table;
uint16_t img_table_size; /* how many images */
uint16_t font_table_size; /* how many fonts */
uint16_t language_table_size; /* how many languages */
uint16_t string_table_size; /* how many string ids */
uint8_t language_font_type_size; /* how many fonts associated with per language */
} lv_plugin_res_t;
typedef struct {
lv_label_ext_t base_ext;
lv_plugin_res_id string_id;
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type;
LV_PLUGIN_PADD
} lv_plugin_label_ext_t;
typedef struct {
lv_img_ext_t base_ext;
lv_plugin_res_id img_id;
LV_PLUGIN_PADD
} lv_plugin_img_ext_t;
typedef struct {
lv_msgbox_ext_t base_ext;
lv_plugin_res_id string_id;
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type_bg;
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type_btn;
LV_PLUGIN_LANGUAGE_FONT_TYPE font_type_btn_bg;
LV_PLUGIN_PADD
} lv_plugin_msgbox_ext_t;
void lv_plugin_init(void);
LV_PLUG_RET lv_plugin_install_resource(lv_plugin_res_t* res);
const lv_plugin_img_t* lv_plugin_get_img(lv_plugin_res_id id);
const lv_plugin_font_t* lv_plugin_get_font(lv_plugin_res_id id);
/**
* Set object font, this API simplify style configuration.
* @param obj
* @param id font resource id
* @param part please refer to lvgl document or just set -1.
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET lv_plugin_obj_set_font(lv_obj_t* obj, lv_plugin_res_id font_id, int16_t part);
LV_PLUG_RET lv_plugin_label_update_font(lv_obj_t* label, int16_t part);
LV_PLUG_RET lv_plugin_msgbox_update_font(lv_obj_t* msgbox, int16_t part);
LV_PLUG_RET lv_plugin_set_active_language(lv_plugin_res_id language_id);
lv_plugin_res_id lv_plugin_get_active_language(void);
const lv_plugin_string_t* lv_plugin_get_string(lv_plugin_res_id string_id);
LV_PLUG_RET lv_plugin_obj_update_font(lv_obj_t* obj, lv_plugin_res_id string_id, int16_t part);
LV_PLUG_RET lv_plugin_obj_update_font_ex(lv_obj_t* obj, lv_plugin_res_id string_id, int16_t part, LV_PLUGIN_LANGUAGE_FONT_TYPE type);
/**
* Internal API, check object plug-in extended attributes is allocated, the base_size should be ext size of obj.
* @param obj
* @param base_size generic widget ext size
* @return bool
*/
bool _lv_plugin_obj_is_ext_attr_allocated(lv_obj_t* obj, uint32_t base_size);
/**
* Internal API, allocate object plug-in extended attributes, ext_size is plug-in ext size and should be larger than generic ext size.
* @param obj
* @param base_size generic widget ext size
* @return void*
*/
void* _lv_plugin_obj_allocate_ext_attr(lv_obj_t* obj, uint32_t ext_size);
/**
* Set label font type.
* @param label
* @param font_type
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET lv_plugin_label_set_font_type(lv_obj_t* label, LV_PLUGIN_LANGUAGE_FONT_TYPE font_type);
LV_PLUG_RET lv_plugin_msgbox_set_font_type(lv_obj_t* msgbox, LV_PLUGIN_LANGUAGE_FONT_TYPE font_type, int8_t part);
/**
* Set label text by string id of the active language.
* @param label
* @param string_id
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET lv_plugin_label_set_text(lv_obj_t* label, lv_plugin_res_id string_id);
LV_PLUG_RET lv_plugin_msgbox_set_text(lv_obj_t* msgbox, lv_plugin_res_id string_id);
/**
* Update label text by string id of the active language.
* @param label
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET lv_plugin_label_update_text(lv_obj_t* label);
LV_PLUG_RET lv_plugin_msgbox_update_text(lv_obj_t* msgbox);
/**
* Check label object plug-in extended attributes is allocated.
* @param label
* @return bool
*/
bool lv_plugin_label_is_ext_attr_allocated(lv_obj_t* label);
bool lv_plugin_msgbox_is_ext_attr_allocated(lv_obj_t* label);
/**
* Allocate label object plug-in extended attributes.
* @param label
*/
void* lv_plugin_label_allocate_ext_attr(lv_obj_t* label);
void* lv_plugin_msgbox_allocate_ext_attr(lv_obj_t* msgbox);
LV_PLUG_RET lv_plugin_img_set_src(lv_obj_t* obj, lv_plugin_res_id img_id);
bool lv_plugin_scr_is_ready_to_be_closed(lv_obj_t* scr);
/**
* Open a screen object and send LV_PLUGIN_EVENT_SCR_OPEN events.
* @param scr
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET lv_plugin_scr_open(lv_obj_t* scr, const void * data);
/**
* Close a screen object and send LV_PLUGIN_EVENT_SCR_CLOSE events.
* @param scr
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET lv_plugin_scr_close(lv_obj_t* scr, const void * data);
/**
* Internal API, attach a screen object to root screen from tmp screen.
* @param scr
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET _lv_plugin_scr_attach(lv_obj_t* scr);
/**
* Internal API, detach a screen object from root screen to tmp screen.
* @param scr
* @return LV_PLUG_RET return code
*/
LV_PLUG_RET _lv_plugin_scr_detach(lv_obj_t* scr);
/**
* Create a plug-in screen.
* @return lv_obj_t* plug-in screen
*/
lv_obj_t* lv_plugin_scr_create(void);
void lv_plugin_obj_iterator(lv_obj_t* parent, lv_plugin_iterator_callback cb, bool recursive);
typedef lv_obj_t * (*lv_plugin_obj_create_cb_t)(lv_obj_t * par, const lv_obj_t * copy);
const char* lv_plugin_label_type_name(void);
const char* lv_plugin_img_type_name(void);
const char* lv_plugin_btn_type_name(void);
const char* lv_plugin_cont_type_name(void);
const char* lv_plugin_imgbtn_type_name(void);
const char* lv_plugin_msgbox_type_name(void);
bool lv_plugin_obj_is_label(lv_obj_t* obj);
bool lv_plugin_obj_is_img(lv_obj_t* obj);
bool lv_plugin_obj_is_imgbtn(lv_obj_t* obj);
bool lv_plugin_obj_is_cont(lv_obj_t* obj);
bool lv_plugin_obj_is_btn(lv_obj_t* obj);
bool lv_plugin_obj_is_msgbox(lv_obj_t* obj);
lv_obj_t* lv_plugin_find_child_by_type(lv_obj_t* obj, lv_obj_t* start_child, const char* type);
lv_indev_t* lv_plugin_find_indev_by_type(lv_indev_type_t type);
lv_obj_t* lv_plugin_scr_act(void);
/**
* Get screen handle by index.
* @param index start from bottom(0) to top(count-1)
* @return lv_obj_t* plug-in screen
*/
lv_obj_t* lv_plugin_scr_by_index(uint16_t index);
/**
* Get number of opened screen.
* @return uint16_t number of opened screen
*/
uint16_t lv_plugin_scr_count(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_PLUGIN_H*/

View File

@ -7137,6 +7137,7 @@
] ]
} }
], ],
"max font type": 5,
"string id": [ "string id": [
"STRID_NULL_", "STRID_NULL_",
"STRID_MODE", "STRID_MODE",

View File

@ -5076,7 +5076,7 @@
"language table": "UIFlowLVGL.lvgllang", "language table": "UIFlowLVGL.lvgllang",
"project": { "project": {
"name": "UIFlowLVGL", "name": "UIFlowLVGL",
"version": "1.10.4" "version": "1.12.4"
}, },
"screens": [ "screens": [
"UIFlowLVGL.UIFlowMovie.lvglscr", "UIFlowLVGL.UIFlowMovie.lvglscr",

View File

@ -1373,9 +1373,6 @@ static void UIFlowPlay_ScrOpen(lv_obj_t* obj)
/* open all files */ /* open all files */
UIFlowPlay_OpenFile(obj); UIFlowPlay_OpenFile(obj);
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_menu_open(TRUE);
#endif
} }

View File

@ -2698,6 +2698,7 @@ SINT32 sf_power_off_check_sd(void)
{ {
if((storeattrs.SDStatus == 0) & (storeattrs.SDFree < SDLOOP_REMAIN_SPACE) && (SDstoreattrs.SDFree < 30)) if((storeattrs.SDStatus == 0) & (storeattrs.SDFree < SDLOOP_REMAIN_SPACE) && (SDstoreattrs.SDFree < 30))
{ {
printf("[%s:%d]loop start\n", __FUNCTION__, __LINE__);
// sf_sd_loopremove(SF_DCIM_DIR); // sf_sd_loopremove(SF_DCIM_DIR);
sf_app_sd_loop(); sf_app_sd_loop();
/*check disk free size*/ /*check disk free size*/

View File

@ -704,6 +704,16 @@ SINT32 sf_dcf_is_file_name(const char fileName[])
} }
} }
//S550
if((fileName[0]!='S')
|| (fileName[1]!='Y')
|| (fileName[2]!='B')
|| (fileName[3]!='X')
)
{
return -1;
}
for(; index < 8; index++) for(; index < 8; index++)
{ {
if(!isdigit(fileName[index])) if(!isdigit(fileName[index]))