Add stubs for IXmlRepresentationController

This commit is contained in:
Robbert van der Helm
2021-01-08 17:43:43 +01:00
parent ebd887d565
commit 2072310b2b
4 changed files with 29 additions and 2 deletions
@@ -35,7 +35,8 @@ Vst3PluginProxy::ConstructArgs::ConstructArgs(
plugin_base_args(object),
program_list_data_args(object),
unit_data_args(object),
unit_info_args(object) {}
unit_info_args(object),
xml_representation_controller_args(object) {}
Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args)
: YaAudioPresentationLatency(
@@ -55,6 +56,8 @@ Vst3PluginProxy::Vst3PluginProxy(const ConstructArgs&& args)
YaProgramListData(std::move(args.program_list_data_args)),
YaUnitData(std::move(args.unit_data_args)),
YaUnitInfo(std::move(args.unit_info_args)),
YaXmlRepresentationController(
std::move(args.xml_representation_controller_args)),
arguments(std::move(args)){FUNKNOWN_CTOR}
Vst3PluginProxy::~Vst3PluginProxy() {
@@ -141,6 +144,11 @@ tresult PLUGIN_API Vst3PluginProxy::queryInterface(Steinberg::FIDString _iid,
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IUnitInfo::iid,
Steinberg::Vst::IUnitInfo)
}
if (YaXmlRepresentationController::supported()) {
QUERY_INTERFACE(_iid, obj,
Steinberg::Vst::IXmlRepresentationController::iid,
Steinberg::Vst::IXmlRepresentationController)
}
*obj = nullptr;
return Steinberg::kNoInterface;
+6 -1
View File
@@ -33,6 +33,7 @@
#include "plugin/program-list-data.h"
#include "plugin/unit-data.h"
#include "plugin/unit-info.h"
#include "plugin/xml-representation-controller.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
@@ -73,7 +74,8 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
public YaPluginBase,
public YaProgramListData,
public YaUnitData,
public YaUnitInfo {
public YaUnitInfo,
public YaXmlRepresentationController {
public:
/**
* These are the arguments for constructing a `Vst3PluginProxyImpl`.
@@ -109,6 +111,8 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
YaProgramListData::ConstructArgs program_list_data_args;
YaUnitData::ConstructArgs unit_data_args;
YaUnitInfo::ConstructArgs unit_info_args;
YaXmlRepresentationController::ConstructArgs
xml_representation_controller_args;
template <typename S>
void serialize(S& s) {
@@ -127,6 +131,7 @@ class Vst3PluginProxy : public YaAudioPresentationLatency,
s.object(program_list_data_args);
s.object(unit_data_args);
s.object(unit_info_args);
s.object(xml_representation_controller_args);
}
};
@@ -788,3 +788,12 @@ Vst3PluginProxyImpl::setUnitProgramData(int32 listOrUnitId,
.program_index = programIndex,
.data = data});
}
tresult PLUGIN_API Vst3PluginProxyImpl::getXmlRepresentationStream(
Steinberg::Vst::RepresentationInfo& info /*in*/,
Steinberg::IBStream* stream /*out*/) {
// TODO: Implement
bridge.logger.log(
"TODO: IXmlRepresentationController::getXmlRepresentationStream()");
return Steinberg::kNotImplemented;
}
@@ -244,6 +244,11 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy {
int32 programIndex,
Steinberg::IBStream* data) override;
// From `IXmlRepresentationController`
tresult PLUGIN_API
getXmlRepresentationStream(Steinberg::Vst::RepresentationInfo& info /*in*/,
Steinberg::IBStream* stream /*out*/);
/**
* The component handler the host passed to us during
* `IEditController::setComponentHandler()`. When the plugin makes a