]> git.sesse.net Git - nageru/blobdiff - nonlinear_fader.h
Make a non-linear fader for dB use. Not perfect yet, but will do.
[nageru] / nonlinear_fader.h
diff --git a/nonlinear_fader.h b/nonlinear_fader.h
new file mode 100644 (file)
index 0000000..4126fbd
--- /dev/null
@@ -0,0 +1,28 @@
+#ifndef _NONLINEAR_FADER_H
+#define _NONLINEAR_FADER_H 1
+
+#include <QSlider>
+
+class NonLinearFader : public QSlider {
+       Q_OBJECT
+
+public:
+       NonLinearFader(QWidget *parent);
+       void setDbValue(double db);
+
+signals:
+       void dbValueChanged(double db);
+
+protected:
+       void paintEvent(QPaintEvent *event) override;
+       void resizeEvent(QResizeEvent *event) override;
+       void sliderChange(SliderChange change) override;
+
+private:
+       void update_slider_position();
+
+       bool inhibit_updates = false;
+       double db_value = 0.0;
+};
+
+#endif  // !defined(_NONLINEAR_FADER_H)