mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Fully implement IMidiMapping
This commit is contained in:
@@ -85,6 +85,7 @@ using ControlRequest =
|
||||
YaEditController2::SetKnobMode,
|
||||
YaEditController2::OpenHelp,
|
||||
YaEditController2::OpenAboutBox,
|
||||
YaMidiMapping::GetMidiControllerAssignment,
|
||||
YaNoteExpressionController::GetNoteExpressionCount,
|
||||
YaNoteExpressionController::GetNoteExpressionInfo,
|
||||
YaNoteExpressionController::GetNoteExpressionStringByValue,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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::
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user