LMMS
Loading...
Searching...
No Matches
ivstcomponent.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/ivstcomponent.h
6// Created by : Steinberg, 04/2005
7// Description : Basic VST Interfaces
8//
9//-----------------------------------------------------------------------------
10// This file is part of a Steinberg SDK. It is subject to the license terms
11// in the LICENSE file found in the top-level directory of this distribution
12// and at www.steinberg.net/sdklicenses.
13// No part of the SDK, including this file, may be copied, modified, propagated,
14// or distributed except according to the terms contained in the LICENSE file.
15//-----------------------------------------------------------------------------
16
17#pragma once
18
21
22//------------------------------------------------------------------------
24//------------------------------------------------------------------------
25
26namespace Steinberg {
27class IBStream;
28
29//------------------------------------------------------------------------
31namespace Vst {
32
35
36#define BEGIN_FACTORY_DEF(vendor,url,email) using namespace Steinberg; \
37 SMTG_EXPORT_SYMBOL IPluginFactory* PLUGIN_API GetPluginFactory () { \
38 if (!gPluginFactory) \
39 { \
40 static PFactoryInfo factoryInfo (vendor, url, email, Vst::kDefaultFactoryFlags); \
41 gPluginFactory = new CPluginFactory (factoryInfo);
42
43//------------------------------------------------------------------------
61
62//------------------------------------------------------------------------
70
71//------------------------------------------------------------------------
78
79//------------------------------------------------------------------------
82{
83 kMain = 0,
85};
86
87//------------------------------------------------------------------------
116
118
119//------------------------------------------------------------------------
127
128//------------------------------------------------------------------------
141
142//------------------------------------------------------------------------
143// IComponent Interface
144//------------------------------------------------------------------------
158{
159public:
160//------------------------------------------------------------------------
162 virtual tresult PLUGIN_API getControllerClassId (TUID classId) = 0;
163
165 virtual tresult PLUGIN_API setIoMode (IoMode mode) = 0;
166
168 virtual int32 PLUGIN_API getBusCount (MediaType type, BusDirection dir) = 0;
169
171 virtual tresult PLUGIN_API getBusInfo (MediaType type, BusDirection dir, int32 index, BusInfo& bus /*out*/) = 0;
172
175 virtual tresult PLUGIN_API getRoutingInfo (RoutingInfo& inInfo, RoutingInfo& outInfo /*out*/) = 0;
176
181 virtual tresult PLUGIN_API activateBus (MediaType type, BusDirection dir, int32 index,
182 TBool state) = 0;
183
185 virtual tresult PLUGIN_API setActive (TBool state) = 0;
186
188 virtual tresult PLUGIN_API setState (IBStream* state) = 0;
189
191 virtual tresult PLUGIN_API getState (IBStream* state) = 0;
192
193//------------------------------------------------------------------------
194 static const FUID iid;
195};
196
197DECLARE_CLASS_IID (IComponent, 0xE831FF31, 0xF2D54301, 0x928EBBEE, 0x25697802)
198
199//------------------------------------------------------------------------
200} // namespace Vst
201} // namespace Steinberg
202
203//------------------------------------------------------------------------
205//------------------------------------------------------------------------
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition funknown.h:233
Definition ibstream.h:30
Definition ipluginbase.h:37
Definition ivstcomponent.h:158
virtual int32 PLUGIN_API getBusCount(MediaType type, BusDirection dir)=0
virtual tresult PLUGIN_API getBusInfo(MediaType type, BusDirection dir, int32 index, BusInfo &bus)=0
virtual tresult PLUGIN_API setState(IBStream *state)=0
virtual tresult PLUGIN_API getControllerClassId(TUID classId)=0
virtual tresult PLUGIN_API setIoMode(IoMode mode)=0
virtual tresult PLUGIN_API getState(IBStream *state)=0
static const FUID iid
Definition ivstcomponent.h:194
virtual tresult PLUGIN_API getRoutingInfo(RoutingInfo &inInfo, RoutingInfo &outInfo)=0
virtual tresult PLUGIN_API setActive(TBool state)=0
virtual tresult PLUGIN_API activateBus(MediaType type, BusDirection dir, int32 index, TBool state)=0
#define DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4)
Definition funknown.h:74
Definition ivstattributes.h:28
BusDirections
Definition ivstcomponent.h:74
@ kOutput
output bus
Definition ivstcomponent.h:76
@ kInput
input bus
Definition ivstcomponent.h:75
int32 IoMode
I/O mode (see vst3IoMode).
Definition vsttypes.h:72
BusTypes
Definition ivstcomponent.h:82
@ kAux
auxiliary bus (sidechain)
Definition ivstcomponent.h:84
@ kMain
main bus
Definition ivstcomponent.h:83
const int32 kDefaultFactoryFlags
Definition ivstcomponent.h:34
int32 BusType
bus type (main/aux)
Definition vsttypes.h:71
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:63
MediaTypes
Definition ivstcomponent.h:65
@ kAudio
audio
Definition ivstcomponent.h:66
@ kNumMediaTypes
Definition ivstcomponent.h:68
@ kEvent
events
Definition ivstcomponent.h:67
IoModes
Definition ivstcomponent.h:122
@ kSimple
1:1 Input / Output. Only used for Instruments. See vst3IoMode
Definition ivstcomponent.h:123
@ kOfflineProcessing
plug-in used in an offline processing context
Definition ivstcomponent.h:125
@ kAdvanced
n:m Input / Output. Only used for Instruments.
Definition ivstcomponent.h:124
int32 BusDirection
bus direction (in/out)
Definition vsttypes.h:70
int32 MediaType
media type (audio/event)
Definition vsttypes.h:69
Definition baseiids.cpp:43
int int32
Definition ftypes.h:50
int8 TUID[16]
plain UID type
Definition funknown.h:210
uint8 TBool
Definition ftypes.h:89
int32 tresult
Definition ftypes.h:76
unsigned int uint32
Definition ftypes.h:51
png_structrp int mode
Definition png.h:1139
@ kUnicode
Components have entirely unicode encoded strings. (True for VST 3 plug-ins so far).
Definition ipluginbase.h:69
Definition ivstcomponent.h:93
MediaType mediaType
Media type - has to be a value of MediaTypes.
Definition ivstcomponent.h:94
BusDirection direction
input or output BusDirections
Definition ivstcomponent.h:95
BusFlags
Definition ivstcomponent.h:104
@ kDefaultActive
Definition ivstcomponent.h:107
@ kIsControlVoltage
Definition ivstcomponent.h:113
int32 channelCount
Definition ivstcomponent.h:96
BusType busType
main or aux - has to be a value of BusTypes
Definition ivstcomponent.h:101
uint32 flags
flags - a combination of BusFlags
Definition ivstcomponent.h:102
String128 name
name of the bus
Definition ivstcomponent.h:100
Definition ivstcomponent.h:136
MediaType mediaType
media type see MediaTypes
Definition ivstcomponent.h:137
int32 channel
channel (-1 for all channels)
Definition ivstcomponent.h:139
int32 busIndex
bus index
Definition ivstcomponent.h:138