17 :
QFrame(parent), m_redrawTimer(new
QTimer(this)), m_lowColor(
Qt::gray), m_highColor(
Qt::green),
18 m_peakColor(255, 200, 200, 255)
24 m_redrawTimer->
start(RedrawInterval);
40 if (level > m_peakLevel)
43 m_peakLevelChanged.
start();
47 void CLevelMeter::redrawTimerExpired()
50 if (m_peakLevelChanged.
elapsed() > PeakHoldLevelDuration)
52 m_peakLevel -= DecayValue;
53 if (m_peakLevel < m_level || m_peakLevel < 0) { m_peakLevel = 0.0; }
65 const int w = bar.
width();
66 const int left =
rect().left();
67 const int level = qRound(m_level * w);
71 painter.
fillRect(bar, m_peakLevel >= High ? m_highColor : m_lowColor);
73 if (m_peakLevel > m_level)
75 const int peak = qRound(m_peakLevel * w);
void paintEvent(QPaintEvent *event)
void levelChanged(double level)
Values.
virtual ~CLevelMeter()
Destructor.
CLevelMeter(QWidget *parent=nullptr)
Constructor.
qint64 elapsed() const const
virtual bool event(QEvent *e) override
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
void setObjectName(QAnyStringView name)
void fillRect(const QRect &rectangle, QGradient::Preset preset)
QRect contentsRect() const const