iPlug2 - C++ Audio Plug-in Framework
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
IPlugVST3 Class Reference

VST3 base class for a non-distributed IPlug VST3 plug-in. More...

#include <IPlugVST3.h>

Inheritance diagram for IPlugVST3:
[legend]

Public Types

using ViewType = IPlugVST3View< IPlugVST3 >
 

Public Member Functions

 IPlugVST3 (const InstanceInfo &info, const Config &config)
 
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) More...
 
void InformHostOfParameterDetailsChange () override
 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) More...
 
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. More...
 
void DirtyParametersFromUI () override
 In a distributed VST3 or WAM plugin, if you modify the parameters on the UI side (e.g. More...
 
void SendParameterValueFromUI (int paramIdx, double normalisedValue) override
 
void SetLatency (int samples) override
 Call this if the latency of your plug-in changes after initialization (perhaps from OnReset() ) This may not be supported by the host. More...
 
Steinberg::tresult PLUGIN_API initialize (FUnknown *context) override
 
Steinberg::tresult PLUGIN_API terminate () override
 
Steinberg::tresult PLUGIN_API setBusArrangements (Steinberg::Vst::SpeakerArrangement *pInputs, Steinberg::int32 numIns, Steinberg::Vst::SpeakerArrangement *pOutputs, Steinberg::int32 numOuts) override
 
Steinberg::tresult PLUGIN_API setActive (Steinberg::TBool state) override
 
Steinberg::tresult PLUGIN_API setupProcessing (Steinberg::Vst::ProcessSetup &newSetup) override
 
Steinberg::tresult PLUGIN_API setProcessing (Steinberg::TBool state) override
 
Steinberg::tresult PLUGIN_API process (Steinberg::Vst::ProcessData &data) override
 
Steinberg::tresult PLUGIN_API canProcessSampleSize (Steinberg::int32 symbolicSampleSize) override
 
Steinberg::uint32 PLUGIN_API getLatencySamples () override
 
Steinberg::uint32 PLUGIN_API getTailSamples () 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::IPlugView *PLUGIN_API createView (const char *name) override
 
Steinberg::tresult PLUGIN_API setEditorState (Steinberg::IBStream *pState) override
 
Steinberg::tresult PLUGIN_API getEditorState (Steinberg::IBStream *pState) override
 
Steinberg::tresult PLUGIN_API setComponentState (Steinberg::IBStream *state) 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
 
void GetTrackColor (int &r, int &g, int &b) override
 Get the color of the track that the plug-in is inserted on. More...
 
void GetTrackName (WDL_String &str) override
 Get the name of the track that the plug-in is inserted on. More...
 
int GetTrackIndex () override
 Get the index of the track that the plug-in is inserted on. More...
 
void GetTrackNamespace (WDL_String &str) override
 Get the namespace of the track that the plug-in is inserted on. More...
 
int GetTrackNamespaceIndex () override
 Get the namespace index of the track that the plug-in is inserted on. More...
 
Steinberg::Vst::IComponentHandler * GetComponentHandler ()
 
ViewType * GetView ()
 
Steinberg::Vst::AudioBus * getAudioInput (Steinberg::int32 index)
 
Steinberg::Vst::AudioBus * getAudioOutput (Steinberg::int32 index)
 
void removeAudioInputBus (Steinberg::Vst::AudioBus *pBus)
 
void removeAudioOutputBus (Steinberg::Vst::AudioBus *pBus)
 
- Public Member Functions inherited from IPlugAPIBase
 IPlugAPIBase (Config config, EAPI plugAPI)
 
 IPlugAPIBase (const IPlugAPIBase &)=delete
 
IPlugAPIBaseoperator= (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. More...
 
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 GetTrackColor (int &r, int &g, int &b)
 Get the color of the track that the plug-in is inserted on. More...
 
virtual void GetTrackName (WDL_String &str)
 Get the name of the track that the plug-in is inserted on. More...
 
virtual int GetTrackIndex ()
 Get the index of the track that the plug-in is inserted on. More...
 
virtual void GetTrackNamespace (WDL_String &str)
 Get the namespace of the track that the plug-in is inserted on. More...
 
virtual int GetTrackNamespaceIndex ()
 Get the namespace index of the track that the plug-in is inserted on. More...
 
virtual void DirtyParametersFromUI () override
 In a distributed VST3 or WAM plugin, if you modify the parameters on the UI side (e.g. 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. More...
 
- Public Member Functions inherited from IPluginBase
 IPluginBase (int nParams, int nPresets)
 
 IPluginBase (const IPluginBase &)=delete
 
IPluginBaseoperator= (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. More...
 
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
 
const char * GetAppGroupID () 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) More...
 
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...
 
virtual void InformHostOfPresetChange ()
 Implemented by the API class, called by the UI (etc) when the plug-in initiates a program/preset change (not applicable to all APIs) More...
 
IPresetGetPreset (int idx)
 Get a ptr to a factory preset @ param idx The index number of the preset you are referring to. More...
 
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 More...
 
virtual void OnPresetsModified ()
 [VST2 only] Called when the preset name is changed by the host More...
 
void EnsureDefaultPreset ()
 [VST2 only] Called to fill uninitialzed presets More...
 
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 &param)> func)
 Modify a range of parameters with a lamda function. More...
 
void ForParamInGroup (const char *paramGroup, std::function< void(int paramIdx, IParam &param)> 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. More...
 
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. More...
 
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
More...
 
- Public Member Functions inherited from IPlugVST3ProcessorBase
 IPlugVST3ProcessorBase (Config c, IPlugAPIBase &plug)
 
template<class T >
void Initialize (T *pPlug)
 
void ProcessMidiIn (Steinberg::Vst::IEventList *pEventList, IPlugQueue< IMidiMsg > &editorQueue, IPlugQueue< IMidiMsg > &processorQueue)
 
void ProcessMidiOut (IPlugQueue< SysExData > &sysExQueue, SysExData &sysExBuf, Steinberg::Vst::IEventList *pOutputEvents, Steinberg::int32 numSamples)
 
template<class T >
bool SetBusArrangements (T *pPlug, Steinberg::Vst::SpeakerArrangement *pInputBusArrangements, Steinberg::int32 numInBuses, Steinberg::Vst::SpeakerArrangement *pOutputBusArrangements, Steinberg::int32 numOutBuses)
 
void AttachBuffers (ERoute direction, int idx, int n, Steinberg::Vst::AudioBusBuffers &pBus, int nFrames, Steinberg::int32 sampleSize)
 
bool SetupProcessing (const Steinberg::Vst::ProcessSetup &setup, Steinberg::Vst::ProcessSetup &storedSetup)
 
bool CanProcessSampleSize (Steinberg::int32 symbolicSampleSize)
 
bool SetProcessing (bool state)
 
void PrepareProcessContext (Steinberg::Vst::ProcessData &data, Steinberg::Vst::ProcessSetup &setup)
 
void ProcessParameterChanges (Steinberg::Vst::ProcessData &data, IPlugQueue< IMidiMsg > &fromProcessor)
 
void ProcessAudio (Steinberg::Vst::ProcessData &data, Steinberg::Vst::ProcessSetup &setup, const Steinberg::Vst::BusList &ins, const Steinberg::Vst::BusList &outs)
 
void Process (Steinberg::Vst::ProcessData &data, Steinberg::Vst::ProcessSetup &setup, const Steinberg::Vst::BusList &ins, const Steinberg::Vst::BusList &outs, IPlugQueue< IMidiMsg > &fromEditor, IPlugQueue< IMidiMsg > &fromProcessor, IPlugQueue< SysExData > &sysExFromEditor, SysExData &sysExBuf)
 
bool SendMidiMsg (const IMidiMsg &msg) override
 Send a single MIDI message // TODO: info about what thread should this be called on or not called on! More...
 
- Public Member Functions inherited from IPlugProcessor
 IPlugProcessor (const Config &config, EAPI plugAPI)
 IPlugProcessor constructor. More...
 
 IPlugProcessor (const IPlugProcessor &)=delete
 
IPlugProcessoroperator= (const IPlugProcessor &)=delete
 
virtual void ProcessBlock (sample **inputs, sample **outputs, int nFrames)
 Override in your plug-in class to process audio In ProcessBlock you are always guaranteed to get valid pointers to all the channels the plugin requested (the maximum possible input channel count and the maximum possible output channel count including multiple buses). More...
 
virtual void ProcessMidiMsg (const IMidiMsg &msg)
 Override this method to handle incoming MIDI messages. More...
 
virtual void ProcessSysEx (ISysEx &msg)
 Override this method to handle incoming MIDI System Exclusive (SysEx) messages. More...
 
virtual void OnReset ()
 Override this method in your plug-in class to do something prior to playback etc. More...
 
virtual void OnActivate (bool active)
 Override OnActivate() which should be called by the API class when a plug-in is "switched on" by the host on a track when the channel count is known. More...
 
virtual bool SendMidiMsg (const IMidiMsg &msg)=0
 Send a single MIDI message // TODO: info about what thread should this be called on or not called on! More...
 
virtual bool SendMidiMsgs (WDL_TypedBuf< IMidiMsg > &msgs)
 Send a collection of MIDI messages // TODO: info about what thread should this be called on or not called on! More...
 
virtual bool SendSysEx (const ISysEx &msg)
 Send a single MIDI System Exclusive (SysEx) message // TODO: info about what thread should this be called on or not called on! More...
 
double GetSampleRate () const
 
int GetBlockSize () const
 
int GetLatency () const
 
int GetTailSize ()
 
bool GetBypassed () const
 
bool GetRenderingOffline () const
 
double GetSamplePos () const
 
double GetTempo () const
 
double GetPPQPos () const
 
bool GetTransportIsRunning () const
 
double GetSamplesPerBeat () const
 
void GetTimeSig (int &numerator, int &denominator) const
 
virtual void GetBusName (ERoute direction, int busIdx, int nBuses, WDL_String &str) const
 Get the name for a particular bus. More...
 
int NIOConfigs () const
 
const IOConfigGetIOConfig (int idx) const
 
int GetIOConfigWithChanCounts (std::vector< int > &inputBuses, std::vector< int > &outputBuses)
 
int MaxNBuses (ERoute direction, int *pConfigIdxWithTheMostBuses=nullptr) const
 Used to determine the maximum number of input or output buses based on what was specified in the channel I/O config string. More...
 
int MaxNChannelsForBus (ERoute direction, int busIdx) const
 For a given input or output bus what is the maximum possible number of channels. More...
 
bool HasWildcardBus (ERoute direction) const
 Check if we have any wildcard characters in the channel I/O configs. More...
 
int MaxNChannels (ERoute direction) const
 
bool IsChannelConnected (ERoute direction, int chIdx) const
 
int NChannelsConnected (ERoute direction) const
 
int NInChansConnected () const
 Convenience method to find out how many input channels are connected. More...
 
int NOutChansConnected () const
 Convenience method to find out how many output channels are connected. More...
 
bool LegalIO (int NInputChans, int NOutputChans) const
 Check if a certain configuration of input channels and output channels is allowed based on the channel I/O configs. More...
 
bool HasSidechainInput () const
 
void LimitToStereoIO ()
 This is called by IPlugVST in order to limit a plug-in to stereo I/O for certain picky hosts. More...
 
bool IsInstrument () const
 
bool IsMidiEffect () const
 
int GetAUPluginType () const
 
bool DoesMIDIIn () const
 
bool DoesMIDIOut () const
 
bool DoesMPE () const
 
void SetChannelLabel (ERoute direction, int idx, const char *formatStr, bool zeroBased=false)
 This allows you to label input/output channels in supporting VST2 hosts. More...
 
virtual void SetLatency (int latency)
 Call this if the latency of your plug-in changes after initialization (perhaps from OnReset() ) This may not be supported by the host. More...
 
void SetTailSize (int tailSize)
 Call this method if you need to update the tail size at runtime, for example if the decay time of your reverb effect changes Some apis have special interpretations of certain numbers. More...
 
- Public Member Functions inherited from IPlugVST3ControllerBase
 IPlugVST3ControllerBase (Steinberg::Vst::ParameterContainer &parameters)
 
 IPlugVST3ControllerBase (const IPlugVST3ControllerBase &)=delete
 
IPlugVST3ControllerBaseoperator= (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

- Static Public Member Functions inherited from IPlugProcessor
static int ParseChannelIOStr (const char *IOStr, WDL_PtrList< IOConfig > &channelIOList, int &totalNInChans, int &totalNOutChans, int &totalNInBuses, int &totalNOutBuses)
 A static method to parse the config.h channel I/O string. More...
 
- Public Attributes inherited from IPlugVST3ControllerBase
Steinberg::Vst::ParameterContainer & mParameters
 
IPlugVST3BypassParametermBypassParameter = nullptr
 
WDL_String mChannelName
 
WDL_String mChannelNamespace
 
WDL_String mChannelUID
 
int mChannelNamespaceIndex = 0
 
int mChannelIndex = 0
 
unsigned int mChannelColor = 0
 
- Protected Member Functions inherited from IPlugProcessor
void SetChannelConnections (ERoute direction, int idx, int n, bool connected)
 
void InitLatencyDelay ()
 
void AttachBuffers (ERoute direction, int idx, int n, PLUG_SAMPLE_DST **ppData, int nFrames)
 
void AttachBuffers (ERoute direction, int idx, int n, PLUG_SAMPLE_SRC **ppData, int nFrames)
 
void PassThroughBuffers (PLUG_SAMPLE_SRC type, int nFrames)
 
void PassThroughBuffers (PLUG_SAMPLE_DST type, int nFrames)
 
void ProcessBuffers (PLUG_SAMPLE_SRC type, int nFrames)
 
void ProcessBuffers (PLUG_SAMPLE_DST type, int nFrames)
 
void ProcessBuffersAccumulating (int nFrames)
 
void ZeroScratchBuffers ()
 
void SetSampleRate (double sampleRate)
 
void SetBlockSize (int blockSize)
 
void SetBypassed (bool bypassed)
 
void SetTimeInfo (const ITimeInfo &timeInfo)
 
void SetRenderingOffline (bool renderingOffline)
 
const WDL_String & GetChannelLabel (ERoute direction, int idx)
 
- Protected Member Functions inherited from IPlugVST3ControllerBase
bool SetVST3ParamNormalized (Steinberg::Vst::ParamID tag, Steinberg::Vst::ParamValue value)
 
- Protected Attributes inherited from IPlugProcessor
ITimeInfo mTimeInfo
 Contains detailed information about the transport state. More...
 

Detailed Description

VST3 base class for a non-distributed IPlug VST3 plug-in.

Definition at line 45 of file IPlugVST3.h.

Member Typedef Documentation

◆ ViewType

using IPlugVST3::ViewType = IPlugVST3View<IPlugVST3>

Definition at line 53 of file IPlugVST3.h.

Constructor & Destructor Documentation

◆ IPlugVST3()

IPlugVST3::IPlugVST3 ( const InstanceInfo &  info,
const Config &  config 
)

Definition at line 29 of file IPlugVST3.cpp.

◆ ~IPlugVST3()

IPlugVST3::~IPlugVST3 ( )

Definition at line 38 of file IPlugVST3.cpp.

Member Function Documentation

◆ BeginInformHostOfParamChange()

void IPlugVST3::BeginInformHostOfParamChange ( int  paramIdx)
overridevirtual

Implemented by the API class, called by the UI (or by a delegate) at the beginning of a parameter change gesture.

Parameters
paramIdxThe parameter that is being changed

Reimplemented from IPlugAPIBase.

Definition at line 189 of file IPlugVST3.cpp.

◆ canProcessSampleSize()

tresult PLUGIN_API IPlugVST3::canProcessSampleSize ( Steinberg::int32  symbolicSampleSize)
override

Definition at line 105 of file IPlugVST3.cpp.

◆ createView()

IPlugView *PLUGIN_API IPlugVST3::createView ( const char *  name)
override

Definition at line 138 of file IPlugVST3.cpp.

◆ DirtyParametersFromUI()

void IPlugVST3::DirtyParametersFromUI ( )
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 228 of file IPlugVST3.cpp.

References IPlugAPIBase::DirtyParametersFromUI().

◆ EditorResize()

bool IPlugVST3::EditorResize ( int  width,
int  height 
)
overridevirtual

Implementations call into the APIs resize hooks returns a bool to indicate whether the DAW or plugin class has resized the host window.

Reimplemented from IPlugAPIBase.

Definition at line 213 of file IPlugVST3.cpp.

References IPluginBase::HasUI().

◆ EndInformHostOfParamChange()

void IPlugVST3::EndInformHostOfParamChange ( int  paramIdx)
overridevirtual

Implemented by the API class, called by the UI (or by a delegate) at the end of a parameter change gesture.

Parameters
paramIdxThe parameter that is being changed

Reimplemented from IPlugAPIBase.

Definition at line 201 of file IPlugVST3.cpp.

◆ getAudioInput()

Steinberg::Vst::AudioBus * IPlugVST3::getAudioInput ( Steinberg::int32  index)
inline

Definition at line 135 of file IPlugVST3.h.

◆ getAudioOutput()

Steinberg::Vst::AudioBus * IPlugVST3::getAudioOutput ( Steinberg::int32  index)
inline

Definition at line 143 of file IPlugVST3.h.

◆ GetComponentHandler()

Steinberg::Vst::IComponentHandler * IPlugVST3::GetComponentHandler ( )
inline

Definition at line 132 of file IPlugVST3.h.

◆ getEditorState()

tresult PLUGIN_API IPlugVST3::getEditorState ( Steinberg::IBStream *  pState)
override

Definition at line 155 of file IPlugVST3.cpp.

◆ getLatencySamples()

Steinberg::uint32 PLUGIN_API IPlugVST3::getLatencySamples ( )
inlineoverride

Definition at line 82 of file IPlugVST3.h.

◆ getMidiControllerAssignment()

tresult PLUGIN_API IPlugVST3::getMidiControllerAssignment ( Steinberg::int32  busIndex,
Steinberg::int16  channel,
Steinberg::Vst::CtrlNumber  midiCCNumber,
Steinberg::Vst::ParamID &  tag 
)
override

Definition at line 169 of file IPlugVST3.cpp.

◆ getParamNormalized()

ParamValue PLUGIN_API IPlugVST3::getParamNormalized ( Steinberg::Vst::ParamID  tag)
override

Definition at line 125 of file IPlugVST3.cpp.

◆ getProgramListCount()

Steinberg::int32 PLUGIN_API IPlugVST3::getProgramListCount ( )
inlineoverride

Definition at line 104 of file IPlugVST3.h.

◆ getProgramListInfo()

Steinberg::tresult PLUGIN_API IPlugVST3::getProgramListInfo ( Steinberg::int32  listIndex,
Steinberg::Vst::ProgramListInfo &  info 
)
inlineoverride

Definition at line 109 of file IPlugVST3.h.

◆ getProgramName()

Steinberg::tresult PLUGIN_API IPlugVST3::getProgramName ( Steinberg::Vst::ProgramListID  listId,
Steinberg::int32  programIndex,
Steinberg::Vst::String128  name 
)
inlineoverride

Definition at line 99 of file IPlugVST3.h.

◆ getState()

tresult PLUGIN_API IPlugVST3::getState ( Steinberg::IBStream *  pState)
override

Definition at line 117 of file IPlugVST3.cpp.

◆ getTailSamples()

Steinberg::uint32 PLUGIN_API IPlugVST3::getTailSamples ( )
inlineoverride

Definition at line 83 of file IPlugVST3.h.

◆ GetTrackColor()

void IPlugVST3::GetTrackColor ( int &  r,
int &  g,
int &  b 
)
inlineoverridevirtual

Get the color of the track that the plug-in is inserted on.

Reimplemented from IPlugAPIBase.

Definition at line 118 of file IPlugVST3.h.

◆ GetTrackIndex()

int IPlugVST3::GetTrackIndex ( )
inlineoverridevirtual

Get the index of the track that the plug-in is inserted on.

Reimplemented from IPlugAPIBase.

Definition at line 124 of file IPlugVST3.h.

◆ GetTrackName()

void IPlugVST3::GetTrackName ( WDL_String &  str)
inlineoverridevirtual

Get the name of the track that the plug-in is inserted on.

Reimplemented from IPlugAPIBase.

Definition at line 121 of file IPlugVST3.h.

◆ GetTrackNamespace()

void IPlugVST3::GetTrackNamespace ( WDL_String &  str)
inlineoverridevirtual

Get the namespace of the track that the plug-in is inserted on.

Reimplemented from IPlugAPIBase.

Definition at line 127 of file IPlugVST3.h.

◆ GetTrackNamespaceIndex()

int IPlugVST3::GetTrackNamespaceIndex ( )
inlineoverridevirtual

Get the namespace index of the track that the plug-in is inserted on.

Reimplemented from IPlugAPIBase.

Definition at line 130 of file IPlugVST3.h.

◆ GetView()

ViewType * IPlugVST3::GetView ( )
inline

Definition at line 133 of file IPlugVST3.h.

◆ InformHostOfParamChange()

void IPlugVST3::InformHostOfParamChange ( int  paramIdx,
double  normalizedValue 
)
overridevirtual

Implemented by the API class, called by the UI via SetParameterValue() with the value of a parameter change gesture.

Parameters
paramIdxThe parameter that is being changed
normalizedValueThe new normalised value of the parameter being changed

Reimplemented from IPlugAPIBase.

Definition at line 195 of file IPlugVST3.cpp.

◆ InformHostOfParameterDetailsChange()

void IPlugVST3::InformHostOfParameterDetailsChange ( )
overridevirtual

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)

Reimplemented from IPluginBase.

Definition at line 207 of file IPlugVST3.cpp.

◆ InformHostOfPresetChange()

void IPlugVST3::InformHostOfPresetChange ( )
inlineoverridevirtual

Implemented by the API class, called by the UI (etc) when the plug-in initiates a program/preset change (not applicable to all APIs)

Reimplemented from IPluginBase.

Definition at line 62 of file IPlugVST3.h.

◆ initialize()

tresult PLUGIN_API IPlugVST3::initialize ( FUnknown *  context)
override

Definition at line 42 of file IPlugVST3.cpp.

◆ process()

tresult PLUGIN_API IPlugVST3::process ( Steinberg::Vst::ProcessData &  data)
override

Definition at line 97 of file IPlugVST3.cpp.

◆ removeAudioInputBus()

void IPlugVST3::removeAudioInputBus ( Steinberg::Vst::AudioBus *  pBus)
inline

Definition at line 151 of file IPlugVST3.h.

◆ removeAudioOutputBus()

void IPlugVST3::removeAudioOutputBus ( Steinberg::Vst::AudioBus *  pBus)
inline

Definition at line 156 of file IPlugVST3.h.

◆ SendParameterValueFromUI()

void IPlugVST3::SendParameterValueFromUI ( int  paramIdx,
double  normalisedValue 
)
override

Definition at line 238 of file IPlugVST3.cpp.

◆ setActive()

tresult PLUGIN_API IPlugVST3::setActive ( Steinberg::TBool  state)
override

Definition at line 75 of file IPlugVST3.cpp.

◆ setBusArrangements()

tresult PLUGIN_API IPlugVST3::setBusArrangements ( Steinberg::Vst::SpeakerArrangement *  pInputs,
Steinberg::int32  numIns,
Steinberg::Vst::SpeakerArrangement *  pOutputs,
Steinberg::int32  numOuts 
)
override

Definition at line 68 of file IPlugVST3.cpp.

◆ setChannelContextInfos()

Steinberg::tresult PLUGIN_API IPlugVST3::setChannelContextInfos ( Steinberg::Vst::IAttributeList *  list)
override

Definition at line 182 of file IPlugVST3.cpp.

◆ setComponentState()

tresult PLUGIN_API IPlugVST3::setComponentState ( Steinberg::IBStream *  state)
override

Definition at line 161 of file IPlugVST3.cpp.

◆ setEditorState()

tresult PLUGIN_API IPlugVST3::setEditorState ( Steinberg::IBStream *  pState)
override

Definition at line 149 of file IPlugVST3.cpp.

◆ SetLatency()

void IPlugVST3::SetLatency ( int  latency)
overridevirtual

Call this if the latency of your plug-in changes after initialization (perhaps from OnReset() ) This may not be supported by the host.

The method is virtual because it's overridden in API classes.

Parameters
latencyLatency in samples

Reimplemented from IPlugProcessor.

Definition at line 244 of file IPlugVST3.cpp.

References IPlugProcessor::SetLatency().

◆ setParamNormalized()

tresult PLUGIN_API IPlugVST3::setParamNormalized ( Steinberg::Vst::ParamID  tag,
Steinberg::Vst::ParamValue  value 
)
override

Definition at line 130 of file IPlugVST3.cpp.

◆ setProcessing()

tresult PLUGIN_API IPlugVST3::setProcessing ( Steinberg::TBool  state)
override

Definition at line 90 of file IPlugVST3.cpp.

◆ setState()

tresult PLUGIN_API IPlugVST3::setState ( Steinberg::IBStream *  pState)
override

Definition at line 110 of file IPlugVST3.cpp.

◆ setupProcessing()

tresult PLUGIN_API IPlugVST3::setupProcessing ( Steinberg::Vst::ProcessSetup &  newSetup)
override

Definition at line 83 of file IPlugVST3.cpp.

◆ terminate()

tresult PLUGIN_API IPlugVST3::terminate ( )
override

Definition at line 61 of file IPlugVST3.cpp.


The documentation for this class was generated from the following files: