diff --git a/plugins/vst/SfizzVstController.cpp b/plugins/vst/SfizzVstController.cpp index 4a788a50..a3d38f07 100644 --- a/plugins/vst/SfizzVstController.cpp +++ b/plugins/vst/SfizzVstController.cpp @@ -191,6 +191,20 @@ tresult PLUGIN_API SfizzVstControllerNoUi::getKeyswitchInfo(int32 busIndex, int1 return kResultTrue; } +tresult PLUGIN_API SfizzVstControllerNoUi::beginEditFromHost(Vst::ParamID paramID) +{ + // Note(jpc) implementing this interface is a workaround to make + // non-automatable parameters editable in Ardour (as of 6.6) + (void)paramID; + return kResultTrue; +} + +tresult PLUGIN_API SfizzVstControllerNoUi::endEditFromHost(Vst::ParamID paramID) +{ + (void)paramID; + return kResultTrue; +} + tresult PLUGIN_API SfizzVstControllerNoUi::getParamStringByValue(Vst::ParamID tag, Vst::ParamValue valueNormalized, Vst::String128 string) { switch (tag) { diff --git a/plugins/vst/SfizzVstController.h b/plugins/vst/SfizzVstController.h index cf0b0d7f..c26e4b18 100644 --- a/plugins/vst/SfizzVstController.h +++ b/plugins/vst/SfizzVstController.h @@ -23,7 +23,8 @@ using namespace VSTGUI; class SfizzVstControllerNoUi : public Vst::EditControllerEx1, public Vst::IMidiMapping, - public Vst::IKeyswitchController { + public Vst::IKeyswitchController, + public Vst::IEditControllerHostEditing { public: virtual ~SfizzVstControllerNoUi() {} @@ -35,6 +36,9 @@ public: int32 PLUGIN_API getKeyswitchCount (int32 busIndex, int16 channel) override; tresult PLUGIN_API getKeyswitchInfo (int32 busIndex, int16 channel, int32 keySwitchIndex, Vst::KeyswitchInfo& info) override; + tresult PLUGIN_API beginEditFromHost(Vst::ParamID paramID) override; + tresult PLUGIN_API endEditFromHost(Vst::ParamID paramID) override; + tresult PLUGIN_API getParamStringByValue(Vst::ParamID tag, Vst::ParamValue valueNormalized, Vst::String128 string) override; tresult PLUGIN_API getParamValueByString(Vst::ParamID tag, Vst::TChar* string, Vst::ParamValue& valueNormalized) override; @@ -47,6 +51,7 @@ public: DEFINE_INTERFACES DEF_INTERFACE(Vst::IMidiMapping) DEF_INTERFACE(Vst::IKeyswitchController) + DEF_INTERFACE(Vst::IEditControllerHostEditing) END_DEFINE_INTERFACES(Vst::EditControllerEx1) REFCOUNT_METHODS(Vst::EditControllerEx1)