LMMS
Loading...
Searching...
No Matches
LadspaControl.h
Go to the documentation of this file.
1/*
2 * LadspaControl.h - model for controlling a LADSPA port
3 *
4 * Copyright (c) 2008-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
5 * Copyright (c) 2006-2008 Danny McRae <khjklujn/at/users.sourceforge.net>
6 *
7 * This file is part of LMMS - https://lmms.io
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public
11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this program (see COPYING); if not, write to the
21 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301 USA.
23 *
24 */
25
26#ifndef LMMS_LADSPA_CONTROL_H
27#define LMMS_LADSPA_CONTROL_H
28
29#include <ladspa.h>
30
31#include "AutomatableModel.h"
32#include "TempoSyncKnobModel.h"
33#include "ValueBuffer.h"
34
35namespace lmms
36{
37
38struct port_desc_t;
39
40namespace gui
41{
42
45
46} // namespace gui
47
48
49class LMMS_EXPORT LadspaControl : public Model, public JournallingObject
50{
51 Q_OBJECT
52public:
53 LadspaControl( Model * _parent, port_desc_t * _port,
54 bool _link = false );
55 ~LadspaControl() override = default;
56
59 void setValue( LADSPA_Data _value );
60 void setLink( bool _state );
61
62 void linkControls( LadspaControl * _control );
63 void unlinkControls( LadspaControl * _control );
64
66 {
67 return &m_toggledModel;
68 }
69
71 {
72 return &m_knobModel;
73 }
74
79
80 inline port_desc_t * port()
81 {
82 return m_port;
83 }
84
85 virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent, const QString & _name );
86 virtual void loadSettings( const QDomElement & _this, const QString & _name );
87 inline QString nodeName() const override
88 {
89 return "port";
90 }
91
92
93signals:
94 void changed( int _port, LADSPA_Data _value );
95 void linkChanged( int _port, bool _state );
96
97
98protected slots:
99 void ledChanged();
100 void knobChanged();
101 void tempoKnobChanged();
102 void linkStateChanged();
103
104protected:
105 void saveSettings( QDomDocument& doc, QDomElement& element ) override
106 {
107 Q_UNUSED(doc)
108 Q_UNUSED(element)
109 }
110
111 void loadSettings( const QDomElement& element ) override
112 {
113 Q_UNUSED(element)
114 }
115
116
117
118private:
119 bool m_link;
121
126
127
130
131} ;
132
133
134} // namespace lmms
135
136#endif // LMMS_LADSPA_CONTROL_H
Definition AutomatableModel.h:497
Definition AutomatableModel.h:463
JournallingObject()
Definition JournallingObject.cpp:36
void ledChanged()
Definition LadspaControl.cpp:312
TempoSyncKnobModel * tempoSyncKnobModel()
Definition LadspaControl.h:75
void linkControls(LadspaControl *_control)
Definition LadspaControl.cpp:289
void setLink(bool _state)
Definition LadspaControl.cpp:370
void loadSettings(const QDomElement &element) override
Definition LadspaControl.h:111
port_desc_t * port()
Definition LadspaControl.h:80
BoolModel * toggledModel()
Definition LadspaControl.h:65
QString nodeName() const override
Definition LadspaControl.h:87
LadspaControl(Model *_parent, port_desc_t *_port, bool _link=false)
Definition LadspaControl.cpp:37
void linkChanged(int _port, bool _state)
void unlinkControls(LadspaControl *_control)
Definition LadspaControl.cpp:339
port_desc_t * m_port
Definition LadspaControl.h:120
void knobChanged()
Definition LadspaControl.cpp:321
void linkStateChanged()
Definition LadspaControl.cpp:362
FloatModel m_knobModel
Definition LadspaControl.h:124
void setValue(LADSPA_Data _value)
Definition LadspaControl.cpp:158
ValueBuffer * valueBuffer()
Definition LadspaControl.cpp:136
BoolModel m_toggledModel
Definition LadspaControl.h:123
bool m_link
Definition LadspaControl.h:119
FloatModel * knobModel()
Definition LadspaControl.h:70
void tempoKnobChanged()
Definition LadspaControl.cpp:330
~LadspaControl() override=default
TempoSyncKnobModel m_tempoSyncKnobModel
Definition LadspaControl.h:125
void changed(int _port, LADSPA_Data _value)
BoolModel m_linkEnabledModel
Definition LadspaControl.h:122
void saveSettings(QDomDocument &doc, QDomElement &element) override
Definition LadspaControl.h:105
Model(Model *parent, QString displayName=QString(), bool defaultConstructed=false)
Definition Model.cpp:30
Definition TempoSyncKnobModel.h:45
Definition ValueBuffer.h:38
Definition LadspaControlView.h:42
Definition LadspaMatrixControlDialog.h:49
static PuglViewHint int value
Definition pugl.h:1708
float LADSPA_Data
Definition ladspa.h:84
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
Definition LadspaBase.h:54