Add a document with all implemented interfaces

This commit is contained in:
Robbert van der Helm
2020-12-16 22:06:45 +01:00
parent 7488d6f482
commit 97570a47ba
2 changed files with 28 additions and 9 deletions
+2 -9
View File
@@ -21,15 +21,8 @@ incomplete list of things that still have to be done before this can be used:
- `IEditController{,2}`
- All other mandatory interfaces
- All other optional interfaces
- Fully implemented:
- `GetPluginFactory()` and `IPluginFactory{,2,3}`
- `IPluginBase` and `IComponent`
- `IBStream`
- `IAudioProcessor`
- Everything surrounding `ProcessData`, `ProcessingContext` and
`AudioBusBuffers`
- `IParameterChanges`, `IParamValueQueue`, `IEventList`, and all event types
in VST 3.7.1
- Fully implemented: see [this
document](https://github.com/robbert-vdh/yabridge/tree/feature/vst3/src/common/serialization/vst3/README.md)
- Update the GitHub Actions workflows.
- Update yabridgectl to handle buth VST2 and VST3 plugins.
- Update all documentation to refer to VST2 and VST3 support separately, and
+26
View File
@@ -0,0 +1,26 @@
# VST3 interfaces
TODO: After merging into master, update this link to just point to GitHub
See [docs/vst3.md](../../../../docs/vst3.md) for more information on how the
serialization works.
VST3 interfaces are implemented as follows:
| Yabridge class | Interfaces | Notes |
| ------------------- | ------------------------------------------------------ | ---------------------------------------------------------- |
| `YaComponent` | `IComponent`, `IPluginBase`, `IAudioProcessor` | |
| `YaHostApplication` | `iHostAPplication` | Used as a 'context' to allow the plugin to maek callbacks. |
| `YaPluginFactory` | `IPluginFactory`, `IPluginFactory2`, `IPluginFactory3` | |
The following interfaces are implemented purely fur serialization purposes:
| Yabridge class | Interfaces | Notes |
| -------------------- | ------------------- | ---------------------------------------------------------------------- |
| `YaEventList` | `IEventList` | Comes with a lot of serialization wrappers around the related structs. |
| `YaParameterChanges` | `IParameterChanges` | |
| `YaParamValueQueue` | `IParamValueQueue` | |
| `VectorStream` | `IBStream` | Used for serializing data streams. |
And finally `YaProcessData` uses the above along with `YaAudioBusBuffers` to
wrap around `ProcessData`.