]> git.sesse.net Git - nageru/blobdiff - vumeter.h
Add the beginnings of a very simple VU meter, based on libebur128.
[nageru] / vumeter.h
diff --git a/vumeter.h b/vumeter.h
new file mode 100644 (file)
index 0000000..de27529
--- /dev/null
+++ b/vumeter.h
@@ -0,0 +1,31 @@
+#ifndef VUMETER_H
+#define VUMETER_H
+
+#include <QWidget>
+#include <QPaintEvent>
+
+#include <mutex>
+
+class VUMeter : public QWidget
+{
+       Q_OBJECT
+
+public:
+       VUMeter(QWidget *parent);
+
+       void set_level(float level) {
+               std::unique_lock<std::mutex> lock(level_mutex);
+               this->level = level;
+               update();
+       }
+
+private:
+       void paintEvent(QPaintEvent *event) override;
+
+       std::mutex level_mutex;
+       float level = -HUGE_VAL;
+};
+
+extern VUMeter *global_vu_meter;
+
+#endif