Rather than append a linker file, we edit the upstream supplied ones to
add our section to the binaries. Works better on all platforms.
Co-Authored-By: Claude <noreply@anthropic.com>
Clean-up and simplification of strip.service() after individual effect FRAMETIME was removed.
* Activation "_frametime" is now the same for all effects, so effects scheduling based on individual frametime is not needed any more
* Special handling for mode_static is obsolete, because the solid effect does not have a different timing any more
* Ensures a safe fallback segment after servicing to avoid stale state.
* Brightness changes use a capped refresh threshold to avoid excessive redraws.
* load pixel forge tools from json file, bugfixes
- load available external tools from a json file instead of hard-coding them in
- add buttons to update or delete tools (instead of manually deleting files in /edit)
- fixed bug that file system memory was not updated after uploading or deleting files
- fixed a bug where gifs with a space would not display
- fixed bug of page not loading properly (out of sync access to tabSw() )
- remove pixelforge from ESP8266 1m builds (does not fit)
- add inline html page if pixelforge is not built in to avoid 404
@coderabbitai caught the problem, but its fix suggestion was out to
lunch on this one. Passing an unsigned char to String.concat() appends
it as a number instead of appending the character.
Instead, mask the unneceeded bits.
Discard IPv6 RA packets, which cause LwIP to overwrite the IPv4 DNS
servers, resulting in DNS queries hanging up because there are no
accessible servers.
In startTransition(), a copy of the old effect's data buffer is made using raw malloc() — it deliberately bypasses allocateData(). This buffer is never added to the _usedSegmentData static counter (only allocateData() does that). If the old effect then calls allocateData() it causes _usedSegmentData to underflow.
https://github.com/wled/WLED/issues/5427#issuecomment-4103228702
Bug Fixes
* Improved hostname sanitization and buffer-size safeguards to prevent truncation and ensure DNS-compliant names.
* Hostname is now applied earlier during network setup and on reconnects (ESP32), improving connectivity and ensuring settings take effect.
* Solves the problem that ESP32 boards show as "ESP-xxxxxx" on the network, no matter if DNS name is defined or not
* (breaking fix) prevent hostnames with double ``WLED-`` prefix, like ``wled-WLED-kitchen``
New Features
* Added a length-aware hostname retrieval API with an mDNS-preference option and robust fallback behavior.
* Preserved legacy compatibility by providing a length-aware alias for legacy hostname preparation.
Open Ends
* mDNS name is not sanitized when registering the mDNS endpoint, to avoid breaking previous functionality
Make AsyncDNS queries return a future-like object backed by a smart
pointer. This ensures that the client cannot release the backing
memory while the dns query callback is still holding a reference to it,
preventing any use-after-free cases.
* use same style as other settings pages
* Hide "back" button while update is in progress
* set "download latest binary" URL and badge based on info.repo; directly link to "latest" release
* correct bad name of "Security & Updates" page
* ensure that "update bootloader" section get hidden when not supported
Updated instructions regarding generated html_*.h files to clarify that they should not be committed, and they don't need to be re-generated in any PR.
* Info page updates and minor re-styling
* added GitHub repo (link)
* added Total LEDs
* removed lwip major version on esp32
* two horizontal lines for better readability
* add rel="noopener noreferrer" for improved security
* When using target="_blank", it's a security best practice to include rel="noopener noreferrer" to prevent the new page from accessing window.opener.
* Added the Spinning Wheel effect into the user_fx usermod
* Fixed integer overflow when storing color scale in aux1. And added a comment about the velocity scaling.
* Additions/changes:
* Added Color Per Block checkbox. Enabled will set the spinner LEDs to the same color (instead of changing colors depending on the palette and LED position).
* Added Sync Restart checkbox. Enabled means that all spinners will restart together (instead of individually) after they have all stopped spinning.
* Added resizing the spinner slider (between 1 and 10 LEDs).
* Changed how we do random speed and slowdown start time (sliders set to 0 = random).
* tweaks here and there
* One minor fix for the spinner colors
* Changed the two analogRead() to hw_random16()
* Changes from SEGLEN to vstripLen suggested by coderabbitai, but it's not working correctly now. Committing and pushing so coderabbitai can check the latest code.
* Rolled back changes from vstripLen to SEGLEN as that is what works correctly. Also changed to the global paletteBlend.
* Fixed a color issue by using ColorFromPaletteWLED() instead of color_from_palette(). Also removed color_wheel() and the Color Mode option as it's very similar to the new color function. And now using strips variable instead of SEGMENT.nrOfVStrips() after the initial assignment at the top of the code.
* Added the ability to spin the wheel(s)/spinner(s) with a push button or the new Spin Me checkbox.
* Set default of check1 to 1 so it will automatically spin.
* New Effect: Color Clouds
ColorClouds: Random start points for clouds and color
ColorClouds: new config option 'More red'
* ColorClouds: Incorporated review comments
- Support for color palettes
- Use perlin16() instead of inoise16()
- Use cos8_t() instead of cos8()
* ColorClouds: incorporated more review comments
* ColorClouds: incorporated final review comment