8 LRAMeter::LRAMeter(QWidget *parent)
13 void LRAMeter::paintEvent(QPaintEvent *event)
15 QPainter painter(this);
17 painter.fillRect(0, 0, width(), height(), parentWidget()->palette().window());
21 unique_lock<mutex> lock(level_mutex);
22 level_lufs = this->level_lufs;
25 float level_lu = level_lufs + 23.0f;
27 draw_vu_meter(painter, level_lu, width(), height(), margin);
29 // Draw the target area (+/-1 LU is allowed EBU range).
30 int min_y = lufs_to_pos(1.0f, height());
31 int max_y = lufs_to_pos(-1.0f, height());
33 // FIXME: This outlining isn't so pretty.
38 painter.drawRect(2, min_y, width() - 5, max_y - min_y);
42 if (level_lu >= -1.0f && level_lu <= 1.0f) {
43 pen.setColor(Qt::green);
45 pen.setColor(Qt::red);
49 painter.drawRect(2, min_y, width() - 5, max_y - min_y);