diff --git a/src/common/serialization/vst3/plugin-proxy.cpp b/src/common/serialization/vst3/plugin-proxy.cpp index f47f2eff..12432b68 100644 --- a/src/common/serialization/vst3/plugin-proxy.cpp +++ b/src/common/serialization/vst3/plugin-proxy.cpp @@ -30,6 +30,7 @@ Vst3PluginProxy::ConstructArgs::ConstructArgs( edit_controller_args(object), edit_controller_2_args(object), edit_controller_host_editing_args(object), + info_listener_args(object), keyswitch_controller_args(object), midi_mapping_args(object), note_expression_controller_args(object), @@ -51,6 +52,7 @@ Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args) YaEditController2(std::move(args.edit_controller_2_args)), YaEditControllerHostEditing( std::move(args.edit_controller_host_editing_args)), + YaInfoListener(std::move(args.info_listener_args)), YaKeyswitchController(std::move(args.keyswitch_controller_args)), YaMidiMapping(std::move(args.midi_mapping_args)), YaNoteExpressionController( @@ -127,6 +129,11 @@ tresult PLUGIN_API Vst3PluginProxy::queryInterface(Steinberg::FIDString _iid, Steinberg::Vst::IEditControllerHostEditing::iid, Steinberg::Vst::IEditControllerHostEditing) } + if (YaInfoListener::supported()) { + QUERY_INTERFACE(_iid, obj, + Steinberg::Vst::ChannelContext::IInfoListener::iid, + Steinberg::Vst::ChannelContext::IInfoListener) + } if (YaKeyswitchController::supported()) { QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IKeyswitchController::iid, Steinberg::Vst::IKeyswitchController) diff --git a/src/common/serialization/vst3/plugin-proxy.h b/src/common/serialization/vst3/plugin-proxy.h index 7979eada..5e54fc96 100644 --- a/src/common/serialization/vst3/plugin-proxy.h +++ b/src/common/serialization/vst3/plugin-proxy.h @@ -27,6 +27,7 @@ #include "plugin/edit-controller-2.h" #include "plugin/edit-controller-host-editing.h" #include "plugin/edit-controller.h" +#include "plugin/info-listener.h" #include "plugin/keyswitch-controller.h" #include "plugin/midi-mapping.h" #include "plugin/note-expression-controller.h" @@ -71,6 +72,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency, public YaEditController, public YaEditController2, public YaEditControllerHostEditing, + public YaInfoListener, public YaKeyswitchController, public YaMidiMapping, public YaNoteExpressionController, @@ -108,6 +110,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency, YaEditController2::ConstructArgs edit_controller_2_args; YaEditControllerHostEditing::ConstructArgs edit_controller_host_editing_args; + YaInfoListener::ConstructArgs info_listener_args; YaKeyswitchController::ConstructArgs keyswitch_controller_args; YaMidiMapping::ConstructArgs midi_mapping_args; YaNoteExpressionController::ConstructArgs @@ -131,6 +134,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency, s.object(edit_controller_args); s.object(edit_controller_2_args); s.object(edit_controller_host_editing_args); + s.object(info_listener_args); s.object(keyswitch_controller_args); s.object(midi_mapping_args); s.object(note_expression_controller_args); diff --git a/src/plugin/bridges/vst3-impls/plugin-proxy.cpp b/src/plugin/bridges/vst3-impls/plugin-proxy.cpp index 00d2d0ab..6f61d46a 100644 --- a/src/plugin/bridges/vst3-impls/plugin-proxy.cpp +++ b/src/plugin/bridges/vst3-impls/plugin-proxy.cpp @@ -522,6 +522,14 @@ Vst3PluginProxyImpl::endEditFromHost(Steinberg::Vst::ParamID paramID) { .instance_id = instance_id(), .param_id = paramID}); } +tresult PLUGIN_API Vst3PluginProxyImpl::setChannelContextInfos( + Steinberg::Vst::IAttributeList* list) { + // TODO: Implement + bridge.logger.log( + "TODO: Implement IInfoListener::setChannelContextInfos()"); + return Steinberg::kNotImplemented; +} + int32 PLUGIN_API Vst3PluginProxyImpl::getKeyswitchCount(int32 busIndex, int16 channel) { return bridge.send_message( diff --git a/src/plugin/bridges/vst3-impls/plugin-proxy.h b/src/plugin/bridges/vst3-impls/plugin-proxy.h index 35f67d78..d48e2495 100644 --- a/src/plugin/bridges/vst3-impls/plugin-proxy.h +++ b/src/plugin/bridges/vst3-impls/plugin-proxy.h @@ -151,6 +151,10 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy { tresult PLUGIN_API endEditFromHost(Steinberg::Vst::ParamID paramID) override; + // From `IInfoListener` + tresult PLUGIN_API + setChannelContextInfos(Steinberg::Vst::IAttributeList* list) override; + // From `IKeyswitchController` int32 PLUGIN_API getKeyswitchCount(int32 busIndex, int16 channel) override; tresult PLUGIN_API