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

Reaper specific VST2.4 API base class for an IPlug plug-in. More...

#include <IPlugReaperVST2.h>

Inheritance diagram for IPlugReaperVST2:
[legend]

Public Member Functions

 IPlugReaperVST2 (const InstanceInfo &info, const Config &config)
 
void CreateParameterPopup (void *pView, int xpos, int ypos)
 Pop up Reaper's "Last touched FX" dialog, in order to set envelopes etc for the last touched parameter. More...
 
void SetTrackVolume (double gain)
 
void GetTakeName (WDL_String &str)
 
void SetTakeName (const char *name)
 
void GetTrackName (WDL_String &str) override
 Get the name of the track that the plug-in is inserted on. More...
 
void SetTrackName (const char *name)
 
MediaTrack * GetReaperTrack ()
 
MediaItem_Take * GetReaperTake ()
 
void GetTrackColor (int &r, int &g, int &b) override
 Get the color of the track that the plug-in is inserted on. More...
 
void LogToReaper (const char *str)
 
void InformHostOfAddedParams (int index, int numAddedParams)
 
void InformHostOfRemovedParams (int index, int numRemovedParams)
 
void InitializeVideo (void *staticProcessVideoFrame, void *staticGetVideoParam)
 
- Public Member Functions inherited from IPlugVST2
 IPlugVST2 (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 HostSpecificInit () override
 This method is implemented in some API classes, in order to do specific initialisation for particular problematic hosts. 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 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...
 
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...
 
bool SendSysEx (const ISysEx &msg) override
 Send a single MIDI System Exclusive (SysEx) message // TODO: info about what thread should this be called on or not called on! More...
 
audioMasterCallback & GetHostCallback ()
 
AEffect & GetAEffect ()
 
void OutputSysexFromEditor ()
 
- 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 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...
 

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...
 
- 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 Attributes inherited from IPlugVST2
AEffect mAEffect
 
audioMasterCallback mHostCallback
 
- Protected Attributes inherited from IPlugProcessor
ITimeInfo mTimeInfo
 Contains detailed information about the transport state. More...
 

Detailed Description

Reaper specific VST2.4 API base class for an IPlug plug-in.

Definition at line 25 of file IPlugReaperVST2.h.

Constructor & Destructor Documentation

◆ IPlugReaperVST2()

IPlugReaperVST2::IPlugReaperVST2 ( const InstanceInfo &  info,
const Config &  config 
)
inline

Definition at line 28 of file IPlugReaperVST2.h.

Member Function Documentation

◆ CreateParameterPopup()

void IPlugReaperVST2::CreateParameterPopup ( void *  pView,
int  xpos,
int  ypos 
)
inline

Pop up Reaper's "Last touched FX" dialog, in order to set envelopes etc for the last touched parameter.

Parameters
pViewplatform view handle - in an IGraphics plug-in you can call IGraphics::GetWindow() to get this
xposx position on the screen to popup the menu. NOTE: screen coordinates! Can convert mouse position in IControls with IGraphics::ClientToScreen()
yposy position on the screen to popup the menu. NOTE: screen coordinates! Can convert mouse position in IControls with IGraphics::ClientToScreen()

Definition at line 42 of file IPlugReaperVST2.h.

◆ GetReaperTake()

MediaItem_Take * IPlugReaperVST2::GetReaperTake ( )
inline

Definition at line 101 of file IPlugReaperVST2.h.

◆ GetReaperTrack()

MediaTrack * IPlugReaperVST2::GetReaperTrack ( )
inline

Definition at line 96 of file IPlugReaperVST2.h.

◆ GetTakeName()

void IPlugReaperVST2::GetTakeName ( WDL_String &  str)
inline

Definition at line 60 of file IPlugReaperVST2.h.

◆ GetTrackColor()

void IPlugReaperVST2::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 106 of file IPlugReaperVST2.h.

References GetTrackColor().

Referenced by GetTrackColor().

◆ GetTrackName()

void IPlugReaperVST2::GetTrackName ( WDL_String &  str)
inlineoverridevirtual

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

Reimplemented from IPlugAPIBase.

Definition at line 81 of file IPlugReaperVST2.h.

◆ InformHostOfAddedParams()

void IPlugReaperVST2::InformHostOfAddedParams ( int  index,
int  numAddedParams 
)
inline

Definition at line 119 of file IPlugReaperVST2.h.

◆ InformHostOfRemovedParams()

void IPlugReaperVST2::InformHostOfRemovedParams ( int  index,
int  numRemovedParams 
)
inline

Definition at line 126 of file IPlugReaperVST2.h.

◆ InitializeVideo()

void IPlugReaperVST2::InitializeVideo ( void *  staticProcessVideoFrame,
void *  staticGetVideoParam 
)
inline

Definition at line 133 of file IPlugReaperVST2.h.

◆ LogToReaper()

void IPlugReaperVST2::LogToReaper ( const char *  str)
inline

Definition at line 113 of file IPlugReaperVST2.h.

◆ SetTakeName()

void IPlugReaperVST2::SetTakeName ( const char *  name)
inline

Definition at line 67 of file IPlugReaperVST2.h.

◆ SetTrackName()

void IPlugReaperVST2::SetTrackName ( const char *  name)
inline

Definition at line 90 of file IPlugReaperVST2.h.

◆ SetTrackVolume()

void IPlugReaperVST2::SetTrackVolume ( double  gain)
inline

Definition at line 52 of file IPlugReaperVST2.h.


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