Add stubs for INoteExpressionPhysicalUIMapping

This commit is contained in:
Robbert van der Helm
2021-01-15 18:59:27 +01:00
parent be7fccc920
commit c485677987
5 changed files with 30 additions and 1 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ for more information on how the serialization works.
The following interfaces are not yet implemented:
- Interfaces introduced after VST 3.6.8
- Interfaces introduced after VST 3.6.11
- The [Presonus extensions](https://presonussoftware.com/en_US/developer),
although most of these things seem to overlap with newer VST3 interfaces
@@ -57,6 +57,8 @@ Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args)
YaMidiMapping(std::move(args.midi_mapping_args)),
YaNoteExpressionController(
std::move(args.note_expression_controller_args)),
YaNoteExpressionPhysicalUIMapping(
std::move(args.note_expression_physical_ui_mapping_args)),
YaPluginBase(std::move(args.plugin_base_args)),
YaPrefetchableSupport(std::move(args.prefetchable_support_args)),
YaProgramListData(std::move(args.program_list_data_args)),
@@ -147,6 +149,11 @@ tresult PLUGIN_API Vst3PluginProxy::queryInterface(Steinberg::FIDString _iid,
Steinberg::Vst::INoteExpressionController::iid,
Steinberg::Vst::INoteExpressionController)
}
if (YaNoteExpressionPhysicalUIMapping::supported()) {
QUERY_INTERFACE(_iid, obj,
Steinberg::Vst::INoteExpressionPhysicalUIMapping::iid,
Steinberg::Vst::INoteExpressionPhysicalUIMapping)
}
if (YaPrefetchableSupport::supported()) {
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IPrefetchableSupport::iid,
Steinberg::Vst::IPrefetchableSupport)
@@ -31,6 +31,7 @@
#include "plugin/keyswitch-controller.h"
#include "plugin/midi-mapping.h"
#include "plugin/note-expression-controller.h"
#include "plugin/note-expression-physical-ui-mapping.h"
#include "plugin/plugin-base.h"
#include "plugin/prefetchable-support.h"
#include "plugin/program-list-data.h"
@@ -76,6 +77,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
public YaKeyswitchController,
public YaMidiMapping,
public YaNoteExpressionController,
public YaNoteExpressionPhysicalUIMapping,
public YaPluginBase,
public YaPrefetchableSupport,
public YaProgramListData,
@@ -115,6 +117,8 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
YaMidiMapping::ConstructArgs midi_mapping_args;
YaNoteExpressionController::ConstructArgs
note_expression_controller_args;
YaNoteExpressionPhysicalUIMapping::ConstructArgs
note_expression_physical_ui_mapping_args;
YaPluginBase::ConstructArgs plugin_base_args;
YaPrefetchableSupport::ConstructArgs prefetchable_support_args;
YaProgramListData::ConstructArgs program_list_data_args;
@@ -138,6 +142,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
s.object(keyswitch_controller_args);
s.object(midi_mapping_args);
s.object(note_expression_controller_args);
s.object(note_expression_physical_ui_mapping_args);
s.object(plugin_base_args);
s.object(prefetchable_support_args);
s.object(program_list_data_args);
@@ -660,6 +660,17 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getNoteExpressionValueByString(
}
}
tresult PLUGIN_API Vst3PluginProxyImpl::getPhysicalUIMapping(
int32 busIndex,
int16 channel,
Steinberg::Vst::PhysicalUIMapList& list) {
// TODO: Implement
bridge.logger.log(
"TODO: Implement "
"INoteExpressionPhysicalUIMapping::getPhysicalUIMapping()");
return Steinberg::kNotImplemented;
}
tresult PLUGIN_API Vst3PluginProxyImpl::initialize(FUnknown* context) {
if (context) {
// We will create a proxy object that that supports all the same
@@ -191,6 +191,12 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy {
const Steinberg::Vst::TChar* string /*in*/,
Steinberg::Vst::NoteExpressionValue& valueNormalized /*out*/) override;
// From `INoteExpressionPhysicalUIMapping`
tresult PLUGIN_API
getPhysicalUIMapping(int32 busIndex,
int16 channel,
Steinberg::Vst::PhysicalUIMapList& list) override;
// From `IPluginBase`
tresult PLUGIN_API initialize(FUnknown* context) override;
tresult PLUGIN_API terminate() override;