28 lines
579 B
C++
28 lines
579 B
C++
#pragma once
|
|
|
|
#include <QWidget>
|
|
|
|
class AudioLevelMeter : public QWidget {
|
|
Q_OBJECT
|
|
public:
|
|
explicit AudioLevelMeter(QWidget *parent = nullptr);
|
|
|
|
void setLevel(float level);
|
|
float level() const;
|
|
float peakHold() const;
|
|
void resetPeakHold();
|
|
|
|
QSize sizeHint() const override;
|
|
QSize minimumSizeHint() const override;
|
|
|
|
protected:
|
|
void paintEvent(QPaintEvent *event) override;
|
|
|
|
private:
|
|
float m_level = 0.0f;
|
|
float m_peakHold = 0.0f;
|
|
int m_peakHoldFrames = 0;
|
|
|
|
static constexpr int kPeakHoldDuration = 6;
|
|
static constexpr float kPeakDecayRate = 0.02f;
|
|
};
|