From e0dd4ab22db27071af2c74b65b3d6a7262241639 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Mon, 14 Dec 2020 13:17:10 +0100 Subject: [PATCH] Add IAudioProcessor query interface to YaComponent --- src/common/serialization/vst3/component.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/serialization/vst3/component.cpp b/src/common/serialization/vst3/component.cpp index 1314c8b2..cbc9b2e5 100644 --- a/src/common/serialization/vst3/component.cpp +++ b/src/common/serialization/vst3/component.cpp @@ -29,7 +29,12 @@ YaComponent::ConstructArgs::ConstructArgs( edit_controller_cid = std::to_array(cid); } - // TODO: Add support of IAudioProcessor + // There's no static data we can copy from the audio processor + if (auto audio_processor = + Steinberg::FUnknownPtr( + component)) { + known_iids.insert(Steinberg::Vst::IAudioProcessor::iid); + } } YaComponent::YaComponent(const ConstructArgs&& args) : arguments(std::move(args)) { @@ -57,7 +62,10 @@ tresult PLUGIN_API YaComponent::queryInterface(Steinberg::FIDString _iid, QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IComponent::iid, Steinberg::Vst::IComponent) } - // TODO: Add IAudioProcessor + if (arguments.known_iids.contains(Steinberg::Vst::IAudioProcessor::iid)) { + QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IAudioProcessor::iid, + Steinberg::Vst::IAudioProcessor) + } *obj = nullptr; return Steinberg::kNoInterface;