mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Fully implement IInfoListener
This commit is contained in:
@@ -92,6 +92,7 @@ using ControlRequest =
|
||||
YaEditController2::OpenAboutBox,
|
||||
YaEditControllerHostEditing::BeginEditFromHost,
|
||||
YaEditControllerHostEditing::EndEditFromHost,
|
||||
YaInfoListener::SetChannelContextInfos,
|
||||
YaKeyswitchController::GetKeyswitchCount,
|
||||
YaKeyswitchController::GetKeyswitchInfo,
|
||||
YaMidiMapping::GetMidiControllerAssignment,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user