Add stubs for IMidiMapping

This commit is contained in:
Robbert van der Helm
2021-01-02 23:49:23 +01:00
parent 792e6ed233
commit e980afddb4
5 changed files with 30 additions and 5 deletions
@@ -27,6 +27,7 @@ Vst3PluginProxy::ConstructArgs::ConstructArgs(
connection_point_args(object),
edit_controller_args(object),
edit_controller_2_args(object),
midi_mapping_args(object),
note_expression_controller_args(object),
plugin_base_args(object),
program_list_data_args(object),
@@ -39,6 +40,7 @@ Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args)
YaConnectionPoint(std::move(args.connection_point_args)),
YaEditController(std::move(args.edit_controller_args)),
YaEditController2(std::move(args.edit_controller_2_args)),
YaMidiMapping(std::move(args.midi_mapping_args)),
YaNoteExpressionController(
std::move(args.note_expression_controller_args)),
YaPluginBase(std::move(args.plugin_base_args)),
@@ -96,6 +98,10 @@ tresult PLUGIN_API Vst3PluginProxy::queryInterface(Steinberg::FIDString _iid,
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IEditController2::iid,
Steinberg::Vst::IEditController2)
}
if (YaMidiMapping::supported()) {
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IMidiMapping::iid,
Steinberg::Vst::IMidiMapping)
}
if (YaNoteExpressionController::supported()) {
QUERY_INTERFACE(_iid, obj,
Steinberg::Vst::INoteExpressionController::iid,
@@ -62,6 +62,7 @@ class Vst3PluginProxy : public YaAudioProcessor,
public YaConnectionPoint,
public YaEditController,
public YaEditController2,
public YaMidiMapping,
public YaNoteExpressionController,
public YaPluginBase,
public YaProgramListData,
@@ -90,6 +91,7 @@ class Vst3PluginProxy : public YaAudioProcessor,
YaConnectionPoint::ConstructArgs connection_point_args;
YaEditController::ConstructArgs edit_controller_args;
YaEditController2::ConstructArgs edit_controller_2_args;
YaMidiMapping::ConstructArgs midi_mapping_args;
YaNoteExpressionController::ConstructArgs
note_expression_controller_args;
YaPluginBase::ConstructArgs plugin_base_args;
@@ -100,11 +100,11 @@ class YaMidiMapping : public Steinberg::Vst::IMidiMapping {
}
};
virtual tresult PLUGIN_API
getMidiControllerAssignment(int32 busIndex,
int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID& id /*out*/) = 0;
virtual tresult PLUGIN_API getMidiControllerAssignment(
int32 busIndex,
int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID& id /*out*/) override = 0;
protected:
ConstructArgs arguments;
@@ -413,6 +413,16 @@ tresult PLUGIN_API Vst3PluginProxyImpl::openAboutBox(TBool onlyCheck) {
.instance_id = instance_id(), .only_check = onlyCheck});
}
tresult PLUGIN_API Vst3PluginProxyImpl::getMidiControllerAssignment(
int32 busIndex,
int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID& id /*out*/) {
// TODO: Implement
bridge.logger.log("TODO: IMidiMapping::getMidiControllerAssignment()");
return Steinberg::kNotImplemented;
}
int32 PLUGIN_API Vst3PluginProxyImpl::getNoteExpressionCount(int32 busIndex,
int16 channel) {
return bridge.send_message(
@@ -120,6 +120,13 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy {
tresult PLUGIN_API openHelp(TBool onlyCheck) override;
tresult PLUGIN_API openAboutBox(TBool onlyCheck) override;
// From `IMidiMapping`
tresult PLUGIN_API
getMidiControllerAssignment(int32 busIndex,
int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID& id /*out*/) override;
// From `INoteExpressionController`
int32 PLUGIN_API getNoteExpressionCount(int32 busIndex,
int16 channel) override;