From bfdbfa919692ffe5005c7b18eac574a98bae8200 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Thu, 14 Jan 2021 16:16:58 +0100 Subject: [PATCH] Add stubs for IComponentHandlerBusActivation --- .../serialization/vst3/component-handler-proxy.cpp | 8 ++++++++ .../serialization/vst3/component-handler-proxy.h | 5 +++++ .../bridges/vst3-impls/component-handler-proxy.cpp | 11 +++++++++++ .../bridges/vst3-impls/component-handler-proxy.h | 6 ++++++ 4 files changed, 30 insertions(+) diff --git a/src/common/serialization/vst3/component-handler-proxy.cpp b/src/common/serialization/vst3/component-handler-proxy.cpp index b6cb04a0..8cfabaa4 100644 --- a/src/common/serialization/vst3/component-handler-proxy.cpp +++ b/src/common/serialization/vst3/component-handler-proxy.cpp @@ -25,6 +25,7 @@ Vst3ComponentHandlerProxy::ConstructArgs::ConstructArgs( component_handler_args(object), component_handler_2_args(object), component_handler_3_args(object), + component_handler_bus_activation_args(object), unit_handler_args(object), unit_handler_2_args(object) {} @@ -32,6 +33,8 @@ Vst3ComponentHandlerProxy::Vst3ComponentHandlerProxy(const ConstructArgs&& args) : YaComponentHandler(std::move(args.component_handler_args)), YaComponentHandler2(std::move(args.component_handler_2_args)), YaComponentHandler3(std::move(args.component_handler_3_args)), + YaComponentHandlerBusActivation( + std::move(args.component_handler_bus_activation_args)), YaUnitHandler(std::move(args.unit_handler_args)), YaUnitHandler2(std::move(args.unit_handler_2_args)), arguments(std::move(args)){FUNKNOWN_CTOR} @@ -62,6 +65,11 @@ Vst3ComponentHandlerProxy::queryInterface(Steinberg::FIDString _iid, QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IComponentHandler3::iid, Steinberg::Vst::IComponentHandler3) } + if (YaComponentHandlerBusActivation::supported()) { + QUERY_INTERFACE(_iid, obj, + Steinberg::Vst::IComponentHandlerBusActivation::iid, + Steinberg::Vst::IComponentHandlerBusActivation) + } if (YaUnitHandler::supported()) { QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IUnitHandler::iid, Steinberg::Vst::IUnitHandler) diff --git a/src/common/serialization/vst3/component-handler-proxy.h b/src/common/serialization/vst3/component-handler-proxy.h index 993ee6d3..9248a657 100644 --- a/src/common/serialization/vst3/component-handler-proxy.h +++ b/src/common/serialization/vst3/component-handler-proxy.h @@ -19,6 +19,7 @@ #include "../common.h" #include "component-handler/component-handler-2.h" #include "component-handler/component-handler-3.h" +#include "component-handler/component-handler-bus-activation.h" #include "component-handler/component-handler.h" #include "component-handler/unit-handler-2.h" #include "component-handler/unit-handler.h" @@ -37,6 +38,7 @@ class Vst3ComponentHandlerProxy : public YaComponentHandler, public YaComponentHandler2, public YaComponentHandler3, + public YaComponentHandlerBusActivation, public YaUnitHandler, public YaUnitHandler2 { public: @@ -65,6 +67,8 @@ class Vst3ComponentHandlerProxy : public YaComponentHandler, YaComponentHandler::ConstructArgs component_handler_args; YaComponentHandler2::ConstructArgs component_handler_2_args; YaComponentHandler3::ConstructArgs component_handler_3_args; + YaComponentHandlerBusActivation::ConstructArgs + component_handler_bus_activation_args; YaUnitHandler::ConstructArgs unit_handler_args; YaUnitHandler2::ConstructArgs unit_handler_2_args; @@ -74,6 +78,7 @@ class Vst3ComponentHandlerProxy : public YaComponentHandler, s.object(component_handler_args); s.object(component_handler_2_args); s.object(component_handler_3_args); + s.object(component_handler_bus_activation_args); s.object(unit_handler_args); s.object(unit_handler_2_args); } diff --git a/src/wine-host/bridges/vst3-impls/component-handler-proxy.cpp b/src/wine-host/bridges/vst3-impls/component-handler-proxy.cpp index 425677dc..f343e65d 100644 --- a/src/wine-host/bridges/vst3-impls/component-handler-proxy.cpp +++ b/src/wine-host/bridges/vst3-impls/component-handler-proxy.cpp @@ -114,6 +114,17 @@ Vst3ComponentHandlerProxyImpl::createContextMenu( } } +tresult PLUGIN_API Vst3ComponentHandlerProxyImpl::requestBusActivation( + Steinberg::Vst::MediaType type, + Steinberg::Vst::BusDirection dir, + int32 index, + TBool state) { + // TODO: Implement + std::cerr << "TODO: IComponentHandlerBusActivation::requestBusActivation()" + << std::endl; + return Steinberg::kNotImplemented; +} + tresult PLUGIN_API Vst3ComponentHandlerProxyImpl::notifyUnitSelection( Steinberg::Vst::UnitID unitId) { return bridge.send_message(YaUnitHandler::NotifyUnitSelection{ diff --git a/src/wine-host/bridges/vst3-impls/component-handler-proxy.h b/src/wine-host/bridges/vst3-impls/component-handler-proxy.h index 38c5d4a1..29f121eb 100644 --- a/src/wine-host/bridges/vst3-impls/component-handler-proxy.h +++ b/src/wine-host/bridges/vst3-impls/component-handler-proxy.h @@ -50,6 +50,12 @@ class Vst3ComponentHandlerProxyImpl : public Vst3ComponentHandlerProxy { createContextMenu(Steinberg::IPlugView* plugView, const Steinberg::Vst::ParamID* paramID) override; + // From `IComponentHandlerBusActivation` + tresult PLUGIN_API requestBusActivation(Steinberg::Vst::MediaType type, + Steinberg::Vst::BusDirection dir, + int32 index, + TBool state) override; + // From `IUnitHandler` tresult PLUGIN_API notifyUnitSelection(Steinberg::Vst::UnitID unitId) override;