16#include "public.sdk/source/vst/vstaudioeffect.h"
17#include "public.sdk/source/vst/hosting/parameterchanges.h"
18#include "pluginterfaces/vst/ivstprocesscontext.h"
22#include "IPlugVST3_ProcessorBase.h"
23#include "IPlugVST3_Common.h"
41 Steinberg::FUID mOtherGUID;
48 Steinberg::tresult PLUGIN_API initialize(FUnknown* context)
override;
49 Steinberg::tresult PLUGIN_API terminate()
override;
50 Steinberg::tresult PLUGIN_API setBusArrangements(Steinberg::Vst::SpeakerArrangement* inputs, Steinberg::int32 numIns, Steinberg::Vst::SpeakerArrangement* outputs, Steinberg::int32 numOuts)
override;
51 Steinberg::tresult PLUGIN_API setActive(Steinberg::TBool state)
override;
52 Steinberg::tresult PLUGIN_API setupProcessing(Steinberg::Vst::ProcessSetup& newSetup)
override;
53 Steinberg::tresult PLUGIN_API setProcessing (Steinberg::TBool state)
override;
54 Steinberg::tresult PLUGIN_API process(Steinberg::Vst::ProcessData& data)
override;
55 Steinberg::tresult PLUGIN_API canProcessSampleSize(Steinberg::int32 symbolicSampleSize)
override;
56 Steinberg::uint32 PLUGIN_API getLatencySamples()
override {
return GetLatency(); }
57 Steinberg::uint32 PLUGIN_API getTailSamples()
override;
58 Steinberg::tresult PLUGIN_API setState(Steinberg::IBStream* pState)
override;
59 Steinberg::tresult PLUGIN_API getState(Steinberg::IBStream* pState)
override;
62 void SendControlValueFromDelegate(
int ctrlTag,
double normalizedValue)
override;
63 void SendControlMsgFromDelegate(
int ctrlTag,
int msgTag,
int dataSize,
const void* pData)
override;
64 void SendParameterValueFromDelegate(
int paramIdx,
double value,
bool normalized)
override {}
65 void SendArbitraryMsgFromDelegate(
int msgTag,
int dataSize = 0,
const void* pData =
nullptr)
override;
67 void removeAudioInputBus(Steinberg::Vst::AudioBus* pBus)
69 audioInputs.erase(std::remove(audioInputs.begin(), audioInputs.end(), pBus));
72 void removeAudioOutputBus(Steinberg::Vst::AudioBus* pBus)
74 audioOutputs.erase(std::remove(audioOutputs.begin(), audioOutputs.end(), pBus));
78 void TransmitMidiMsgFromProcessor(
const IMidiMsg& msg)
override;
79 void TransmitSysExDataFromProcessor(
const SysExData& data)
override;
82 Steinberg::tresult PLUGIN_API notify(Steinberg::Vst::IMessage* message)
override;
88Steinberg::FUnknown* MakeProcessor();
89extern Steinberg::FUnknown* MakeController();
The base class of an IPlug plug-in, which interacts with the different plug-in APIs.
Shared VST3 processor code.
VST3 Processor API-base class for a distributed IPlug VST3 plug-in.
Encapsulates a MIDI message and provides helper functions.
This structure is used when queueing Sysex messages.