8 VUMeter::VUMeter(QWidget *parent)
13 void VUMeter::paintEvent(QPaintEvent *event)
15 QPainter painter(this);
17 painter.fillRect(0, 0, width(), height(), Qt::black);
19 // Draw some reference bars.
20 for (int level = -18; level < 9; ++level) {
21 int min_y = lufs_to_pos(level, height()) - 1;
22 int max_y = lufs_to_pos(level + 1.0f, height()) + 1;
24 // Recommended range is 0 LU +/- 1 LU.
25 if (level == -1 || level == 0) {
26 painter.fillRect(1, min_y, width() - 2, max_y - min_y, Qt::green);
28 painter.fillRect(1, min_y, width() - 2, max_y - min_y, QColor(80, 80, 80));
34 unique_lock<mutex> lock(level_mutex);
35 level_lufs = this->level_lufs;
38 float level_lu = level_lufs + 23.0f;
39 int y = lufs_to_pos(level_lu, height());
40 painter.fillRect(0, y, width(), 2, Qt::white);