Commit Graph

67 Commits

Author SHA1 Message Date
Robbert van der Helm bfdfd9c341 Add proxy classes for IProgress 2021-01-16 18:02:15 +01:00
Robbert van der Helm 4f416e135a Add a proxy class for IProcessContextRequirements 2021-01-16 15:51:48 +01:00
Robbert van der Helm a8699eed18 Add a proxy class for IPlugInterfaceSupport 2021-01-16 14:33:09 +01:00
Robbert van der Helm 64507828bb Add a proxy class for IMidiLearn 2021-01-15 22:33:29 +01:00
Robbert van der Helm c485677987 Add stubs for INoteExpressionPhysicalUIMapping 2021-01-15 19:08:06 +01:00
Robbert van der Helm be7fccc920 Add a proxy class for INoteExpressionPhysicalUIMapping 2021-01-15 18:09:51 +01:00
Robbert van der Helm f24632ac8f Add proxy class for IComponentHandlerBusActivation 2021-01-14 16:08:48 +01:00
Robbert van der Helm 8cfe2512ed Add a proxy class for IPlugViewContentScaleSupport 2021-01-14 14:30:06 +01:00
Robbert van der Helm 23f681c742 Bump the supported VST3 version to 3.6.5 2021-01-12 17:16:54 +01:00
Robbert van der Helm 9c63eb6fcd Add a proxy class for IInfoListener 2021-01-12 16:15:35 +01:00
Robbert van der Helm 8bcb3d7095 Add a proxy class for IPrefetchableSupport 2021-01-12 15:18:46 +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 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 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 ebd887d565 Add a proxy class for IXmlRepresentationController 2021-01-08 17:33:49 +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 66020f3056 Add a proxy class for IEditControllerHostEditing 2021-01-08 16:12:38 +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 237b755c52 Add a proxy class for IComponentHandler3 2021-01-06 20:53:10 +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 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 44f42d7e02 Add a proxy class for IAudioPresentationLatency 2021-01-04 22:06:05 +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 52de84f81f Add a proxy class for IParameterFinder 2021-01-03 23:18:21 +01:00
Robbert van der Helm 315148d628 Add a proxy class for IMidiMapping 2021-01-02 22:13:54 +01:00
Robbert van der Helm c6276d03a1 Add a proxy class for INoteExpressionController 2021-01-01 21:37:38 +01:00
Robbert van der Helm 1ecdc5f270 Add a better list with unimplemented interfaces 2020-12-30 14:43:29 +01:00
Robbert van der Helm 104cdef919 Add a proxy class for IUnitData 2020-12-29 21:48:29 +01:00
Robbert van der Helm c2f1722f14 Add a proxy class for IProgramListData 2020-12-29 15:47:25 +01:00
Robbert van der Helm c1118af21c Update the readmes for merging into master 2020-12-29 15:39:41 +01:00
Robbert van der Helm 4226ab6e43 Pass pointers to IMessage objects around
Instead of serializing the actual `YaMessage`, for the reasons mentioned
in the comments. This was needed to stop iZotope VocalSynth 2 in Ardour
from segfaulting when editing parameters, because that plugin is
apparently being very naughty.
2020-12-29 00:22:42 +01:00
Robbert van der Helm aed369c4be Add stubs for IUnitInfo
This is a big boy.
2020-12-26 21:18:11 +01:00
Robbert van der Helm 5e26d30752 Add a wrapper for IUnitHandler 2020-12-26 14:12:40 +01:00
Robbert van der Helm 0fce9c9eed Add an IConnectionPoint proxy proxy
This is a bit dumb, but this way we can support indirectly connected
objects.
2020-12-25 13:28:03 +01:00
Robbert van der Helm 84b859c499 Implement IMessage 2020-12-25 01:01:13 +01:00
Robbert van der Helm b6304c83b5 Implement IAttributeList 2020-12-25 00:54:08 +01:00
Robbert van der Helm 90de46428c Add an implementation wrapper for IPlugFrame 2020-12-22 13:20:49 +01:00
Robbert van der Helm e391bbccb7 Add Vst3PlugViewProxy 2020-12-19 20:18:45 +01:00
Robbert van der Helm 0522f84f4a Create Vst3HostContextProxy from YaHostApplication
This is quite a huge refactor, but note everything is consistent (and
we're going to need one or two more of these `Vst3*Proxy` objects).
Right now nothing extends `IHostApplication`, but this way it will be
trivial to add support for more host context interfaces.
2020-12-19 17:13:17 +01:00
Robbert van der Helm 54e73d2d19 Split YaEditController into YaEditController{,2}
Since even though the title would make you assume it's a versioned
interface, it's not.
2020-12-19 14:19:37 +01:00
Robbert van der Helm 9bca4796a5 Add boilerplate for Vst3ComponentHandlerProxy 2020-12-19 14:08:41 +01:00
Robbert van der Helm 71493299ec Implement IConnectionPoint::disconnect 2020-12-19 13:07:58 +01:00
Robbert van der Helm d99f880277 Rename YaHostApplication implementation
The context should make it obvious where it's implemented, and with the
current design we only an implementation on one of the two sides.
2020-12-18 21:36:39 +01:00
Robbert van der Helm af1d573712 Add IConnectionPoint to the implemented interfaces 2020-12-18 14:31:26 +01:00
Robbert van der Helm 2155240cca Add stubs for IEditController{,2} 2020-12-17 16:39:50 +01:00
Robbert van der Helm 11bf7532fa Rename the monolitic class to Vst3PluginProxy
Now it's starting to look promising.
2020-12-17 13:07:42 +01:00
Robbert van der Helm d8b2646563 Split off IComponent and create a monolithic class
We can now use implement all VST3 plugin interfaces through this class,
check whether the object from the plugin also supports these classes,
and then conditionally allow casting to the supported classes. This
should give us a one-to-one proxy of the original object.
2020-12-17 12:49:33 +01:00
Robbert van der Helm d6c28f48d9 Split YaAudioProcessor from YaComponent
Now all that's left is splitting YaComponent into the IComponent bits
and separate YaPluginMonlith that implements everything.
2020-12-17 00:31:32 +01:00