Add stubs for IKeyswitchController

This commit is contained in:
Robbert van der Helm
2021-01-08 16:53:43 +01:00
parent 4ef734dc5a
commit 7969ec20fd
4 changed files with 35 additions and 0 deletions
@@ -29,6 +29,7 @@ Vst3PluginProxy::ConstructArgs::ConstructArgs(
edit_controller_args(object),
edit_controller_2_args(object),
edit_controller_host_editing_args(object),
keyswitch_controller_args(object),
midi_mapping_args(object),
note_expression_controller_args(object),
plugin_base_args(object),
@@ -46,6 +47,7 @@ Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args)
YaEditController2(std::move(args.edit_controller_2_args)),
YaEditControllerHostEditing(
std::move(args.edit_controller_host_editing_args)),
YaKeyswitchController(std::move(args.keyswitch_controller_args)),
YaMidiMapping(std::move(args.midi_mapping_args)),
YaNoteExpressionController(
std::move(args.note_expression_controller_args)),
@@ -114,6 +116,10 @@ tresult PLUGIN_API Vst3PluginProxy::queryInterface(Steinberg::FIDString _iid,
Steinberg::Vst::IEditControllerHostEditing::iid,
Steinberg::Vst::IEditControllerHostEditing)
}
if (YaKeyswitchController::supported()) {
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IKeyswitchController::iid,
Steinberg::Vst::IKeyswitchController)
}
if (YaMidiMapping::supported()) {
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IMidiMapping::iid,
Steinberg::Vst::IMidiMapping)
@@ -26,6 +26,7 @@
#include "plugin/edit-controller-2.h"
#include "plugin/edit-controller-host-editing.h"
#include "plugin/edit-controller.h"
#include "plugin/keyswitch-controller.h"
#include "plugin/midi-mapping.h"
#include "plugin/note-expression-controller.h"
#include "plugin/plugin-base.h"
@@ -66,6 +67,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
public YaEditController,
public YaEditController2,
public YaEditControllerHostEditing,
public YaKeyswitchController,
public YaMidiMapping,
public YaNoteExpressionController,
public YaPluginBase,
@@ -99,6 +101,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
YaEditController2::ConstructArgs edit_controller_2_args;
YaEditControllerHostEditing::ConstructArgs
edit_controller_host_editing_args;
YaKeyswitchController::ConstructArgs keyswitch_controller_args;
YaMidiMapping::ConstructArgs midi_mapping_args;
YaNoteExpressionController::ConstructArgs
note_expression_controller_args;
@@ -117,6 +120,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
s.object(edit_controller_args);
s.object(edit_controller_2_args);
s.object(edit_controller_host_editing_args);
s.object(keyswitch_controller_args);
s.object(midi_mapping_args);
s.object(note_expression_controller_args);
s.object(plugin_base_args);
@@ -463,6 +463,23 @@ Vst3PluginProxyImpl::endEditFromHost(Steinberg::Vst::ParamID paramID) {
.instance_id = instance_id(), .param_id = paramID});
}
int32 PLUGIN_API Vst3PluginProxyImpl::getKeyswitchCount(int32 busIndex,
int16 channel) {
// TODO: Implement
bridge.logger.log("TODO: IKeyswitchController::getKeyswitchCount()");
return Steinberg::kNotImplemented;
}
tresult PLUGIN_API Vst3PluginProxyImpl::getKeyswitchInfo(
int32 busIndex,
int16 channel,
int32 keySwitchIndex,
Steinberg::Vst::KeyswitchInfo& info /*out*/) {
// TODO: Implement
bridge.logger.log("TODO: IKeyswitchController::getKeyswitchInfo()");
return Steinberg::kNotImplemented;
}
tresult PLUGIN_API Vst3PluginProxyImpl::getMidiControllerAssignment(
int32 busIndex,
int16 channel,
@@ -148,6 +148,14 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy {
tresult PLUGIN_API
endEditFromHost(Steinberg::Vst::ParamID paramID) override;
// From `IKeyswitchController`
int32 PLUGIN_API getKeyswitchCount(int32 busIndex, int16 channel) override;
tresult PLUGIN_API
getKeyswitchInfo(int32 busIndex,
int16 channel,
int32 keySwitchIndex,
Steinberg::Vst::KeyswitchInfo& info /*out*/) override;
// From `IMidiMapping`
tresult PLUGIN_API
getMidiControllerAssignment(int32 busIndex,