diff --git a/lv_hal/lv_hal_disp.c b/lv_hal/lv_hal_disp.c index 26613dd19..b011e48b0 100644 --- a/lv_hal/lv_hal_disp.c +++ b/lv_hal/lv_hal_disp.c @@ -40,13 +40,26 @@ static lv_disp_t *active; * GLOBAL FUNCTIONS **********************/ +/** + * Initialize a display driver with default values. + * It is used to surly have known values in the fields ant not memory junk. + * After it you can set the fields. + * @param driver pointer to driver variable to initialize + */ +void lv_disp_drv_init(lv_disp_drv_t *driver) +{ + driver->fill_fp = NULL; + driver->map_fp = NULL; + driver->blend_fp = NULL; +} + /** * Register an initialized display driver. * Automatically set the first display as active. * @param driver pointer to an initialized 'lv_disp_drv_t' variable (can be local variable) * @return pointer to the new display or NULL on error */ -lv_disp_t * lv_disp_register(lv_disp_drv_t *driver) +lv_disp_t * lv_disp_drv_register(lv_disp_drv_t *driver) { lv_disp_t *node; diff --git a/lv_hal/lv_hal_disp.h b/lv_hal/lv_hal_disp.h index dceca679f..04c8a6ebf 100644 --- a/lv_hal/lv_hal_disp.h +++ b/lv_hal/lv_hal_disp.h @@ -46,6 +46,13 @@ typedef struct _disp_t { * GLOBAL PROTOTYPES **********************/ +/** + * Initialize a display driver with default values. + * It is used to surly have known values in the fields ant not memory junk. + * After it you can set the fields. + * @param driver pointer to driver variable to initialize + */ +void lv_disp_drv_init(lv_disp_drv_t *driver); /** * Register an initialized display driver. @@ -53,7 +60,7 @@ typedef struct _disp_t { * @param driver pointer to an initialized 'lv_disp_drv_t' variable (can be local variable) * @return pointer to the new display or NULL on error */ -lv_disp_t * lv_disp_register(lv_disp_drv_t *driver); +lv_disp_t * lv_disp_drv_register(lv_disp_drv_t *driver); /** * Set the active display diff --git a/lv_hal/lv_hal_indev.c b/lv_hal/lv_hal_indev.c index 22b2ecca7..9c109a666 100644 --- a/lv_hal/lv_hal_indev.c +++ b/lv_hal/lv_hal_indev.c @@ -36,6 +36,18 @@ static lv_indev_t *indev_list = NULL; * GLOBAL FUNCTIONS **********************/ +/** + * Initialize an input device driver with default values. + * It is used to surly have known values in the fields ant not memory junk. + * After it you can set the fields. + * @param driver pointer to driver variable to initialize + */ +void lv_indev_drv_init(lv_indev_drv_t *driver) +{ + driver->read_fp = NULL; + driver->type = LV_INDEV_TYPE_NONE; +} + /** * Register an initialized input device driver. * @param driver pointer to an initialized 'lv_indev_drv_t' variable (can be local variable) diff --git a/lv_hal/lv_hal_indev.h b/lv_hal/lv_hal_indev.h index e3bcd96fe..781a6cc0d 100644 --- a/lv_hal/lv_hal_indev.h +++ b/lv_hal/lv_hal_indev.h @@ -30,6 +30,7 @@ extern "C" { /*Possible input device types*/ typedef enum { + LV_INDEV_TYPE_NONE, /*Show uninitialized state*/ LV_INDEV_TYPE_TOUCHPAD, /*Touch pad*/ LV_INDEV_TYPE_MOUSE, /*Mouse or similar pointer device*/ LV_INDEV_TYPE_KEYPAD, /*Keypad or keyboard*/ @@ -105,6 +106,14 @@ typedef struct _lv_indev_t { * GLOBAL PROTOTYPES **********************/ +/** + * Initialize an input device driver with default values. + * It is used to surly have known values in the fields ant not memory junk. + * After it you can set the fields. + * @param driver pointer to driver variable to initialize + */ +void lv_indev_drv_init(lv_indev_drv_t *driver); + /** * Register an initialized input device driver. * @param driver pointer to an initialized 'lv_indev_drv_t' variable (can be local variable)