mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
/**
|
|
* @file anim.h
|
|
*
|
|
*/
|
|
|
|
#ifndef ANIM_H
|
|
#define ANIM_H
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "lvgl/lvgl.h"
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
|
|
typedef enum
|
|
{
|
|
ANIM_PATH_LIN,
|
|
ANIM_PATH_STEP,
|
|
}anim_path_name_t;
|
|
|
|
typedef uint8_t anim_path_t;
|
|
|
|
typedef void (*anim_fp_t)(void *, int32_t);
|
|
typedef void (*anim_cb_t)(void *);
|
|
|
|
typedef struct
|
|
{
|
|
void * var; /*Variable to animate*/
|
|
anim_fp_t fp; /*Animator function*/
|
|
anim_cb_t end_cb; /*Call it when the animation is ready*/
|
|
anim_path_t * path; /*An array with the steps of animations*/
|
|
int32_t start; /*Start value*/
|
|
int32_t end; /*End value*/
|
|
int16_t time; /*Animation time in ms*/
|
|
int16_t act_time; /*Current time in animation. Set to negative to make delay.*/
|
|
uint16_t playback_pause; /*Wait before play back*/
|
|
uint16_t repeat_pause; /*Wait before repeat*/
|
|
uint8_t playback :1; /*When the animation is ready play it back*/
|
|
uint8_t repeat :1; /*Repeat the animation infinitely*/
|
|
/*Animation system use these - user shouldn't set*/
|
|
uint8_t playback_now :1; /*Play back is in progress*/
|
|
}anim_t;
|
|
|
|
/**********************
|
|
* GLOBAL PROTOTYPES
|
|
**********************/
|
|
void anim_init(void);
|
|
void anim_create(anim_t * anim_p);
|
|
anim_path_t * anim_get_path(anim_path_name_t type);
|
|
bool anim_del(void * var, anim_fp_t fp);
|
|
uint16_t anim_speed_to_time(uint16_t speed, int32_t start, int32_t end);
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
#endif
|