move basic descriptors to lv_disp_t

This commit is contained in:
Gabor Kiss-Vamosi
2019-02-10 11:06:47 +01:00
parent e2e6479fb0
commit 5b92b4d01b
13 changed files with 166 additions and 184 deletions

View File

@@ -51,6 +51,7 @@ void lv_indev_drv_init(lv_indev_drv_t * driver)
{
driver->read = NULL;
driver->type = LV_INDEV_TYPE_NONE;
driver->disp = NULL;
driver->user_data = NULL;
}
@@ -61,30 +62,28 @@ void lv_indev_drv_init(lv_indev_drv_t * driver)
*/
lv_indev_t * lv_indev_drv_register(lv_indev_drv_t * driver)
{
lv_indev_t * node;
node = lv_mem_alloc(sizeof(lv_indev_t));
if(!node) return NULL;
if(driver->disp == NULL) driver->disp = lv_disp_get_last();
if(driver->disp == NULL) {
LV_LOG_WARN("lv_indev_drv_register: no display registered hence can't attache the indev to a display");
return NULL;
}
lv_indev_t * node = lv_ll_ins_head(&LV_GC_ROOT(_lv_indev_ll));
if(!node) {
lv_mem_assert(node);
return NULL;
}
memset(node, 0, sizeof(lv_indev_t));
memcpy(&node->driver, driver, sizeof(lv_indev_drv_t));
node->next = NULL;
node->proc.reset_query = 1;
node->cursor = NULL;
node->group = NULL;
node->btn_points = NULL;
if(LV_GC_ROOT(_lv_indev_list) == NULL) {
LV_GC_ROOT(_lv_indev_list) = node;
} else {
lv_indev_t * last = LV_GC_ROOT(_lv_indev_list);
while(last->next)
last = last->next;
last->next = node;
}
return node;
}
@@ -95,13 +94,8 @@ lv_indev_t * lv_indev_drv_register(lv_indev_drv_t * driver)
*/
lv_indev_t * lv_indev_next(lv_indev_t * indev)
{
if(indev == NULL) {
return LV_GC_ROOT(_lv_indev_list);
} else {
if(indev->next == NULL) return NULL;
else return indev->next;
}
if(indev == NULL) return lv_ll_get_head(LV_GC_ROOT(&_lv_indev_ll));
else return lv_ll_get_next(LV_GC_ROOT(&_lv_indev_ll), indev);
}
/**