From d5e125e6b3b5aeb56287c8eb88809f185c8e34d2 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Fri, 27 Mar 2020 17:01:49 +0100 Subject: [PATCH] Describe the way events are handled in more detail --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 789eca70..8b1dbbcc 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,17 @@ process works as follows: sockets. The actual binary serialization is handled using [bitsery](https://github.com/fraillt/bitsery). + Sending and receiving events happen in the `send_event()` and + `passthrough_event()` functions. The `passthrough_event()` function calls the + callback functions and handles the marshalling between our data types and the + VST API's different pointer types. Reading data and writing the results back + for host-to-plugin `dispatcher()` calls and for plugin-to-host + `audioMaster()` callbacks happen in the `DispatchDataConverter` and + `HostCallbackDataConverter` classes respectively, with a bit of extra glue + for GUI related operations in `PluginBridge::dispatch_wrapper`. Rewriting all + of this tightly coupled logic to be all in one place sadly only makes things + even more complicated. + 6. The Wine VST host loads the Windows VST plugin and starts forwarding messages over the sockets described above. 7. After the Windows VST plugin has started loading we will forward all values