Fully implement IMidiMapping

This commit is contained in:
Robbert van der Helm
2021-01-02 23:52:40 +01:00
parent e980afddb4
commit fb6e5ab33f
4 changed files with 25 additions and 3 deletions
+1
View File
@@ -85,6 +85,7 @@ using ControlRequest =
YaEditController2::SetKnobMode,
YaEditController2::OpenHelp,
YaEditController2::OpenAboutBox,
YaMidiMapping::GetMidiControllerAssignment,
YaNoteExpressionController::GetNoteExpressionCount,
YaNoteExpressionController::GetNoteExpressionInfo,
YaNoteExpressionController::GetNoteExpressionStringByValue,
+10 -3
View File
@@ -418,9 +418,16 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getMidiControllerAssignment(
int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID& id /*out*/) {
// TODO: Implement
bridge.logger.log("TODO: IMidiMapping::getMidiControllerAssignment()");
return Steinberg::kNotImplemented;
const GetMidiControllerAssignmentResponse response =
bridge.send_message(YaMidiMapping::GetMidiControllerAssignment{
.instance_id = instance_id(),
.bus_index = busIndex,
.channel = channel,
.midi_controller_number = midiControllerNumber});
id = response.id;
return response.result;
}
int32 PLUGIN_API Vst3PluginProxyImpl::getNoteExpressionCount(int32 busIndex,
+13
View File
@@ -35,6 +35,7 @@ InstanceInterfaces::InstanceInterfaces(
connection_point(object),
edit_controller(object),
edit_controller_2(object),
midi_mapping(object),
note_expression_controller(object),
plugin_base(object),
unit_data(object),
@@ -370,6 +371,18 @@ void Vst3Bridge::run() {
return object_instances[request.instance_id]
.edit_controller_2->openAboutBox(request.only_check);
},
[&](const YaMidiMapping::GetMidiControllerAssignment& request)
-> YaMidiMapping::GetMidiControllerAssignment::Response {
Steinberg::Vst::ParamID id;
const tresult result =
object_instances[request.instance_id]
.midi_mapping->getMidiControllerAssignment(
request.bus_index, request.channel,
request.midi_controller_number, id);
return YaMidiMapping::GetMidiControllerAssignmentResponse{
.result = result, .id = id};
},
[&](const YaNoteExpressionController::GetNoteExpressionCount&
request)
-> YaNoteExpressionController::GetNoteExpressionCount::
+1
View File
@@ -114,6 +114,7 @@ struct InstanceInterfaces {
Steinberg::FUnknownPtr<Steinberg::Vst::IConnectionPoint> connection_point;
Steinberg::FUnknownPtr<Steinberg::Vst::IEditController> edit_controller;
Steinberg::FUnknownPtr<Steinberg::Vst::IEditController2> edit_controller_2;
Steinberg::FUnknownPtr<Steinberg::Vst::IMidiMapping> midi_mapping;
Steinberg::FUnknownPtr<Steinberg::Vst::INoteExpressionController>
note_expression_controller;
Steinberg::FUnknownPtr<Steinberg::IPluginBase> plugin_base;