You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2020/04/15 14:38:37 UTC

[incubator-nuttx-apps] 05/15: apps/examples/lvgldemo: Port tp_cal.c for LVGL V6.1.2

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git

commit 1fa30e59d344fbf7936e1b463669310d3977a7ce
Author: Qi Huang <hu...@xiaomi.com>
AuthorDate: Tue Apr 7 01:30:55 2020 +0000

    apps/examples/lvgldemo: Port tp_cal.c for LVGL V6.1.2
    
    Signed-off-by: Qi Huang <hu...@xiaomi.com>
    Change-Id: I1fead13274822276e08d3f54016b079b174a1544
---
 examples/lvgldemo/tp_cal.c | 355 +++++++++++++++++++++++----------------------
 1 file changed, 180 insertions(+), 175 deletions(-)

diff --git a/examples/lvgldemo/tp_cal.c b/examples/lvgldemo/tp_cal.c
index 4b5d7f8..3395b6b 100644
--- a/examples/lvgldemo/tp_cal.c
+++ b/examples/lvgldemo/tp_cal.c
@@ -68,7 +68,7 @@ enum tp_cal_state_e
  * Private Function Prototypes
  ****************************************************************************/
 
-static lv_res_t btn_click_action(lv_obj_t * scr);
+static void btn_click_action(FAR lv_obj_t *scr, lv_event_t event);
 
 /****************************************************************************
  * Private Data
@@ -92,196 +92,201 @@ static lv_obj_t *circ_area;
  *
  * Input Parameters:
  *   scr
+ *   event
  *
  * Returned Value:
  *   ?
  *
  ****************************************************************************/
 
-static lv_res_t btn_click_action(FAR lv_obj_t *scr)
+static void btn_click_action(FAR lv_obj_t *scr, lv_event_t event)
 {
-  if (state == TP_CAL_STATE_WAIT_TOP_LEFT)
+  if (event == LV_EVENT_CLICKED)
     {
-      lv_indev_t *indev = lv_indev_get_act();
-      char buf[64];
-#if USE_LV_ANIMATION
-      lv_anim_t a;
+      if (state == TP_CAL_STATE_WAIT_TOP_LEFT)
+        {
+          lv_indev_t *indev = lv_indev_get_act();
+          char buf[64];
+#if LV_USE_ANIMATION
+          lv_anim_t a;
 #endif
 
-      lv_indev_get_point(indev, &p[0]);
-
-      sprintf(buf, "x: %d\ny: %d", p[0].x, p[0].y);
-      lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
-      lv_label_set_text(label_coord, buf);
-
-      lv_label_set_text(label_main, "Click the circle in\n"
-                        "upper right-hand corner");
-
-      lv_obj_set_pos(label_main,
-                     (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
-                     (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
-
-#if USE_LV_ANIMATION
-      a.var            = circ_area;
-      a.start          = 0;
-      a.end            = LV_HOR_RES - CIRCLE_SIZE;
-      a.fp             = (lv_anim_fp_t) lv_obj_set_x;
-      a.path           = lv_anim_path_linear;
-      a.end_cb         = NULL;
-      a.act_time       = 0;
-      a.time           = 200;
-      a.playback       = 0;
-      a.playback_pause = 0;
-      a.repeat         = 0;
-      a.repeat_pause   = 0;
-      lv_anim_create(&a);
-      a.start          = 0;
-      a.end            = 0;
-      a.fp             = (lv_anim_fp_t)lv_obj_set_y;
-      a.end_cb         = NULL;
-      a.time           = 200;
-      lv_anim_create(&a);
+          lv_indev_get_point(indev, &p[0]);
+
+          sprintf(buf, "x: %d\ny: %d", p[0].x, p[0].y);
+          lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
+          lv_label_set_text(label_coord, buf);
+
+          lv_label_set_text(label_main, "Click the circle in\n"
+                          "upper right-hand corner");
+
+          lv_obj_set_pos(label_main,
+                        (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
+                        (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
+
+#if LV_USE_ANIMATION
+          a.var            = circ_area;
+          a.start          = 0;
+          a.end            = LV_HOR_RES - CIRCLE_SIZE;
+          a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_x;
+          a.path_cb        = (lv_anim_path_cb_t)lv_anim_path_linear;
+          a.ready_cb       = NULL;
+          a.act_time       = 0;
+          a.time           = 200;
+          a.playback       = 0;
+          a.playback_pause = 0;
+          a.repeat         = 0;
+          a.repeat_pause   = 0;
+          lv_anim_create(&a);
+          a.start          = 0;
+          a.end            = 0;
+          a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_y;
+          a.ready_cb       = NULL;
+          a.time           = 200;
+          lv_anim_create(&a);
 #else
-      lv_obj_set_pos(circ_area, LV_HOR_RES - CIRCLE_SIZE, 0);
+          lv_obj_set_pos(circ_area, LV_HOR_RES - CIRCLE_SIZE, 0);
 #endif
 
-      state            = TP_CAL_STATE_WAIT_TOP_RIGHT;
-    }
-  else if (state == TP_CAL_STATE_WAIT_TOP_RIGHT)
-    {
-      lv_indev_t *indev = lv_indev_get_act();
-      char buf[64];
+          state            = TP_CAL_STATE_WAIT_TOP_RIGHT;
+        }
+      else if (state == TP_CAL_STATE_WAIT_TOP_RIGHT)
+        {
+          lv_indev_t *indev = lv_indev_get_act();
+          char buf[64];
 
-#if USE_LV_ANIMATION
-      lv_anim_t a;
+#if LV_USE_ANIMATION
+          lv_anim_t a;
 #endif
 
-      lv_indev_get_point(indev, &p[1]);
-
-      sprintf(buf, "x: %d\ny: %d", p[1].x, p[1].y);
-      lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
-      lv_label_set_text(label_coord, buf);
-      lv_obj_set_pos(label_coord, LV_HOR_RES - lv_obj_get_width(label_coord),
-                     0);
-
-      lv_label_set_text(label_main, "Click the circle in\n"
-                        "lower right-hand corner");
-
-      lv_obj_set_pos(label_main,
-                     (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
-                     (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
-#if USE_LV_ANIMATION
-      a.var            = circ_area;
-      a.start          = LV_HOR_RES - CIRCLE_SIZE;
-      a.end            = LV_HOR_RES - CIRCLE_SIZE;
-      a.fp             = (lv_anim_fp_t)lv_obj_set_x;
-      a.path           = lv_anim_path_linear;
-      a.end_cb         = NULL;
-      a.act_time       = 0;
-      a.time           = 200;
-      a.playback       = 0;
-      a.playback_pause = 0;
-      a.repeat         = 0;
-      a.repeat_pause   = 0;
-      lv_anim_create(&a);
-
-      a.start          = 0;
-      a.end            = LV_VER_RES - CIRCLE_SIZE;
-      a.fp             = (lv_anim_fp_t) lv_obj_set_y;
-      a.end_cb         = NULL;
-      a.time           = 200;
-      lv_anim_create(&a);
+          lv_indev_get_point(indev, &p[1]);
+
+          sprintf(buf, "x: %d\ny: %d", p[1].x, p[1].y);
+          lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
+          lv_label_set_text(label_coord, buf);
+          lv_obj_set_pos(label_coord,
+                         LV_HOR_RES - lv_obj_get_width(label_coord),
+                         0);
+
+          lv_label_set_text(label_main, "Click the circle in\n"
+                            "lower right-hand corner");
+
+          lv_obj_set_pos(label_main,
+                         (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
+                         (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
+
+#if LV_USE_ANIMATION
+          a.var            = circ_area;
+          a.start          = LV_HOR_RES - CIRCLE_SIZE;
+          a.end            = LV_HOR_RES - CIRCLE_SIZE;
+          a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_x;
+          a.path_cb        = (lv_anim_path_cb_t)lv_anim_path_linear;
+          a.ready_cb       = NULL;
+          a.act_time       = 0;
+          a.time           = 200;
+          a.playback       = 0;
+          a.playback_pause = 0;
+          a.repeat         = 0;
+          a.repeat_pause   = 0;
+          lv_anim_create(&a);
+
+          a.start          = 0;
+          a.end            = LV_VER_RES - CIRCLE_SIZE;
+          a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_y;
+          a.ready_cb       = NULL;
+          a.time           = 200;
+          lv_anim_create(&a);
 #else
-      lv_obj_set_pos(circ_area, LV_HOR_RES - CIRCLE_SIZE, LV_VER_RES - CIRCLE_SIZE);
+          lv_obj_set_pos(circ_area,
+                        LV_HOR_RES - CIRCLE_SIZE, LV_VER_RES - CIRCLE_SIZE);
 #endif
 
-      state            = TP_CAL_STATE_WAIT_BOTTOM_RIGHT;
-    }
-  else if (state == TP_CAL_STATE_WAIT_BOTTOM_RIGHT)
-    {
-      lv_indev_t *indev = lv_indev_get_act();
-      char buf[64];
-#if USE_LV_ANIMATION
-      lv_anim_t a;
+          state            = TP_CAL_STATE_WAIT_BOTTOM_RIGHT;
+        }
+      else if (state == TP_CAL_STATE_WAIT_BOTTOM_RIGHT)
+        {
+          lv_indev_t *indev = lv_indev_get_act();
+          char buf[64];
+#if LV_USE_ANIMATION
+          lv_anim_t a;
 #endif
-      lv_indev_get_point(indev, &p[2]);
-
-      sprintf(buf, "x: %d\ny: %d", p[2].x, p[2].y);
-      lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
-      lv_label_set_text(label_coord, buf);
-      lv_obj_set_pos(label_coord, LV_HOR_RES - lv_obj_get_width(label_coord),
-                     LV_VER_RES - lv_obj_get_height(label_coord));
-
-      lv_label_set_text(label_main, "Click the circle in\n"
-                        "lower left-hand corner");
-
-      lv_obj_set_pos(label_main,
-                     (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
-                     (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
-
-#if USE_LV_ANIMATION
-      a.var            = circ_area;
-      a.start          = LV_HOR_RES - CIRCLE_SIZE;
-      a.end            = 0;
-      a.fp             = (lv_anim_fp_t)lv_obj_set_x;
-      a.path           = lv_anim_path_linear;
-      a.end_cb         = NULL;
-      a.act_time       = 0;
-      a.time           = 200;
-      a.playback       = 0;
-      a.playback_pause = 0;
-      a.repeat         = 0;
-      a.repeat_pause   = 0;
-      lv_anim_create(&a);
-
-      a.start         = LV_VER_RES - CIRCLE_SIZE;
-      a.end           = LV_VER_RES - CIRCLE_SIZE;
-      a.fp            = (lv_anim_fp_t) lv_obj_set_y;
-      a.end_cb        = NULL;
-      a.time          = 200;
-      lv_anim_create(&a);
+          lv_indev_get_point(indev, &p[2]);
+
+          sprintf(buf, "x: %d\ny: %d", p[2].x, p[2].y);
+          lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
+          lv_label_set_text(label_coord, buf);
+          lv_obj_set_pos(label_coord,
+                         LV_HOR_RES - lv_obj_get_width(label_coord),
+                         LV_VER_RES - lv_obj_get_height(label_coord));
+
+          lv_label_set_text(label_main, "Click the circle in\n"
+                            "lower left-hand corner");
+
+          lv_obj_set_pos(label_main,
+                        (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
+                        (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
+
+#if LV_USE_ANIMATION
+          a.var            = circ_area;
+          a.start          = LV_HOR_RES - CIRCLE_SIZE;
+          a.end            = 0;
+          a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_x;
+          a.path_cb        = (lv_anim_path_cb_t)lv_anim_path_linear;
+          a.ready_cb       = NULL;
+          a.act_time       = 0;
+          a.time           = 200;
+          a.playback       = 0;
+          a.playback_pause = 0;
+          a.repeat         = 0;
+          a.repeat_pause   = 0;
+          lv_anim_create(&a);
+
+          a.start         = LV_VER_RES - CIRCLE_SIZE;
+          a.end           = LV_VER_RES - CIRCLE_SIZE;
+          a.exec_cb       = (lv_anim_exec_xcb_t) lv_obj_set_y;
+          a.ready_cb      = NULL;
+          a.time          = 200;
+          lv_anim_create(&a);
 #else
-      lv_obj_set_pos(circ_area, 0, LV_VER_RES - CIRCLE_SIZE);
+          lv_obj_set_pos(circ_area, 0, LV_VER_RES - CIRCLE_SIZE);
 #endif
 
-      state           = TP_CAL_STATE_WAIT_BOTTOM_LEFT;
-    }
-
-  else if (state == TP_CAL_STATE_WAIT_BOTTOM_LEFT)
-    {
-      lv_indev_t *indev = lv_indev_get_act();
-      char buf[64];
-
-      lv_indev_get_point(indev, &p[3]);
-
-      lv_label_set_text(label_main, "Click the screen\n"
-                        "to leave calibration");
-
-      lv_obj_set_pos(label_main,
-                     (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
-                     (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
-
-      sprintf(buf, "x: %d\ny: %d", p[3].x, p[3].y);
-      lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
-      lv_label_set_text(label_coord, buf);
-      lv_obj_set_pos(label_coord, 0,
-                     LV_VER_RES - lv_obj_get_height(label_coord));
-
-      lv_obj_del(circ_area);
-
-      state = TP_CAL_STATE_WAIT_LEAVE;
+          state           = TP_CAL_STATE_WAIT_BOTTOM_LEFT;
+        }
+      else if (state == TP_CAL_STATE_WAIT_BOTTOM_LEFT)
+        {
+          lv_indev_t *indev = lv_indev_get_act();
+          char buf[64];
+
+          lv_indev_get_point(indev, &p[3]);
+
+          lv_label_set_text(label_main, "Click the screen\n"
+                            "to leave calibration");
+
+          lv_obj_set_pos(label_main,
+                        (LV_HOR_RES - lv_obj_get_width(label_main)) / 2,
+                        (LV_VER_RES - lv_obj_get_height(label_main)) / 2);
+
+          sprintf(buf, "x: %d\ny: %d", p[3].x, p[3].y);
+          lv_obj_t *label_coord = lv_label_create(lv_scr_act(), NULL);
+          lv_label_set_text(label_coord, buf);
+          lv_obj_set_pos(label_coord, 0,
+                          LV_VER_RES - lv_obj_get_height(label_coord));
+
+          lv_obj_del(circ_area);
+
+          state = TP_CAL_STATE_WAIT_LEAVE;
+        }
+      else if (state == TP_CAL_STATE_WAIT_LEAVE)
+        {
+          lv_scr_load(prev_scr);
+          tp_set_cal_values(&p[0], &p[1], &p[2], &p[3]);
+          state = TP_CAL_STATE_READY;
+        }
+      else if (state == TP_CAL_STATE_READY)
+        {
+        }
     }
-  else if (state == TP_CAL_STATE_WAIT_LEAVE)
-    {
-      lv_scr_load(prev_scr);
-      tp_set_cal_values(&p[0], &p[1], &p[2], &p[3]);
-      state = TP_CAL_STATE_READY;
-    }
-  else if (state == TP_CAL_STATE_READY)
-    {
-    }
-
-  return LV_RES_OK;
 }
 
 /****************************************************************************
@@ -305,7 +310,7 @@ static lv_res_t btn_click_action(FAR lv_obj_t *scr)
 void tp_cal_create(void)
 {
   static lv_style_t style_circ;
-#if USE_LV_ANIMATION
+#if LV_USE_ANIMATION
   lv_anim_t a;
 #endif
 
@@ -323,7 +328,7 @@ void tp_cal_create(void)
   lv_obj_set_size(big_btn, TP_MAX_VALUE, TP_MAX_VALUE);
   lv_btn_set_style(big_btn, LV_BTN_STYLE_REL, &lv_style_transp);
   lv_btn_set_style(big_btn, LV_BTN_STYLE_PR, &lv_style_transp);
-  lv_btn_set_action(big_btn, LV_BTN_ACTION_CLICK, btn_click_action);
+  lv_obj_set_event_cb(big_btn, btn_click_action);
   lv_btn_set_layout(big_btn, LV_LAYOUT_OFF);
 
   label_main = lv_label_create(lv_scr_act(), NULL);
@@ -342,13 +347,13 @@ void tp_cal_create(void)
   lv_obj_set_style(circ_area, &style_circ);
   lv_obj_set_click(circ_area, false);
 
-#if USE_LV_ANIMATION
+#if LV_USE_ANIMATION
   a.var            = circ_area;
   a.start          = LV_HOR_RES / 2;
   a.end            = 0;
-  a.fp             = (lv_anim_fp_t) lv_obj_set_x;
-  a.path           = lv_anim_path_linear;
-  a.end_cb         = NULL;
+  a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_x;
+  a.path_cb        = (lv_anim_path_cb_t)lv_anim_path_linear;
+  a.ready_cb       = NULL;
   a.act_time       = -500;
   a.time           = 200;
   a.playback       = 0;
@@ -359,8 +364,8 @@ void tp_cal_create(void)
 
   a.start          = LV_VER_RES / 2;
   a.end            = 0;
-  a.fp             = (lv_anim_fp_t) lv_obj_set_y;
-  a.end_cb         = NULL;
+  a.exec_cb        = (lv_anim_exec_xcb_t)lv_obj_set_y;
+  a.ready_cb       = NULL;
   a.time           = 200;
   lv_anim_create(&a);
 #endif