mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Fully implement INoteExpressionPhysicalUIMapping
With this we support all VST 3.6.11 features.
This commit is contained in:
@@ -100,6 +100,7 @@ using ControlRequest =
|
|||||||
YaNoteExpressionController::GetNoteExpressionInfo,
|
YaNoteExpressionController::GetNoteExpressionInfo,
|
||||||
YaNoteExpressionController::GetNoteExpressionStringByValue,
|
YaNoteExpressionController::GetNoteExpressionStringByValue,
|
||||||
YaNoteExpressionController::GetNoteExpressionValueByString,
|
YaNoteExpressionController::GetNoteExpressionValueByString,
|
||||||
|
YaNoteExpressionPhysicalUIMapping::GetNotePhysicalUIMapping,
|
||||||
YaParameterFinder::FindParameter,
|
YaParameterFinder::FindParameter,
|
||||||
YaPlugView::IsPlatformTypeSupported,
|
YaPlugView::IsPlatformTypeSupported,
|
||||||
YaPlugView::Attached,
|
YaPlugView::Attached,
|
||||||
|
|||||||
@@ -664,11 +664,16 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getPhysicalUIMapping(
|
|||||||
int32 busIndex,
|
int32 busIndex,
|
||||||
int16 channel,
|
int16 channel,
|
||||||
Steinberg::Vst::PhysicalUIMapList& list) {
|
Steinberg::Vst::PhysicalUIMapList& list) {
|
||||||
// TODO: Implement
|
const GetNotePhysicalUIMappingResponse response = bridge.send_message(
|
||||||
bridge.logger.log(
|
YaNoteExpressionPhysicalUIMapping::GetNotePhysicalUIMapping{
|
||||||
"TODO: Implement "
|
.instance_id = instance_id(),
|
||||||
"INoteExpressionPhysicalUIMapping::getPhysicalUIMapping()");
|
.bus_index = busIndex,
|
||||||
return Steinberg::kNotImplemented;
|
.channel = channel,
|
||||||
|
.list = list});
|
||||||
|
|
||||||
|
response.list.write_back(list);
|
||||||
|
|
||||||
|
return response.result;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::initialize(FUnknown* context) {
|
tresult PLUGIN_API Vst3PluginProxyImpl::initialize(FUnknown* context) {
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ InstanceInterfaces::InstanceInterfaces(
|
|||||||
keyswitch_controller(object),
|
keyswitch_controller(object),
|
||||||
midi_mapping(object),
|
midi_mapping(object),
|
||||||
note_expression_controller(object),
|
note_expression_controller(object),
|
||||||
|
note_expression_physical_ui_mapping(object),
|
||||||
plugin_base(object),
|
plugin_base(object),
|
||||||
unit_data(object),
|
unit_data(object),
|
||||||
prefetchable_support(object),
|
prefetchable_support(object),
|
||||||
@@ -535,6 +536,24 @@ void Vst3Bridge::run() {
|
|||||||
.result = result,
|
.result = result,
|
||||||
.value_normalized = value_normalized};
|
.value_normalized = value_normalized};
|
||||||
},
|
},
|
||||||
|
[&](YaNoteExpressionPhysicalUIMapping::GetNotePhysicalUIMapping&
|
||||||
|
request)
|
||||||
|
-> YaNoteExpressionPhysicalUIMapping::GetNotePhysicalUIMapping::
|
||||||
|
Response {
|
||||||
|
Steinberg::Vst::PhysicalUIMapList reconstructed_list =
|
||||||
|
request.list.get();
|
||||||
|
const tresult result =
|
||||||
|
object_instances[request.instance_id]
|
||||||
|
.note_expression_physical_ui_mapping
|
||||||
|
->getPhysicalUIMapping(request.bus_index,
|
||||||
|
request.channel,
|
||||||
|
reconstructed_list);
|
||||||
|
|
||||||
|
return YaNoteExpressionPhysicalUIMapping::
|
||||||
|
GetNotePhysicalUIMappingResponse{
|
||||||
|
.result = result,
|
||||||
|
.list = std::move(request.list)};
|
||||||
|
},
|
||||||
[&](const YaParameterFinder::FindParameter& request)
|
[&](const YaParameterFinder::FindParameter& request)
|
||||||
-> YaParameterFinder::FindParameter::Response {
|
-> YaParameterFinder::FindParameter::Response {
|
||||||
Steinberg::Vst::ParamID result_tag;
|
Steinberg::Vst::ParamID result_tag;
|
||||||
|
|||||||
@@ -164,6 +164,8 @@ struct InstanceInterfaces {
|
|||||||
Steinberg::FUnknownPtr<Steinberg::Vst::IMidiMapping> midi_mapping;
|
Steinberg::FUnknownPtr<Steinberg::Vst::IMidiMapping> midi_mapping;
|
||||||
Steinberg::FUnknownPtr<Steinberg::Vst::INoteExpressionController>
|
Steinberg::FUnknownPtr<Steinberg::Vst::INoteExpressionController>
|
||||||
note_expression_controller;
|
note_expression_controller;
|
||||||
|
Steinberg::FUnknownPtr<Steinberg::Vst::INoteExpressionPhysicalUIMapping>
|
||||||
|
note_expression_physical_ui_mapping;
|
||||||
Steinberg::FUnknownPtr<Steinberg::IPluginBase> plugin_base;
|
Steinberg::FUnknownPtr<Steinberg::IPluginBase> plugin_base;
|
||||||
Steinberg::FUnknownPtr<Steinberg::Vst::IUnitData> unit_data;
|
Steinberg::FUnknownPtr<Steinberg::Vst::IUnitData> unit_data;
|
||||||
Steinberg::FUnknownPtr<Steinberg::Vst::IPrefetchableSupport>
|
Steinberg::FUnknownPtr<Steinberg::Vst::IPrefetchableSupport>
|
||||||
|
|||||||
Reference in New Issue
Block a user