Component base interface: Vst::IComponent.
IComponent
- [plug imp]
- [released: 3.0.0]
- [mandatory]
This is the basic interface for a VST component and must always be supported. It contains the common parts of any kind of processing class. The parts that are specific to a media type are defined in a separate interface. An implementation component must provide both the specific interface and IComponent.
- See also
- IPluginBase
IAudioProcessor
Audio processing interface: Vst::IAudioProcessor.
- [plug imp]
- [extends IComponent]
- [released: 3.0.0]
- [mandatory]
This interface must always be supported by audio processing plug-ins.
IEditController
Edit controller component interface: Vst::IEditController.
- [plug imp]
- [released: 3.0.0]
- [mandatory]
The controller part of an effect or instrument with parameter handling (export, definition, conversion...).
- See also
- IComponent::getControllerClassId, IMidiMapping
IConnectionPoint
Connect a component with another one: Vst::IConnectionPoint.
- [plug imp]
- [host imp]
- [released: 3.0.0]
- [mandatory]
This interface is used for the communication of separate components. Note that some hosts will place a proxy object between the components so that they are not directly connected.
- See also
- Communication between the components
IUnitInfo
Edit controller extension to describe the plug-in structure: Vst::IUnitInfo.
- [plug imp]
- [extends IEditController]
- [released: 3.0.0]
- [optional]
IUnitInfo describes the internal structure of the plug-in.
- The root unit is the component itself, so getUnitCount must return 1 at least.
- The root unit id has to be 0 (kRootUnitId).
- Each unit can reference one program list - this reference must not change.
- Each unit, using a program list, references one program of the list.
- See also
- VST 3 Units, IUnitHandler
IProgramListData
Component extension to access program list data: Vst::IProgramListData.
- [plug imp]
- [extends IComponent]
- [released: 3.0.0]
- [optional]
A component can support program list data via this interface or/and unit preset data (IUnitData).
- See also
- IUnitData, Multi-timbral Program Lists
IUnitData
Component extension to access unit data: Vst::IUnitData.
- [plug imp]
- [extends IComponent]
- [released: 3.0.0]
- [optional]
A component can support unit preset data via this interface or program list data (IProgramListData).
- See also
- Program Lists
IPlugView
Plug-in definition of a view.
- [plug imp]
- [released: 3.0.0]
- Sizing of a view
- Usually, the size of a plug-in view is fixed. But both the host and the plug-in can cause a view to be resized:
- Host: If IPlugView::canResize () returns kResultTrue the host will set up the window so that the user can resize it. While the user resizes the window, IPlugView::checkSizeConstraint () is called, allowing the plug-in to change the size to a valid a valid supported rectangle size. The host then resizes the window to this rect and has to call IPlugView::onSize ().
- Plug-in: The plug-in can call IPlugFrame::resizeView () and cause the host to resize the window.
Afterwards, in the same callstack, the host has to call IPlugView::onSize () if a resize is needed (size was changed). Note that if the host calls IPlugView::getSize () before calling IPlugView::onSize () (if needed), it will get the current (old) size not the wanted one!!
Here the calling sequence:
- plug-in->host: IPlugFrame::resizeView (newSize)
- host->plug-in (optional): IPlugView::getSize () returns the currentSize (not the newSize!)
- host->plug-in: if newSize is different from the current size: IPlugView::onSize (newSize)
- host->plug-in (optional): IPlugView::getSize () returns the newSize
Please only resize the platform representation of the view when IPlugView::onSize () is called.
- Keyboard handling
- The plug-in view receives keyboard events from the host. A view implementation must not handle keyboard events by the means of platform callbacks, but let the host pass them to the view. The host depends on a proper return value when IPlugView::onKeyDown is called, otherwise the plug-in view may cause a malfunction of the host's key command handling.
- See also
- IPlugFrame, Platform UI Types
Back to Contents