123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #ifndef BackGroundRingClass_h
- #define BackGroundRingClass_h
- #include <SoftwareSerial.h>
- #include "Arduino.h"
- #include "Adafruit_NeoPixel.h"
- #include "WS2812_Definitions.h"
- typedef enum Action {
- Idle,
- Solid,
- Pulse,
- Spin,
- Flip,
- Slowroll
- };
- class BackgroundRingClass : public Adafruit_NeoPixel {
- public:
- int led_count;
- Action action;
- BackgroundRingClass(int ledcount, int pin);
- void tick();
- // Helper Functions
- void setColor(unsigned long color, uint8_t brightness=255, bool show=false);
- void setRepeating(unsigned long* colors, int elements, int rotation);
- // Idle
- void init_idle();
- void tick_idle();
- // Solid
- void init_solid(unsigned long int color, uint8_t brightness);
- void tick_solid();
- // Pulse
- struct {
- bool increasing;
- unsigned long color;
- unsigned long starttime;
- unsigned long steptime;
- uint8_t maxbrightness;
- uint8_t curbrightness;
- } pulseinfo;
- void init_pulse(unsigned long color, uint8_t maxbrightness, unsigned long ms);
- void tick_pulse();
- // Spin
- struct {
- unsigned long color1;
- unsigned long color2;
- unsigned long ms;
- unsigned long tickdelay;
- unsigned long starttime;
- unsigned long lasttick;
- int rotation;
- } spininfo;
- void init_spin(unsigned long color1, unsigned long color2, unsigned long ms=2000, unsigned long tickdelay=125);
- void tick_spin();
- // Flip
- struct {
- unsigned long color1;
- unsigned long color2;
- unsigned long ms;
- unsigned long tickdelay;
- unsigned long starttime;
- unsigned long lasttick;
- bool flipper;
- } flipinfo;
- void init_flip(unsigned long color1, unsigned long color2, unsigned long ms=5000, unsigned long tickdelay=500);
- void tick_flip();
- // Slowroll
- struct {
- unsigned long color1;
- unsigned long color2;
- unsigned long ms;
- unsigned long tickdelay;
- unsigned long starttime;
- unsigned long lasttick;
- bool flipper;
- } slowrollinfo;
- void init_slowroll(unsigned long color1, unsigned long color2, unsigned long ms=5000, unsigned long tickdelay=500);
- void tick_slowroll();
- };
- #endif
|