chore: initial commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "esp_err.h"
|
||||
#include "lvgl.h"
|
||||
|
||||
typedef struct {
|
||||
const char *asset_dir;
|
||||
const uint8_t *frame_order;
|
||||
size_t frame_order_count;
|
||||
uint16_t repeat_count;
|
||||
uint32_t frame_ms;
|
||||
bool return_to_idle;
|
||||
} lcd_face_asset_sequence_t;
|
||||
|
||||
/**
|
||||
* @brief Create the default cat-face idle screen on the active LVGL screen.
|
||||
*/
|
||||
esp_err_t lcd_face_create_idle_screen(lv_obj_t *screen);
|
||||
|
||||
/**
|
||||
* @brief Restore the default cat-face idle screen.
|
||||
*/
|
||||
esp_err_t lcd_face_show_idle(lv_obj_t *screen);
|
||||
|
||||
/**
|
||||
* @brief Play a frame sequence from an animation asset directory.
|
||||
*/
|
||||
esp_err_t lcd_face_play_asset_sequence(lv_obj_t *screen, const lcd_face_asset_sequence_t *sequence);
|
||||
|
||||
/**
|
||||
* @brief Preload a frame sequence into the animation cache.
|
||||
*
|
||||
* `decode_budget` limits how many compressed frames are decoded during this
|
||||
* call. Pass `SIZE_MAX` to finish synchronously.
|
||||
*/
|
||||
esp_err_t lcd_face_preheat_asset_sequence(const lcd_face_asset_sequence_t *sequence,
|
||||
size_t decode_budget,
|
||||
bool *out_complete);
|
||||
|
||||
/**
|
||||
* @brief Consume a completed finite asset-sequence signal.
|
||||
*/
|
||||
bool lcd_face_take_completed(bool *out_return_to_idle);
|
||||
Reference in New Issue
Block a user