|
- #include "app/ModuleLightWidget.hpp"
-
-
- namespace rack {
-
-
- void ModuleLightWidget::step() {
- if (!module)
- return;
-
- assert(module->lights.size() >= firstLightId + baseColors.size());
- std::vector<float> values(baseColors.size());
-
- for (size_t i = 0; i < baseColors.size(); i++) {
- float brightness = module->lights[firstLightId + i].getBrightness();
- if (!std::isfinite(brightness))
- brightness = 0.f;
- // Because LEDs are nonlinear, this seems to look more natural.
- brightness = std::sqrt(brightness);
- brightness = math::clamp(brightness, 0.f, 1.f);
- values[i] = brightness;
- }
- setValues(values);
- }
-
-
- } // namespace rack
|