Files
WS2812B-LED-RC-Controller/main/animation.h
2026-01-05 21:01:26 +01:00

64 lines
1.6 KiB
C

/**
* @file animation.h
* @brief LED animation patterns
*/
#ifndef ANIMATION_H
#define ANIMATION_H
#include <stdint.h>
#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