iPlug2 - C++ Audio Plug-in Framework
|
VST3 Controller API-base class for a distributed IPlug VST3 plug-in. More...
#include <IPlugVST3_Controller.h>
Classes | |
struct | InstanceInfo |
Public Types | |
using | ViewType = IPlugVST3View< IPlugVST3Controller > |
Public Member Functions | |
IPlugVST3Controller (const InstanceInfo &info, const Config &config) | |
Steinberg::tresult PLUGIN_API | initialize (Steinberg::FUnknown *context) override |
Steinberg::IPlugView *PLUGIN_API | createView (Steinberg::FIDString name) override |
Steinberg::tresult PLUGIN_API | setComponentState (Steinberg::IBStream *pState) override |
Steinberg::tresult PLUGIN_API | setState (Steinberg::IBStream *pState) override |
Steinberg::tresult PLUGIN_API | getState (Steinberg::IBStream *pState) override |
Steinberg::Vst::ParamValue PLUGIN_API | getParamNormalized (Steinberg::Vst::ParamID tag) override |
Steinberg::tresult PLUGIN_API | setParamNormalized (Steinberg::Vst::ParamID tag, Steinberg::Vst::ParamValue value) override |
Steinberg::tresult PLUGIN_API | notify (Steinberg::Vst::IMessage *message) override |
Steinberg::tresult PLUGIN_API | getMidiControllerAssignment (Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::Vst::CtrlNumber midiCCNumber, Steinberg::Vst::ParamID &tag) override |
Steinberg::tresult PLUGIN_API | getProgramName (Steinberg::Vst::ProgramListID listId, Steinberg::int32 programIndex, Steinberg::Vst::String128 name) override |
Steinberg::int32 PLUGIN_API | getProgramListCount () override |
Steinberg::tresult PLUGIN_API | getProgramListInfo (Steinberg::int32 listIndex, Steinberg::Vst::ProgramListInfo &info) override |
Steinberg::tresult PLUGIN_API | setChannelContextInfos (Steinberg::Vst::IAttributeList *list) override |
virtual void | GetTrackColor (int &r, int &g, int &b) override |
Get the color of the track that the plug-in is inserted on. | |
virtual void | GetTrackName (WDL_String &str) override |
Get the name of the track that the plug-in is inserted on. | |
virtual int | GetTrackIndex () override |
Get the index of the track that the plug-in is inserted on. | |
virtual void | GetTrackNamespace (WDL_String &str) override |
Get the namespace of the track that the plug-in is inserted on. | |
virtual int | GetTrackNamespaceIndex () override |
Get the namespace index of the track that the plug-in is inserted on. | |
DEFINE_INTERFACES void | BeginInformHostOfParamChange (int idx) override |
Implemented by the API class, called by the UI (or by a delegate) at the beginning of a parameter change gesture. More... | |
void | InformHostOfParamChange (int idx, double normalizedValue) override |
Implemented by the API class, called by the UI via SetParameterValue() with the value of a parameter change gesture. More... | |
void | EndInformHostOfParamChange (int idx) override |
Implemented by the API class, called by the UI (or by a delegate) at the end of a parameter change gesture. More... | |
void | InformHostOfPresetChange () override |
Implemented by the API class, called by the UI (etc) when the plug-in initiates a program/preset change (not applicable to all APIs) | |
bool | EditorResize (int viewWidth, int viewHeight) override |
Implementations call into the APIs resize hooks returns a bool to indicate whether the DAW or plugin class has resized the host window. | |
void | DirtyParametersFromUI () override |
In a distributed VST3 or WAM plugin, if you modify the parameters on the UI side (e.g. More... | |
void | SendMidiMsgFromUI (const IMidiMsg &msg) override |
void | SendSysexMsgFromUI (const ISysEx &msg) override |
void | SendArbitraryMsgFromUI (int msgTag, int ctrlTag=kNoTag, int dataSize=0, const void *pData=nullptr) override |
void | SendParameterValueFromUI (int paramIdx, double normalisedValue) override |
Steinberg::Vst::IComponentHandler * | GetComponentHandler () const |
ViewType * | GetView () const |
![]() | |
IPlugAPIBase (Config config, EAPI plugAPI) | |
IPlugAPIBase (const IPlugAPIBase &)=delete | |
IPlugAPIBase & | operator= (const IPlugAPIBase &)=delete |
virtual bool | CompareState (const uint8_t *pIncomingState, int startPos) const |
Override this method to implement a custom comparison of incoming state data with your plug-ins state data, in order to support the ProTools compare light when using custom state chunks. More... | |
virtual bool | OnHostRequestingAboutBox () |
virtual bool | OnHostRequestingProductHelp () |
virtual void | OnHostIdentified () |
Implement this to do something specific when IPlug becomes aware of the particular host that is hosting the plug-in. More... | |
virtual void | OnHostRequestingImportantParameters (int count, WDL_TypedBuf< int > &results) |
Called by AUv3 plug-ins to get the "overview parameters". More... | |
virtual bool | OnHostRequestingSupportedViewConfiguration (int width, int height) |
Called by AUv3 plug-in hosts to query support for multiple UI sizes. More... | |
virtual void | OnHostSelectedViewConfiguration (int width, int height) |
Called by some AUv3 plug-in hosts when a particular UI size is selected. More... | |
virtual bool | GetMidiNoteText (int noteNumber, char *str) const |
Override this method to provide custom text linked to MIDI note numbers in API classes that support that (VST2) Typically this might be used for a drum machine plug-in, in order to label a certainty "kick drum" etc. More... | |
virtual void * | GetAAXViewInterface () |
You need to implement this method if you are not using IGraphics and you want to support AAX's view interface functionality (special shortcuts to add automation for a parameter etc.) More... | |
virtual void | OnIdle () |
Override this method to get an "idle"" call on the main thread. | |
void | SetParameterValue (int paramIdx, double normalizedValue) |
SetParameterValue is called from the UI in the middle of a parameter change gesture (possibly via delegate) in order to update a parameter's value. More... | |
virtual void | SendParameterValueFromAPI (int paramIdx, double value, bool normalized) |
This is called from the plug-in API class in order to update UI controls linked to plug-in parameters, prior to calling OnParamChange() NOTE: It may be called on the high priority audio thread. More... | |
void | SetHost (const char *host, int version) |
Called to set the name of the current host, if known (calls on to HostSpecificInit() and OnHostIdentified()). More... | |
virtual void | HostSpecificInit () |
This method is implemented in some API classes, in order to do specific initialisation for particular problematic hosts. More... | |
void | BeginInformHostOfParamChangeFromUI (int paramIdx) override |
void | EndInformHostOfParamChangeFromUI (int paramIdx) override |
bool | EditorResizeFromUI (int viewWidth, int viewHeight, bool needsPlatformResize) override |
void | SendParameterValueFromUI (int paramIdx, double normalisedValue) override |
void | SendMidiMsgFromUI (const IMidiMsg &msg) override |
void | SendSysexMsgFromUI (const ISysEx &msg) override |
void | SendArbitraryMsgFromUI (int msgTag, int ctrlTag=kNoTag, int dataSize=0, const void *pData=nullptr) override |
void | DeferMidiMsg (const IMidiMsg &msg) override |
void | DeferSysexMsg (const ISysEx &msg) override |
void | CreateTimer () |
Called by the API class to create the timer that pumps the parameter/message queues. | |
![]() | |
IPluginBase (int nParams, int nPresets) | |
IPluginBase (const IPluginBase &)=delete | |
IPluginBase & | operator= (const IPluginBase &)=delete |
const char * | GetPluginName () const |
int | GetPluginVersion (bool decimal) const |
Get the plug-in version number. More... | |
void | GetPluginVersionStr (WDL_String &str) const |
Gets the plug-in version as a string. More... | |
const char * | GetMfrName () const |
Get the manufacturer name as a CString. | |
const char * | GetProductName () const |
Get the product name as a CString. More... | |
int | GetUniqueID () const |
int | GetMfrID () const |
EHost | GetHost () const |
void | GetHostStr (WDL_String &str) const |
Get the host name as a CString. More... | |
int | GetHostVersion (bool decimal) const |
Get the host version number as an integer. More... | |
void | GetHostVersionStr (WDL_String &str) const |
Get the host version number as a string. More... | |
EAPI | GetAPI () const |
const char * | GetAPIStr () const |
const char * | GetArchStr () const |
void | GetBuildInfoStr (WDL_String &str, const char *date, const char *time) const |
Get the build date of the plug-in and architecture/api details in one string. More... | |
bool | HasUI () const |
bool | GetHostResizeEnabled () const |
const char * | GetBundleID () const |
int | NParamGroups () const |
int | AddParamGroup (const char *name) |
Called to add a parameter group name, when a unique group name is discovered. More... | |
const char * | GetParamGroupName (int idx) const |
Get the parameter group name as a particular index. More... | |
virtual void | InformHostOfParameterDetailsChange () |
Implemented by the API class, call this if you update parameter labels and hopefully the host should update it's displays (not applicable to all APIs) | |
bool | DoesStateChunks () const |
bool | SerializeParams (IByteChunk &chunk) const |
Serializes the current double precision floating point, non-normalised values (IParam::mValue) of all parameters, into a binary byte chunk. More... | |
int | UnserializeParams (const IByteChunk &chunk, int startPos) |
Unserializes double precision floating point, non-normalised values from a byte chunk into mParams. More... | |
virtual bool | SerializeState (IByteChunk &chunk) const |
Override this method to serialize custom state data, if your plugin does state chunks. More... | |
virtual int | UnserializeState (const IByteChunk &chunk, int startPos) |
Override this method to unserialize custom state data, if your plugin does state chunks. More... | |
virtual bool | SerializeVST3CtrlrState (IByteChunk &chunk) const |
VST3 ONLY! - THIS IS ONLY INCLUDED FOR COMPATIBILITY - NOONE ELSE SHOULD NEED IT! More... | |
virtual int | UnserializeVST3CtrlrState (const IByteChunk &chunk, int startPos) |
VST3 ONLY! - THIS IS ONLY INCLUDED FOR COMPATIBILITY - NOONE ELSE SHOULD NEED IT! More... | |
int | GetCurrentPresetIdx () const |
Get the index of the current, active preset. More... | |
void | SetCurrentPresetIdx (int idx) |
Set the index of the current, active preset. More... | |
IPreset * | GetPreset (int idx) |
Get a ptr to a factory preset @ param idx The index number of the preset you are referring to. | |
void | ModifyCurrentPreset (const char *name=0) |
This method should update the current preset with current values NOTE: This is only relevant for VST2 plug-ins, which is the only format to have the notion of banks? More... | |
int | NPresets () const |
Gets the number of factory presets. More... | |
bool | RestorePreset (int idx) |
Restore a preset by index. More... | |
bool | RestorePreset (const char *name) |
Restore a preset by name. More... | |
const char * | GetPresetName (int idx) const |
Get the name a preset. More... | |
void | CopyPreset (IPreset *pSrc, int destIdx, bool copyname=false) |
Copy source preset to preset at index. More... | |
void | MakeDefaultPreset (const char *name=0, int nPresets=1) |
This method can be used to initialize baked-in factory presets with the default parameter values. More... | |
void | MakePreset (const char *name,...) |
Create a baked-in factory preset, specifiying parameter values sequentially usage: MakePreset(name, param1, param2, ..., paramN) See DumpMakePresetSrc() which is a utility that can be used to create the code for MakePreset() calls. More... | |
void | MakePresetFromNamedParams (const char *name, int nParamsNamed,...) |
Create a baked-in factory preset, specifiying parameter values with a list of parameter index and value pairs usage: MakePresetFromNamedParams(name, nParamsNamed, paramEnum1, paramVal1, paramEnum2, paramVal2, ..., paramEnumN, paramVal2) See DumpMakePresetFromNamedParamsSrc() which is a utility that can be used to create the code for MakePreset() calls nParamsNamed may be less than the total number of params. More... | |
void | MakePresetFromChunk (const char *name, IByteChunk &chunk) |
Creates a preset from an IByteChunk containging serialized data. More... | |
void | MakePresetFromBlob (const char *name, const char *blob, int sizeOfChunk) |
Creates a preset from a base64 encoded CString. More... | |
void | PruneUninitializedPresets () |
[AUV2 only] Removes any presets that weren't initialized | |
virtual void | OnPresetsModified () |
[VST2 only] Called when the preset name is changed by the host | |
void | EnsureDefaultPreset () |
[VST2 only] Called to fill uninitialzed presets | |
bool | SerializePresets (IByteChunk &chunk) const |
[VST2 only] Called when the VST2 host calls effGetChunk for a bank * More... | |
int | UnserializePresets (const IByteChunk &chunk, int startPos) |
[VST2 only] Called when the VST2 host calls effSetChunk for a bank * More... | |
void | DumpMakePresetSrc (const char *file) const |
Writes a call to MakePreset() for the current preset to a new text file. More... | |
void | DumpMakePresetFromNamedParamsSrc (const char *file, const char *paramEnumNames[]) const |
Writes a call to MakePresetFromNamedParams() for the current preset to a new text file. More... | |
void | DumpPresetBlob (const char *file) const |
Writes a call to MakePresetFromBlob() for the current preset to a new text file. More... | |
bool | SavePresetAsFXP (const char *file) const |
Save current state as a VST2 format preset. More... | |
bool | SaveBankAsFXB (const char *file) const |
Save current bank as a VST2 format bank [VST2 only]. More... | |
bool | LoadPresetFromFXP (const char *file) |
Load VST2 format preset. More... | |
bool | LoadBankFromFXB (const char *file) |
Load VST2 format bank [VST2 only]. More... | |
void | InitParamRange (int startIdx, int endIdx, int countStart, const char *nameFmtStr, double defaultVal, double minVal, double maxVal, double step, const char *label="", int flags=0, const char *group="", const IParam::Shape &shape=IParam::ShapeLinear(), IParam::EParamUnit unit=IParam::kUnitCustom, IParam::DisplayFunc displayFunc=nullptr) |
Initialise a range of parameters simultaneously. More... | |
void | CloneParamRange (int cloneStartIdx, int cloneEndIdx, int startIdx, const char *searchStr="", const char *replaceStr="", const char *newGroup="") |
Clone a range of parameters, optionally doing a string substitution on the parameter name. More... | |
void | ForParamInRange (int startIdx, int endIdx, std::function< void(int paramIdx, IParam ¶m)> func) |
Modify a range of parameters with a lamda function. More... | |
void | ForParamInGroup (const char *paramGroup, std::function< void(int paramIdx, IParam ¶m)> func) |
Modify a parameter group simulataneously. More... | |
void | CopyParamValues (int startIdx, int destIdx, int nParams) |
Copy a range of parameter values. More... | |
void | CopyParamValues (const char *inGroup, const char *outGroup) |
Copy a range of parameter values for a parameter group. More... | |
void | RandomiseParamValues () |
Randomise all parameters. | |
void | RandomiseParamValues (int startIdx, int endIdx) |
Randomise parameter values within a range. More... | |
void | RandomiseParamValues (const char *paramGroup) |
Randomise parameter values for a parameter group. More... | |
void | DefaultParamValues () |
Set all parameters to their default values. | |
void | DefaultParamValues (int startIdx, int endIdx) |
Default parameter values within a range. More... | |
void | DefaultParamValues (const char *paramGroup) |
Default parameter values for a parameter group. More... | |
void | PrintParamValues () |
Default parameter values for a parameter group. | |
![]() | |
IPlugVST3ControllerBase (Steinberg::Vst::ParameterContainer ¶meters) | |
IPlugVST3ControllerBase (const IPlugVST3ControllerBase &)=delete | |
IPlugVST3ControllerBase & | operator= (const IPlugVST3ControllerBase &)=delete |
void | Initialize (IPlugAPIBase *pPlug, bool plugIsInstrument, bool midiIn) |
Steinberg::tresult PLUGIN_API | GetProgramName (IPlugAPIBase *pPlug, Steinberg::Vst::ProgramListID listId, Steinberg::int32 programIndex, Steinberg::Vst::String128 name) |
Steinberg::int32 PLUGIN_API | GetProgramListCount (IPlugAPIBase *pPlug) |
Steinberg::tresult PLUGIN_API | GetProgramListInfo (IPlugAPIBase *pPlug, Steinberg::int32 listIndex, Steinberg::Vst::ProgramListInfo &info) |
Steinberg::Vst::ParamValue | GetParamNormalized (Steinberg::Vst::ParamID tag) |
bool | SetParamNormalized (IPlugAPIBase *pPlug, Steinberg::Vst::ParamID tag, Steinberg::Vst::ParamValue value) |
bool | SetChannelContextInfos (Steinberg::Vst::IAttributeList *pList) |
void | UpdateParams (IPlugAPIBase *pPlug, int savedBypass) |
Additional Inherited Members | |
![]() | |
Steinberg::Vst::ParameterContainer & | mParameters |
IPlugVST3BypassParameter * | mBypassParameter = nullptr |
WDL_String | mChannelName |
WDL_String | mChannelNamespace |
WDL_String | mChannelUID |
int | mChannelNamespaceIndex = 0 |
int | mChannelIndex = 0 |
unsigned int | mChannelColor = 0 |
![]() | |
bool | SetVST3ParamNormalized (Steinberg::Vst::ParamID tag, Steinberg::Vst::ParamValue value) |
VST3 Controller API-base class for a distributed IPlug VST3 plug-in.
Definition at line 34 of file IPlugVST3_Controller.h.
|
inlineoverridevirtual |
Implemented by the API class, called by the UI (or by a delegate) at the beginning of a parameter change gesture.
paramIdx | The parameter that is being changed |
Reimplemented from IPlugAPIBase.
Definition at line 109 of file IPlugVST3_Controller.h.
|
overridevirtual |
In a distributed VST3 or WAM plugin, if you modify the parameters on the UI side (e.g.
recall preset in custom preset browser), you can call this to update the parameters on the DSP side
Reimplemented from IPlugAPIBase.
Definition at line 148 of file IPlugVST3_Controller.cpp.
References IPlugAPIBase::DirtyParametersFromUI().
Referenced by InformHostOfPresetChange().
|
inlineoverridevirtual |
Implemented by the API class, called by the UI (or by a delegate) at the end of a parameter change gesture.
paramIdx | The parameter that is being changed |
Reimplemented from IPlugAPIBase.
Definition at line 111 of file IPlugVST3_Controller.h.
|
inlineoverridevirtual |
Implemented by the API class, called by the UI via SetParameterValue() with the value of a parameter change gesture.
paramIdx | The parameter that is being changed |
normalizedValue | The new normalised value of the parameter being changed |
Reimplemented from IPlugAPIBase.
Definition at line 110 of file IPlugVST3_Controller.h.