21#include "public.sdk/source/vst/vsteditcontroller.h"
22#include "pluginterfaces/vst/ivstchannelcontextinfo.h"
26#include "IPlugVST3_View.h"
27#include "IPlugVST3_ControllerBase.h"
28#include "IPlugVST3_Common.h"
35 ,
public Steinberg::Vst::IMidiMapping
36 ,
public Steinberg::Vst::ChannelContext::IInfoListener
41 using ViewType = IPlugVST3View<IPlugVST3Controller>;
45 Steinberg::FUID mOtherGUID;
52 Steinberg::tresult PLUGIN_API initialize(Steinberg::FUnknown* context)
override;
53 Steinberg::IPlugView* PLUGIN_API createView(Steinberg::FIDString name)
override;
54 Steinberg::tresult PLUGIN_API setComponentState(Steinberg::IBStream* pState)
override;
55 Steinberg::tresult PLUGIN_API setState(Steinberg::IBStream* pState)
override;
56 Steinberg::tresult PLUGIN_API getState(Steinberg::IBStream* pState)
override;
58 Steinberg::Vst::ParamValue PLUGIN_API getParamNormalized (Steinberg::Vst::ParamID tag)
override;
59 Steinberg::tresult PLUGIN_API setParamNormalized(Steinberg::Vst::ParamID tag, Steinberg::Vst::ParamValue value)
override;
61 Steinberg::tresult PLUGIN_API notify(Steinberg::Vst::IMessage* message)
override;
64 Steinberg::tresult PLUGIN_API getMidiControllerAssignment(Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::Vst::CtrlNumber midiCCNumber, Steinberg::Vst::ParamID& tag)
override;
67 Steinberg::tresult PLUGIN_API getProgramName(Steinberg::Vst::ProgramListID listId, Steinberg::int32 programIndex, Steinberg::Vst::String128 name )
override
69 return GetProgramName(
this, listId, programIndex, name);
72 Steinberg::int32 PLUGIN_API getProgramListCount()
override
74 return GetProgramListCount(
this);
77 Steinberg::tresult PLUGIN_API getProgramListInfo(Steinberg::int32 listIndex, Steinberg::Vst::ProgramListInfo& info)
override
79 return GetProgramListInfo(
this, listIndex, info);
83 Steinberg::tresult PLUGIN_API setChannelContextInfos(Steinberg::Vst::IAttributeList* list)
override;
86 void GetTrackColor(
int& r,
int& g,
int& b)
override { r = (mChannelColor>>16)&0xff; g = (mChannelColor>>8)&0xff; b = mChannelColor&0xff; };
89 void GetTrackName(WDL_String& str)
override { str = mChannelName; };
103 DEF_INTERFACE(IMidiMapping)
104 DEF_INTERFACE(IInfoListener)
105 END_DEFINE_INTERFACES(EditControllerEx1)
106 REFCOUNT_METHODS(EditControllerEx1)
113 bool EditorResize(
int viewWidth,
int viewHeight)
override;
117 void SendMidiMsgFromUI(
const IMidiMsg& msg)
override;
118 void SendSysexMsgFromUI(
const ISysEx& msg)
override;
119 void SendArbitraryMsgFromUI(
int msgTag,
int ctrlTag = kNoTag,
int dataSize = 0,
const void* pData =
nullptr)
override;
120 void SendParameterValueFromUI(
int paramIdx,
double normalisedValue)
override;
122 Steinberg::Vst::IComponentHandler* GetComponentHandler()
const {
return componentHandler; }
123 ViewType* GetView()
const {
return mView; }
126 ViewType* mView =
nullptr;
127 bool mPlugIsInstrument;
129 Steinberg::FUID mProcessorGUID;
The base class of an IPlug plug-in, which interacts with the different plug-in APIs.
Shared VST3 controller code.
VST3 Controller API-base class for a distributed IPlug VST3 plug-in.
void GetTrackColor(int &r, int &g, int &b) override
Get the color of the track that the plug-in is inserted on.
void DirtyParametersFromUI() override
In a distributed VST3 or WAM plugin, if you modify the parameters on the UI side (e....
void GetTrackName(WDL_String &str) override
Get the name of the track that the plug-in is inserted on.
int GetTrackNamespaceIndex() override
Get the namespace index of the track that the plug-in is inserted on.
int GetTrackIndex() override
Get the index of the track that the plug-in is inserted on.
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 ge...
void GetTrackNamespace(WDL_String &str) override
Get the namespace of the track that the plug-in is inserted on.
void InformHostOfPresetChange() override
Implemented by the API class, called by the UI (etc) when the plug-in initiates a program/preset chan...
DEFINE_INTERFACES void BeginInformHostOfParamChange(int idx) override
Implemented by the API class, called by the UI (or by a delegate) at the beginning of a parameter cha...
void InformHostOfParamChange(int idx, double normalizedValue) override
Implemented by the API class, called by the UI via SetParameterValue() with the value of a parameter ...
bool EditorResize(int viewWidth, int viewHeight) override
Implementations call into the APIs resize hooks returns a bool to indicate whether the DAW or plugin ...
Encapsulates a MIDI message and provides helper functions.
A struct for dealing with SysEx messages.