mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +02:00
Don't serialize input size for IPlugView::GetSize
This commit is contained in:
@@ -1571,10 +1571,10 @@ void Vst3Logger::log_response(bool is_host_vst,
|
|||||||
log_response_base(is_host_vst, [&](auto& message) {
|
log_response_base(is_host_vst, [&](auto& message) {
|
||||||
message << response.result.string();
|
message << response.result.string();
|
||||||
if (response.result == Steinberg::kResultOk) {
|
if (response.result == Steinberg::kResultOk) {
|
||||||
message << ", <ViewRect* with left = " << response.updated_size.left
|
message << ", <ViewRect* with left = " << response.size.left
|
||||||
<< ", top = " << response.updated_size.top
|
<< ", top = " << response.size.top
|
||||||
<< ", right = " << response.updated_size.right
|
<< ", right = " << response.size.right
|
||||||
<< ", bottom = " << response.updated_size.bottom << ">";
|
<< ", bottom = " << response.size.bottom << ">";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,12 +210,12 @@ class YaPlugView : public Steinberg::IPlugView {
|
|||||||
*/
|
*/
|
||||||
struct GetSizeResponse {
|
struct GetSizeResponse {
|
||||||
UniversalTResult result;
|
UniversalTResult result;
|
||||||
Steinberg::ViewRect updated_size;
|
Steinberg::ViewRect size;
|
||||||
|
|
||||||
template <typename S>
|
template <typename S>
|
||||||
void serialize(S& s) {
|
void serialize(S& s) {
|
||||||
s.object(result);
|
s.object(result);
|
||||||
s.object(updated_size);
|
s.object(size);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -227,12 +227,9 @@ class YaPlugView : public Steinberg::IPlugView {
|
|||||||
|
|
||||||
native_size_t owner_instance_id;
|
native_size_t owner_instance_id;
|
||||||
|
|
||||||
Steinberg::ViewRect size;
|
|
||||||
|
|
||||||
template <typename S>
|
template <typename S>
|
||||||
void serialize(S& s) {
|
void serialize(S& s) {
|
||||||
s.value8b(owner_instance_id);
|
s.value8b(owner_instance_id);
|
||||||
s.object(size);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -168,11 +168,10 @@ tresult PLUGIN_API Vst3PlugViewProxyImpl::onKeyUp(char16 key,
|
|||||||
|
|
||||||
tresult PLUGIN_API Vst3PlugViewProxyImpl::getSize(Steinberg::ViewRect* size) {
|
tresult PLUGIN_API Vst3PlugViewProxyImpl::getSize(Steinberg::ViewRect* size) {
|
||||||
if (size) {
|
if (size) {
|
||||||
const GetSizeResponse response =
|
const GetSizeResponse response = send_mutually_recursive_message(
|
||||||
send_mutually_recursive_message(YaPlugView::GetSize{
|
YaPlugView::GetSize{.owner_instance_id = owner_instance_id()});
|
||||||
.owner_instance_id = owner_instance_id(), .size = *size});
|
|
||||||
|
|
||||||
*size = response.updated_size;
|
*size = response.size;
|
||||||
|
|
||||||
return response.result;
|
return response.result;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -724,16 +724,16 @@ void Vst3Bridge::run() {
|
|||||||
[&](YaPlugView::GetSize& request) -> YaPlugView::GetSize::Response {
|
[&](YaPlugView::GetSize& request) -> YaPlugView::GetSize::Response {
|
||||||
// Melda plugins will refuse to open dialogs of this function is
|
// Melda plugins will refuse to open dialogs of this function is
|
||||||
// not run from the GUI thread
|
// not run from the GUI thread
|
||||||
|
Steinberg::ViewRect size{};
|
||||||
const tresult result =
|
const tresult result =
|
||||||
do_mutual_recursion_or_handle_in_main_context<tresult>(
|
do_mutual_recursion_or_handle_in_main_context<tresult>(
|
||||||
[&]() {
|
[&]() {
|
||||||
return object_instances[request.owner_instance_id]
|
return object_instances[request.owner_instance_id]
|
||||||
.plug_view_instance->plug_view->getSize(
|
.plug_view_instance->plug_view->getSize(&size);
|
||||||
&request.size);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return YaPlugView::GetSizeResponse{
|
return YaPlugView::GetSizeResponse{.result = result,
|
||||||
.result = result, .updated_size = std::move(request.size)};
|
.size = std::move(size)};
|
||||||
},
|
},
|
||||||
[&](YaPlugView::OnSize& request) -> YaPlugView::OnSize::Response {
|
[&](YaPlugView::OnSize& request) -> YaPlugView::OnSize::Response {
|
||||||
// HACK: This function has to be run from the UI thread since
|
// HACK: This function has to be run from the UI thread since
|
||||||
|
|||||||
Reference in New Issue
Block a user