LMMS
Loading...
Searching...
No Matches
Vestige.h
Go to the documentation of this file.
1/*
2 * Vestige.h - instrument VeSTige for hosting VST-plugins
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
26#ifndef _VESTIGE_H
27#define _VESTIGE_H
28
29
30#include <QMutex>
31
32#include "Instrument.h"
33#include "InstrumentView.h"
34#include "SubWindow.h"
35
36
37class QGridLayout;
38class QMdiSubWindow;
39class QPushButton;
40class QScrollArea;
41
42namespace lmms
43{
44
45class FloatModel;
46class VstPlugin;
47
48namespace gui
49{
51class PixmapButton;
53class VstPluginKnob;
54} // namespace gui
55
56
58{
59 Q_OBJECT
60public:
61 VestigeInstrument( InstrumentTrack * _instrument_track );
62 virtual ~VestigeInstrument();
63
64 virtual void play( SampleFrame* _working_buffer );
65
66 virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent );
67 virtual void loadSettings( const QDomElement & _this );
68
69 virtual QString nodeName() const;
70
71 virtual void loadFile( const QString & _file );
72
73 virtual bool handleMidiEvent( const MidiEvent& event, const TimePos& time, f_cnt_t offset = 0 );
74
75 virtual gui::PluginView* instantiateView( QWidget * _parent );
76
77protected slots:
78 void setParameter( lmms::Model * action );
79 void handleConfigChange( QString cls, QString attr, QString value );
80 void reloadPlugin();
81
82private:
83 void closePlugin();
84
85
88
89 QString m_pluginDLL;
91 QScrollArea * m_scrollArea;
93 QObject * p_subWindow;
95
96
99
100} ;
101
102
103namespace gui
104{
105
107{
108 Q_OBJECT
109public:
110 ManageVestigeInstrumentView( Instrument * _instrument, QWidget * _parent, VestigeInstrument * m_vi2 );
112
113protected slots:
114 void syncPlugin();
116 void setParameter( lmms::Model * action );
117 void closeWindow();
118
119protected:
120 virtual void dragEnterEvent( QDragEnterEvent * _dee );
121 virtual void dropEvent( QDropEvent * _de );
122 virtual void paintEvent( QPaintEvent * _pe );
123
124private:
126
127 QWidget *widget;
128 QGridLayout * l;
129 QPushButton * m_syncButton;
131 QPushButton * m_closeButton;
132 std::vector<VstPluginKnob*> m_vstKnobs;
133};
134
135
137{
138 Q_OBJECT
139public:
140 VestigeInstrumentView( Instrument * _instrument, QWidget * _parent );
141 virtual ~VestigeInstrumentView() = default;
142
143
144protected slots:
145 void updateMenu();
146 void openPlugin();
147 void managePlugin();
148 void openPreset();
149 void savePreset();
150 void nextProgram();
151 void previousProgram();
152 void selPreset();
153 void toggleGUI();
154 void noteOffAll();
155
156
157protected:
158 virtual void dragEnterEvent( QDragEnterEvent * _dee );
159 virtual void dropEvent( QDropEvent * _de );
160 virtual void paintEvent( QPaintEvent * _pe );
161
162
163private:
164 virtual void modelChanged();
165
166
168
170
173 QPushButton* m_rolLPresetButton;
174 QPushButton* m_rolRPresetButton;
175 QPushButton * m_selPresetButton;
176 QPushButton * m_toggleGUIButton;
179
181 QWidget * _parent2;
182
183} ;
184
185
186} // namespace gui
187
188} // namespace lmms
189
190#endif
Definition AutomatableModel.h:463
Definition Instrument.h:52
Instrument(InstrumentTrack *_instrument_track, const Descriptor *_descriptor, const Descriptor::SubPluginFeatures::Key *key=nullptr, Flags flags=Flag::NoFlags)
Definition Instrument.cpp:38
Definition InstrumentTrack.h:62
Definition MidiEvent.h:37
Definition Model.h:37
Definition SampleFrame.h:41
Definition TimePos.h:68
Definition Vestige.h:58
virtual void loadFile(const QString &_file)
Definition Vestige.cpp:334
void reloadPlugin()
Definition Vestige.cpp:268
QMutex m_pluginMutex
Definition Vestige.h:87
FloatModel ** knobFModel
Definition Vestige.h:92
virtual gui::PluginView * instantiateView(QWidget *_parent)
Create a view for the model.
Definition Vestige.cpp:477
virtual bool handleMidiEvent(const MidiEvent &event, const TimePos &time, f_cnt_t offset=0)
Definition Vestige.cpp:414
QString m_pluginDLL
Definition Vestige.h:89
virtual ~VestigeInstrument()
Definition Vestige.cpp:173
QObject * p_subWindow
Definition Vestige.h:93
virtual void loadSettings(const QDomElement &_this)
Definition Vestige.cpp:194
QScrollArea * m_scrollArea
Definition Vestige.h:91
void setParameter(lmms::Model *action)
Definition Vestige.cpp:249
gui::SubWindow * m_subWindow
Definition Vestige.h:90
VestigeInstrument(InstrumentTrack *_instrument_track)
Definition Vestige.cpp:152
void closePlugin()
Definition Vestige.cpp:429
virtual void saveSettings(QDomDocument &_doc, QDomElement &_parent)
Definition Vestige.cpp:277
VstPlugin * m_plugin
Definition Vestige.h:86
virtual void play(SampleFrame *_working_buffer)
Definition Vestige.cpp:396
void handleConfigChange(QString cls, QString attr, QString value)
Definition Vestige.cpp:258
int paramCount
Definition Vestige.h:94
virtual QString nodeName() const
Definition Vestige.cpp:326
Definition VstPlugin.h:45
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
virtual void dropEvent(QDropEvent *_de)
Definition Vestige.cpp:1155
QWidget * widget
Definition Vestige.h:127
~ManageVestigeInstrumentView() override
Definition Vestige.cpp:1079
ManageVestigeInstrumentView(Instrument *_instrument, QWidget *_parent, VestigeInstrument *m_vi2)
Definition Vestige.cpp:906
QPushButton * m_closeButton
Definition Vestige.h:131
void displayAutomatedOnly()
Definition Vestige.cpp:1057
void syncPlugin()
Definition Vestige.cpp:1031
VestigeInstrument * m_vi
Definition Vestige.h:125
std::vector< VstPluginKnob * > m_vstKnobs
Definition Vestige.h:132
QPushButton * m_syncButton
Definition Vestige.h:129
QPushButton * m_displayAutomatedOnly
Definition Vestige.h:130
virtual void dragEnterEvent(QDragEnterEvent *_dee)
Definition Vestige.cpp:1128
void setParameter(lmms::Model *action)
Definition Vestige.cpp:1116
void closeWindow()
Definition Vestige.cpp:1023
QGridLayout * l
Definition Vestige.h:128
virtual void paintEvent(QPaintEvent *_pe)
Definition Vestige.cpp:1171
Definition PixmapButton.h:37
Definition PluginView.h:36
The SubWindow class.
Definition SubWindow.h:53
Definition Vestige.h:137
virtual void dragEnterEvent(QDragEnterEvent *_dee)
Definition Vestige.cpp:819
virtual void paintEvent(QPaintEvent *_pe)
Definition Vestige.cpp:862
void savePreset()
Definition Vestige.cpp:727
virtual ~VestigeInstrumentView()=default
PixmapButton * m_openPluginButton
Definition Vestige.h:171
void openPlugin()
Definition Vestige.cpp:655
Instrument * _instrument2
Definition Vestige.h:180
void toggleGUI()
Definition Vestige.cpp:791
PixmapButton * m_savePresetButton
Definition Vestige.h:178
VestigeInstrument * m_vi
Definition Vestige.h:167
void selPreset()
Definition Vestige.cpp:777
void updateMenu()
Definition Vestige.cpp:613
void nextProgram()
Definition Vestige.cpp:745
virtual void modelChanged()
Definition Vestige.cpp:647
void previousProgram()
Definition Vestige.cpp:761
QPushButton * m_rolRPresetButton
Definition Vestige.h:174
QWidget * _parent2
Definition Vestige.h:181
QPushButton * m_rolLPresetButton
Definition Vestige.h:173
QPushButton * m_toggleGUIButton
Definition Vestige.h:176
void managePlugin()
Definition Vestige.cpp:597
VestigeInstrumentView(Instrument *_instrument, QWidget *_parent)
Definition Vestige.cpp:486
PixmapButton * m_openPresetButton
Definition Vestige.h:172
void openPreset()
Definition Vestige.cpp:710
void noteOffAll()
Definition Vestige.cpp:803
QPushButton * m_selPresetButton
Definition Vestige.h:175
PixmapButton * m_managePluginButton
Definition Vestige.h:177
int lastPosInMenu
Definition Vestige.h:169
virtual void dropEvent(QDropEvent *_de)
Definition Vestige.cpp:846
Definition VstPlugin.h:182
static PuglViewHint int value
Definition pugl.h:1708
Definition AudioPortAudio.cpp:209
Definition AudioAlsa.cpp:35
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43