JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
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//------------------------------------------------------------------------
65{
66 kAudio = 0,
68 kNumMediaTypes
69};
70
71//------------------------------------------------------------------------
78
79//------------------------------------------------------------------------
82{
83 kMain = 0,
84 kAux
85};
86
87//------------------------------------------------------------------------
116
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//------------------------------------------------------------------------
Handling 16 Byte Globally Unique Identifiers.
Definition funknown.h:241
Base class for streams.
Definition ibstream.h:30
Basic interface to a plug-in component: IPluginBase.
Definition ipluginbase.h:37
Component base interface: Vst::IComponent.
virtual int32 PLUGIN_API getBusCount(MediaType type, BusDirection dir)=0
Called after the plug-in is initialized.
virtual tresult PLUGIN_API getBusInfo(MediaType type, BusDirection dir, int32 index, BusInfo &bus)=0
Called after the plug-in is initialized.
virtual tresult PLUGIN_API setState(IBStream *state)=0
Sets complete state of component.
virtual tresult PLUGIN_API getControllerClassId(TUID classId)=0
Called before initializing the component to get information about the controller class.
virtual tresult PLUGIN_API setIoMode(IoMode mode)=0
Called before 'initialize' to set the component usage (optional).
virtual tresult PLUGIN_API getState(IBStream *state)=0
Retrieves complete state of component.
virtual tresult PLUGIN_API getRoutingInfo(RoutingInfo &inInfo, RoutingInfo &outInfo)=0
Retrieves routing information (to be implemented when more than one regular input or output bus exist...
virtual tresult PLUGIN_API setActive(TBool state)=0
Activates / deactivates the component.
virtual tresult PLUGIN_API activateBus(MediaType type, BusDirection dir, int32 index, TBool state)=0
Called upon (de-)activating a bus in the host application.
BusDirections
Bus directions.
@ kOutput
output bus
@ kInput
input bus
int32 IoMode
I/O mode (see vst3IoMode)
Definition vsttypes.h:78
BusTypes
Bus types.
@ kAux
auxiliary bus (sidechain)
@ kMain
main bus
const int32 kDefaultFactoryFlags
Standard value for PFactoryInfo::flags.
int32 BusType
bus type (main/aux)
Definition vsttypes.h:77
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:69
MediaTypes
Bus media types.
IoModes
I/O modes.
@ kSimple
1:1 Input / Output. Only used for Instruments. See vst3IoMode
@ kOfflineProcessing
plug-in used in an offline processing context
@ kAdvanced
n:m Input / Output. Only used for Instruments.
int32 BusDirection
bus direction (in/out)
Definition vsttypes.h:76
MediaType mediaType
media type see MediaTypes
int32 channel
channel (-1 for all channels)
int32 MediaType
media type (audio/event)
Definition vsttypes.h:75
Routing Information: When the plug-in supports multiple I/O busses, a host may want to know how the b...
@ kUnicode
Components have entirely unicode encoded strings (True for VST 3 plug-ins so far).
Definition ipluginbase.h:83
BusInfo: This is the structure used with getBusInfo, informing the host about what is a specific give...
MediaType mediaType
Media type - has to be a value of MediaTypes.
BusDirection direction
input or output BusDirections
@ kDefaultActive
The bus should be activated by the host per default on instantiation (activateBus call is requested).
@ kIsControlVoltage
The bus does not contain ordinary audio data, but data used for control changes at sample rate.
int32 channelCount
number of channels (if used then need to be recheck after IAudioProcessor::setBusArrangements is call...
BusType busType
main or aux - has to be a value of BusTypes
uint32 flags
flags - a combination of BusFlags
String128 name
name of the bus