/**1* @file lv_preload.h2*3*/45#ifndef LV_PRELOAD_H6#define LV_PRELOAD_H78#ifdef __cplusplus9extern "C" {10#endif1112/*********************13* INCLUDES14*********************/15#ifdef LV_CONF_INCLUDE_SIMPLE16#include "lv_conf.h"17#else18#include "../../lv_conf.h"19#endif2021#if USE_LV_PRELOAD != 02223/*Testing of dependencies*/24#if USE_LV_ARC == 025#error "lv_preload: lv_arc is required. Enable it in lv_conf.h (USE_LV_ARC 1) "26#endif2728#if USE_LV_ANIMATION == 029#error "lv_preload: animations are required. Enable it in lv_conf.h (USE_LV_ANIMATION 1) "30#endif3132#include "../lv_core/lv_obj.h"33#include "lv_arc.h"3435/*********************36* DEFINES37*********************/3839/**********************40* TYPEDEFS41**********************/4243enum {44LV_PRELOAD_TYPE_SPINNING_ARC,45LV_PRELOAD_TYPE_FILLSPIN_ARC,46};47typedef uint8_t lv_preloader_type_t;4849/*Data of pre loader*/50typedef struct {51lv_arc_ext_t arc; /*Ext. of ancestor*/52/*New data for this type */53uint16_t arc_length; /*Length of the spinning indicator in degree*/54uint16_t time; /*Time of one round*/55lv_preloader_type_t anim_type; /*Type of the arc animation*/56} lv_preload_ext_t;575859/*Styles*/60enum {61LV_PRELOAD_STYLE_MAIN,62};63typedef uint8_t lv_preload_style_t;6465/**********************66* GLOBAL PROTOTYPES67**********************/6869/**70* Create a pre loader objects71* @param par pointer to an object, it will be the parent of the new pre loader72* @param copy pointer to a pre loader object, if not NULL then the new object will be copied from it73* @return pointer to the created pre loader74*/75lv_obj_t * lv_preload_create(lv_obj_t * par, const lv_obj_t * copy);7677/*======================78* Add/remove functions79*=====================*/8081/**82* Set the length of the spinning arc in degrees83* @param preload pointer to a preload object84* @param deg length of the arc85*/86void lv_preload_set_arc_length(lv_obj_t * preload, uint16_t deg);8788/**89* Set the spin time of the arc90* @param preload pointer to a preload object91* @param time time of one round in milliseconds92*/93void lv_preload_set_spin_time(lv_obj_t * preload, uint16_t time);9495/*=====================96* Setter functions97*====================*/9899/**100* Set a style of a pre loader.101* @param preload pointer to pre loader object102* @param type which style should be set103* @param style pointer to a style104* */105void lv_preload_set_style(lv_obj_t * preload, lv_preload_style_t type, lv_style_t *style);106107/**108* Set the animation type of a preloadeer.109* @param preload pointer to pre loader object110* @param type animation type of the preload111* */112void lv_preload_set_animation_type(lv_obj_t * preload, lv_preloader_type_t type);113114/*=====================115* Getter functions116*====================*/117118/**119* Get the arc length [degree] of the a pre loader120* @param preload pointer to a pre loader object121*/122uint16_t lv_preload_get_arc_length(const lv_obj_t * preload);123124/**125* Get the spin time of the arc126* @param preload pointer to a pre loader object [milliseconds]127*/128uint16_t lv_preload_get_spin_time(const lv_obj_t * preload);129130/**131* Get style of a pre loader.132* @param preload pointer to pre loader object133* @param type which style should be get134* @return style pointer to the style135* */136lv_style_t * lv_preload_get_style(const lv_obj_t * preload, lv_preload_style_t type);137138/**139* Get the animation type of a preloadeer.140* @param preload pointer to pre loader object141* @return animation type142* */143lv_preloader_type_t lv_preload_get_animation_type(lv_obj_t * preload);144145/*=====================146* Other functions147*====================*/148149/**150* Get style of a pre loader.151* @param preload pointer to pre loader object152* @param type which style should be get153* @return style pointer to the style154* */155void lv_preload_spinner_animation(void * ptr, int32_t val);156157/**********************158* MACROS159**********************/160161#endif /*USE_LV_PRELOAD*/162163#ifdef __cplusplus164} /* extern "C" */165#endif166167#endif /*LV_PRELOAD_H*/168169170