10 #include "vu_common.h"
12 class VUMeter : public QWidget
17 VUMeter(QWidget *parent);
19 void set_level(float level_lufs) {
20 std::unique_lock<std::mutex> lock(level_mutex);
21 this->level_lufs = level_lufs;
22 QMetaObject::invokeMethod(this, "update", Qt::AutoConnection);
25 double lufs_to_pos(float level_lu, int height)
27 return ::lufs_to_pos(level_lu, height, min_level, max_level);
30 void set_min_level(float min_level)
32 this->min_level = min_level;
33 recalculate_pixmaps();
36 void set_max_level(float max_level)
38 this->max_level = max_level;
39 recalculate_pixmaps();
43 void resizeEvent(QResizeEvent *event) override;
44 void paintEvent(QPaintEvent *event) override;
45 void recalculate_pixmaps();
47 std::mutex level_mutex;
48 float level_lufs = -HUGE_VAL;
49 float min_level = -18.0f, max_level = 9.0f;
51 QPixmap on_pixmap, off_pixmap;