/** * @file animation.h * @brief LED animation patterns */ #ifndef ANIMATION_H #define ANIMATION_H #include #include "esp_err.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 Get current animation mode * @return Current mode */ animation_mode_t animation_get_mode(void); /** * @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