Reorganized the code, speed tweaks and updates to example sketches.
The major changes:
-
The source files were getting very big, so I split the .h and .cpp
files into three .h files and three .cpp files. The files are
still pretty big, but are now a little more manageable. -
The Arduino's memory limitations are starting to really hinder
expanding the library's feature set, so I split the header file into
separate files for ESP (modes_esp.h) and Arduino (modes_arduino.h).
Hopefully this will make it easer to add new features/effects for
ESP devices, and not blow up the memory footprint for Arduino devices. -
Updated the ws2812fx_patterns_web example sketch to use the
async web server (ESPAsyncWebServer) instead of ESP8266WebServer,
so the sketch now supports ESP8266 and ESP32. -
removed support for the legacy AduinoJson v5 library in the
ws2812fx_patterns_web example sketch. You must use the
ArduinoJson v6 library. -
Added the tester.zsh script to verify all the example sketches
for Arduino, ESP8266 and ESP32 devices. Automated
testing??? What a concept! :) -
Refactored the modes for ESP devices, so the mode data is stored
in a struct, and added an effect category to the struct. This
should have been done long ago, but the tight coupling of Arduino
and ESP code made it problematic. Hopefully this will spur more
innovative GUI designs that don't just show one gigantic list
of effects. -
POTENTIALLY BREAKING CHANGE
Changed the timing of the CHASE, TWINKLE_FADE, RUNNING, DYNAMIC
and Fireworks effects to make them more consistent with the other
effects. A speed setting of 1000 should give reasonable results
for all effects. While this isn't strictly a breaking change,
your speed settings for these effects might need to be tweaked
to get the same animation rate you had before. -
Refactored the rainbow_chase effect to be more efficient.