65#if FL_COLOR_PIPELINE_SHARED
69struct ManagedPowerHistogram {
70 static constexpr u8 kBins = 64;
71 u32 counts[5][kBins] = {};
89 void* iterator_storage,
123#if FL_COLOR_PIPELINE_SHARED
128 PowerEstimator estimate);
144#if FL_COLOR_PIPELINE_SHARED
148struct PowerFrameHooks {
151 ManagedPowerHistogram* out);
153 const ManagedPowerHistogram& histogram,
155 const u8 (&weights)[5],
156 u8 (*electricalMap)(
u8 code));
157 bool frameFluxActive;
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
CLEDController * controller
Runs processPixelQ16 over a PixelController's pixels as they are read.
A linear flux scalar in s16.16.
Non-templated low level pixel data writing class.
Functions for red, green, blue, white (RGBW) output.
void installColorPipelineHooks() FL_NO_EXCEPT
Point the hooks at the real implementations.
constexpr fl::size kColorPipelineSourceStorage
The two things Channel needs from the colour pipeline, reached through pointers rather than by name.
fl::variant< ClocklessChipset, SpiChipsetConfig > ChipsetVariant
ColorPipelineHooks & colorPipelineHooks() FL_NO_EXCEPT
The installed hooks.
constexpr fl::size kColorPipelineIteratorStorage
InputGamut g FL_NO_EXCEPT
bool buildPipelineForBinding(const ColorProfileBinding &binding, StreamingPipelineQ16 *out) FL_NO_EXCEPT
Build the streaming pipeline a binding describes.
EOrder
RGB color channel orderings, used when instantiating controllers to determine what order the controll...
StreamingPipelineQ16 & ColorPipelineFrameRef
SpiChipset
LED chipsets with SPI interface (clocked protocols) Modern type-safe enum class - prefer this for new...
Base definition for an LED controller.
bool(* build)(const ColorProfileBinding &, const ChannelOptions &, const ChipsetVariant &, StreamingPipelineQ16 *)
Derives a pipeline from a binding. Null until installed.
void(* destroyIterator)(void *source_storage, void *iterator_storage)
Destroys what makeIterator built. Null until installed.
void(* notifyProfileClearedByLegacy)()
Fires ChannelEvents::onColorProfileWarning(ProfileClearedByLegacy).
bool(* encodeManagedSpi)(PixelIterator &pixels, vector_psram< u8 > *out, SpiChipset chip, const CLEDController &controller)
Unscaled (full-brightness) power demand of leds as the pipeline will drive them, in mW,...
Everything the per-pixel path needs, derived once when a profile binds.
Low level pixel data writing class.
5-channel RGB + warm-W + cool-W (RGBWW / RGBCCT) configuration types (issue #2558,...
SPI LED chipset enumeration.
Optional channel configuration parameters All fields have sensible defaults and can be overridden as ...
Immutable profile binding carried by a channel.
Per-strip RGBWW configuration.