-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correct single RGB & DRGB modes to explicitly utilize white #3507
base: main
Are you sure you want to change the base?
Conversation
Please re-base this PR to 0_15 branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do not use realtime data so cannot test this PR.
Still, as WLED allows realtime data to be displayed on main segment only, and main segment may not include white channel, it is mandatory to differentiate if the underlying canvas supports white properly.
Segment has light capabilities embedded (and recalculated on each change) and white channel presence can be determined by Segment::hasWhite()
method.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems ok but please add parentheses. 😄
@blazoncek please check bdd667d I think it could be faster when only iterating over differentiated length as well, shall I add these checks again? |
IDK. I have very little knowledge about realtime apart from DDP implementation. |
I'll change back PR draft mode, when I've tested code changes with realtime DMX console e131 input. |
@mxklb did you make progress? This PR is in draft for 8 months now, are you still working on it?
PS: please don't force-push - it leads to many strange effects on github, including lost review comments. |
I forgot to test it. Implementaion looks still good, is an improvement. I'll try to test it the following week, and will change draft mode, when everything works as expected. |
Using
availDMXLen
to choose to utilize white channel is messy because it has nothing to do with ability of the strip. It is the number of channels available in the E1.31/Artnet package. Additional this may lead to unexpected behavior if subsequent DMX start addresses for multiple WLED controllers shall be used.The approach here is clear, if no white channel exist:
And if white channel exists:
So number of DMX channels for both modes is +1 if LEDs have white, else number of channels is as documented.