Commit Graph

3942 Commits

Author SHA1 Message Date
Blaž Kristan
c43d09c8b1 Move _data and allocation to derived class
- as suggested by @TripleWhy
- minimum length guard

Conflicts:
	wled00/bus_manager.cpp
	wled00/bus_manager.h
2025-02-07 16:18:53 +01:00
Blaž Kristan
1db3359b84 Replace unsigned with size_t 2025-02-01 12:07:31 +01:00
Blaž Kristan
5b7bab6752 Compile fixes 2025-01-30 20:46:26 +01:00
Blaž Kristan
70042db2de Allow "unlimited" virtual buses
- added config upload options
- number of buses it limited to 36 (0-9+A-Z identifiers)
- WRNING web server may not support that many variables
2025-01-30 19:41:44 +01:00
Blaž Kristan
bf69d37cbe Revert getBus() changes 2025-01-30 19:35:36 +01:00
Blaž Kristan
ee7ec20f29 Convert BusManager class to namespace
- use unique_ptr/make_unique for busses
2025-01-30 19:31:09 +01:00
netmindz
32a75c1ff5 Merge pull request #4165 from willmmiles/esp8266-pwm-phase
Support PWM phase shifts on ESP8266
2025-01-27 19:05:46 +00:00
Will Tatam
7c05914e5a Merge branch 'main' into aws-queue-0_16 2025-01-26 16:07:15 +00:00
Will Tatam
35624ab998 Merge branch 'main' into gif-fix 2025-01-26 15:19:56 +00:00
Blaž Kristan
e7c0ce794b Merge conflict fix
- updated blending style constants
2025-01-24 10:10:14 +01:00
Will Miles
4c50119ac2 Merge remote-tracking branch 'upstream/main' into esp8266-pwm-phase 2025-01-23 19:39:01 -05:00
Will Miles
bec7e54f7f Defer web requests if JSON lock contended
Use the web server's queuing mechanism to call us back later.
2025-01-23 19:10:43 -05:00
Will Miles
dc317220b3 Debug: Dump web server queue state
This can be helpful for debugging web handler related issues.
2025-01-23 19:10:43 -05:00
Will Miles
981750a48a Enable webserver queue and limits
Enable the new concurrent request and queue size limit features
of AsyncWebServer.  This should improve the handling of burst
traffic or many clients, and significantly reduce the likelihood
of OOM crashes due to HTTP requests.
2025-01-23 19:10:43 -05:00
Will Tatam
f2caf14d6a Fix missing hideDMXInput and hideNoDMXInput functions 2025-01-22 20:33:15 +00:00
Miroslav Lichvar
39512da74e fix reproduction in game of life
A typo caused broken counting of the most common color in neighbouring
cells and blocked reproduction in some directions.
2025-01-21 20:01:04 +01:00
Blaž Kristan
3a426e258b Merge branch 'main' into blending-styles 2025-01-20 11:19:43 +01:00
5chubrakete
4951be6999 Added some date and time formatting options to scrolling text effect. (#4195)
Updated to nonbreaking change and auto uppercasing according to review.
2025-01-20 06:24:10 +01:00
Damian Schneider
a421a90e0a replacement for fastled sqrt16() (#4426)
* added bitwise operation based sqrt16

- replacement for fastled, it is about 10% slower for numbers smaller 128 but faster for larger numbers. speed difference is irrelevant to WLED but it saves some flash.

* updated to 32bit, improved for typical WLED use

- making it 32bits allows for larger numbers
- added another initial condition check for medium sized numbers
- increased the "small number" optimization to larger numbers: the function is currently only used to calculate sqrt(x^2+y^2) which even for small segments is larger than the initially used 64, so optimizing for 1024 makes more sense, although the value is arbitrarily chosen
2025-01-20 05:51:04 +01:00
Damian Schneider
aab29cb0ab consolidated colorwaves and pride into one base function
the two FX are almost identical in code with just a few lines difference.
2025-01-19 09:04:54 +01:00
Frank
566c5057f9 optimizations as per reviewer recommendations
* removed unneeded initializations in blur() and blur2D()
* remove check for _t in progress()
* code readability: if (_t) --> if(isInTransition())
* add `isInTransition()` checks to currentBri() and currentMode()
* added missing `_transitionprogress = 0xFFFFU` in stopTransition()
2025-01-19 07:35:46 +01:00
Frank
cd52d7bcf6 align some function declariations with their implementation
This is purely a "clean code" thing, no impact on function -  it helps to avoid confusion when reading the code.

C++ allows declaration and implementation to use different variable names.
2025-01-19 07:35:46 +01:00
Frank
ed3ec66d33 fix compile error
"const" was missing in the function implementation
2025-01-19 07:35:46 +01:00
Blaž Kristan
01c463c8e8 More tuning
- replaced POD new/delete with malloc/free
- some more SEGLEN <= 1
- some gnu::pure
- more const attributes
- some static attributes
2025-01-19 07:35:46 +01:00
Frank
872465df40 typo in comments 2025-01-19 07:35:46 +01:00
Frank
b6f74287d0 implement recommendations from reviewers
* simplified transition bugfix
* removed cast same type
* isIp parameter changed to pass-by-reference, to avoid copy constructor
2025-01-19 07:35:46 +01:00
Frank
013684b5ca making some parameters const, plus minor improvements
* changed some parameters to "pointer to const", so compiler can better optimize code size and performance -  because data behind a const pointer will never be modified by the called function.
* made setPixelColor `const`

* fixed a few potentially uninitialized local vars (the may have random values if not initialized)

* avoid shadowing "state" in handleSerial()
* plus a few very minor improvements
2025-01-19 07:35:46 +01:00
Frank
90c2955a71 avoid using keywords for variables: module, final
these are reserved names and future compilers may reject them.
2025-01-19 07:35:46 +01:00
Frank
7be868db12 bugfix: indexOf() returns -1 if string not found
... so we must use `int` instead of `unsigned`
2025-01-19 07:35:46 +01:00
Frank
703f84e5e1 code robustness improvements plus minor speedup
* make  XY() and _setPixelColorXY_raw() const (minor speedup)
* segment is a struct not a class: friend class Segment --> friend struct Segment
* fix missing braces around two macros
* use non-throwing "new" where possible
* improve robustness of transition code
2025-01-19 07:35:46 +01:00
netmindz
48f5099646 Merge pull request #4495 from netmindz/DMX-Input-AC
Add Wired DMX Input support
2025-01-17 19:31:25 +00:00
Kilrah
b9aeb19834 RF433 json usermod (#4234)
* RF433 remote usermod

---------

Co-authored-by: Kilrah <kilrah@kilrah.xyz>
2025-01-17 08:01:17 +01:00
netmindz
a4c3491f0c Merge pull request #4428 from blazoncek/waterfall-fix
FX: Waterfall, Matripix & Dissolve fix
2025-01-16 15:52:21 +00:00
netmindz
b2aac9f991 Merge pull request #4386 from DedeHai/ESPNow_glitchfix
Fix for ESPNow remote causing output glitches
2025-01-16 13:01:00 +00:00
Will Tatam
a582786655 Port over remaining WLEDMM part of DMX Input and adapt for AC 2025-01-16 12:48:36 +00:00
Will Tatam
9a6e91d3e5 DMX Input - reinstate loggers for connection state change 2025-01-16 12:22:51 +00:00
Will Tatam
fc4e7a2dee Swap DMX port to 1, persist user choice of port, validate port vs UART count 2025-01-16 12:22:32 +00:00
Will Tatam
a56014bb66 Hide DMX port as just confusing to users 2025-01-16 12:20:37 +00:00
Will Tatam
ebfc438bd4 Tweak DMX settings UI 2025-01-16 12:20:15 +00:00
Will Tatam
3996f02dea Revert "Rename WLED_ENABLE_DMX to WLED_ENABLE_DMX_OUTPUT"
This reverts commit 7f9cc67518.
2025-01-16 12:19:25 +00:00
Arne
d637524bfc chore: remove outdated comments 2025-01-16 12:16:50 +00:00
Arne
8570922dcc chore: adapt code style 2025-01-16 12:16:39 +00:00
Arne
6598265f9b make compile after rebase 2025-01-16 12:15:58 +00:00
Arne
8f398dfd08 Move dmx_input into its own task on core 0.
This was necessary because otherwise it is not able to respond to rdm in time.
2025-01-16 12:15:49 +00:00
Arne
68e9d701de Do no longer disable dmx_input when cache is disabled.
No longer needed because missing ISR_ATTR have been added to esp_dmx.
2025-01-16 12:15:37 +00:00
Arne
67e8a00b6d rename initDmx() -> initDmxOutput() 2025-01-16 12:11:21 +00:00
Arne
11b48bc374 rename handleDMX() handleDMXOutput() 2025-01-16 12:10:13 +00:00
Arne
fa80c62b28 rename dmx.cpp -> dmx_output.cpp 2025-01-16 12:06:10 +00:00
Arne
7f9cc67518 Rename WLED_ENABLE_DMX to WLED_ENABLE_DMX_OUTPUT 2025-01-16 12:05:40 +00:00
Arne
84eb6fd460 Add dmx input port to configuration 2025-01-16 11:47:48 +00:00