chore: code and configs cleanups; add builtin cache tracing (#4593)
This commit is contained in:
@@ -254,6 +254,7 @@
|
|||||||
#define LV_LOG_TRACE_LAYOUT 1
|
#define LV_LOG_TRACE_LAYOUT 1
|
||||||
#define LV_LOG_TRACE_ANIM 1
|
#define LV_LOG_TRACE_ANIM 1
|
||||||
#define LV_LOG_TRACE_MSG 1
|
#define LV_LOG_TRACE_MSG 1
|
||||||
|
#define LV_LOG_TRACE_CACHE 1
|
||||||
|
|
||||||
#endif /*LV_USE_LOG*/
|
#endif /*LV_USE_LOG*/
|
||||||
|
|
||||||
@@ -499,8 +500,6 @@
|
|||||||
|
|
||||||
#define LV_USE_CHECKBOX 1
|
#define LV_USE_CHECKBOX 1
|
||||||
|
|
||||||
#define LV_USE_COLORWHEEL 1
|
|
||||||
|
|
||||||
#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/
|
#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/
|
||||||
|
|
||||||
#define LV_USE_IMG 1 /*Requires: lv_label*/
|
#define LV_USE_IMG 1 /*Requires: lv_label*/
|
||||||
|
|||||||
@@ -231,6 +231,7 @@
|
|||||||
#define LV_LOG_TRACE_LAYOUT 1
|
#define LV_LOG_TRACE_LAYOUT 1
|
||||||
#define LV_LOG_TRACE_ANIM 1
|
#define LV_LOG_TRACE_ANIM 1
|
||||||
#define LV_LOG_TRACE_MSG 1
|
#define LV_LOG_TRACE_MSG 1
|
||||||
|
#define LV_LOG_TRACE_CACHE 1
|
||||||
|
|
||||||
#endif /*LV_USE_LOG*/
|
#endif /*LV_USE_LOG*/
|
||||||
|
|
||||||
@@ -481,8 +482,6 @@
|
|||||||
|
|
||||||
#define LV_USE_CHECKBOX 1
|
#define LV_USE_CHECKBOX 1
|
||||||
|
|
||||||
#define LV_USE_COLORWHEEL 1
|
|
||||||
|
|
||||||
#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/
|
#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/
|
||||||
|
|
||||||
#define LV_USE_IMG 1 /*Requires: lv_label*/
|
#define LV_USE_IMG 1 /*Requires: lv_label*/
|
||||||
|
|||||||
@@ -178,6 +178,7 @@
|
|||||||
#define LV_LOG_TRACE_LAYOUT 1
|
#define LV_LOG_TRACE_LAYOUT 1
|
||||||
#define LV_LOG_TRACE_ANIM 1
|
#define LV_LOG_TRACE_ANIM 1
|
||||||
#define LV_LOG_TRACE_MSG 1
|
#define LV_LOG_TRACE_MSG 1
|
||||||
|
#define LV_LOG_TRACE_CACHE 1
|
||||||
|
|
||||||
#endif /*LV_USE_LOG*/
|
#endif /*LV_USE_LOG*/
|
||||||
|
|
||||||
@@ -738,7 +739,7 @@
|
|||||||
#define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /*LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance*/
|
#define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /*LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance*/
|
||||||
#define LV_SDL_BUF_COUNT 1 /*1 or 2*/
|
#define LV_SDL_BUF_COUNT 1 /*1 or 2*/
|
||||||
#define LV_SDL_FULLSCREEN 0 /*1: Make the window full screen by default*/
|
#define LV_SDL_FULLSCREEN 0 /*1: Make the window full screen by default*/
|
||||||
#define LV_SDL_DIRECT_EXIT 1 /*1: Exit the application when all SDL widows are closed*/
|
#define LV_SDL_DIRECT_EXIT 1 /*1: Exit the application when all SDL windows are closed*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*Driver for /dev/fb*/
|
/*Driver for /dev/fb*/
|
||||||
|
|||||||
@@ -94,10 +94,10 @@ lv_result_t lv_image_decoder_get_info(const void * src, lv_image_header_t * head
|
|||||||
}
|
}
|
||||||
|
|
||||||
lv_result_t res = LV_RESULT_INVALID;
|
lv_result_t res = LV_RESULT_INVALID;
|
||||||
lv_image_decoder_t * d;
|
lv_image_decoder_t * decoder;
|
||||||
_LV_LL_READ(img_decoder_ll_p, d) {
|
_LV_LL_READ(img_decoder_ll_p, decoder) {
|
||||||
if(d->info_cb) {
|
if(decoder->info_cb) {
|
||||||
res = d->info_cb(d, src, header);
|
res = decoder->info_cb(decoder, src, header);
|
||||||
if(res == LV_RESULT_OK) {
|
if(res == LV_RESULT_OK) {
|
||||||
if(header->stride == 0) header->stride = img_width_to_stride(header);
|
if(header->stride == 0) header->stride = img_width_to_stride(header);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -500,6 +500,17 @@
|
|||||||
#define LV_LOG_TRACE_MSG 1
|
#define LV_LOG_TRACE_MSG 1
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef LV_LOG_TRACE_CACHE
|
||||||
|
#ifdef _LV_KCONFIG_PRESENT
|
||||||
|
#ifdef CONFIG_LV_LOG_TRACE_CACHE
|
||||||
|
#define LV_LOG_TRACE_CACHE CONFIG_LV_LOG_TRACE_CACHE
|
||||||
|
#else
|
||||||
|
#define LV_LOG_TRACE_CACHE 0
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define LV_LOG_TRACE_CACHE 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /*LV_USE_LOG*/
|
#endif /*LV_USE_LOG*/
|
||||||
|
|
||||||
@@ -2414,7 +2425,7 @@
|
|||||||
#define LV_SDL_DIRECT_EXIT 0
|
#define LV_SDL_DIRECT_EXIT 0
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#define LV_SDL_DIRECT_EXIT 1 /*1: Exit the application when all SDL widows are closed*/
|
#define LV_SDL_DIRECT_EXIT 1 /*1: Exit the application when all SDL windows are closed*/
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ static int32_t lv_anim_path_cubic_bezier(const lv_anim_t * a, int32_t x1,
|
|||||||
* MACROS
|
* MACROS
|
||||||
**********************/
|
**********************/
|
||||||
#if LV_LOG_TRACE_ANIM
|
#if LV_LOG_TRACE_ANIM
|
||||||
#define TRACE_ANIM(...) LV_LOG_TRACE(__VA_ARGS__)
|
#define LV_TRACE_ANIM(...) LV_LOG_TRACE(__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
#define TRACE_ANIM(...)
|
#define LV_TRACE_ANIM(...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ void lv_anim_init(lv_anim_t * a)
|
|||||||
|
|
||||||
lv_anim_t * lv_anim_start(const lv_anim_t * a)
|
lv_anim_t * lv_anim_start(const lv_anim_t * a)
|
||||||
{
|
{
|
||||||
TRACE_ANIM("begin");
|
LV_TRACE_ANIM("begin");
|
||||||
|
|
||||||
/*Do not let two animations for the same 'var' with the same 'exec_cb'*/
|
/*Do not let two animations for the same 'var' with the same 'exec_cb'*/
|
||||||
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*exec_cb == NULL would delete all animations of var*/
|
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*exec_cb == NULL would delete all animations of var*/
|
||||||
@@ -108,7 +108,7 @@ lv_anim_t * lv_anim_start(const lv_anim_t * a)
|
|||||||
*It's important if it happens in a ready callback. (see `anim_timer`)*/
|
*It's important if it happens in a ready callback. (see `anim_timer`)*/
|
||||||
anim_mark_list_change();
|
anim_mark_list_change();
|
||||||
|
|
||||||
TRACE_ANIM("finished");
|
LV_TRACE_ANIM("finished");
|
||||||
return new_anim;
|
return new_anim;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,14 +25,13 @@
|
|||||||
/**********************
|
/**********************
|
||||||
* STATIC PROTOTYPES
|
* STATIC PROTOTYPES
|
||||||
**********************/
|
**********************/
|
||||||
|
|
||||||
static lv_cache_entry_t * add_cb(size_t size);
|
static lv_cache_entry_t * add_cb(size_t size);
|
||||||
static lv_cache_entry_t * find_cb(const void * src, lv_cache_src_type_t src_type, uint32_t param1, uint32_t param2);
|
static lv_cache_entry_t * find_cb(const void * src, lv_cache_src_type_t src_type, uint32_t param1, uint32_t param2);
|
||||||
static void invalidate_cb(lv_cache_entry_t * entry);
|
static void invalidate_cb(lv_cache_entry_t * entry);
|
||||||
static const void * get_data_cb(lv_cache_entry_t * entry);
|
static const void * get_data_cb(lv_cache_entry_t * entry);
|
||||||
static void release_cb(lv_cache_entry_t * entry);
|
static void release_cb(lv_cache_entry_t * entry);
|
||||||
static void set_max_size_cb(size_t new_size);
|
static void set_max_size_cb(size_t new_size);
|
||||||
static bool drop_yougest(void);
|
static bool drop_youngest(void);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* STATIC VARIABLES
|
* STATIC VARIABLES
|
||||||
@@ -41,6 +40,11 @@ static bool drop_yougest(void);
|
|||||||
/**********************
|
/**********************
|
||||||
* MACROS
|
* MACROS
|
||||||
**********************/
|
**********************/
|
||||||
|
#if LV_LOG_TRACE_CACHE
|
||||||
|
#define LV_TRACE_CACHE(...) LV_LOG_TRACE(__VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define LV_TRACE_CACHE(...)
|
||||||
|
#endif
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* GLOBAL FUNCTIONS
|
* GLOBAL FUNCTIONS
|
||||||
@@ -59,7 +63,6 @@ void _lv_cache_builtin_init(void)
|
|||||||
_lv_ll_init(&dsc.entry_ll, sizeof(lv_cache_entry_t));
|
_lv_ll_init(&dsc.entry_ll, sizeof(lv_cache_entry_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* STATIC FUNCTIONS
|
* STATIC FUNCTIONS
|
||||||
**********************/
|
**********************/
|
||||||
@@ -73,7 +76,7 @@ static lv_cache_entry_t * add_cb(size_t size)
|
|||||||
if(!temporary) {
|
if(!temporary) {
|
||||||
/*Keep dropping items until there is enough space*/
|
/*Keep dropping items until there is enough space*/
|
||||||
while(dsc.cur_size + size > _cache_manager.max_size) {
|
while(dsc.cur_size + size > _cache_manager.max_size) {
|
||||||
bool ret = drop_yougest();
|
bool ret = drop_youngest();
|
||||||
|
|
||||||
/*No item could be dropped.
|
/*No item could be dropped.
|
||||||
*It can happen because the usage_count of the remaining items are not zero.*/
|
*It can happen because the usage_count of the remaining items are not zero.*/
|
||||||
@@ -82,37 +85,36 @@ static lv_cache_entry_t * add_cb(size_t size)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lv_cache_entry_t * e = _lv_ll_ins_head(&dsc.entry_ll);
|
lv_cache_entry_t * entry = _lv_ll_ins_head(&dsc.entry_ll);
|
||||||
lv_memzero(e, sizeof(lv_cache_entry_t));
|
lv_memzero(entry, sizeof(lv_cache_entry_t));
|
||||||
e->data_size = size;
|
entry->data_size = size;
|
||||||
e->weight = 1;
|
entry->weight = 1;
|
||||||
e->temporary = temporary;
|
entry->temporary = temporary;
|
||||||
|
|
||||||
if(temporary) {
|
if(temporary) {
|
||||||
LV_LOG_USER("cache add temporary: %"LV_PRIu32, (uint32_t)size);
|
LV_TRACE_CACHE("Add temporary cache: %lu bytes", (unsigned long)size);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LV_LOG_USER("cache add: %"LV_PRIu32, (uint32_t)size);
|
LV_TRACE_CACHE("Add cache: %lu bytes", (unsigned long)size);
|
||||||
dsc.cur_size += size;
|
dsc.cur_size += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
return e;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
static lv_cache_entry_t * find_cb(const void * src, lv_cache_src_type_t src_type, uint32_t param1, uint32_t param2)
|
static lv_cache_entry_t * find_cb(const void * src, lv_cache_src_type_t src_type, uint32_t param1, uint32_t param2)
|
||||||
{
|
{
|
||||||
lv_cache_entry_t * e = _lv_ll_get_head(&dsc.entry_ll);
|
lv_cache_entry_t * entry = _lv_ll_get_head(&dsc.entry_ll);
|
||||||
while(e) {
|
while(entry) {
|
||||||
if(param1 == e->param1 && param2 == e->param2 && src_type == e->src_type &&
|
if(param1 == entry->param1 && param2 == entry->param2 && src_type == entry->src_type &&
|
||||||
((src_type == LV_CACHE_SRC_TYPE_PTR && src == e->src) ||
|
((src_type == LV_CACHE_SRC_TYPE_PTR && src == entry->src) ||
|
||||||
(src_type == LV_CACHE_SRC_TYPE_STR && strcmp(src, e->src) == 0))) {
|
(src_type == LV_CACHE_SRC_TYPE_STR && strcmp(src, entry->src) == 0))) {
|
||||||
return e;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
e = _lv_ll_get_next(&dsc.entry_ll, e);
|
entry = _lv_ll_get_next(&dsc.entry_ll, entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -123,7 +125,7 @@ static void invalidate_cb(lv_cache_entry_t * entry)
|
|||||||
if(entry == NULL) return;
|
if(entry == NULL) return;
|
||||||
|
|
||||||
dsc.cur_size -= entry->data_size;
|
dsc.cur_size -= entry->data_size;
|
||||||
LV_LOG_USER("cache drop %"LV_PRIu32, (uint32_t)entry->data_size);
|
LV_TRACE_CACHE("Drop cache: %lu bytes", (unsigned long)entry->data_size);
|
||||||
|
|
||||||
if(entry->free_src) lv_free((void *)entry->src);
|
if(entry->free_src) lv_free((void *)entry->src);
|
||||||
if(entry->free_data) lv_draw_buf_free((void *)entry->data);
|
if(entry->free_data) lv_draw_buf_free((void *)entry->data);
|
||||||
@@ -164,7 +166,7 @@ static void release_cb(lv_cache_entry_t * entry)
|
|||||||
static void set_max_size_cb(size_t new_size)
|
static void set_max_size_cb(size_t new_size)
|
||||||
{
|
{
|
||||||
while(dsc.cur_size > new_size) {
|
while(dsc.cur_size > new_size) {
|
||||||
bool ret = drop_yougest();
|
bool ret = drop_youngest();
|
||||||
|
|
||||||
/*No item could be dropped.
|
/*No item could be dropped.
|
||||||
*It can happen because the usage_count of the remaining items are not zero.*/
|
*It can happen because the usage_count of the remaining items are not zero.*/
|
||||||
@@ -172,23 +174,21 @@ static void set_max_size_cb(size_t new_size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool drop_yougest(void)
|
static bool drop_youngest(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
int32_t life_min = INT32_MAX;
|
int32_t life_min = INT32_MAX;
|
||||||
lv_cache_entry_t * e_min = NULL;
|
lv_cache_entry_t * entry_to_drop = NULL;
|
||||||
|
|
||||||
lv_cache_entry_t * e = _lv_ll_get_head(&dsc.entry_ll);
|
lv_cache_entry_t * entry = _lv_ll_get_head(&dsc.entry_ll);
|
||||||
while(e) {
|
while(entry) {
|
||||||
if(e->life < life_min && e->usage_count == 0) e_min = e;
|
if(entry->life < life_min && entry->usage_count == 0) entry_to_drop = entry;
|
||||||
e = _lv_ll_get_next(&dsc.entry_ll, e);
|
entry = _lv_ll_get_next(&dsc.entry_ll, entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(e_min == NULL) {
|
if(entry_to_drop == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
invalidate_cb(e_min);
|
invalidate_cb(entry_to_drop);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ static void obj_delete_event_cb(lv_event_t * e);
|
|||||||
* MACROS
|
* MACROS
|
||||||
**********************/
|
**********************/
|
||||||
#if LV_LOG_TRACE_MSG
|
#if LV_LOG_TRACE_MSG
|
||||||
#define MSG_TRACE(...) LV_LOG_TRACE(__VA_ARGS__)
|
#define LV_TRACE_MSG(...) LV_LOG_TRACE(__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
#define MSG_TRACE(...)
|
#define LV_TRACE_MSG(...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
@@ -194,7 +194,7 @@ static void notify(lv_msg_t * m)
|
|||||||
|
|
||||||
/*restart or load next*/
|
/*restart or load next*/
|
||||||
if(restart_notify) {
|
if(restart_notify) {
|
||||||
MSG_TRACE("Start from the first sub_dsc_t again because _subs_ll may have changed");
|
LV_TRACE_MSG("Start from the first sub_dsc_t again because _subs_ll may have changed");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
s = next;
|
s = next;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
/**********************
|
/**********************
|
||||||
* MACROS
|
* MACROS
|
||||||
**********************/
|
**********************/
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* GLOBAL FUNCTIONS
|
* GLOBAL FUNCTIONS
|
||||||
**********************/
|
**********************/
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ void lv_buttonmatrix_set_button_ctrl(lv_obj_t * obj, uint32_t btn_id, lv_buttonm
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
|
|
||||||
if(btn_id >= btnm->btn_cnt) return;
|
if(btn_id >= btnm->btn_cnt) return;
|
||||||
|
|
||||||
@@ -232,7 +232,7 @@ void lv_buttonmatrix_clear_button_ctrl(lv_obj_t * obj, uint32_t btn_id, lv_butto
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
|
|
||||||
if(btn_id >= btnm->btn_cnt) return;
|
if(btn_id >= btnm->btn_cnt) return;
|
||||||
|
|
||||||
@@ -248,7 +248,7 @@ void lv_buttonmatrix_set_button_ctrl_all(lv_obj_t * obj, lv_buttonmatrix_ctrl_t
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
for(i = 0; i < btnm->btn_cnt; i++) {
|
for(i = 0; i < btnm->btn_cnt; i++) {
|
||||||
lv_buttonmatrix_set_button_ctrl(obj, i, ctrl);
|
lv_buttonmatrix_set_button_ctrl(obj, i, ctrl);
|
||||||
@@ -259,7 +259,7 @@ void lv_buttonmatrix_clear_button_ctrl_all(lv_obj_t * obj, lv_buttonmatrix_ctrl_
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
for(i = 0; i < btnm->btn_cnt; i++) {
|
for(i = 0; i < btnm->btn_cnt; i++) {
|
||||||
lv_buttonmatrix_clear_button_ctrl(obj, i, ctrl);
|
lv_buttonmatrix_clear_button_ctrl(obj, i, ctrl);
|
||||||
@@ -270,7 +270,7 @@ void lv_buttonmatrix_set_button_width(lv_obj_t * obj, uint32_t btn_id, uint32_t
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
if(btn_id >= btnm->btn_cnt) return;
|
if(btn_id >= btnm->btn_cnt) return;
|
||||||
btnm->ctrl_bits[btn_id] &= (~LV_BUTTONMATRIX_WIDTH_MASK);
|
btnm->ctrl_bits[btn_id] &= (~LV_BUTTONMATRIX_WIDTH_MASK);
|
||||||
btnm->ctrl_bits[btn_id] |= (LV_BUTTONMATRIX_WIDTH_MASK & width);
|
btnm->ctrl_bits[btn_id] |= (LV_BUTTONMATRIX_WIDTH_MASK & width);
|
||||||
@@ -282,7 +282,7 @@ void lv_buttonmatrix_set_one_checked(lv_obj_t * obj, bool en)
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
btnm->one_check = en;
|
btnm->one_check = en;
|
||||||
|
|
||||||
/*If more than one button is toggled only the first one should be*/
|
/*If more than one button is toggled only the first one should be*/
|
||||||
@@ -297,7 +297,7 @@ const char ** lv_buttonmatrix_get_map(const lv_obj_t * obj)
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
return btnm->map_p;
|
return btnm->map_p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,7 +305,7 @@ uint32_t lv_buttonmatrix_get_selected_button(const lv_obj_t * obj)
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
return btnm->btn_id_sel;
|
return btnm->btn_id_sel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +338,7 @@ bool lv_buttonmatrix_has_button_ctrl(lv_obj_t * obj, uint32_t btn_id, lv_buttonm
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
if(btn_id >= btnm->btn_cnt) return false;
|
if(btn_id >= btnm->btn_cnt) return false;
|
||||||
|
|
||||||
return (btnm->ctrl_bits[btn_id] & ctrl) == ctrl;
|
return (btnm->ctrl_bits[btn_id] & ctrl) == ctrl;
|
||||||
@@ -348,7 +348,7 @@ bool lv_buttonmatrix_get_one_checked(const lv_obj_t * obj)
|
|||||||
{
|
{
|
||||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
|
|
||||||
return btnm->one_check;
|
return btnm->one_check;
|
||||||
}
|
}
|
||||||
@@ -921,7 +921,7 @@ static uint32_t get_button_from_point(lv_obj_t * obj, lv_point_t * p)
|
|||||||
{
|
{
|
||||||
lv_area_t obj_cords;
|
lv_area_t obj_cords;
|
||||||
lv_area_t btn_area;
|
lv_area_t btn_area;
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
lv_obj_get_coords(obj, &obj_cords);
|
lv_obj_get_coords(obj, &obj_cords);
|
||||||
|
|
||||||
@@ -977,7 +977,7 @@ static void invalidate_button_area(const lv_obj_t * obj, uint32_t btn_idx)
|
|||||||
lv_area_t btn_area;
|
lv_area_t btn_area;
|
||||||
lv_area_t obj_area;
|
lv_area_t obj_area;
|
||||||
|
|
||||||
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;;
|
lv_buttonmatrix_t * btnm = (lv_buttonmatrix_t *)obj;
|
||||||
if(btn_idx >= btnm->btn_cnt) return;
|
if(btn_idx >= btnm->btn_cnt) return;
|
||||||
|
|
||||||
lv_area_copy(&btn_area, &btnm->button_areas[btn_idx]);
|
lv_area_copy(&btn_area, &btnm->button_areas[btn_idx]);
|
||||||
|
|||||||
Reference in New Issue
Block a user