test add keypad and encoder emulators

This commit is contained in:
Gabor Kiss-Vamosi
2021-06-23 21:51:14 +02:00
parent 2ba810b8de
commit e536bb6325
4 changed files with 125 additions and 16 deletions
+83 -8
View File
@@ -9,14 +9,18 @@
static lv_coord_t x_act;
static lv_coord_t y_act;
static bool pressed;
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 = pressed ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
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)
@@ -33,26 +37,97 @@ void lv_test_mouse_move_by(lv_coord_t x, lv_coord_t y)
void lv_test_mouse_press(void)
{
pressed = true;
mouse_pressed = true;
}
void lv_test_mouse_release(void)
{
pressed = false;
mouse_pressed = false;
}
void lv_test_mouse_click_at(lv_coord_t x, lv_coord_t y)
{
lv_test_mouse_release();
lv_test_mouse_wait(50);
lv_test_indev_wait(50);
lv_test_mouse_move_to(x, y);
lv_test_mouse_press();
lv_test_mouse_wait(50);
lv_test_indev_wait(50);
lv_test_mouse_release();
lv_test_mouse_wait(50);
lv_test_indev_wait(50);
}
void lv_test_mouse_wait(uint32_t ms)
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) {
+22 -1
View File
@@ -16,7 +16,28 @@ void lv_test_mouse_move_by(lv_coord_t x, lv_coord_t y);
void lv_test_mouse_press(void);
void lv_test_mouse_release(void);
void lv_test_mouse_click_at(lv_coord_t x, lv_coord_t y);
void lv_test_mouse_wait(uint32_t ms);
void lv_test_keypad_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data);
void lv_test_key_press(uint32_t k);
void lv_test_key_release(void);
void lv_test_key_hit(uint32_t k);
void lv_test_encoder_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data) ;
void lv_test_encoder_add_diff(int32_t d);
void lv_test_encoder_turn(int32_t d);
void lv_test_encoder_press(void);
void lv_test_encoder_release(void);
void lv_test_encoder_click(void);
void lv_test_indev_wait(uint32_t ms);
extern lv_indev_t * lv_test_mouse_indev;
extern lv_indev_t * lv_test_keypad_indev;
extern lv_indev_t * lv_test_encoder_indev;
#ifdef __cplusplus
} /*extern "C"*/
+20 -5
View File
@@ -13,6 +13,9 @@ static void hal_init(void);
static void dummy_flush_cb(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p);
lv_indev_t * lv_test_mouse_indev;
lv_indev_t * lv_test_keypad_indev;
lv_indev_t * lv_test_encoder_indev;
lv_color_t test_fb[HOR_RES * VER_RES];
static lv_color_t disp_buf1[HOR_RES * VER_RES];
@@ -100,11 +103,23 @@ static void hal_init(void)
disp_drv.ver_res = VER_RES;
lv_disp_drv_register(&disp_drv);
static lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = lv_test_mouse_read_cb;
lv_test_mouse_indev = lv_indev_drv_register(&indev_drv);
static lv_indev_drv_t indev_mouse_drv;
lv_indev_drv_init(&indev_mouse_drv);
indev_mouse_drv.type = LV_INDEV_TYPE_POINTER;
indev_mouse_drv.read_cb = lv_test_mouse_read_cb;
lv_test_mouse_indev = lv_indev_drv_register(&indev_mouse_drv);
static lv_indev_drv_t indev_keypad_drv;
lv_indev_drv_init(&indev_keypad_drv);
indev_keypad_drv.type = LV_INDEV_TYPE_KEYPAD;
indev_keypad_drv.read_cb = lv_test_keypad_read_cb;
lv_test_keypad_indev = lv_indev_drv_register(&indev_keypad_drv);
static lv_indev_drv_t indev_encoder_drv;
lv_indev_drv_init(&indev_encoder_drv);
indev_encoder_drv.type = LV_INDEV_TYPE_ENCODER;
indev_encoder_drv.read_cb = lv_test_encoder_read_cb;
lv_test_encoder_indev = lv_indev_drv_register(&indev_encoder_drv);
static lv_fs_drv_t drv;
-2
View File
@@ -12,8 +12,6 @@ extern "C" {
void lv_test_init(void);
void lv_test_deinit(void);
extern lv_indev_t * lv_test_mouse_indev;
#ifdef __cplusplus
} /*extern "C"*/
#endif