Implement IUnitData

With this all VST 3.0.0 interfaces are finally supported.
This commit is contained in:
Robbert van der Helm
2020-12-29 22:00:22 +01:00
parent f85912fd25
commit 3553b080fe
7 changed files with 67 additions and 0 deletions
+21
View File
@@ -36,6 +36,7 @@ InstanceInterfaces::InstanceInterfaces(
edit_controller(object),
edit_controller_2(object),
plugin_base(object),
unit_data(object),
program_list_data(object),
unit_info(object) {}
@@ -587,6 +588,26 @@ void Vst3Bridge::run() {
.program_list_data->setProgramData(
request.list_id, request.program_index, &request.data);
},
[&](const YaUnitData::UnitDataSupported& request)
-> YaUnitData::UnitDataSupported::Response {
return object_instances[request.instance_id]
.unit_data->unitDataSupported(request.unit_id);
},
[&](const YaUnitData::GetUnitData& request)
-> YaUnitData::GetUnitData::Response {
VectorStream data{};
const tresult result =
object_instances[request.instance_id]
.unit_data->getUnitData(request.unit_id, &data);
return YaUnitData::GetUnitDataResponse{.result = result,
.data = std::move(data)};
},
[&](YaUnitData::SetUnitData& request)
-> YaUnitData::SetUnitData::Response {
return object_instances[request.instance_id]
.unit_data->setUnitData(request.unit_id, &request.data);
},
[&](const YaPluginFactory::Construct&)
-> YaPluginFactory::Construct::Response {
return YaPluginFactory::ConstructArgs(