boothifier/include/ATALights.h

78 lines
1.6 KiB
C

#pragma once
#include <Arduino.h>
#include <FastLED.h>
#include "ColorPalettes.h"
#define PIXEL_INDEX -3
#define SOLID_COLOR_INDEX -2
#define OFF_INDEX -1
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];
// Forward declarations
//extern CRGB* leds1;
//extern CRGB* leds2;
void Lights_Control_Task(void *parameters);
void Init_Lights_Task(void);
void Lights_Control_Task_Resume(void);
void Init_Strip(CRGB* leds, uint8_t pin, int size, const String& colorOrder, const String& chipType, uint8_t bright);
EOrder GetEOrderByString(const String& rgbStr);
void Lights_Set_Animation(int animIndex, uint8_t red, uint8_t grn, uint8_t blu);
void Lights_Set_ON(void);
void Lights_Set_OFF(void);
void Lights_Set_Brightness(uint8_t scale);
void Lights_Set_White(uint8_t val);
void createFirePalette(CRGBPalette16& palette, CRGB color1, CRGB color2, CRGB color3);
void loadColorPack(COLOR_PACK& dest, const COLOR_PACK& src);