]> git.sesse.net Git - nageru/blob - vumeter.h
Fix VU meter range.
[nageru] / vumeter.h
1 #ifndef VUMETER_H
2 #define VUMETER_H
3
4 #include <QWidget>
5 #include <QPaintEvent>
6
7 #include <mutex>
8
9 class VUMeter : public QWidget
10 {
11         Q_OBJECT
12
13 public:
14         VUMeter(QWidget *parent);
15
16         void set_level(float level_lufs) {
17                 std::unique_lock<std::mutex> lock(level_mutex);
18                 this->level_lufs = level_lufs;
19                 update();
20         }
21
22 private:
23         void paintEvent(QPaintEvent *event) override;
24
25         std::mutex level_mutex;
26         float level_lufs = -HUGE_VAL;
27 };
28
29 extern VUMeter *global_vu_meter;
30
31 #endif