]> git.sesse.net Git - nageru/blobdiff - lrameter.h
Add the beginnings of a loudness range meter.
[nageru] / lrameter.h
diff --git a/lrameter.h b/lrameter.h
new file mode 100644 (file)
index 0000000..ec84b83
--- /dev/null
@@ -0,0 +1,36 @@
+// TODO: This isn't really an LRA meter right now (it ignores the range).
+
+#ifndef LRAMETER_H
+#define LRAMETER_H
+
+#include <QWidget>
+#include <QLabel>
+#include <QPaintEvent>
+
+#include <mutex>
+
+class LRAMeter : public QWidget
+{
+       Q_OBJECT
+
+public:
+       LRAMeter(QWidget *parent);
+
+       void set_levels(float level_lufs, float range_low_lufs, float range_high_lufs) {
+               std::unique_lock<std::mutex> lock(level_mutex);
+               this->level_lufs = level_lufs;
+               this->range_low_lufs = range_low_lufs;
+               this->range_high_lufs = range_high_lufs;
+               update();
+       }
+
+private:
+       void paintEvent(QPaintEvent *event) override;
+
+       std::mutex level_mutex;
+       float level_lufs = -HUGE_VAL;
+       float range_low_lufs = -HUGE_VAL;
+       float range_high_lufs = -HUGE_VAL;
+};
+
+#endif