diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-06-01 15:41:47 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-06-01 15:41:47 +1000 |
| commit | dd27c3530432ea0b09f01e604bf577f31d8ef841 (patch) | |
| tree | bbf86cf81a78f0ff0b07f31f1c390db473f26fd3 /lib/lvgl/tests/src/lv_test_indev.c | |
| parent | 6fd588e970470b15936187980829916d0dbe77bb (diff) | |
| download | tangara-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/lvgl | 0 | ||||
| -rw-r--r-- | lib/lvgl/tests/src/lv_test_indev.c | 140 |
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 |
