]> git.sesse.net Git - nageru/blobdiff - correlation_meter.h
Add a stereo correlation meter.
[nageru] / correlation_meter.h
diff --git a/correlation_meter.h b/correlation_meter.h
new file mode 100644 (file)
index 0000000..6dc0684
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef CORRELATION_METER_H
+#define CORRELATION_METER_H
+
+#include <QPaintEvent>
+#include <QWidget>
+#include <mutex>
+
+class CorrelationMeter : public QWidget
+{
+       Q_OBJECT
+
+public:
+       CorrelationMeter(QWidget *parent);
+
+       void set_correlation(float correlation) {
+               std::unique_lock<std::mutex> lock(correlation_mutex);
+               this->correlation = correlation;
+               QMetaObject::invokeMethod(this, "update", Qt::AutoConnection);
+       }
+
+private:
+       void resizeEvent(QResizeEvent *event) override;
+       void paintEvent(QPaintEvent *event) override;
+
+       std::mutex correlation_mutex;
+       float correlation = 0.0f;
+
+       QPixmap on_pixmap, off_pixmap;
+};
+
+#endif