Fully implement IProcessContextRequirements

This commit is contained in:
Robbert van der Helm
2021-01-16 16:29:21 +01:00
parent 1ab9056a82
commit 9ddf4b2ae1
4 changed files with 15 additions and 5 deletions
+1
View File
@@ -120,6 +120,7 @@ using ControlRequest =
YaPluginBase::Terminate,
YaPluginFactory::Construct,
YaPluginFactory::SetHostContext,
YaProcessContextRequirements::GetProcessContextRequirements,
YaProgramListData::ProgramDataSupported,
YaProgramListData::GetProgramData,
YaProgramListData::SetProgramData,
@@ -729,11 +729,9 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getPrefetchableSupport(
}
uint32 PLUGIN_API Vst3PluginProxyImpl::getProcessContextRequirements() {
// TODO: Implement
bridge.logger.log(
"TODO: Implement "
"IProcessContextRequirements::getProcessContextRequirements()");
return 0;
return bridge.send_message(
YaProcessContextRequirements::GetProcessContextRequirements{
.instance_id = instance_id()});
}
tresult PLUGIN_API Vst3PluginProxyImpl::programDataSupported(
+9
View File
@@ -56,6 +56,7 @@ InstanceInterfaces::InstanceInterfaces(
plugin_base(object),
unit_data(object),
prefetchable_support(object),
process_context_requirements(object),
program_list_data(object),
unit_info(object),
xml_representation_controller(object) {}
@@ -827,6 +828,14 @@ void Vst3Bridge::run() {
return object_instances[request.instance_id]
.program_list_data->programDataSupported(request.list_id);
},
[&](const YaProcessContextRequirements::
GetProcessContextRequirements& request)
-> YaProcessContextRequirements::GetProcessContextRequirements::
Response {
return object_instances[request.instance_id]
.process_context_requirements
->getProcessContextRequirements();
},
[&](YaProgramListData::GetProgramData& request)
-> YaProgramListData::GetProgramData::Response {
const tresult result =
+2
View File
@@ -171,6 +171,8 @@ struct InstanceInterfaces {
Steinberg::FUnknownPtr<Steinberg::Vst::IUnitData> unit_data;
Steinberg::FUnknownPtr<Steinberg::Vst::IPrefetchableSupport>
prefetchable_support;
Steinberg::FUnknownPtr<Steinberg::Vst::IProcessContextRequirements>
process_context_requirements;
Steinberg::FUnknownPtr<Steinberg::Vst::IProgramListData> program_list_data;
Steinberg::FUnknownPtr<Steinberg::Vst::IUnitInfo> unit_info;
Steinberg::FUnknownPtr<Steinberg::Vst::IXmlRepresentationController>