FastLED 3.10.9
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 174 of file FastLED.cpp.hpp.

175 {
176 PowerCodecPolicy policy;
178 for (fl::size i = 0; i < registered.size(); ++i) {
179 const fl::Channel* channel = registered[i].get();
180 if (channel != &controller) continue;
181 policy.kind = PowerCodecKind::Byte;
183 channel->getChipset().ptr<fl::SpiChipsetConfig>();
184 if (spi == nullptr) return policy;
185 switch (spi->timing.chipset) {
188 break;
191 break;
197 const fl::EmitterProfile* profile = channel->emitterProfile();
199 spi->timing.chipset, profile != nullptr
200 ? profile->five_bit_semantics
203 semantics, fl::detail::hdFieldFloor());
204 break;
205 }
206 default:
207 break;
208 }
209 return policy;
210 }
211 // A custom managed controller has no known wire encoding. Charging full
212 // code for every lit emitter is conservative, never a silent guess.
213 return policy;
214}
CLEDController * controller
static fl::vector< fl::ChannelPtr > & channels() FL_NO_EXCEPT
stored ChannelPtrs to keep them alive
const EmitterProfile * emitterProfile() const FL_NO_EXCEPT
Definition channel.h:233
const ChipsetVariant & getChipset() const FL_NO_EXCEPT
Get the chipset configuration variant.
Definition channel.h:136
LED channel for parallel output, pretty much a CPixelLEDController but with timing and pin informatio...
Definition channel.h:60
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: