123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-10-18 Meco Man The first version
- */
- #include <lvgl.h>
- #include <rtdevice.h>
- #include <lcd_port.h>
- static lv_indev_state_t last_state = LV_INDEV_STATE_REL;
- static rt_int16_t last_x = 0;
- static rt_int16_t last_y = 0;
- lv_indev_t * touch_indev;
- static void input_read(lv_indev_drv_t *indev_drv, lv_indev_data_t *data)
- {
- data->point.x = last_x;
- data->point.y = last_y;
- data->state = last_state;
- }
- void lv_port_indev_input(rt_int16_t x, rt_int16_t y, lv_indev_state_t state)
- {
- last_state = state;
- last_x = x;
- last_y = LCD_HEIGHT - y;
- }
- void lv_port_indev_init(void)
- {
- static lv_indev_drv_t indev_drv;
- lv_indev_drv_init(&indev_drv); /*Basic initialization*/
- indev_drv.type = LV_INDEV_TYPE_POINTER;
- indev_drv.read_cb = input_read;
- /*Register the driver in LVGL and save the created input device object*/
- touch_indev = lv_indev_drv_register(&indev_drv);
- }
|