Fully implement IInfoListener

This commit is contained in:
Robbert van der Helm
2021-01-12 17:04:07 +01:00
parent 2e57631d39
commit 631166d0bf
4 changed files with 19 additions and 4 deletions
+1
View File
@@ -92,6 +92,7 @@ using ControlRequest =
YaEditController2::OpenAboutBox,
YaEditControllerHostEditing::BeginEditFromHost,
YaEditControllerHostEditing::EndEditFromHost,
YaInfoListener::SetChannelContextInfos,
YaKeyswitchController::GetKeyswitchCount,
YaKeyswitchController::GetKeyswitchInfo,
YaMidiMapping::GetMidiControllerAssignment,
+10 -4
View File
@@ -524,10 +524,16 @@ Vst3PluginProxyImpl::endEditFromHost(Steinberg::Vst::ParamID paramID) {
tresult PLUGIN_API Vst3PluginProxyImpl::setChannelContextInfos(
Steinberg::Vst::IAttributeList* list) {
// TODO: Implement
bridge.logger.log(
"TODO: Implement IInfoListener::setChannelContextInfos()");
return Steinberg::kNotImplemented;
if (list) {
return bridge.send_message(YaInfoListener::SetChannelContextInfos{
.instance_id = instance_id(),
.list = YaAttributeList::read_channel_context(list)});
} else {
bridge.logger.log(
"WARNING: Null pointer passed to "
"'IInfoListener::setChannelContextInfos()'");
return Steinberg::kInvalidArgument;
}
}
int32 PLUGIN_API Vst3PluginProxyImpl::getKeyswitchCount(int32 busIndex,
+6
View File
@@ -45,6 +45,7 @@ InstanceInterfaces::InstanceInterfaces(
edit_controller(object),
edit_controller_2(object),
edit_controller_host_editing(object),
info_listener(object),
keyswitch_controller(object),
midi_mapping(object),
note_expression_controller(object),
@@ -430,6 +431,11 @@ void Vst3Bridge::run() {
.edit_controller_host_editing->endEditFromHost(
request.param_id);
},
[&](YaInfoListener::SetChannelContextInfos& request)
-> YaInfoListener::SetChannelContextInfos::Response {
return object_instances[request.instance_id]
.info_listener->setChannelContextInfos(&request.list);
},
[&](const YaKeyswitchController::GetKeyswitchCount& request)
-> YaKeyswitchController::GetKeyswitchCount::Response {
return object_instances[request.instance_id]
+2
View File
@@ -155,6 +155,8 @@ struct InstanceInterfaces {
Steinberg::FUnknownPtr<Steinberg::Vst::IEditController2> edit_controller_2;
Steinberg::FUnknownPtr<Steinberg::Vst::IEditControllerHostEditing>
edit_controller_host_editing;
Steinberg::FUnknownPtr<Steinberg::Vst::ChannelContext::IInfoListener>
info_listener;
Steinberg::FUnknownPtr<Steinberg::Vst::IKeyswitchController>
keyswitch_controller;
Steinberg::FUnknownPtr<Steinberg::Vst::IMidiMapping> midi_mapping;