/* * ESP8266 RGBW controller * Copyright 2020 (c) Mark van Renswoude * * https://git.x2software.net/pub/RGBWifi */ #ifndef __Strip #define __Strip #include #include #include "./config.h" enum StripSetting { Static = 0, Rainbow = 1, RainbowMoving = 2 }; class Strip { private: NeoPixelBus* mBus; StripSetting mSetting; NeoPixelAnimator* mAnimator = new NeoPixelAnimator(1, NEO_MILLISECONDS); uint32_t mLastTick; uint32_t mDelay; RgbwColor mStaticColor; uint16_t mRainbowSpeed; uint8_t mRainbowLightness; uint16_t mRainbowShift; void tickRainbow(); public: void init(uint16_t ledCount); void tick(); void setStatic(const RgbwColor color, uint16_t fadeTime); void setRainbow(uint16_t speed, uint8_t lightness); }; #endif