mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +02:00
Fully implement IPlugViewContentScaleSupport
With this we're at VST 3.6.6 level support.
This commit is contained in:
@@ -113,6 +113,7 @@ using ControlRequest =
|
|||||||
YaPlugView::SetFrame,
|
YaPlugView::SetFrame,
|
||||||
YaPlugView::CanResize,
|
YaPlugView::CanResize,
|
||||||
YaPlugView::CheckSizeConstraint,
|
YaPlugView::CheckSizeConstraint,
|
||||||
|
YaPlugViewContentScaleSupport::SetContentScaleFactor,
|
||||||
YaPluginBase::Initialize,
|
YaPluginBase::Initialize,
|
||||||
YaPluginBase::Terminate,
|
YaPluginBase::Terminate,
|
||||||
YaPluginFactory::Construct,
|
YaPluginFactory::Construct,
|
||||||
|
|||||||
@@ -189,9 +189,7 @@ tresult PLUGIN_API Vst3PlugViewProxyImpl::findParameter(
|
|||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
Vst3PlugViewProxyImpl::setContentScaleFactor(ScaleFactor factor) {
|
Vst3PlugViewProxyImpl::setContentScaleFactor(ScaleFactor factor) {
|
||||||
// TODO: Implement
|
return bridge.send_message(
|
||||||
bridge.logger.log(
|
YaPlugViewContentScaleSupport::SetContentScaleFactor{
|
||||||
"TODO: Implement "
|
.owner_instance_id = owner_instance_id(), .factor = factor});
|
||||||
"iplugviewcontentscalesupport::setContentScaleFactor()");
|
|
||||||
return Steinberg::kNotImplemented;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ InstancePlugView::InstancePlugView() {}
|
|||||||
|
|
||||||
InstancePlugView::InstancePlugView(
|
InstancePlugView::InstancePlugView(
|
||||||
Steinberg::IPtr<Steinberg::IPlugView> plug_view)
|
Steinberg::IPtr<Steinberg::IPlugView> plug_view)
|
||||||
: plug_view(plug_view), parameter_finder(plug_view) {}
|
: plug_view(plug_view),
|
||||||
|
parameter_finder(plug_view),
|
||||||
|
plug_view_content_scale_support(plug_view) {}
|
||||||
|
|
||||||
InstanceInterfaces::InstanceInterfaces() {}
|
InstanceInterfaces::InstanceInterfaces() {}
|
||||||
|
|
||||||
@@ -737,6 +739,19 @@ void Vst3Bridge::run() {
|
|||||||
return YaPlugView::CheckSizeConstraintResponse{
|
return YaPlugView::CheckSizeConstraintResponse{
|
||||||
.result = result, .updated_rect = std::move(request.rect)};
|
.result = result, .updated_rect = std::move(request.rect)};
|
||||||
},
|
},
|
||||||
|
[&](YaPlugViewContentScaleSupport::SetContentScaleFactor& request)
|
||||||
|
-> YaPlugViewContentScaleSupport::SetContentScaleFactor::
|
||||||
|
Response {
|
||||||
|
return main_context
|
||||||
|
.run_in_context<tresult>([&]() {
|
||||||
|
return object_instances[request
|
||||||
|
.owner_instance_id]
|
||||||
|
.plug_view_instance
|
||||||
|
->plug_view_content_scale_support
|
||||||
|
->setContentScaleFactor(request.factor);
|
||||||
|
})
|
||||||
|
.get();
|
||||||
|
},
|
||||||
[&](YaPluginBase::Initialize& request)
|
[&](YaPluginBase::Initialize& request)
|
||||||
-> YaPluginBase::Initialize::Response {
|
-> YaPluginBase::Initialize::Response {
|
||||||
// We'll create a proxy object for the host context passed by
|
// We'll create a proxy object for the host context passed by
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ struct InstancePlugView {
|
|||||||
// pointers if `plug_view` did not implement the interface.
|
// pointers if `plug_view` did not implement the interface.
|
||||||
|
|
||||||
Steinberg::FUnknownPtr<Steinberg::Vst::IParameterFinder> parameter_finder;
|
Steinberg::FUnknownPtr<Steinberg::Vst::IParameterFinder> parameter_finder;
|
||||||
|
Steinberg::FUnknownPtr<Steinberg::IPlugViewContentScaleSupport>
|
||||||
|
plug_view_content_scale_support;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user