Merge pull request #893 from jpcima/ardour6-automatable

Work around Ardour6 parameter edits not working
This commit is contained in:
JP Cimalando 2021-05-13 18:46:17 +02:00 committed by GitHub
commit c1d492ad03
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View file

@ -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) {

View file

@ -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)