#include "audio_render.h" #include 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); }