diff --git a/include/app.hpp b/include/app.hpp
index 1e63ac83..21a3bdc0 100644
--- a/include/app.hpp
+++ b/include/app.hpp
@@ -164,7 +164,7 @@ struct CircularShadow : TransparentWidget {
void draw(NVGcontext *vg) override;
};
-struct Light : TransparentWidget {
+struct LightWidget : TransparentWidget {
NVGcolor bgColor = nvgRGBf(0, 0, 0);
NVGcolor color = nvgRGBf(1, 1, 1);
void draw(NVGcontext *vg) override;
@@ -327,6 +327,10 @@ struct PluginManagerWidget : Widget {
void step() override;
};
+struct RackScrollWidget : ScrollWidget {
+ void step() override;
+};
+
struct RackScene : Scene {
ScrollWidget *scrollWidget;
ZoomWidget *zoomWidget;
diff --git a/include/components.hpp b/include/components.hpp
index a9b02a22..38012576 100644
--- a/include/components.hpp
+++ b/include/components.hpp
@@ -432,10 +432,10 @@ struct CL1362Port : SVGPort {
};
////////////////////
-// LEDs
+// Lights
////////////////////
-struct ValueLight : Light {
+struct ValueLight : LightWidget {
float *value = NULL;
virtual void setValue(float v) {}
void step() override {
diff --git a/include/engine.hpp b/include/engine.hpp
index b2f897b3..ce7d43d0 100644
--- a/include/engine.hpp
+++ b/include/engine.hpp
@@ -29,21 +29,28 @@ struct Output {
bool active = false;
};
+struct Light {
+ float value = 0.0;
+ void setSmooth(float v);
+};
+
struct Module {
std::vector params;
std::vector inputs;
std::vector