| 12345678910111213141516171819202122232425262728293031323334353637 |
- #include "audio_render.h"
- #include <QPainter>
- AudioRender::AudioRender(QLabel* parent)
- : QLabel(parent)
- {
- }
- void AudioRender::ShowVolume(float volume)
- {
- float val = 0;
- if (volume < 0) {
- volume = -volume;
- }
- if (volume > 0.001) {
- val = (20.0f * log10(volume) + 60.0f) / 60.0f;
- }
- float diff = val - _lastShowVal;
- if (diff < -0.015f) {
- diff = -0.015f;
- }
- _lastShowVal += diff;
- }
- void AudioRender::paintEvent(QPaintEvent* event)
- {
- int val = _lastShowVal * width();
- QPainter painter(this);
- QPen pen(Qt::green, height());
- painter.setPen(pen);
- painter.drawLine(0, 0, val, 0);
- pen.setColor(Qt::gray);
- painter.setPen(pen);
- painter.drawLine(val, 0, width(), 0);
- }
|