LMMS
Loading...
Searching...
No Matches
PeakController.h
Go to the documentation of this file.
1/*
2 * PeakController.h - peak-controller class
3 *
4 * Copyright (c) 2008-2009 Paul Giblock <drfaygo/at/gmail.com>
5 *
6 * This file is part of LMMS - https://lmms.io
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program (see COPYING); if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301 USA.
22 *
23 */
24
25#ifndef LMMS_PEAK_CONTROLLER_H
26#define LMMS_PEAK_CONTROLLER_H
27
28#include "Controller.h"
29#include "ControllerDialog.h"
30
31class QWidget;
32
33namespace lmms
34{
35
36
38
39using PeakControllerEffectVector = std::vector<PeakControllerEffect*>;
40
41class LMMS_EXPORT PeakController : public Controller
42{
43 Q_OBJECT
44public:
45 PeakController( Model * _parent,
46 PeakControllerEffect *_peak_effect = nullptr );
47
48
49 ~PeakController() override;
50
51 void saveSettings( QDomDocument & _doc, QDomElement & _this ) override;
52 void loadSettings( const QDomElement & _this ) override;
53 QString nodeName() const override;
54
55 static void initGetControllerBySetting();
56 static PeakController * getControllerBySetting( const QDomElement & _this );
57
59
60
61public slots:
62 gui::ControllerDialog * createDialog( QWidget * _parent ) override;
64 void updateCoeffs();
65
66protected:
67 // The internal per-controller get-value function
68 void updateValueBuffer() override;
69
71
73
74private:
76 //backward compatibility for <= 0.4.15
77 static int m_getCount;
78 static int m_loadCount;
79 static bool m_buggedFile;
80
84} ;
85
86namespace gui
87{
88
90{
91 Q_OBJECT
92public:
93 PeakControllerDialog( Controller * _controller, QWidget * _parent );
94 ~PeakControllerDialog() override = default;
95
96protected:
97 void contextMenuEvent( QContextMenuEvent * _me ) override;
98 void paintEvent( QPaintEvent * _pe ) override;
99 void modelChanged() override;
100
102
103};
104
105
106} // namespace gui
107
108} // namespace lmms
109
110#endif // LMMS_PEAK_CONTROLLER_H
Definition Controller.h:51
Controller(ControllerType _type, Model *_parent, const QString &_display_name)
Definition Controller.cpp:47
Definition Model.h:37
Definition PeakControllerEffect.h:39
Definition PeakController.h:42
static void initGetControllerBySetting()
Definition PeakController.cpp:177
QString nodeName() const override
Definition PeakController.cpp:243
static PeakController * getControllerBySetting(const QDomElement &_this)
Definition PeakController.cpp:187
void updateValueBuffer() override
Definition PeakController.cpp:78
bool m_coeffNeedsUpdate
Definition PeakController.h:83
PeakController(Model *_parent, PeakControllerEffect *_peak_effect=nullptr)
Definition PeakController.cpp:46
PeakControllerEffect * m_peakEffect
Definition PeakController.h:70
static PeakControllerEffectVector s_effects
Definition PeakController.h:58
static int m_loadCount
Definition PeakController.h:78
float m_currentSample
Definition PeakController.h:75
static int m_getCount
Definition PeakController.h:77
float m_attackCoeff
Definition PeakController.h:81
void handleDestroyedEffect()
Definition PeakController.cpp:129
void saveSettings(QDomDocument &_doc, QDomElement &_this) override
Definition PeakController.cpp:141
void updateCoeffs()
Definition PeakController.cpp:123
static bool m_buggedFile
Definition PeakController.h:79
gui::ControllerDialog * createDialog(QWidget *_parent) override
Definition PeakController.cpp:250
void loadSettings(const QDomElement &_this) override
Definition PeakController.cpp:153
friend class PeakControllerDialog
Definition PeakController.h:72
float m_decayCoeff
Definition PeakController.h:82
Definition ControllerDialog.h:42
ControllerDialog(Controller *controller, QWidget *parent)
Definition ControllerDialog.cpp:33
~PeakControllerDialog() override=default
void paintEvent(QPaintEvent *_pe) override
Definition PeakControllerDialog.cpp:74
PeakController * m_peakController
Definition PeakController.h:101
void contextMenuEvent(QContextMenuEvent *_me) override
Definition PeakControllerDialog.cpp:67
PeakControllerDialog(Controller *_controller, QWidget *_parent)
Definition PeakControllerDialog.cpp:39
void modelChanged() override
Definition PeakControllerDialog.cpp:81
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
std::vector< PeakControllerEffect * > PeakControllerEffectVector
Definition PeakController.h:39