summaryrefslogtreecommitdiff
path: root/lib/lvgl/tests/src/lv_test_indev.c
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-06-01 15:41:47 +1000
committerjacqueline <me@jacqueline.id.au>2023-06-01 15:41:47 +1000
commitdd27c3530432ea0b09f01e604bf577f31d8ef841 (patch)
treebbf86cf81a78f0ff0b07f31f1c390db473f26fd3 /lib/lvgl/tests/src/lv_test_indev.c
parent6fd588e970470b15936187980829916d0dbe77bb (diff)
downloadtangara-fw-dd27c3530432ea0b09f01e604bf577f31d8ef841.tar.gz
convert lvgl from submodule to a plain old directory
Diffstat (limited to 'lib/lvgl/tests/src/lv_test_indev.c')
m---------lib/lvgl0
-rw-r--r--lib/lvgl/tests/src/lv_test_indev.c140
2 files changed, 140 insertions, 0 deletions
diff --git a/lib/lvgl b/lib/lvgl
deleted file mode 160000
-Subproject 0732400e7b564dd0e7dc4a924619d8e19c5b23a
diff --git a/lib/lvgl/tests/src/lv_test_indev.c b/lib/lvgl/tests/src/lv_test_indev.c
new file mode 100644
index 00000000..1ac68089
--- /dev/null
+++ b/lib/lvgl/tests/src/lv_test_indev.c
@@ -0,0 +1,140 @@
+#if LV_BUILD_TEST
+#include "../lvgl.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <sys/time.h>
+#include "lv_test_indev.h"
+#include "lv_test_init.h"
+
+static lv_coord_t x_act;
+static lv_coord_t y_act;
+static uint32_t key_act;
+static int32_t diff_act;
+static bool mouse_pressed;
+static bool key_pressed;
+static bool enc_pressed;
+
+void lv_test_mouse_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
+{
+ LV_UNUSED(drv);
+ data->point.x = x_act;
+ data->point.y = y_act;
+ data->state = mouse_pressed ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
+}
+
+void lv_test_mouse_move_to(lv_coord_t x, lv_coord_t y)
+{
+ x_act = x;
+ y_act = y;
+}
+
+void lv_test_mouse_move_by(lv_coord_t x, lv_coord_t y)
+{
+ x_act += x;
+ y_act += y;
+}
+
+void lv_test_mouse_press(void)
+{
+ mouse_pressed = true;
+}
+
+void lv_test_mouse_release(void)
+{
+ mouse_pressed = false;
+}
+
+void lv_test_mouse_click_at(lv_coord_t x, lv_coord_t y)
+{
+ lv_test_mouse_release();
+ lv_test_indev_wait(50);
+ lv_test_mouse_move_to(x, y);
+ lv_test_mouse_press();
+ lv_test_indev_wait(50);
+ lv_test_mouse_release();
+ lv_test_indev_wait(50);
+}
+
+
+void lv_test_keypad_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
+{
+ LV_UNUSED(drv);
+ data->key = key_act;
+ data->state = key_pressed ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
+}
+
+void lv_test_key_press(uint32_t k)
+{
+ key_act = k;
+ key_pressed = true;
+}
+
+void lv_test_key_release(void)
+{
+ key_pressed = false;
+}
+
+void lv_test_key_hit(uint32_t k)
+{
+ lv_test_key_release();
+ lv_test_indev_wait(50);
+ lv_test_key_press(k);
+ lv_test_mouse_press();
+ lv_test_indev_wait(50);
+ lv_test_key_release();
+ lv_test_indev_wait(50);
+}
+
+void lv_test_encoder_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
+{
+ LV_UNUSED(drv);
+ data->enc_diff = diff_act;
+ data->state = enc_pressed ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
+ diff_act = 0;
+}
+
+void lv_test_encoder_add_diff(int32_t d)
+{
+ diff_act += d;
+}
+
+void lv_test_encoder_turn(int32_t d)
+{
+ diff_act += d;
+ lv_test_indev_wait(50);
+}
+
+
+void lv_test_encoder_press(void)
+{
+ enc_pressed = true;
+}
+
+void lv_test_encoder_release(void)
+{
+ enc_pressed = false;
+}
+
+void lv_test_encoder_click(void)
+{
+ lv_test_encoder_release();
+ lv_test_indev_wait(50);
+ lv_test_encoder_press();
+ lv_test_indev_wait(50);
+ lv_test_encoder_release();
+ lv_test_indev_wait(50);
+}
+
+
+void lv_test_indev_wait(uint32_t ms)
+{
+ uint32_t t = lv_tick_get();
+ while(lv_tick_elaps(t) < ms) {
+ lv_timer_handler();
+ lv_tick_inc(1);
+ }
+}
+
+
+#endif