From 67303f3adc6d6120eef417ba471856a2b41064f2 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Tue, 12 Jan 2021 16:58:37 +0100 Subject: [PATCH] Add message objects for IInfoListeener --- .../serialization/vst3/plugin/info-listener.h | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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;