From 3fbffa532db623fed123697dd1308545f1683e18 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Tue, 9 Feb 2021 23:45:33 +0100 Subject: [PATCH] Move Win32 event handling to one place Or technically, two, since the group bridge also does the same loop. We no longer need special handling for VST2 and VST3 plugins, so we can simplify things a bit here. --- src/wine-host/bridges/common.cpp | 13 +++++++++++++ src/wine-host/bridges/common.h | 5 +---- src/wine-host/bridges/vst2.cpp | 11 ----------- src/wine-host/bridges/vst2.h | 1 - src/wine-host/bridges/vst3.cpp | 11 ----------- src/wine-host/bridges/vst3.h | 1 - 6 files changed, 14 insertions(+), 28 deletions(-) diff --git a/src/wine-host/bridges/common.cpp b/src/wine-host/bridges/common.cpp index aa67ce46..358c04e1 100644 --- a/src/wine-host/bridges/common.cpp +++ b/src/wine-host/bridges/common.cpp @@ -16,5 +16,18 @@ #include "common.h" +#include "../editor.h" + HostBridge::HostBridge(boost::filesystem::path plugin_path) : plugin_path(plugin_path) {} + +void HostBridge::handle_win32_events() { + MSG msg; + + for (int i = 0; + i < max_win32_messages && PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE); + i++) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +} diff --git a/src/wine-host/bridges/common.h b/src/wine-host/bridges/common.h index 76f39426..6c55c0db 100644 --- a/src/wine-host/bridges/common.h +++ b/src/wine-host/bridges/common.h @@ -80,11 +80,8 @@ class HostBridge { * specific situation that can cause a race condition in some plugins * because of incorrect assumptions made by the plugin. See the dostring for * `Vst2Bridge::editor` for more information. - * - * TODO: We can get rid of this now, since we no longer have any special - * handling here */ - virtual void handle_win32_events() = 0; + void handle_win32_events(); /** * The path to the .dll being loaded in the Wine plugin host. diff --git a/src/wine-host/bridges/vst2.cpp b/src/wine-host/bridges/vst2.cpp index e7da986b..780d93d3 100644 --- a/src/wine-host/bridges/vst2.cpp +++ b/src/wine-host/bridges/vst2.cpp @@ -379,17 +379,6 @@ void Vst2Bridge::handle_x11_events() { } } -void Vst2Bridge::handle_win32_events() { - MSG msg; - - for (int i = 0; - i < max_win32_messages && PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE); - i++) { - TranslateMessage(&msg); - DispatchMessage(&msg); - } -} - intptr_t Vst2Bridge::dispatch_wrapper(AEffect* plugin, int opcode, int index, diff --git a/src/wine-host/bridges/vst2.h b/src/wine-host/bridges/vst2.h index 5c747b39..83ec6491 100644 --- a/src/wine-host/bridges/vst2.h +++ b/src/wine-host/bridges/vst2.h @@ -68,7 +68,6 @@ class Vst2Bridge : public HostBridge { void run() override; void handle_x11_events() override; - void handle_win32_events() override; /** * Forward the host callback made by the plugin to the host and return the diff --git a/src/wine-host/bridges/vst3.cpp b/src/wine-host/bridges/vst3.cpp index 39919373..6b6e65c4 100644 --- a/src/wine-host/bridges/vst3.cpp +++ b/src/wine-host/bridges/vst3.cpp @@ -1077,17 +1077,6 @@ void Vst3Bridge::handle_x11_events() { } } -void Vst3Bridge::handle_win32_events() { - MSG msg; - - for (int i = 0; - i < max_win32_messages && PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE); - i++) { - TranslateMessage(&msg); - DispatchMessage(&msg); - } -} - void Vst3Bridge::register_context_menu(Vst3ContextMenuProxyImpl& context_menu) { std::lock_guard lock(object_instances[context_menu.owner_instance_id()] .registered_context_menus_mutex); diff --git a/src/wine-host/bridges/vst3.h b/src/wine-host/bridges/vst3.h index 51f72e38..1a1ffecd 100644 --- a/src/wine-host/bridges/vst3.h +++ b/src/wine-host/bridges/vst3.h @@ -232,7 +232,6 @@ class Vst3Bridge : public HostBridge { void run() override; void handle_x11_events() override; - void handle_win32_events() override; /** * Send a callback message to the host return the response. This is a