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

◆ encodeLinearEmitterQ16()

i32 fl::encodeLinearEmitterQ16 ( const StreamingPipelineQ16 & pipeline,
u8 emitter,
i32 light,
FluxScalar flux )

Scale one linear emitter and invert its physical response, using the identical final stage as processPixel[Wide]Q16.

Definition at line 379 of file pipeline.cpp.hpp.

380 {
381 i32 scaled[1] = {light};
382 applyFluxScalar(flux, span<i32>(scaled, 1));
383 if (!pipeline.response) return scaled[0];
384 if (emitter == 0) return inverseResponseQ16(scaled[0], pipeline.response->red);
385 if (emitter == 1) return inverseResponseQ16(scaled[0], pipeline.response->green);
386 if (emitter == 2) return inverseResponseQ16(scaled[0], pipeline.response->blue);
387 if (!pipeline.wide) return 0;
388 if (emitter == 3) return inverseResponseQ16(scaled[0], pipeline.wide->white1_response);
389 if (emitter == 4) return inverseResponseQ16(scaled[0], pipeline.wide->white2_response);
390 return 0;
391}
void applyFluxScalar(FluxScalar scalar, span< i32 > drives) FL_NO_EXCEPT
Scale every drive by one scalar, in place.
shared_ptr< const ResponseLutsQ16 > response
Absent means linear code-to-light response.
Definition pipeline.h:102
shared_ptr< const WidePipelineQ16 > wide
Definition pipeline.h:104

References applyFluxScalar(), FL_NO_EXCEPT, fl::StreamingPipelineQ16::response, and fl::StreamingPipelineQ16::wide.

+ Here is the call graph for this function: