29#ifndef kVstComponentControllerClass
30#define kVstComponentControllerClass "Component Controller Class"
81const CString kEditor =
"editor";
192 static const FUID iid;
195DECLARE_CLASS_IID (
IComponentHandler, 0x93A0BEA3, 0x0BD045DB, 0x8E890B0C, 0xC1E46AC6)
261 virtual tresult PLUGIN_API
setDirty (TBool state) = 0;
277 static const FUID iid;
315 static const FUID iid;
367 AsyncStateRestoration = 0,
380 virtual tresult PLUGIN_API
finish (ID
id) = 0;
383 static const FUID iid;
386DECLARE_CLASS_IID (
IProgress, 0x00C9DC5B, 0x9D904254, 0x91A388C8, 0xB4E91B69)
446 static const FUID iid;
449DECLARE_CLASS_IID (
IEditController, 0xDCD7BBE3, 0x7742448D, 0xA874AACC, 0x979C759E)
490 virtual tresult PLUGIN_API
openHelp (TBool onlyCheck) = 0;
498 static const FUID iid;
501DECLARE_CLASS_IID (
IEditController2, 0x7F4EFE59, 0xF3204967, 0xAC27A3AE, 0xAFB63038)
570 static const FUID iid;
573DECLARE_CLASS_IID (
IMidiMapping, 0xDF0FF9F7, 0x49B74669, 0xB63AB732, 0x7ADBF5E5)
611 static const FUID iid;
Handling 16 Byte Globally Unique Identifiers.
The basic interface of all interfaces.
Plug-in definition of a view.
Basic interface to a plug-in component: IPluginBase.
Extended host callback interface for an edit controller: Vst::IComponentHandler2.
virtual tresult PLUGIN_API setDirty(TBool state)=0
Tells host that the plug-in is dirty (something besides parameters has changed since last save),...
virtual tresult PLUGIN_API startGroupEdit()=0
Starts the group editing (call before a IComponentHandler::beginEdit), the host will keep the current...
virtual tresult PLUGIN_API requestOpenEditor(FIDString name=ViewType::kEditor)=0
Tells host that it should open the plug-in editor the next time it's possible.
virtual tresult PLUGIN_API finishGroupEdit()=0
Finishes the group editing started by a startGroupEdit (call after a IComponentHandler::endEdit).
Extended host callback interface for an edit controller: Vst::IComponentHandlerBusActivation.
virtual tresult PLUGIN_API requestBusActivation(MediaType type, BusDirection dir, int32 index, TBool state)=0
request the host to activate or deactivate a specific bus.
Host callback interface for an edit controller: Vst::IComponentHandler.
virtual tresult PLUGIN_API restartComponent(int32 flags)=0
Instructs host to restart the component.
virtual tresult PLUGIN_API beginEdit(ParamID id)=0
To be called before calling a performEdit (e.g.
virtual tresult PLUGIN_API endEdit(ParamID id)=0
To be called after calling a performEdit (e.g.
virtual tresult PLUGIN_API performEdit(ParamID id, ParamValue valueNormalized)=0
Called between beginEdit and endEdit to inform the handler that a given parameter has a new value.
Edit controller component interface extension: Vst::IEditController2.
virtual tresult PLUGIN_API setKnobMode(KnobMode mode)=0
Host could set the Knob Mode for the plug-in.
virtual tresult PLUGIN_API openAboutBox(TBool onlyCheck)=0
Host could ask to open the plug-in about box.
virtual tresult PLUGIN_API openHelp(TBool onlyCheck)=0
Host could ask to open the plug-in help (could be: opening a PDF document or link to a web page).
Parameter Editing from host: Vst::IEditControllerHostEditing.
virtual tresult PLUGIN_API beginEditFromHost(ParamID paramID)=0
Called before a setParamNormalized sequence, a endEditFromHost will be call at the end of the editing...
virtual tresult PLUGIN_API endEditFromHost(ParamID paramID)=0
Called after a beginEditFromHost and a sequence of setParamNormalized.
Edit controller component interface: Vst::IEditController.
virtual tresult PLUGIN_API setState(IBStream *state)=0
Sets the controller state.
virtual tresult PLUGIN_API getParameterInfo(int32 paramIndex, ParameterInfo &info)=0
Gets for a given index the parameter information.
virtual tresult PLUGIN_API setComponentHandler(IComponentHandler *handler)=0
Gets from host a handler which allows the Plugin-in to communicate with the host.
virtual tresult PLUGIN_API getState(IBStream *state)=0
Gets the controller state.
virtual tresult PLUGIN_API getParamValueByString(ParamID id, TChar *string, ParamValue &valueNormalized)=0
Gets for a given paramID and string its normalized value.
virtual tresult PLUGIN_API setParamNormalized(ParamID id, ParamValue value)=0
Sets the normalized value to the parameter associated to the paramID.
virtual ParamValue PLUGIN_API getParamNormalized(ParamID id)=0
Returns the normalized value of the parameter associated to the paramID.
virtual tresult PLUGIN_API setComponentState(IBStream *state)=0
Receives the component state.
virtual ParamValue PLUGIN_API normalizedParamToPlain(ParamID id, ParamValue valueNormalized)=0
Returns for a given paramID and a normalized value its plain representation (for example -6 for -6dB ...
virtual ParamValue PLUGIN_API plainParamToNormalized(ParamID id, ParamValue plainValue)=0
Returns for a given paramID and a plain value its normalized value.
virtual int32 PLUGIN_API getParameterCount()=0
Returns the number of parameters exported.
virtual IPlugView *PLUGIN_API createView(FIDString name)=0
Creates the editor view of the plug-in, currently only "editor" is supported, see ViewType.
virtual tresult PLUGIN_API getParamStringByValue(ParamID id, ParamValue valueNormalized, String128 string)=0
Gets for a given paramID and normalized value its associated string representation.
MIDI Mapping interface: Vst::IMidiMapping.
virtual tresult PLUGIN_API getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID &id)=0
Gets an (preferred) associated ParamID for a given Input Event Bus index, channel and MIDI Controller...
Extended host callback interface for an edit controller: Vst::IProgress.
virtual tresult PLUGIN_API update(ID id, ParamValue normValue)=0
Update the progress value (normValue between [0, 1]) associated to the given id.
virtual tresult PLUGIN_API start(ProgressType type, const tchar *optionalDescription, ID &outID)=0
Start a new progress of a given type and optional Description.
virtual tresult PLUGIN_API finish(ID id)=0
Finish the progress associated to the given id.
int32 KnobMode
Knob Mode Type.
uint32 ParamID
parameter identifier
TChar String128[128]
128 character UTF-16 string
char16 TChar
UTF-16 character.
double ParamValue
parameter value type
int16 CtrlNumber
MIDI controller number (see ControllerNumbers for allowed values)
RestartFlags
Flags used for IComponentHandler::restartComponent.
@ kParamTitlesChanged
Parameter titles, default values or flags (ParameterFlags) have changed The host invalidates all cach...
@ kRoutingInfoChanged
RoutingInfo has changed The plug-in informs the host that its internal routing (relation of an event-...
@ kLatencyChanged
Latency has changed The plug informs the host that its latency has changed, getLatencySamples should ...
@ kNoteExpressionChanged
Note Expression has changed (info, count, PhysicalUIMapping, ...) Either the note expression type inf...
@ kMidiCCAssignmentChanged
MIDI Controllers and/or Program Changes Assignments have changed The plug-in informs the host that it...
@ kIoTitlesChanged
Input / Output bus titles have changed The host invalidates all caches of bus titles and asks the edi...
@ kIoChanged
Input / Output Bus configuration has changed The plug-in informs the host that either the bus configu...
@ kKeyswitchChanged
Key switches has changed (info, count) Either the Key switches info, the count of Key switches has ch...
@ kReloadComponent
The Component should be reloaded The host has to unload completely the plug-in (controller/processor)...
@ kParamValuesChanged
Multiple parameter values have changed (as result of a program change for example) The host invalidat...
@ kPrefetchableSupportChanged
Prefetch support has changed The plug-in informs the host that its PrefetchSupport has changed The ho...
int32 BusDirection
bus direction (in/out)
int32 UnitID
unit identifier
const char8 * CString
C-String.
int32 MediaType
media type (audio/event)
@ kCircularMode
Circular with jump to clicked position.
@ kLinearMode
Linear: depending on vertical movement.
@ kRelativCircularMode
Circular without jump to clicked position.
Controller Parameter Info.
int32 flags
ParameterFlags (see below)
ParamID id
unique identifier of this parameter (named tag too)
String128 title
parameter title (e.g. "Volume")
String128 units
parameter unit (e.g. "dB")
String128 shortTitle
parameter shortTitle (e.g. "Vol")
ParamValue defaultNormalizedValue
default normalized value [0,1] (in case of discrete value: defaultNormalizedValue = defDiscreteValue ...
int32 stepCount
number of discrete steps (0: continuous, 1: toggle, discrete value otherwise (corresponding to max - ...
UnitID unitId
id of unit this parameter belongs to (see vst3Units)
@ kIsList
parameter should be displayed as list in generic editor or automation editing [SDK 3....
@ kCanAutomate
parameter can be automated
@ kIsProgramChange
parameter is a program change (unitId gives info about associated unit
@ kIsReadOnly
parameter cannot be changed from outside the plug-in (implies that kCanAutomate is NOT set)
@ kIsBypass
special bypass parameter (only one allowed): plug-in can handle bypass (highly recommended to export ...
@ kIsWrapAround
attempts to set the parameter value out of the limits will result in a wrap around [SDK 3....
@ kIsHidden
parameter should be NOT displayed and cannot be changed from outside the plug-in (implies that kCanAu...
@ kNoFlags
no flags wanted