Refactor plugin factories into Vst3*Proxy format

Now every proxy object that's directly created by the host or plugin
shares the same structure.
This commit is contained in:
Robbert van der Helm
2021-02-13 15:42:05 +01:00
parent 4e4ed3a6b4
commit 4f8eaaaa75
14 changed files with 289 additions and 133 deletions
+26 -15
View File
@@ -66,6 +66,12 @@ void Vst3Logger::log_query_interface(
}
}
bool Vst3Logger::log_request(bool is_host_vst,
const Vst3PluginFactoryProxy::Construct&) {
return log_request_base(
is_host_vst, [&](auto& message) { message << "GetPluginFactory()"; });
}
bool Vst3Logger::log_request(bool is_host_vst,
const Vst3PlugViewProxy::Destruct& request) {
return log_request_base(is_host_vst, [&](auto& message) {
@@ -690,13 +696,7 @@ bool Vst3Logger::log_request(bool is_host_vst,
}
bool Vst3Logger::log_request(bool is_host_vst,
const YaPluginFactory::Construct&) {
return log_request_base(
is_host_vst, [&](auto& message) { message << "GetPluginFactory()"; });
}
bool Vst3Logger::log_request(bool is_host_vst,
const YaPluginFactory::SetHostContext&) {
const YaPluginFactory3::SetHostContext&) {
return log_request_base(is_host_vst, [&](auto& message) {
message << "IPluginFactory3::setHostContext(context = <FUnknown*>)";
});
@@ -1381,6 +1381,25 @@ void Vst3Logger::log_response(bool is_host_vst, const Ack&) {
log_response_base(is_host_vst, [&](auto& message) { message << "ACK"; });
}
void Vst3Logger::log_response(
bool is_host_vst,
const Vst3PluginFactoryProxy::ConstructArgs& args) {
log_response_base(is_host_vst, [&](auto& message) {
message << "<";
if (args.plugin_factory_args.supports_plugin_factory_3) {
message << "IPluginFactory3*";
} else if (args.plugin_factory_args.supports_plugin_factory_2) {
message << "IPluginFactory2*";
} else if (args.plugin_factory_args.supports_plugin_factory) {
message << "IPluginFactory*";
} else {
message << "FUnknown*";
}
message << " with " << args.plugin_factory_args.num_classes
<< " registered classes>";
});
}
void Vst3Logger::log_response(bool is_host_vst,
const std::variant<Vst3PluginProxy::ConstructArgs,
UniversalTResult>& result) {
@@ -1591,14 +1610,6 @@ void Vst3Logger::log_response(
});
}
void Vst3Logger::log_response(bool is_host_vst,
const YaPluginFactory::ConstructArgs& args) {
log_response_base(is_host_vst, [&](auto& message) {
message << "<IPluginFactory* with " << args.num_classes
<< " registered classes>";
});
}
void Vst3Logger::log_response(bool is_host_vst, const Configuration&) {
log_response_base(is_host_vst,
[&](auto& message) { message << "<Configuration>"; });
+5 -3
View File
@@ -61,6 +61,8 @@ class Vst3Logger {
// `log_request()` call returned `true`. This way we can filter out the
// log message for the response together with the request.
bool log_request(bool is_host_vst,
const Vst3PluginFactoryProxy::Construct&);
bool log_request(bool is_host_vst, const Vst3PlugViewProxy::Destruct&);
bool log_request(bool is_host_vst, const Vst3PluginProxy::Construct&);
bool log_request(bool is_host_vst, const Vst3PluginProxy::Destruct&);
@@ -149,8 +151,7 @@ class Vst3Logger {
const YaPlugViewContentScaleSupport::SetContentScaleFactor&);
bool log_request(bool is_host_vst, const YaPluginBase::Initialize&);
bool log_request(bool is_host_vst, const YaPluginBase::Terminate&);
bool log_request(bool is_host_vst, const YaPluginFactory::Construct&);
bool log_request(bool is_host_vst, const YaPluginFactory::SetHostContext&);
bool log_request(bool is_host_vst, const YaPluginFactory3::SetHostContext&);
bool log_request(
bool is_host_vst,
const YaProcessContextRequirements::GetProcessContextRequirements&);
@@ -241,6 +242,8 @@ class Vst3Logger {
const YaUnitHandler2::NotifyUnitByBusChange&);
void log_response(bool is_host_vst, const Ack&);
void log_response(bool is_host_vst,
const Vst3PluginFactoryProxy::ConstructArgs&);
void log_response(
bool is_host_vst,
const std::variant<Vst3PluginProxy::ConstructArgs, UniversalTResult>&);
@@ -280,7 +283,6 @@ class Vst3Logger {
void log_response(bool is_host_vst, const YaPlugView::GetSizeResponse&);
void log_response(bool is_host_vst,
const YaPlugView::CheckSizeConstraintResponse&);
void log_response(bool is_host_vst, const YaPluginFactory::ConstructArgs&);
void log_response(bool is_host_vst, const Configuration&);
void log_response(bool is_host_vst,
const YaProgramListData::GetProgramDataResponse&);