iPlug2 - C++ Audio Plug-in Framework
|
Shared VST3 processor code. More...
#include <IPlugVST3_ProcessorBase.h>
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... | |
![]() | |
IPlugProcessor (const Config &config, EAPI plugAPI) | |
IPlugProcessor constructor. More... | |
IPlugProcessor (const IPlugProcessor &)=delete | |
IPlugProcessor & | operator= (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 (const 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 () const |
bool | GetTailIsInfinite () const |
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 IOConfig * | GetIOConfig (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... | |
virtual 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 Use kTailInfinite for an infinite tail You may also use kTailNone for no tail (but this is default in any case) More... | |
Additional Inherited Members | |
![]() | |
enum | TailSize { kTailNone = 0 , kTailInfinite = std::numeric_limits<int>::max() } |
![]() | |
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... | |
![]() | |
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) |
![]() | |
ITimeInfo | mTimeInfo |
Contains detailed information about the transport state. More... | |
Shared VST3 processor code.
Definition at line 35 of file IPlugVST3_ProcessorBase.h.
IPlugVST3ProcessorBase::IPlugVST3ProcessorBase | ( | Config | c, |
IPlugAPIBase & | plug | ||
) |
Definition at line 51 of file IPlugVST3_ProcessorBase.cpp.
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.
bool IPlugVST3ProcessorBase::CanProcessSampleSize | ( | Steinberg::int32 | symbolicSampleSize | ) |
Definition at line 241 of file IPlugVST3_ProcessorBase.cpp.
|
inline |
Definition at line 41 of file IPlugVST3_ProcessorBase.h.
void IPlugVST3ProcessorBase::PrepareProcessContext | ( | Steinberg::Vst::ProcessData & | data, |
Steinberg::Vst::ProcessSetup & | setup | ||
) |
Definition at line 251 of file IPlugVST3_ProcessorBase.cpp.
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.
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.
void IPlugVST3ProcessorBase::ProcessMidiIn | ( | Steinberg::Vst::IEventList * | pEventList, |
IPlugQueue< IMidiMsg > & | editorQueue, | ||
IPlugQueue< IMidiMsg > & | processorQueue | ||
) |
Definition at line 68 of file IPlugVST3_ProcessorBase.cpp.
void IPlugVST3ProcessorBase::ProcessMidiOut | ( | IPlugQueue< SysExData > & | sysExQueue, |
SysExData & | sysExBuf, | ||
Steinberg::Vst::IEventList * | pOutputEvents, | ||
Steinberg::int32 | numSamples | ||
) |
Definition at line 121 of file IPlugVST3_ProcessorBase.cpp.
void IPlugVST3ProcessorBase::ProcessParameterChanges | ( | Steinberg::Vst::ProcessData & | data, |
IPlugQueue< IMidiMsg > & | fromProcessor | ||
) |
Definition at line 274 of file IPlugVST3_ProcessorBase.cpp.
|
overridevirtual |
Send a single MIDI message // TODO: info about what thread should this be called on or not called on!
msg | The IMidiMsg to send |
true
if successful Implements IPlugProcessor.
Definition at line 440 of file IPlugVST3_ProcessorBase.cpp.
|
inline |
Definition at line 106 of file IPlugVST3_ProcessorBase.h.
bool IPlugVST3ProcessorBase::SetProcessing | ( | bool | state | ) |
Definition at line 233 of file IPlugVST3_ProcessorBase.cpp.
bool IPlugVST3ProcessorBase::SetupProcessing | ( | const Steinberg::Vst::ProcessSetup & | setup, |
Steinberg::Vst::ProcessSetup & | storedSetup | ||
) |
Definition at line 218 of file IPlugVST3_ProcessorBase.cpp.