LMMS
Loading...
Searching...
No Matches
ZynAddSubFx.h
Go to the documentation of this file.
1/*
2 * ZynAddSubFx.h - ZynAddSubFX-embedding plugin
3 *
4 * Copyright (c) 2008-2010 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 ZYNADDSUBFX_H
26#define ZYNADDSUBFX_H
27
28#include <QMap>
29#include <QMutex>
30
31#include <globals.h>
32
33#include "AutomatableModel.h"
34#include "Instrument.h"
35#include "InstrumentView.h"
36#include "RemotePlugin.h"
37
38class QPushButton;
39
40namespace lmms
41{
42
43
45class NotePlayHandle;
46
47namespace gui
48{
49class Knob;
50class LedCheckBox;
51class ZynAddSubFxView;
52}
53
55{
56 Q_OBJECT
57public:
59
60 bool processMessage( const message & _m ) override;
61
62
63signals:
65
66} ;
67
68
69
71{
72 Q_OBJECT
73public:
74 ZynAddSubFxInstrument( InstrumentTrack * _instrument_track );
75 ~ZynAddSubFxInstrument() override;
76
77 void play( SampleFrame* _working_buffer ) override;
78
79 bool handleMidiEvent( const MidiEvent& event, const TimePos& time = TimePos(), f_cnt_t offset = 0 ) override;
80
81 void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override;
82 void loadSettings( const QDomElement & _this ) override;
83
84 void loadFile( const QString & _file ) override;
85
86
87 QString nodeName() const override;
88
89 gui::PluginView* instantiateView( QWidget * _parent ) override;
90
91
92private slots:
93 void reloadPlugin();
94
95 void updatePitchRange();
96
104
105
106private:
107 void initPlugin();
108 void sendControlChange( MidiControllers midiCtl, float value );
109
114
123
124 QMap<int, bool> m_modifiedControllers;
125
127
128
129signals:
131
132} ;
133
134
135namespace gui
136{
137
138
140{
141 Q_OBJECT
142public:
143 ZynAddSubFxView( Instrument * _instrument, QWidget * _parent );
144
145
146protected:
147 void dragEnterEvent( QDragEnterEvent * _dee ) override;
148 void dropEvent( QDropEvent * _de ) override;
149
150
151private:
152 void modelChanged() override;
153
154 QPushButton * m_toggleUIButton;
163
164
165private slots:
166 void toggleUI();
167
168} ;
169
170
171} // namespace gui
172
173} // namespace lmms
174
175#endif
MidiControllers
Definition globals.h:170
Definition AutomatableModel.h:497
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 LocalZynAddSubFx.h:43
Definition MidiEvent.h:37
Definition NotePlayHandle.h:48
RemotePlugin()
Definition RemotePlugin.cpp:133
Definition SampleFrame.h:41
Definition TimePos.h:68
void loadSettings(const QDomElement &_this) override
Definition ZynAddSubFx.cpp:224
void updatePitchRange()
Definition ZynAddSubFx.cpp:395
BoolModel m_forwardMidiCcModel
Definition ZynAddSubFx.h:122
void sendControlChange(MidiControllers midiCtl, float value)
Definition ZynAddSubFx.cpp:478
FloatModel m_resCenterFreqModel
Definition ZynAddSubFx.h:120
ZynAddSubFxInstrument(InstrumentTrack *_instrument_track)
Definition ZynAddSubFx.cpp:106
ZynAddSubFxRemotePlugin * m_remotePlugin
Definition ZynAddSubFx.h:113
FloatModel m_resBandwidthModel
Definition ZynAddSubFx.h:121
QMutex m_pluginMutex
Definition ZynAddSubFx.h:111
FloatModel m_filterFreqModel
Definition ZynAddSubFx.h:116
~ZynAddSubFxInstrument() override
Definition ZynAddSubFx.cpp:152
void reloadPlugin()
Definition ZynAddSubFx.cpp:380
FloatModel m_portamentoModel
Definition ZynAddSubFx.h:115
QString nodeName() const override
Definition ZynAddSubFx.cpp:325
FloatModel m_filterQModel
Definition ZynAddSubFx.h:117
LocalZynAddSubFx * m_plugin
Definition ZynAddSubFx.h:112
void loadFile(const QString &_file) override
Definition ZynAddSubFx.cpp:298
FloatModel m_bandwidthModel
Definition ZynAddSubFx.h:118
gui::PluginView * instantiateView(QWidget *_parent) override
Create a view for the model.
Definition ZynAddSubFx.cpp:485
void initPlugin()
Definition ZynAddSubFx.cpp:430
void play(SampleFrame *_working_buffer) override
Definition ZynAddSubFx.cpp:333
bool m_hasGUI
Definition ZynAddSubFx.h:110
bool handleMidiEvent(const MidiEvent &event, const TimePos &time=TimePos(), f_cnt_t offset=0) override
Definition ZynAddSubFx.cpp:350
QMap< int, bool > m_modifiedControllers
Definition ZynAddSubFx.h:124
void saveSettings(QDomDocument &_doc, QDomElement &_parent) override
Definition ZynAddSubFx.cpp:169
FloatModel m_fmGainModel
Definition ZynAddSubFx.h:119
Definition ZynAddSubFx.h:55
ZynAddSubFxRemotePlugin()
Definition ZynAddSubFx.cpp:80
bool processMessage(const message &_m) override
Definition ZynAddSubFx.cpp:88
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
Definition Knob.h:47
Definition LedCheckBox.h:37
Definition PluginView.h:36
Definition ZynAddSubFx.h:140
Knob * m_filterFreq
Definition ZynAddSubFx.h:156
LedCheckBox * m_forwardMidiCC
Definition ZynAddSubFx.h:162
Knob * m_bandwidth
Definition ZynAddSubFx.h:158
void modelChanged() override
Definition ZynAddSubFx.cpp:607
void dropEvent(QDropEvent *_de) override
Definition ZynAddSubFx.cpp:591
Knob * m_resCenterFreq
Definition ZynAddSubFx.h:160
void toggleUI()
Definition ZynAddSubFx.cpp:628
Knob * m_resBandwidth
Definition ZynAddSubFx.h:161
Knob * m_filterQ
Definition ZynAddSubFx.h:157
void dragEnterEvent(QDragEnterEvent *_dee) override
Definition ZynAddSubFx.cpp:564
QPushButton * m_toggleUIButton
Definition ZynAddSubFx.h:154
Knob * m_portamento
Definition ZynAddSubFx.h:155
ZynAddSubFxView(Instrument *_instrument, QWidget *_parent)
Definition ZynAddSubFx.cpp:497
Knob * m_fmGain
Definition ZynAddSubFx.h:159
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
Definition RemotePluginBase.h:358