Create Vst3HostContextProxy from YaHostApplication

This is quite a huge refactor, but note everything is consistent (and
we're going to need one or two more of these `Vst3*Proxy` objects).
Right now nothing extends `IHostApplication`, but this way it will be
trivial to add support for more host context interfaces.
This commit is contained in:
Robbert van der Helm
2020-12-19 17:13:17 +01:00
parent c94089b832
commit 0522f84f4a
21 changed files with 301 additions and 184 deletions
+5 -6
View File
@@ -38,12 +38,12 @@ struct InstanceInterfaces {
InstanceInterfaces(Steinberg::IPtr<Steinberg::FUnknown> object);
/**
* If the host passes an `IHostApplication` during
* If the host passes a host context object during
* `IPluginBase::initialize()`, we'll store a proxy object here and then
* pass it to `plugin_base->initialize()`. Will be initialized with a null
* pointer until used.
*/
Steinberg::IPtr<YaHostApplication> host_application_context;
Steinberg::IPtr<Vst3HostContextProxy> host_context_proxy;
/**
* After a call to `IEditController::setComponentHandler()`, we'll create a
@@ -155,11 +155,10 @@ class Vst3Bridge : public HostBridge {
std::atomic_size_t current_instance_id;
/**
* The host application context proxy object if we got passed a host
* application context during a call to `IPluginFactory3::setHostContext()`
* by the host.
* The host context proxy object if we got passed a host context during a
* call to `IPluginFactory3::setHostContext()` by the host.
*/
Steinberg::IPtr<YaHostApplication> plugin_factory_host_application_context;
Steinberg::IPtr<Vst3HostContextProxy> plugin_factory_host_context;
/**
* These are all the objects we have created through the Windows VST3