mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-21 22:52:46 +08:00
test add keypad and encoder emulators
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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"*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user