Implement IStreamAttributes when reading from host

This allows presets to contain meta data about file names and the type
of preset.

Even though the docs don't mention that this is also relevant for
`getState()`, we should also implement it there so plugins can write
their own meta data.
This commit is contained in:
Robbert van der Helm
2021-01-10 15:57:49 +01:00
parent 9b62386099
commit 9b603a964c
4 changed files with 153 additions and 31 deletions
+10 -10
View File
@@ -55,16 +55,16 @@ VST3 host interfaces are implemented as follows:
The following host interfaces are passed as function arguments and are thus also
implemented for serialization purposes:
| yabridge class | Interfaces | Notes |
| --------------------- | ----------------------------- | --------------------------------------------------------------------- |
| `YaAttributeList` | `IAttributeList` | |
| `YaBStream` | `IBStream`, `ISizeableStream` | Used for serializing data streams |
| `YaContextMenuTarget` | `IContextMenuTarget` | Used in `YaContextMenu` to proxy specific menu items |
| `YaEventList` | `IEventList` | Comes with a lot of serialization wrappers around the related structs |
| `YaMessage` | `IMessage` | |
| `YaMessagePtr` | `IMessage` | Should be used in inter process communication to exchange messages |
| `YaParameterChanges` | `IParameterChanges` | |
| `YaParamValueQueue` | `IParamValueQueue` | |
| yabridge class | Interfaces | Notes |
| --------------------- | -------------------------------------------------- | --------------------------------------------------------------------- |
| `YaAttributeList` | `IAttributeList` | |
| `YaBStream` | `IBStream`, `ISizeableStream`, `IStreamAttributes` | Used for serializing data streams |
| `YaContextMenuTarget` | `IContextMenuTarget` | Used in `YaContextMenu` to proxy specific menu items |
| `YaEventList` | `IEventList` | Comes with a lot of serialization wrappers around the related structs |
| `YaMessage` | `IMessage` | |
| `YaMessagePtr` | `IMessage` | Should be used in inter process communication to exchange messages |
| `YaParameterChanges` | `IParameterChanges` | |
| `YaParamValueQueue` | `IParamValueQueue` | |
And finally `YaProcessData` uses the above along with `YaAudioBusBuffers` to
wrap around `ProcessData`.