Rewrite the architecture document for VST3 support

This now also goes more in depth on the more interesting parts of
yabridge's implementation while skimming over lesser useful technical
bits.
This commit is contained in:
Robbert van der Helm
2021-02-14 00:48:15 +01:00
parent 44cb2ffbaf
commit c9fbd0627f
6 changed files with 208 additions and 261 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
# VST3 interfaces
See
[docs/vst3.md](https://github.com/robbert-vdh/yabridge/blob/master/docs/vst3.md)
[docs/architecture.md#vst3-plugins](https://github.com/robbert-vdh/yabridge/blob/master/docs/architecture.md)
for more information on how the serialization works.
We currently support all official VST 3.7.1 interfaces.
+2 -2
View File
@@ -48,8 +48,8 @@
/**
* An abstract class that optionally implements all VST3 interfaces a plugin
* object could implement. A more in depth explanation can be found in
* `docs/vst3.md`, but the way this works is that we begin with an `FUnknown`
* pointer from the Windows VST3 plugin obtained by a call to
* `docs/architecture.md`, but the way this works is that we begin with an
* `FUnknown` pointer from the Windows VST3 plugin obtained by a call to
* `IPluginFactory::createInstance()` (with an interface decided by the host).
* We then go through all the plugin interfaces and check whether that object
* supports them one by one. For each supported interface we remember that the
@@ -82,7 +82,7 @@ class RunLoopTasks : public Steinberg::Linux::IEventHandler {
*
* @relates Vst3PlugViewProxyImpl::run_gui_task
*
* @see RunLoopTasks::schedule_task
* @see RunLoopTasks::schedule
*/
std::vector<fu2::unique_function<void()>> tasks;
std::mutex tasks_mutex;