diff --git a/src/common/serialization/vst3/plugin/info-listener.h b/src/common/serialization/vst3/plugin/info-listener.h index 332e5ee6..fc6fdba9 100644 --- a/src/common/serialization/vst3/plugin/info-listener.h +++ b/src/common/serialization/vst3/plugin/info-listener.h @@ -19,6 +19,7 @@ #include #include "../../common.h" +#include "../attribute-list.h" #include "../base.h" #pragma GCC diagnostic push @@ -61,6 +62,28 @@ class YaInfoListener : public Steinberg::Vst::ChannelContext::IInfoListener { inline bool supported() const { return arguments.supported; } + /** + * Message to pass through a call to + * `IInfoListeener::setChannelContextInfos(list)` to the Wine plugin host. + */ + struct SetChannelContextInfos { + using Response = UniversalTResult; + + native_size_t instance_id; + + /** + * The passed channel context attributes, read using + * `YaAttributeList::read_channel_context()`. + */ + YaAttributeList list; + + template + void serialize(S& s) { + s.value8b(instance_id); + s.object(list); + } + }; + virtual tresult PLUGIN_API setChannelContextInfos(Steinberg::Vst::IAttributeList* list) override = 0;