Commit Graph

262 Commits

Author SHA1 Message Date
Robbert van der Helm 89111d2f5f Add stubs for IUnitHandler2 2021-01-10 23:49:58 +01:00
Robbert van der Helm cbb8ebaf5d Add a proxy class for IUnitHandler2 2021-01-10 23:44:10 +01:00
Robbert van der Helm c62c67a96c Add a message structs for IAutomationState 2021-01-10 23:34:23 +01:00
Robbert van der Helm cfa1aff1bf Add stubs for IAutomationState 2021-01-10 23:32:55 +01:00
Robbert van der Helm ba983be99f Add a proxy class for IAutomationState 2021-01-10 23:32:55 +01:00
Robbert van der Helm c938068cf5 Update VST3 implementation level
We're now at VST 3.6.0.
2021-01-10 17:46:56 +01:00
Robbert van der Helm e28a73e88a Remove old todo regarding IStreamAttributes 2021-01-10 17:45:58 +01:00
Robbert van der Helm d632d5643d Relax IBStream reading even further
And reset the seek position after reading. This new approach where we
also read from empty IBStreams to provide a perfect proxy would
otherwise cause plugins to crash in Bitwig when either loading or saving
state.
2021-01-10 17:41:55 +01:00
Robbert van der Helm 4fdd50d1a3 Relax assertions in stream reading
Reading 0 bytes in Bitwig will return kResultFalse.
2021-01-10 17:34:42 +01:00
Robbert van der Helm c514233922 Write back preset meta data set by the plugin
The docs don't mention that this is a thing you should support, but
`IStreamAttributes` doesn't make much sense without this.
2021-01-10 17:26:26 +01:00
Robbert van der Helm 8971a65825 Pass through host provided IBStream objects
So if the host supports IStreamAttributes, we can also provide objects
that support the same itnerface to the plugin.
2021-01-10 16:57:36 +01:00
Robbert van der Helm 9b603a964c 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.
2021-01-10 16:23:45 +01:00
Robbert van der Helm 9b62386099 Move VectorStream to a new YaBStream
We'll have to extend this with `IStreamAttributes` for VST 3.6.0 preset
meta data.
2021-01-10 15:12:47 +01:00
Robbert van der Helm b3406189e7 Add messages for IXmlRepresentationController 2021-01-08 17:47:10 +01:00
Robbert van der Helm 2072310b2b Add stubs for IXmlRepresentationController 2021-01-08 17:43:43 +01:00
Robbert van der Helm ebd887d565 Add a proxy class for IXmlRepresentationController 2021-01-08 17:33:49 +01:00
Robbert van der Helm e21568a38e Add message structs for IKeyswitchController 2021-01-08 16:59:53 +01:00
Robbert van der Helm 7969ec20fd Add stubs for IKeyswitchController 2021-01-08 16:53:43 +01:00
Robbert van der Helm 4ef734dc5a Add a proxy class for IKeyswitchController 2021-01-08 16:44:58 +01:00
Robbert van der Helm 78243c265f Add message structs for IEditControllerHostEditing 2021-01-08 16:25:00 +01:00
Robbert van der Helm eed068b9f7 Add stubs for IEditControllerHostEditing 2021-01-08 16:18:45 +01:00
Robbert van der Helm 66020f3056 Add a proxy class for IEditControllerHostEditing 2021-01-08 16:12:38 +01:00
Robbert van der Helm 25af73c86e Update the context menu status 2021-01-07 20:22:32 +01:00
Robbert van der Helm 3d690a370b Change the todo about IComponentHandler3
This is actually supported by hosts. It's just that plugins don't seem
to use it.
2021-01-07 17:34:44 +01:00
Robbert van der Helm f944bf4a39 Fully implement IContextMenu
Although all of this stuff is completely untested, and since no host on
Linux uses it we'll likely never know whether this implementation is
correct.
2021-01-07 16:47:28 +01:00
Robbert van der Helm 83d45eef27 Implement the plugin side of IContextMenu 2021-01-07 16:19:41 +01:00
Robbert van der Helm 9e159d278d Add message structs for IContextMenu 2021-01-07 14:30:52 +01:00
Robbert van der Helm 5d0df7febe Fully implement IContextMenuTarget 2021-01-07 00:17:55 +01:00
Robbert van der Helm 48787b5e60 Add logging for IContextMenuTarget 2021-01-06 23:49:41 +01:00
Robbert van der Helm 1d75fbedc6 Add message structs for IContextMenuTarget 2021-01-06 23:34:22 +01:00
Robbert van der Helm c1576658d6 Split up a ConstructArgs from YaContextMenuTarget
So we can send this as a payload when the plugin adds a context menu
item.
2021-01-06 23:23:11 +01:00
Robbert van der Helm 053a288cd5 Add message structs for IComponentHandler3 2021-01-06 21:09:54 +01:00
Robbert van der Helm abe7085ab5 Add stubs for IComponentHandler3 2021-01-06 20:55:27 +01:00
Robbert van der Helm 237b755c52 Add a proxy class for IComponentHandler3 2021-01-06 20:53:10 +01:00
Robbert van der Helm 1c5ba427c2 Serialize the context menu ID 2021-01-06 19:19:33 +01:00
Robbert van der Helm 5e1f75c20f Add missing GCC diagnostic pop 2021-01-06 19:02:52 +01:00
Robbert van der Helm d3eeebc9f9 Add a proxy class for context menu targets 2021-01-06 19:02:52 +01:00
Robbert van der Helm 1267b725a6 Still add support for multiple context menus
Even though having more than one of these open at a time will be
impossible, I could see some misbehaving plugin keeping an old context
menu pointer around and dropping it when another context menu is open,
which would otherwise cause the new context menu to get destroyed.
2021-01-06 19:02:52 +01:00
Robbert van der Helm fbbd2f0671 Add proxy classes for IContextMenu
So we can proxy objects returned by the host during
`IComponentHandler3::createContextMenu`.
2021-01-06 17:16:03 +01:00
Robbert van der Helm 85d90217bd Add message structs for IAudioPresentationLatency 2021-01-04 22:25:02 +01:00
Robbert van der Helm dcfbc34ba1 Add stubs for IAudioPresentationLatency 2021-01-04 22:17:19 +01:00
Robbert van der Helm 44f42d7e02 Add a proxy class for IAudioPresentationLatency 2021-01-04 22:06:05 +01:00
Robbert van der Helm d16cf4eb01 Add message structs for IComponentHandler2 2021-01-04 21:46:05 +01:00
Robbert van der Helm a997a7cd20 Add stubs for IComponentHandler2 2021-01-04 21:36:25 +01:00
Robbert van der Helm ffde7642f3 Add a proxy class for IComponentHandler2 2021-01-04 21:29:12 +01:00
Robbert van der Helm 37c43970f3 Serialize the IMidiMapping support
I forgot this, so hosts would think plugins supported IMidiMapping when
they really didn't.
2021-01-04 00:24:31 +01:00
Robbert van der Helm 8924124abb Fully implement IParameterFinder
With this we're at VST 3.0.2 support.
2021-01-03 23:46:13 +01:00
Robbert van der Helm ace0d789d3 Add logging for the IParameterFinder messages 2021-01-03 23:27:57 +01:00
Robbert van der Helm 00632dc920 Add message structs for IParameterFinder 2021-01-03 23:24:14 +01:00
Robbert van der Helm 52de84f81f Add a proxy class for IParameterFinder 2021-01-03 23:18:21 +01:00