X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=vumeter.h;fp=vumeter.h;h=33f8df149d339ce6cfe77b0fe89c0e53c2e469a8;hb=bf8537f35000b8385ae806c15d8524c20f9c6fda;hp=7015091aa0f1d307f4aee97e5a58f60bfb5a6c79;hpb=7c05c93966303df353e93eb7523f28b1cd174033;p=nageru diff --git a/vumeter.h b/vumeter.h index 7015091..33f8df1 100644 --- a/vumeter.h +++ b/vumeter.h @@ -7,6 +7,8 @@ #include #include +#include "vu_common.h" + class VUMeter : public QWidget { Q_OBJECT @@ -20,12 +22,31 @@ public: QMetaObject::invokeMethod(this, "update", Qt::AutoConnection); } + double lufs_to_pos(float level_lu, int height) + { + return ::lufs_to_pos(level_lu, height, min_level, max_level); + } + + void set_min_level(float min_level) + { + this->min_level = min_level; + recalculate_pixmaps(); + } + + void set_max_level(float max_level) + { + this->max_level = max_level; + recalculate_pixmaps(); + } + private: void resizeEvent(QResizeEvent *event) override; void paintEvent(QPaintEvent *event) override; + void recalculate_pixmaps(); std::mutex level_mutex; float level_lufs = -HUGE_VAL; + float min_level = -18.0f, max_level = 9.0f; QPixmap on_pixmap, off_pixmap; };