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{
50class PixmapButton;
51class CustomTextKnob;
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
113
114protected slots:
115 void syncPlugin();
117 void setParameter( lmms::Model * action );
118 void syncParameterText();
119 void closeWindow();
120
121
122protected:
123 virtual void dragEnterEvent( QDragEnterEvent * _dee );
124 virtual void dropEvent( QDropEvent * _de );
125 virtual void paintEvent( QPaintEvent * _pe );
126
127
128private:
130
131 QWidget *widget;
132 QGridLayout * l;
133 QPushButton * m_syncButton;
135 QPushButton * m_closeButton;
137
138} ;
139
140
142{
143 Q_OBJECT
144public:
145 VestigeInstrumentView( Instrument * _instrument, QWidget * _parent );
146 virtual ~VestigeInstrumentView() = default;
147
148
149protected slots:
150 void updateMenu();
151 void openPlugin();
152 void managePlugin();
153 void openPreset();
154 void savePreset();
155 void nextProgram();
156 void previousProgram();
157 void selPreset();
158 void toggleGUI();
159 void noteOffAll();
160
161
162protected:
163 virtual void dragEnterEvent( QDragEnterEvent * _dee );
164 virtual void dropEvent( QDropEvent * _de );
165 virtual void paintEvent( QPaintEvent * _pe );
166
167
168private:
169 virtual void modelChanged();
170
171
173
175
178 QPushButton* m_rolLPresetButton;
179 QPushButton* m_rolRPresetButton;
180 QPushButton * m_selPresetButton;
181 QPushButton * m_toggleGUIButton;
184
186 QWidget * _parent2;
187
188} ;
189
190
191} // namespace gui
192
193} // namespace lmms
194
195#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:341
void reloadPlugin()
Definition Vestige.cpp:275
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:484
virtual bool handleMidiEvent(const MidiEvent &event, const TimePos &time, f_cnt_t offset=0)
Definition Vestige.cpp:421
QString m_pluginDLL
Definition Vestige.h:89
virtual ~VestigeInstrument()
Definition Vestige.cpp:180
QObject * p_subWindow
Definition Vestige.h:93
virtual void loadSettings(const QDomElement &_this)
Definition Vestige.cpp:201
QScrollArea * m_scrollArea
Definition Vestige.h:91
void setParameter(lmms::Model *action)
Definition Vestige.cpp:256
gui::SubWindow * m_subWindow
Definition Vestige.h:90
VestigeInstrument(InstrumentTrack *_instrument_track)
Definition Vestige.cpp:159
void closePlugin()
Definition Vestige.cpp:436
virtual void saveSettings(QDomDocument &_doc, QDomElement &_parent)
Definition Vestige.cpp:284
VstPlugin * m_plugin
Definition Vestige.h:86
virtual void play(SampleFrame *_working_buffer)
Definition Vestige.cpp:403
void handleConfigChange(QString cls, QString attr, QString value)
Definition Vestige.cpp:265
int paramCount
Definition Vestige.h:94
virtual QString nodeName() const
Definition Vestige.cpp:333
Definition VstPlugin.h:44
Definition CustomTextKnob.h:35
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
void syncParameterText()
Definition Vestige.cpp:1137
virtual void dropEvent(QDropEvent *_de)
Definition Vestige.cpp:1197
QWidget * widget
Definition Vestige.h:131
ManageVestigeInstrumentView(Instrument *_instrument, QWidget *_parent, VestigeInstrument *m_vi2)
Definition Vestige.cpp:913
QPushButton * m_closeButton
Definition Vestige.h:135
void displayAutomatedOnly()
Definition Vestige.cpp:1063
CustomTextKnob ** vstKnobs
Definition Vestige.h:136
void syncPlugin()
Definition Vestige.cpp:1038
VestigeInstrument * m_vi
Definition Vestige.h:129
QPushButton * m_syncButton
Definition Vestige.h:133
QPushButton * m_displayAutomatedOnly
Definition Vestige.h:134
virtual void dragEnterEvent(QDragEnterEvent *_dee)
Definition Vestige.cpp:1170
void setParameter(lmms::Model *action)
Definition Vestige.cpp:1127
void closeWindow()
Definition Vestige.cpp:1030
virtual ~ManageVestigeInstrumentView()
Definition Vestige.cpp:1085
QGridLayout * l
Definition Vestige.h:132
virtual void paintEvent(QPaintEvent *_pe)
Definition Vestige.cpp:1213
Definition PixmapButton.h:37
Definition PluginView.h:36
The SubWindow class.
Definition SubWindow.h:53
Definition Vestige.h:142
virtual void dragEnterEvent(QDragEnterEvent *_dee)
Definition Vestige.cpp:826
virtual void paintEvent(QPaintEvent *_pe)
Definition Vestige.cpp:869
void savePreset()
Definition Vestige.cpp:734
virtual ~VestigeInstrumentView()=default
PixmapButton * m_openPluginButton
Definition Vestige.h:176
void openPlugin()
Definition Vestige.cpp:662
Instrument * _instrument2
Definition Vestige.h:185
void toggleGUI()
Definition Vestige.cpp:798
PixmapButton * m_savePresetButton
Definition Vestige.h:183
VestigeInstrument * m_vi
Definition Vestige.h:172
void selPreset()
Definition Vestige.cpp:784
void updateMenu()
Definition Vestige.cpp:620
void nextProgram()
Definition Vestige.cpp:752
virtual void modelChanged()
Definition Vestige.cpp:654
void previousProgram()
Definition Vestige.cpp:768
QPushButton * m_rolRPresetButton
Definition Vestige.h:179
QWidget * _parent2
Definition Vestige.h:186
QPushButton * m_rolLPresetButton
Definition Vestige.h:178
QPushButton * m_toggleGUIButton
Definition Vestige.h:181
void managePlugin()
Definition Vestige.cpp:604
VestigeInstrumentView(Instrument *_instrument, QWidget *_parent)
Definition Vestige.cpp:493
PixmapButton * m_openPresetButton
Definition Vestige.h:177
void openPreset()
Definition Vestige.cpp:717
void noteOffAll()
Definition Vestige.cpp:810
QPushButton * m_selPresetButton
Definition Vestige.h:180
PixmapButton * m_managePluginButton
Definition Vestige.h:182
int lastPosInMenu
Definition Vestige.h:174
virtual void dropEvent(QDropEvent *_de)
Definition Vestige.cpp:853
static PuglViewHint int value
Definition pugl.h:1708
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43