X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=lrameter.cpp;h=62b4a9f923134b101f91254bdae5bff4398a88ed;hb=fa54f2630c56a1df0046923d6a77b1bd58abf240;hp=f4395bec39ceb1094e4a472d67a110e4a05c4515;hpb=4f44de2a24cb574bfe318f42f9ce6af5eb2fe4b3;p=nageru diff --git a/lrameter.cpp b/lrameter.cpp index f4395be..62b4a9f 100644 --- a/lrameter.cpp +++ b/lrameter.cpp @@ -3,9 +3,12 @@ #include #include #include +#include + #include "vu_common.h" class QPaintEvent; +class QResizeEvent; using namespace std; @@ -16,17 +19,7 @@ LRAMeter::LRAMeter(QWidget *parent) void LRAMeter::resizeEvent(QResizeEvent *event) { - const int margin = 5; - - on_pixmap = QPixmap(width(), height()); - QPainter on_painter(&on_pixmap); - on_painter.fillRect(0, 0, width(), height(), parentWidget()->palette().window()); - draw_vu_meter(on_painter, width(), height(), margin, true); - - off_pixmap = QPixmap(width(), height()); - QPainter off_painter(&off_pixmap); - off_painter.fillRect(0, 0, width(), height(), parentWidget()->palette().window()); - draw_vu_meter(off_painter, width(), height(), margin, false); + recalculate_pixmaps(); } void LRAMeter::paintEvent(QPaintEvent *event) @@ -43,9 +36,9 @@ void LRAMeter::paintEvent(QPaintEvent *event) range_high_lufs = this->range_high_lufs; } - float level_lu = level_lufs + 23.0f; - float range_low_lu = range_low_lufs + 23.0f; - float range_high_lu = range_high_lufs + 23.0f; + float level_lu = level_lufs - ref_level_lufs; + float range_low_lu = range_low_lufs - ref_level_lufs; + float range_high_lu = range_high_lufs - ref_level_lufs; int range_low_pos = lrint(lufs_to_pos(range_low_lu, height())); int range_high_pos = lrint(lufs_to_pos(range_high_lu, height())); @@ -101,3 +94,18 @@ void LRAMeter::paintEvent(QPaintEvent *event) painter.drawRect(2, y, width() - 5, 1); } } + +void LRAMeter::recalculate_pixmaps() +{ + const int margin = 5; + + on_pixmap = QPixmap(width(), height()); + QPainter on_painter(&on_pixmap); + on_painter.fillRect(0, 0, width(), height(), parentWidget()->palette().window()); + draw_vu_meter(on_painter, width(), height(), margin, 2.0, true, min_level, max_level, /*flip=*/false); + + off_pixmap = QPixmap(width(), height()); + QPainter off_painter(&off_pixmap); + off_painter.fillRect(0, 0, width(), height(), parentWidget()->palette().window()); + draw_vu_meter(off_painter, width(), height(), margin, 2.0, false, min_level, max_level, /*flip=*/false); +}