File indexing completed on 2024-04-21 04:51:46
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 "sharedframe.h" 0012 0013 #include <QPixmap> 0014 #include <QVector> 0015 #include <QWidget> 0016 0017 namespace Mlt { 0018 class Filter; 0019 } 0020 0021 class MonitorManager; 0022 0023 /*class EqualizerWidget : public QWidget 0024 { 0025 Q_OBJECT 0026 public: 0027 EqualizerWidget(QWidget *parent = nullptr); 0028 0029 };*/ 0030 0031 /** @class AudioGraphWidget 0032 @brief \@todo Describe class AudioGraphWidget 0033 @todo Describe class AudioGraphWidget 0034 */ 0035 class AudioGraphWidget : public QWidget 0036 { 0037 Q_OBJECT 0038 public: 0039 explicit AudioGraphWidget(QWidget *parent = nullptr); 0040 void drawBackground(); 0041 0042 public Q_SLOTS: 0043 void showAudio(const QVector<float> &bands); 0044 0045 protected: 0046 void paintEvent(QPaintEvent *pe) override; 0047 void resizeEvent(QResizeEvent *event) override; 0048 0049 private: 0050 QVector<float> m_levels; 0051 QVector<int> m_dbLabels; 0052 QStringList m_freqLabels; 0053 QPixmap m_pixmap; 0054 QRect m_rect; 0055 int m_maxDb; 0056 void drawDbLabels(QPainter &p, const QRect &rect); 0057 void drawChanLabels(QPainter &p, const QRect &rect, int barWidth); 0058 }; 0059 0060 /** @class AudioGraphSpectrum 0061 @brief An audio spectrum 0062 @author Jean-Baptiste Mardelle 0063 */ 0064 class AudioGraphSpectrum : public ScopeWidget 0065 { 0066 Q_OBJECT 0067 public: 0068 AudioGraphSpectrum(MonitorManager *manager, QWidget *parent = nullptr); 0069 ~AudioGraphSpectrum() override; 0070 void dockVisible(bool visible); 0071 0072 private: 0073 MonitorManager *m_manager; 0074 Mlt::Filter *m_filter; 0075 AudioGraphWidget *m_graphWidget; 0076 // EqualizerWidget *m_equalizer; 0077 void processSpectrum(); 0078 void refreshScope(const QSize &size, bool full) override; 0079 0080 public Q_SLOTS: 0081 void refreshPixmap(); 0082 0083 private Q_SLOTS: 0084 void activate(bool enable); 0085 };