File indexing completed on 2024-04-28 04:52:04
0001 /* 0002 SPDX-FileCopyrightText: 2016 Jean-Baptiste Mardelle <jb@kdenlive.org> 0003 This file is part of Kdenlive. See www.kdenlive.org. 0004 0005 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0006 */ 0007 0008 #pragma once 0009 0010 #include "scopewidget.h" 0011 #include <QWidget> 0012 #include <memory> 0013 0014 class MonitorAudioLevel : public ScopeWidget 0015 { 0016 Q_OBJECT 0017 public: 0018 explicit MonitorAudioLevel(int height, QWidget *parent = nullptr); 0019 ~MonitorAudioLevel() override; 0020 void refreshPixmap(); 0021 int audioChannels; 0022 bool isValid; 0023 void setVisibility(bool enable); 0024 0025 protected: 0026 void paintEvent(QPaintEvent *) override; 0027 void resizeEvent(QResizeEvent *event) override; 0028 0029 private: 0030 int m_height; 0031 QPixmap m_pixmap; 0032 QVector<double> m_peaks; 0033 int m_maxDb; 0034 QVector<double> m_values; 0035 int m_channelHeight; 0036 int m_channelDistance; 0037 int m_channelFillHeight; 0038 void drawBackground(int channels = 2); 0039 void refreshScope(const QSize &size, bool full) override; 0040 0041 public Q_SLOTS: 0042 void setAudioValues(const QVector<double> &values); 0043 0044 Q_SIGNALS: 0045 void audioLevelsAvailable(const QVector<double>& levels); 0046 };