FastLED 3.10.6
Loading...
Searching...
No Matches

◆ powerChannelCodecPolicy()

fl::PowerCodecPolicy fl::powerChannelCodecPolicy ( const CLEDController & controller)

Identify the channel's final current/quantization choice without adding a virtual slot or storage to every ordinary CLEDController.

Definition at line 159 of file FastLED.cpp.hpp.

160 {
161 PowerCodecPolicy policy;
163 for (fl::size i = 0; i < registered.size(); ++i) {
164 const fl::Channel* channel = registered[i].get();
165 if (channel != &controller) continue;
166 policy.kind = PowerCodecKind::Byte;
168 channel->getChipset().ptr<fl::SpiChipsetConfig>();
169 if (spi == nullptr) return policy;
170 switch (spi->timing.chipset) {
173 break;
176 break;
182 const fl::EmitterProfile* profile = channel->emitterProfile();
184 spi->timing.chipset, profile != nullptr
185 ? profile->five_bit_semantics
188 semantics, fl::detail::hdFieldFloor());
189 break;
190 }
191 default:
192 break;
193 }
194 return policy;
195 }
196 // A custom managed controller has no known wire encoding. Charging full
197 // code for every lit emitter is conservative, never a silent guess.
198 return policy;
199}
CLEDController * controller
static fl::vector< fl::ChannelPtr > & channels()
stored ChannelPtrs to keep them alive
const ChipsetVariant & getChipset() const
Get the chipset configuration variant.
Definition channel.h:123
const EmitterProfile * emitterProfile() const FL_NO_EXCEPT
Definition channel.h:217
LED channel for parallel output, pretty much a CPixelLEDController but with timing and pin informatio...
Definition channel.h:56
fl::size size() const FL_NO_EXCEPT
u8 & hdFieldFloor() FL_NO_EXCEPT
Backing store for CFastLED::setHdFieldFloor().
FiveBitSemantics
u8 hdMinimumField(FiveBitSemantics semantics, u8 floor_setting) FL_NO_EXCEPT
The lowest field the managed HD path may choose: the configured flicker floor for a secondary slow-PW...
@ LPD6803
LPD6803 LED chipset.
@ APA102HD
APA102 LED chipset with 5-bit gamma correction.
@ DOTSTARHD
APA102HD LED chipset alias.
@ SK9822HD
SK9822 LED chipset with 5-bit gamma correction.
@ LPD8806
LPD8806 LED chipset.
@ HD107HD
Same as APA102HD, but in turbo 40-mhz mode.
FiveBitSemantics fiveBitSemanticsFor(SpiChipset chip, FiveBitSemantics profile) FL_NO_EXCEPT
The 5-bit semantics for chip, with profile overriding the chip's default when it is not NotApplicable...
PowerCodecKind kind
SPI chipset configuration (data + clock pins)
Definition config.h:103

References APA102HD, Byte, CFastLED::channels(), controller, DOTSTARHD, fl::Channel::emitterProfile(), fl::colorimetric_response::EmitterProfile::five_bit_semantics, FiveBit, fiveBitSemanticsFor(), FL_NO_EXCEPT, fl::Channel::getChipset(), HD107HD, fl::detail::hdFieldFloor(), hdMinimumField(), fl::PowerCodecPolicy::kind, LPD6803, LPD8806, fl::PowerCodecPolicy::min_field, Native5, Native7, NotApplicable, fl::vector_basic::size(), and SK9822HD.

+ Here is the call graph for this function: