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), connection_point_args(object),
edit_controller_args(object), edit_controller_args(object),
edit_controller_2_args(object), edit_controller_2_args(object),
midi_mapping_args(object),
note_expression_controller_args(object), note_expression_controller_args(object),
plugin_base_args(object), plugin_base_args(object),
program_list_data_args(object), program_list_data_args(object),
@@ -39,6 +40,7 @@ Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args)
YaConnectionPoint(std::move(args.connection_point_args)), YaConnectionPoint(std::move(args.connection_point_args)),
YaEditController(std::move(args.edit_controller_args)), YaEditController(std::move(args.edit_controller_args)),
YaEditController2(std::move(args.edit_controller_2_args)), YaEditController2(std::move(args.edit_controller_2_args)),
YaMidiMapping(std::move(args.midi_mapping_args)),
YaNoteExpressionController( YaNoteExpressionController(
std::move(args.note_expression_controller_args)), std::move(args.note_expression_controller_args)),
YaPluginBase(std::move(args.plugin_base_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, QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IEditController2::iid,
Steinberg::Vst::IEditController2) Steinberg::Vst::IEditController2)
} }
if (YaMidiMapping::supported()) {
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IMidiMapping::iid,
Steinberg::Vst::IMidiMapping)
}
if (YaNoteExpressionController::supported()) { if (YaNoteExpressionController::supported()) {
QUERY_INTERFACE(_iid, obj, QUERY_INTERFACE(_iid, obj,
Steinberg::Vst::INoteExpressionController::iid, Steinberg::Vst::INoteExpressionController::iid,
@@ -62,6 +62,7 @@ class Vst3PluginProxy : public YaAudioProcessor,
public YaConnectionPoint, public YaConnectionPoint,
public YaEditController, public YaEditController,
public YaEditController2, public YaEditController2,
public YaMidiMapping,
public YaNoteExpressionController, public YaNoteExpressionController,
public YaPluginBase, public YaPluginBase,
public YaProgramListData, public YaProgramListData,
@@ -90,6 +91,7 @@ class Vst3PluginProxy : public YaAudioProcessor,
YaConnectionPoint::ConstructArgs connection_point_args; YaConnectionPoint::ConstructArgs connection_point_args;
YaEditController::ConstructArgs edit_controller_args; YaEditController::ConstructArgs edit_controller_args;
YaEditController2::ConstructArgs edit_controller_2_args; YaEditController2::ConstructArgs edit_controller_2_args;
YaMidiMapping::ConstructArgs midi_mapping_args;
YaNoteExpressionController::ConstructArgs YaNoteExpressionController::ConstructArgs
note_expression_controller_args; note_expression_controller_args;
YaPluginBase::ConstructArgs plugin_base_args; YaPluginBase::ConstructArgs plugin_base_args;
@@ -100,11 +100,11 @@ class YaMidiMapping : public Steinberg::Vst::IMidiMapping {
} }
}; };
virtual tresult PLUGIN_API virtual tresult PLUGIN_API getMidiControllerAssignment(
getMidiControllerAssignment(int32 busIndex, int32 busIndex,
int16 channel, int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber, Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID& id /*out*/) = 0; Steinberg::Vst::ParamID& id /*out*/) override = 0;
protected: protected:
ConstructArgs arguments; ConstructArgs arguments;
@@ -413,6 +413,16 @@ tresult PLUGIN_API Vst3PluginProxyImpl::openAboutBox(TBool onlyCheck) {
.instance_id = instance_id(), .only_check = 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, int32 PLUGIN_API Vst3PluginProxyImpl::getNoteExpressionCount(int32 busIndex,
int16 channel) { int16 channel) {
return bridge.send_message( return bridge.send_message(
@@ -120,6 +120,13 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy {
tresult PLUGIN_API openHelp(TBool onlyCheck) override; tresult PLUGIN_API openHelp(TBool onlyCheck) override;
tresult PLUGIN_API openAboutBox(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` // From `INoteExpressionController`
int32 PLUGIN_API getNoteExpressionCount(int32 busIndex, int32 PLUGIN_API getNoteExpressionCount(int32 busIndex,
int16 channel) override; int16 channel) override;