]> git.sesse.net Git - nageru/blobdiff - vumeter.h
Update the VU/LRA meters from the GUI thread; fixes an issue where they lock up.
[nageru] / vumeter.h
index de27529d937229937a45fd9ebee485227fdcbd16..720a12e5217b2225d3f0f022b45b8e2b79c40c32 100644 (file)
--- a/vumeter.h
+++ b/vumeter.h
@@ -2,6 +2,7 @@
 #define VUMETER_H
 
 #include <QWidget>
+#include <QLabel>
 #include <QPaintEvent>
 
 #include <mutex>
@@ -13,19 +14,17 @@ class VUMeter : public QWidget
 public:
        VUMeter(QWidget *parent);
 
-       void set_level(float level) {
+       void set_level(float level_lufs) {
                std::unique_lock<std::mutex> lock(level_mutex);
-               this->level = level;
-               update();
+               this->level_lufs = level_lufs;
+               QMetaObject::invokeMethod(this, "update", Qt::AutoConnection);
        }
 
 private:
        void paintEvent(QPaintEvent *event) override;
 
        std::mutex level_mutex;
-       float level = -HUGE_VAL;
+       float level_lufs = -HUGE_VAL;
 };
 
-extern VUMeter *global_vu_meter;
-
 #endif