mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Implement IProgramListData on the Wine side
This commit is contained in:
@@ -100,6 +100,9 @@ using ControlRequest = std::variant<Vst3PlugViewProxy::Destruct,
|
||||
YaPluginBase::Terminate,
|
||||
YaPluginFactory::Construct,
|
||||
YaPluginFactory::SetHostContext,
|
||||
YaProgramListData::ProgramDataSupported,
|
||||
YaProgramListData::GetProgramData,
|
||||
YaProgramListData::SetProgramData,
|
||||
YaUnitInfo::GetUnitCount,
|
||||
YaUnitInfo::GetUnitInfo,
|
||||
YaUnitInfo::GetProgramListCount,
|
||||
|
||||
@@ -36,6 +36,7 @@ InstanceInterfaces::InstanceInterfaces(
|
||||
edit_controller(object),
|
||||
edit_controller_2(object),
|
||||
plugin_base(object),
|
||||
program_list_data(object),
|
||||
unit_info(object) {}
|
||||
|
||||
Vst3Bridge::Vst3Bridge(MainContext& main_context,
|
||||
@@ -564,6 +565,28 @@ void Vst3Bridge::run() {
|
||||
})
|
||||
.get();
|
||||
},
|
||||
[&](const YaProgramListData::ProgramDataSupported& request)
|
||||
-> YaProgramListData::ProgramDataSupported::Response {
|
||||
return object_instances[request.instance_id]
|
||||
.program_list_data->programDataSupported(request.list_id);
|
||||
},
|
||||
[&](const YaProgramListData::GetProgramData& request)
|
||||
-> YaProgramListData::GetProgramData::Response {
|
||||
VectorStream data{};
|
||||
const tresult result =
|
||||
object_instances[request.instance_id]
|
||||
.program_list_data->getProgramData(
|
||||
request.list_id, request.program_index, &data);
|
||||
|
||||
return YaProgramListData::GetProgramDataResponse{
|
||||
.result = result, .data = std::move(data)};
|
||||
},
|
||||
[&](YaProgramListData::SetProgramData& request)
|
||||
-> YaProgramListData::SetProgramData::Response {
|
||||
return object_instances[request.instance_id]
|
||||
.program_list_data->setProgramData(
|
||||
request.list_id, request.program_index, &request.data);
|
||||
},
|
||||
[&](const YaPluginFactory::Construct&)
|
||||
-> YaPluginFactory::Construct::Response {
|
||||
return YaPluginFactory::ConstructArgs(
|
||||
|
||||
@@ -115,6 +115,7 @@ struct InstanceInterfaces {
|
||||
Steinberg::FUnknownPtr<Steinberg::Vst::IEditController> edit_controller;
|
||||
Steinberg::FUnknownPtr<Steinberg::Vst::IEditController2> edit_controller_2;
|
||||
Steinberg::FUnknownPtr<Steinberg::IPluginBase> plugin_base;
|
||||
Steinberg::FUnknownPtr<Steinberg::Vst::IProgramListData> program_list_data;
|
||||
Steinberg::FUnknownPtr<Steinberg::Vst::IUnitInfo> unit_info;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user