mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-08 12:30:12 +02:00
Fully implement IParameterFinder
With this we're at VST 3.0.2 support.
This commit is contained in:
@@ -90,6 +90,7 @@ using ControlRequest =
|
||||
YaNoteExpressionController::GetNoteExpressionInfo,
|
||||
YaNoteExpressionController::GetNoteExpressionStringByValue,
|
||||
YaNoteExpressionController::GetNoteExpressionValueByString,
|
||||
YaParameterFinder::FindParameter,
|
||||
YaPlugView::IsPlatformTypeSupported,
|
||||
YaPlugView::Attached,
|
||||
YaPlugView::Removed,
|
||||
|
||||
@@ -21,10 +21,13 @@ Vst3PlugViewProxy::ConstructArgs::ConstructArgs() {}
|
||||
Vst3PlugViewProxy::ConstructArgs::ConstructArgs(
|
||||
Steinberg::IPtr<Steinberg::FUnknown> object,
|
||||
size_t owner_instance_id)
|
||||
: owner_instance_id(owner_instance_id), plug_view_args(object) {}
|
||||
: owner_instance_id(owner_instance_id),
|
||||
plug_view_args(object),
|
||||
parameter_finder_args(object) {}
|
||||
|
||||
Vst3PlugViewProxy::Vst3PlugViewProxy(const ConstructArgs&& args)
|
||||
: YaPlugView(std::move(args.plug_view_args)),
|
||||
YaParameterFinder(std::move(args.parameter_finder_args)),
|
||||
arguments(std::move(args)){FUNKNOWN_CTOR}
|
||||
|
||||
Vst3PlugViewProxy::~Vst3PlugViewProxy() {
|
||||
@@ -44,6 +47,10 @@ tresult PLUGIN_API Vst3PlugViewProxy::queryInterface(Steinberg::FIDString _iid,
|
||||
QUERY_INTERFACE(_iid, obj, Steinberg::IPlugView::iid,
|
||||
Steinberg::IPlugView)
|
||||
}
|
||||
if (YaParameterFinder::supported()) {
|
||||
QUERY_INTERFACE(_iid, obj, Steinberg::Vst::IParameterFinder::iid,
|
||||
Steinberg::Vst::IParameterFinder)
|
||||
}
|
||||
|
||||
*obj = nullptr;
|
||||
return Steinberg::kNoInterface;
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
* `IEditController::createView()`, and it works exactly the same as
|
||||
* `Vst3PluginProxy`.
|
||||
*/
|
||||
class Vst3PlugViewProxy : public YaPlugView {
|
||||
class Vst3PlugViewProxy : public YaPlugView, public YaParameterFinder {
|
||||
public:
|
||||
/**
|
||||
* These are the arguments for constructing a
|
||||
@@ -55,10 +55,13 @@ class Vst3PlugViewProxy : public YaPlugView {
|
||||
|
||||
YaPlugView::ConstructArgs plug_view_args;
|
||||
|
||||
YaParameterFinder::ConstructArgs parameter_finder_args;
|
||||
|
||||
template <typename S>
|
||||
void serialize(S& s) {
|
||||
s.value8b(owner_instance_id);
|
||||
s.object(plug_view_args);
|
||||
s.object(parameter_finder_args);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ class YaParameterFinder : public Steinberg::Vst::IParameterFinder {
|
||||
virtual tresult PLUGIN_API
|
||||
findParameter(int32 xPos,
|
||||
int32 yPos,
|
||||
Steinberg::Vst::ParamID& resultTag /*out*/) = 0;
|
||||
Steinberg::Vst::ParamID& resultTag /*out*/) override = 0;
|
||||
|
||||
protected:
|
||||
ConstructArgs arguments;
|
||||
|
||||
Reference in New Issue
Block a user