/** * @file animation.h * @brief LED animation patterns */ #ifndef ANIMATION_H #define ANIMATION_H #include "esp_err.h" #include /** * @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_NAVIGATION = 9, // Navigation lights (red left, green right) ANIM_CHASE = 10, // Red dot sweeping ANIM_CHASE_RGB = 11, // RGB cycling dot sweeping ANIM_RANDOM = 12, // 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