LMMS
Loading...
Searching...
No Matches
VstPlugin.h
Go to the documentation of this file.
1/*
2 * VstPlugin.h - declaration of VstPlugin class
3 *
4 * Copyright (c) 2005-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
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 _VST_PLUGIN_H
26#define _VST_PLUGIN_H
27
28#include <QMap>
29#include <QPointer>
30#include <QSize>
31#include <QString>
32#include <QTimer>
33
34#include "JournallingObject.h"
35#include "RemotePlugin.h"
36
37#include "vstbase_export.h"
38
39namespace lmms
40{
41
42
43class VSTBASE_EXPORT VstPlugin : public RemotePlugin, public JournallingObject
44{
45 Q_OBJECT
46public:
47 VstPlugin( const QString & _plugin );
48 ~VstPlugin() override;
49
50 void tryLoad( const QString &remoteVstPluginExecutable );
51
52 bool processMessage( const message & _m ) override;
53
54 inline bool hasEditor() const
55 {
56 return m_pluginWindowID != 0;
57 }
58
62 virtual QWidget* editor();
63
64 inline const QString & name() const
65 {
66 return m_name;
67 }
68
69 inline int version() const
70 {
71 return m_version;
72 }
73
74 inline const QString & vendorString() const
75 {
76 return m_vendorString;
77 }
78
79 inline const QString & productString() const
80 {
81 return m_productString;
82 }
83
84 inline const QString& currentProgramName() const
85 {
87 }
88
89 inline const QString& allProgramNames() const
90 {
91 return m_allProgramNames;
92 }
93
94 inline const QString& allParameterLabels() const
95 {
97 }
98
99 inline const QString& allParameterDisplays() const
100 {
102 }
103
104 int currentProgram();
105
106 const QMap<QString, QString> & parameterDump();
107 void setParameterDump( const QMap<QString, QString> & _pdump );
108
109
110 QWidget * pluginWidget();
111
112 void loadSettings( const QDomElement & _this ) override;
113 void saveSettings( QDomDocument & _doc, QDomElement & _this ) override;
114
115 QString nodeName() const override
116 {
117 return "vstplugin";
118 }
119
120
121 virtual void createUI(QWidget *parent);
122 bool eventFilter(QObject *obj, QEvent *event) override;
123
124 QString embedMethod() const;
125
126public slots:
127 void setTempo( lmms::bpm_t _bpm );
128 void updateSampleRate();
129 void openPreset();
130 void setProgram( int index );
131 void rotateProgram( int offset );
132 void loadProgramNames();
133 void loadParameterLabels();
134 void loadParameterDisplays();
135 void savePreset();
136 void setParam( int i, float f );
137 void idleUpdate();
138
139 void showUI() override;
140 void hideUI() override;
141 void toggleUI() override;
142
143 void handleClientEmbed();
144
145private:
146 void loadChunk( const QByteArray & _chunk );
147 QByteArray saveChunk();
148
149 void toggleEditorVisibility(int visible = -1);
150
151 QString m_plugin;
152 QPointer<QWidget> m_pluginWidget;
155 const QString m_embedMethod;
156
157 QString m_name;
165
166 QString p_name;
167
168 QMap<QString, QString> m_parameterDump;
169
171
173
174} ;
175
176
177} // namespace lmms
178
179#endif
UI * createUI()
Definition DistrhoUI3BandEQ.cpp:206
JournallingObject()
Definition JournallingObject.cpp:36
RemotePlugin()
Definition RemotePlugin.cpp:133
QString m_allParameterDisplays
Definition VstPlugin.h:164
VstPlugin(const QString &_plugin)
Definition VstPlugin.cpp:124
QMap< QString, QString > m_parameterDump
Definition VstPlugin.h:168
const QString m_embedMethod
Definition VstPlugin.h:155
QTimer m_idleTimer
Definition VstPlugin.h:172
int m_version
Definition VstPlugin.h:158
const QString & allParameterDisplays() const
Definition VstPlugin.h:99
QString m_allProgramNames
Definition VstPlugin.h:162
const QString & productString() const
Definition VstPlugin.h:79
QString m_currentProgramName
Definition VstPlugin.h:161
const QString & currentProgramName() const
Definition VstPlugin.h:84
QString m_vendorString
Definition VstPlugin.h:159
const QString & allProgramNames() const
Definition VstPlugin.h:89
QString m_plugin
Definition VstPlugin.h:151
int m_currentProgram
Definition VstPlugin.h:170
const QString & name() const
Definition VstPlugin.h:64
QString m_allParameterLabels
Definition VstPlugin.h:163
QString p_name
Definition VstPlugin.h:166
QString m_name
Definition VstPlugin.h:157
const QString & allParameterLabels() const
Definition VstPlugin.h:94
void tryLoad(const QString &remoteVstPluginExecutable)
Definition VstPlugin.cpp:207
bool processMessage(const message &_m) override
Definition VstPlugin.cpp:401
QString nodeName() const override
Definition VstPlugin.h:115
QSize m_pluginGeometry
Definition VstPlugin.h:154
int version() const
Definition VstPlugin.h:69
int m_pluginWindowID
Definition VstPlugin.h:153
const QString & vendorString() const
Definition VstPlugin.h:74
QPointer< QWidget > m_pluginWidget
Definition VstPlugin.h:152
bool hasEditor() const
Definition VstPlugin.h:54
QString m_productString
Definition VstPlugin.h:160
register unsigned i
Definition inflate.c:1575
unsigned f
Definition inflate.c:1572
static uintptr_t parent
Definition pugl.h:1644
Definition AudioAlsa.cpp:35
std::uint16_t bpm_t
Definition LmmsTypes.h:45
Definition RemotePluginBase.h:358