59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
/**
|
|
* @file animation.h
|
|
* @brief LED animation patterns
|
|
*/
|
|
|
|
#ifndef ANIMATION_H
|
|
#define ANIMATION_H
|
|
|
|
#include "esp_err.h"
|
|
|
|
#include <stdint.h>
|
|
|
|
/**
|
|
* @brief Animation modes
|
|
*/
|
|
typedef enum {
|
|
ANIM_BLACK = 0, // All off
|
|
ANIM_RED = 1, // All red
|
|
ANIM_BLUE = 2, // All blue
|
|
ANIM_GREEN = 3, // All green
|
|
ANIM_WHITE = 4, // All white
|
|
ANIM_RAINBOW = 5, // FastLED rainbow
|
|
ANIM_RAINBOW_GLITTER = 6, // Rainbow with glitter
|
|
ANIM_CONFETTI = 7, // Random colored speckles
|
|
ANIM_SINELON = 8, // Colored dot sweeping (RGB cycling)
|
|
ANIM_BPM = 9, // Colored stripes @ 33 BPM
|
|
ANIM_NAVIGATION = 10, // Navigation lights (red left, green right)
|
|
ANIM_CHASE = 11, // Red dot sweeping
|
|
ANIM_CHASE_RGB = 12, // RGB cycling dot sweeping
|
|
ANIM_RANDOM = 13, // Random mode
|
|
ANIM_MODE_COUNT
|
|
} animation_mode_t;
|
|
|
|
/**
|
|
* @brief Initialize animation system
|
|
* @return ESP_OK on success
|
|
*/
|
|
esp_err_t animation_init(void);
|
|
|
|
/**
|
|
* @brief Set current animation mode
|
|
* @param mode Animation mode
|
|
*/
|
|
void animation_set_mode(animation_mode_t mode);
|
|
|
|
/**
|
|
* @brief Update animation (call periodically, e.g., 30-60 FPS)
|
|
*/
|
|
void animation_update(void);
|
|
|
|
/**
|
|
* @brief Get animation mode name
|
|
* @param mode Animation mode
|
|
* @return Mode name string
|
|
*/
|
|
const char *animation_get_mode_name(animation_mode_t mode);
|
|
|
|
#endif // ANIMATION_H
|