mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
add logs + minor fixes
This commit is contained in:
parent
bcafd8a0b0
commit
403351222e
@ -20,7 +20,6 @@
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
#if LV_INDEV_DEF_SCROLL_THROW <= 0
|
||||
#warning "LV_INDEV_DRAG_THROW must be greater than 0"
|
||||
#endif
|
||||
@ -52,6 +51,11 @@ static lv_obj_t * indev_obj_act = NULL;
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
#if LV_LOG_TRACE_INDEV
|
||||
# define INDEV_TRACE(...) LV_LOG_TRACE( __VA_ARGS__)
|
||||
#else
|
||||
# define INDEV_TRACE(...)
|
||||
#endif
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
@ -59,7 +63,7 @@ static lv_obj_t * indev_obj_act = NULL;
|
||||
|
||||
void lv_indev_read_task_cb(lv_timer_t * task)
|
||||
{
|
||||
LV_LOG_TRACE("begin");
|
||||
INDEV_TRACE("begin");
|
||||
|
||||
lv_indev_data_t data;
|
||||
|
||||
@ -111,7 +115,7 @@ void lv_indev_read_task_cb(lv_timer_t * task)
|
||||
indev_act = NULL;
|
||||
indev_obj_act = NULL;
|
||||
|
||||
LV_LOG_TRACE("finished");
|
||||
INDEV_TRACE("finished");
|
||||
}
|
||||
|
||||
void lv_indev_enable(lv_indev_t * indev, bool en)
|
||||
@ -387,6 +391,7 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
|
||||
/*Key press happened*/
|
||||
if(data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_RELEASED) {
|
||||
LV_LOG_INFO("%d key is pressed", data->key);
|
||||
i->proc.pr_timestamp = lv_tick_get();
|
||||
|
||||
/*Simulate a press on the object if ENTER was pressed*/
|
||||
@ -478,6 +483,7 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
}
|
||||
/*Release happened*/
|
||||
else if(data->state == LV_INDEV_STATE_RELEASED && prev_state == LV_INDEV_STATE_PRESSED) {
|
||||
LV_LOG_INFO("%d key is released", data->key);
|
||||
/*The user might clear the key when it was released. Always release the pressed key*/
|
||||
data->key = prev_key;
|
||||
if(data->key == LV_KEY_ENTER) {
|
||||
@ -541,6 +547,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
|
||||
/*Button press happened*/
|
||||
if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_RELEASED) {
|
||||
LV_LOG_INFO("pressed");
|
||||
|
||||
i->proc.pr_timestamp = lv_tick_get();
|
||||
|
||||
@ -633,6 +640,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
}
|
||||
/*Release happened*/
|
||||
else if(data->state == LV_INDEV_STATE_RELEASED && last_state == LV_INDEV_STATE_PRESSED) {
|
||||
LV_LOG_INFO("released");
|
||||
|
||||
if(data->key == LV_KEY_ENTER) {
|
||||
bool editable = lv_obj_is_editable(indev_obj_act);
|
||||
@ -684,6 +692,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
|
||||
/*if encoder steps or simulated steps via left/right keys*/
|
||||
if(data->enc_diff != 0) {
|
||||
LV_LOG_INFO("rotated by %d", data->enc_diff);
|
||||
/*In edit mode send LEFT/RIGHT keys*/
|
||||
if(lv_group_get_editing(g)) {
|
||||
int32_t s;
|
||||
@ -717,13 +726,23 @@ static void indev_button_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
{
|
||||
/* Die gracefully if i->btn_points is NULL */
|
||||
if(i->btn_points == NULL) {
|
||||
LV_LOG_WARN("indev_button_proc: btn_points was NULL");
|
||||
LV_LOG_WARN("btn_points is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
lv_coord_t x = i->btn_points[data->btn_id].x;
|
||||
lv_coord_t y = i->btn_points[data->btn_id].y;
|
||||
|
||||
static lv_indev_state_t prev_state = LV_INDEV_STATE_RELEASED;
|
||||
if(prev_state != data->state) {
|
||||
if(data->state == LV_INDEV_STATE_PRESSED) {
|
||||
LV_LOG_INFO("button %d is pressed (x:%d y:%d)", data->btn_id, x, y);
|
||||
}
|
||||
else {
|
||||
LV_LOG_INFO("button %d is released (x:%d y:%d)", data->btn_id, x, y);
|
||||
}
|
||||
}
|
||||
|
||||
/*If a new point comes always make a release*/
|
||||
if(data->state == LV_INDEV_STATE_PRESSED) {
|
||||
if(i->proc.types.pointer.last_point.x != x ||
|
||||
@ -754,6 +773,7 @@ static void indev_button_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
*/
|
||||
static void indev_proc_press(lv_indev_proc_t * proc)
|
||||
{
|
||||
LV_LOG_INFO("pressed at x:%d y:%d", proc->types.pointer.act_point.x, proc->types.pointer.act_point.y);
|
||||
indev_obj_act = proc->types.pointer.act_obj;
|
||||
|
||||
if(proc->wait_until_release != 0) return;
|
||||
@ -911,6 +931,7 @@ static void indev_proc_release(lv_indev_proc_t * proc)
|
||||
|
||||
/*Forget the act obj and send a released signal */
|
||||
if(indev_obj_act) {
|
||||
LV_LOG_INFO("released");
|
||||
|
||||
/*Send RELEASE signal and event*/
|
||||
lv_signal_send(indev_obj_act, LV_SIGNAL_RELEASED, indev_act);
|
||||
|
@ -88,6 +88,17 @@ const lv_obj_class_t lv_obj_class = {
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
#if LV_LOG_TRACE_EVENT
|
||||
# define EVENT_TRACE(...) LV_LOG_TRACE( __VA_ARGS__)
|
||||
#else
|
||||
# define EVENT_TRACE(...)
|
||||
#endif
|
||||
|
||||
#if LV_LOG_TRACE_SIGNAL
|
||||
# define SIGNAL_TRACE(...) LV_LOG_TRACE( __VA_ARGS__)
|
||||
#else
|
||||
# define SIGNAL_TRACE(...)
|
||||
#endif
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
@ -101,7 +112,7 @@ void lv_init(void)
|
||||
return;
|
||||
}
|
||||
|
||||
LV_LOG_TRACE("begin");
|
||||
LV_LOG_INFO("begin");
|
||||
|
||||
/*Initialize the lv_misc modules*/
|
||||
lv_mem_init();
|
||||
@ -188,7 +199,7 @@ lv_res_t lv_event_send(lv_obj_t * obj, lv_event_t event, void * param)
|
||||
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
|
||||
LV_LOG_TRACE("Sending event %d to 0x%p with 0x%p param", event, obj, param);
|
||||
EVENT_TRACE("Sending event %d to 0x%p with 0x%p param", event, obj, param);
|
||||
|
||||
/*Nothing to do if no event function and not bubbled*/
|
||||
lv_event_dsc_t * event_dsc = lv_obj_get_event_dsc(obj, 0);
|
||||
@ -289,7 +300,7 @@ lv_res_t lv_signal_send(lv_obj_t * obj, lv_signal_t signal, void * param)
|
||||
{
|
||||
if(obj == NULL) return LV_RES_OK;
|
||||
|
||||
LV_LOG_TRACE("Sending signal %d to 0x%p with 0x%p param", signal, obj, param);
|
||||
SIGNAL_TRACE("Sending signal %d to 0x%p with 0x%p param", signal, obj, param);
|
||||
|
||||
const lv_obj_class_t * class_p = obj->class_p;
|
||||
while(class_p && class_p->signal_cb == NULL) class_p = class_p->base_class;
|
||||
@ -546,12 +557,12 @@ bool lv_obj_is_valid(const lv_obj_t * obj)
|
||||
|
||||
static void lv_obj_constructor(lv_obj_t * obj, const lv_obj_t * copy)
|
||||
{
|
||||
LV_LOG_TRACE("begin");
|
||||
LV_TRACE_OBJ_CREATE("begin");
|
||||
|
||||
lv_obj_t * parent = obj->parent;
|
||||
/*Create a screen*/
|
||||
if(parent == NULL) {
|
||||
LV_LOG_TRACE("creating a screen");
|
||||
LV_TRACE_OBJ_CREATE("creating a screen");
|
||||
lv_disp_t * disp = lv_disp_get_default();
|
||||
if(!disp) {
|
||||
LV_LOG_WARN("No display created to so far. No place to assign the new screen");
|
||||
@ -576,7 +587,7 @@ static void lv_obj_constructor(lv_obj_t * obj, const lv_obj_t * copy)
|
||||
}
|
||||
/*Create a normal object*/
|
||||
else {
|
||||
LV_LOG_TRACE("creating normal object");
|
||||
LV_TRACE_OBJ_CREATE("creating normal object");
|
||||
LV_ASSERT_OBJ(parent, MY_CLASS);
|
||||
if(parent->spec_attr == NULL) {
|
||||
lv_obj_allocate_spec_attr(parent);
|
||||
@ -648,7 +659,7 @@ static void lv_obj_constructor(lv_obj_t * obj, const lv_obj_t * copy)
|
||||
}
|
||||
}
|
||||
|
||||
LV_LOG_TRACE("finished");
|
||||
LV_TRACE_OBJ_CREATE("finished");
|
||||
}
|
||||
|
||||
static void lv_obj_destructor(lv_obj_t * p)
|
||||
|
@ -525,6 +525,12 @@ bool lv_obj_is_valid(const lv_obj_t * obj);
|
||||
# define LV_ASSERT_OBJ(obj_p, obj_class) do{}while(0)
|
||||
#endif
|
||||
|
||||
#if 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" */
|
||||
|
@ -42,7 +42,7 @@ static uint32_t get_instance_size(const lv_obj_class_t * class_p);
|
||||
|
||||
lv_obj_t * lv_obj_create_from_class(const lv_obj_class_t * class_p, lv_obj_t * parent, const lv_obj_t * copy)
|
||||
{
|
||||
LV_LOG_TRACE("Creating object with 0x%p class on 0x%p parent", class_p, parent);
|
||||
LV_TRACE_OBJ_CREATE("Creating object with 0x%p class on 0x%p parent", class_p, parent);
|
||||
uint32_t s = get_instance_size(class_p);
|
||||
lv_obj_t * obj = lv_mem_alloc(s);
|
||||
lv_memset_00(obj, s);
|
||||
@ -66,7 +66,7 @@ lv_obj_t * lv_obj_create_from_class(const lv_obj_class_t * class_p, lv_obj_t * p
|
||||
if(!copy) lv_theme_apply(obj);
|
||||
// else lv_style_list_copy(&checkbox->style_indic, &checkbox_copy->style_indic);
|
||||
|
||||
LV_LOG_TRACE("Object created at 0x%p address with 0x%p class on 0x%p parent", obj, class_p, parent);
|
||||
LV_TRACE_OBJ_CREATE("Object created at 0x%p address with 0x%p class on 0x%p parent", obj, class_p, parent);
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
@ -187,15 +187,15 @@ void lv_obj_align(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv_co
|
||||
lv_coord_t ptop = lv_obj_get_style_pad_top(parent, LV_PART_MAIN);
|
||||
switch(align) {
|
||||
case LV_ALIGN_CENTER:
|
||||
x = lv_obj_get_width(base) / 2 - lv_obj_get_width(obj) / 2 - pleft;
|
||||
y = lv_obj_get_height(base) / 2 - lv_obj_get_height(obj) / 2- ptop;
|
||||
x = lv_obj_get_width_fit(base) / 2 - lv_obj_get_width(obj) / 2;
|
||||
y = lv_obj_get_height_fit(base) / 2 - lv_obj_get_height(obj) / 2;
|
||||
break;
|
||||
case LV_ALIGN_IN_TOP_LEFT:
|
||||
x = 0;
|
||||
y = 0;
|
||||
break;
|
||||
case LV_ALIGN_IN_TOP_MID:
|
||||
x = lv_obj_get_width(base) / 2 - lv_obj_get_width(obj) / 2 - pleft;
|
||||
x = lv_obj_get_width_fit(base) / 2 - lv_obj_get_width(obj) / 2;
|
||||
y = 0;
|
||||
break;
|
||||
|
||||
@ -209,7 +209,7 @@ void lv_obj_align(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv_co
|
||||
y = lv_obj_get_height_fit(base) - lv_obj_get_height(obj);
|
||||
break;
|
||||
case LV_ALIGN_IN_BOTTOM_MID:
|
||||
x = lv_obj_get_width(base) / 2 - lv_obj_get_width(obj) / 2 - pleft;
|
||||
x = lv_obj_get_width_fit(base) / 2 - lv_obj_get_width(obj) / 2;
|
||||
y = lv_obj_get_height_fit(base) - lv_obj_get_height(obj);
|
||||
break;
|
||||
|
||||
@ -220,7 +220,7 @@ void lv_obj_align(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv_co
|
||||
|
||||
case LV_ALIGN_IN_LEFT_MID:
|
||||
x = 0;
|
||||
y = lv_obj_get_height(base) / 2 - lv_obj_get_height(obj) / 2;
|
||||
y = lv_obj_get_height_fit(base) / 2 - lv_obj_get_height(obj) / 2;
|
||||
break;
|
||||
|
||||
case LV_ALIGN_IN_RIGHT_MID:
|
||||
|
@ -45,6 +45,7 @@ static void obj_del_core(lv_obj_t * obj);
|
||||
|
||||
void lv_obj_del(lv_obj_t * obj)
|
||||
{
|
||||
LV_LOG_TRACE("begin (delete 0x%p)", obj)
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_obj_invalidate(obj);
|
||||
|
||||
@ -76,12 +77,17 @@ void lv_obj_del(lv_obj_t * obj)
|
||||
|
||||
/*Handle if the active screen was deleted*/
|
||||
if(act_scr_del) {
|
||||
LV_LOG_WARN("the active screen was deleted")
|
||||
disp->act_scr = NULL;
|
||||
}
|
||||
|
||||
LV_ASSERT_MEM_INTEGRITY();
|
||||
LV_LOG_TRACE("finished (delete 0x%p)", obj)
|
||||
}
|
||||
|
||||
void lv_obj_clean(lv_obj_t * obj)
|
||||
{
|
||||
LV_LOG_TRACE("begin (delete 0x%p)", obj)
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
|
||||
lv_obj_invalidate(obj);
|
||||
@ -97,6 +103,10 @@ void lv_obj_clean(lv_obj_t * obj)
|
||||
obj->spec_attr->scroll.x = 0;
|
||||
obj->spec_attr->scroll.y = 0;
|
||||
}
|
||||
|
||||
LV_ASSERT_MEM_INTEGRITY();
|
||||
|
||||
LV_LOG_TRACE("finished (delete 0x%p)", obj)
|
||||
}
|
||||
|
||||
void lv_obj_del_anim_ready_cb(lv_anim_t * a)
|
||||
|
@ -60,6 +60,11 @@ static lv_disp_t * disp_refr; /*Display being refreshed*/
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
#if LV_LOG_TRACE_DISP_REFR
|
||||
# define TRACE_REFR(...) LV_LOG_TRACE( __VA_ARGS__)
|
||||
#else
|
||||
# define TRACE_REFR(...)
|
||||
#endif
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
@ -180,7 +185,7 @@ void _lv_refr_set_disp_refreshing(lv_disp_t * disp)
|
||||
*/
|
||||
void _lv_disp_refr_task(lv_timer_t * tmr)
|
||||
{
|
||||
LV_LOG_TRACE("begin");
|
||||
TRACE_REFR("begin");
|
||||
|
||||
uint32_t start = lv_tick_get();
|
||||
uint32_t elaps = 0;
|
||||
@ -197,7 +202,7 @@ void _lv_disp_refr_task(lv_timer_t * tmr)
|
||||
/*Do nothing if there is no active screen*/
|
||||
if(disp_refr->act_scr == NULL) {
|
||||
disp_refr->inv_p = 0;
|
||||
LV_LOG_TRACE("finished (there were no invalid areas to redraw)");
|
||||
TRACE_REFR("finished (there were no invalid areas to redraw)");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -299,7 +304,7 @@ void _lv_disp_refr_task(lv_timer_t * tmr)
|
||||
}
|
||||
#endif
|
||||
|
||||
LV_LOG_TRACE("finished");
|
||||
TRACE_REFR("finished");
|
||||
}
|
||||
|
||||
#if LV_USE_PERF_MONITOR
|
||||
@ -933,6 +938,6 @@ static lv_draw_res_t call_draw_cb(lv_obj_t * obj, const lv_area_t * clip_area, l
|
||||
|
||||
static void call_flush_cb(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_p)
|
||||
{
|
||||
LV_LOG_TRACE("Calling flush_cb on (%d;%d)(%d;%d) area with 0x%p image pointer", area->x1, area->y1, area->x2, area->y2, color_p);
|
||||
TRACE_REFR("Calling flush_cb on (%d;%d)(%d;%d) area with 0x%p image pointer", area->x1, area->y1, area->x2, area->y2, color_p);
|
||||
drv->flush_cb(drv, area, color_p);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user