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

Shared VST3 processor code. More...

#include <IPlugVST3_ProcessorBase.h>

Inheritance diagram for IPlugVST3ProcessorBase:
[legend]

Public Member Functions

 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...
 

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 IPlugProcessor
ITimeInfo mTimeInfo
 Contains detailed information about the transport state. More...
 

Detailed Description

Shared VST3 processor code.

Definition at line 35 of file IPlugVST3_ProcessorBase.h.

Constructor & Destructor Documentation

◆ IPlugVST3ProcessorBase()

IPlugVST3ProcessorBase::IPlugVST3ProcessorBase ( Config  c,
IPlugAPIBase plug 
)

Definition at line 51 of file IPlugVST3_ProcessorBase.cpp.

Member Function Documentation

◆ AttachBuffers()

void IPlugVST3ProcessorBase::AttachBuffers ( ERoute  direction,
int  idx,
int  n,
Steinberg::Vst::AudioBusBuffers &  pBus,
int  nFrames,
Steinberg::int32  sampleSize 
)

Definition at line 210 of file IPlugVST3_ProcessorBase.cpp.

◆ CanProcessSampleSize()

bool IPlugVST3ProcessorBase::CanProcessSampleSize ( Steinberg::int32  symbolicSampleSize)

Definition at line 241 of file IPlugVST3_ProcessorBase.cpp.

◆ Initialize()

template<class T >
void IPlugVST3ProcessorBase::Initialize ( T *  pPlug)
inline

Definition at line 41 of file IPlugVST3_ProcessorBase.h.

◆ PrepareProcessContext()

void IPlugVST3ProcessorBase::PrepareProcessContext ( Steinberg::Vst::ProcessData &  data,
Steinberg::Vst::ProcessSetup &  setup 
)

Definition at line 251 of file IPlugVST3_ProcessorBase.cpp.

◆ Process()

void IPlugVST3ProcessorBase::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 
)

Definition at line 422 of file IPlugVST3_ProcessorBase.cpp.

◆ ProcessAudio()

void IPlugVST3ProcessorBase::ProcessAudio ( Steinberg::Vst::ProcessData &  data,
Steinberg::Vst::ProcessSetup &  setup,
const Steinberg::Vst::BusList &  ins,
const Steinberg::Vst::BusList &  outs 
)

Definition at line 348 of file IPlugVST3_ProcessorBase.cpp.

◆ ProcessMidiIn()

void IPlugVST3ProcessorBase::ProcessMidiIn ( Steinberg::Vst::IEventList *  pEventList,
IPlugQueue< IMidiMsg > &  editorQueue,
IPlugQueue< IMidiMsg > &  processorQueue 
)

Definition at line 68 of file IPlugVST3_ProcessorBase.cpp.

◆ ProcessMidiOut()

void IPlugVST3ProcessorBase::ProcessMidiOut ( IPlugQueue< SysExData > &  sysExQueue,
SysExData sysExBuf,
Steinberg::Vst::IEventList *  pOutputEvents,
Steinberg::int32  numSamples 
)

Definition at line 121 of file IPlugVST3_ProcessorBase.cpp.

◆ ProcessParameterChanges()

void IPlugVST3ProcessorBase::ProcessParameterChanges ( Steinberg::Vst::ProcessData &  data,
IPlugQueue< IMidiMsg > &  fromProcessor 
)

Definition at line 274 of file IPlugVST3_ProcessorBase.cpp.

◆ SendMidiMsg()

bool IPlugVST3ProcessorBase::SendMidiMsg ( const IMidiMsg msg)
overridevirtual

Send a single MIDI message // TODO: info about what thread should this be called on or not called on!

Parameters
msgThe IMidiMsg to send
Returns
true if successful

Implements IPlugProcessor.

Definition at line 440 of file IPlugVST3_ProcessorBase.cpp.

◆ SetBusArrangements()

template<class T >
bool IPlugVST3ProcessorBase::SetBusArrangements ( T *  pPlug,
Steinberg::Vst::SpeakerArrangement *  pInputBusArrangements,
Steinberg::int32  numInBuses,
Steinberg::Vst::SpeakerArrangement *  pOutputBusArrangements,
Steinberg::int32  numOutBuses 
)
inline

Definition at line 106 of file IPlugVST3_ProcessorBase.h.

◆ SetProcessing()

bool IPlugVST3ProcessorBase::SetProcessing ( bool  state)

Definition at line 233 of file IPlugVST3_ProcessorBase.cpp.

◆ SetupProcessing()

bool IPlugVST3ProcessorBase::SetupProcessing ( const Steinberg::Vst::ProcessSetup &  setup,
Steinberg::Vst::ProcessSetup &  storedSetup 
)

Definition at line 218 of file IPlugVST3_ProcessorBase.cpp.


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