Temporarily disable deviceID retrieval to prevent crashes on some ESP32 boards. This prevents the DeviceID from being added to /json/info, until we find a solution that does not crash my esp32.
* Compile with -D WLED_ENABLE_FULL_FONTS to use all character defined in the font files (including EU spechial cars, line art, and some symbols and icons) -> increases flash size by ~8KBytes
* Unicode support added for scrolling text - allows to use all characters of the font
* Conversion from UTF-8 to "codepage 437" - can be extended to other codepages if you have a font that needs another codepage
* Support added for WLED_MAX_SEGNAME_LEN (default:48) - needs more testing
* Segment names > WLED_MAX_SEGNAME_LEN will be truncated, instead of silently deleting
* Preparations for future additions like user-defined font files and font width > 8 pixels
* replace strlen with strnlen
* avoid static variable in getFontInfo
* remove legacy code in drawCharacter (new code works well)
it works for me, let's ship it ;-)
* centralize font selection logic into getFontInfo()
* removed unneeded parameter "numberOfChars" from drawText()
* new file: wled_fonts.hpp to centralize font management logic (inline)
* only compile wchar16ToCodepage437 when WLED_ENABLE_FULL_FONTS
* minor cleanup
* explanation for CP437 glyph groups
* translation for MonnModules symbol
* "smiley" replacement for 4-bytes and overlong unicode codes
* always compile unicodetool.cpp (codepage translation still depends on WLED_ENABLE_UNICODE)
* bugfix: DrawString now skips over glyphs that would be rejected by DrawCharacter
* minor cleanup
* introducing WLED_MAX_SEGNAME_LEN from upstream
* default: max name length = 48
* hopefully found all places where the segment name length was hardcoded (32, 33, 34)
* some comments still refer to "32" but wtf
* enable ARDUINOJSON_DECODE_UNICODE (otherwise unicode needs 6(!) bytes for encoding)
* robustness: increase a few tiny string buffers for some extra margin
* Web UI: allow entering up to 64 chars as segment name
* should properly decode all unicodes that fit into 2bytes UTF-16
* with error handling for well-known "malformed UTF-8" expoits
* puh, this stuff looks simple but the details are CRAZY 😝
part1:
* enable all bitmaps already defined in the font files (increases firmware by ~7KB)
* add traslation for unicode -> codepage437 (as used by font files)
* removed unnecessary sanity checks from sPC and gPC
* gPC: use inline color_fade() instead of FastLED .scale8()
in my tests on -S3 this gives a small speedup, 2% up to 6%
* add a dedicated callback for 2D downscaling only (no nested for loop)
-> up to 10% faster
* minor optimizations for 2D up/downscale drawpixel - move repeated calculations out of the inner loop
-> small speedup
- if a segment is destroyed or turned inactive, disable the gif player: only one gif player instance can run at a time, if a inactive or destroyed segment uses it, the effect is broken for other segments.
- copy FX ironically copied the source segment on each call, should use reference not a copy!