boothifier/include/ATALights.h
2025-09-16 16:25:08 -07:00

97 lines
1.8 KiB
C

#pragma once
#include <Arduino.h>
#include <FastLED.h>
#include "ColorPalettes.h"
#include "PWM_Output.h"
#define PIXEL_INDEX -3
#define SOLID_COLOR_INDEX -2
#define OFF_INDEX -1
#define WITH_GAPS true
#define NO_GAPS false
extern uint32_t whiteTimeout;
typedef struct {
int AnimationIndex;
union {
struct {
uint8_t red;
uint8_t grn;
uint8_t blu;
uint8_t wht;
uint8_t extra[4]; // 4 extra bytes
};
uint8_t rgb[3]; // Access RGB only
uint8_t rgbw[4]; // Access RGBW
uint8_t data[8]; // Access all 8 bytes
} data;
} ANIM_EVENT;
typedef struct {
CRGB* leds;
bool enabled;
int size;
String chip;
String rgbOrder;
int shift;
int offset;
int powerDiv;
int effSize;
uint8_t bright;
uint8_t i2sCh;
uint8_t core;
uint8_t pin;
}LEDSTRIP_SETTINGS;
extern LEDSTRIP_SETTINGS ledSettings[2];
void RGB_Lights_Control_Task(void *parameters);
void Init_RGB_Lights_Task(void);
void Init_RGB_Strip(CRGB* leds, uint8_t pin, int size, const String& colorOrder, const String& chipType, uint8_t bright);
EOrder GetEOrderByString(const String& rgbStr);
void RGB_Lights_Set_Animation(int animIndex, uint8_t red, uint8_t grn, uint8_t blu);
void RGB_Animations_ON(void);
void RGB_Animations_OFF(void);
void RGB_Lights_Set_Brightness(uint8_t scale);
void Lights_Set_White(uint8_t val);
//void createFirePalette(CRGBPalette16& palette, COLOR_PACK& colorPack);
void createFirePalette(CRGBPalette16& palette, const COLOR_PACK& colorPack);
void loadColorPack(COLOR_PACK& dest, const COLOR_PACK& src);
//void Init_Ramp_Front_Light_Task(void);
//void Ramp_Front_Light_Control_Task(void *parameters);
//void Start_RampUp_Front_Light(int _rampTime=1000, int _startDelay=0);