Robbert van der Helm
83d45eef27
Implement the plugin side of IContextMenu
2021-01-07 16:19:41 +01:00
Robbert van der Helm
9e3c57476c
Implement the plugin side if IComponentHandler3
2021-01-06 22:25:23 +01:00
Robbert van der Helm
0e3b5af94e
Fully implement IAudioPresentationLatency
...
Now we support all VST 3.1.0 interfaces.
2021-01-04 22:33:44 +01:00
Robbert van der Helm
dcfbc34ba1
Add stubs for IAudioPresentationLatency
2021-01-04 22:17:19 +01:00
Robbert van der Helm
9983f81875
Fully implement IComponentHandler2
2021-01-04 21:56:14 +01:00
Robbert van der Helm
fb6e5ab33f
Fully implement IMidiMapping
2021-01-02 23:54:01 +01:00
Robbert van der Helm
e980afddb4
Add stubs for IMidiMapping
2021-01-02 23:49:47 +01:00
Robbert van der Helm
a8a0e325fe
Fully implement INoteExpressionCOntroller
2021-01-02 18:40:34 +01:00
Robbert van der Helm
8a4de7da53
Add stubs for INoteExpressionController
2021-01-02 15:27:55 +01:00
Robbert van der Helm
34f8d3b1d2
Update the copyright notices for 2021
2021-01-01 18:54:02 +01:00
Robbert van der Helm
9d24d422d1
Log successful FUnknown::queryInterface calls
2020-12-31 13:13:39 +01:00
Robbert van der Helm
3553b080fe
Implement IUnitData
...
With this all VST 3.0.0 interfaces are finally supported.
2020-12-29 22:00:22 +01:00
Robbert van der Helm
bddcc40e24
Implement IProgramListData on the plugin side
...
With this the interface is fully implemented.
2020-12-29 19:11:12 +01:00
Robbert van der Helm
22269570d0
Add stubs for IProgramListData
2020-12-29 15:53:01 +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
2823a74783
Implement all IUnitInfo functions
...
With this IUnitInfo has been fully implemented.
2020-12-27 18:07:32 +01:00
Robbert van der Helm
70c5792593
Implement IUnitInfo::getSelectedUnit
2020-12-27 16:48:47 +01:00
Robbert van der Helm
d34b399ba0
Implement IUnitInfo::getProgramPitchName
2020-12-26 23:20:13 +01:00
Robbert van der Helm
e414c58a7a
Implement IUnitInfo::hasProgramPitchNames
2020-12-26 23:04:02 +01:00
Robbert van der Helm
f96e6b5a1e
Implement IUnitInfo::getProgramInfo
2020-12-26 23:00:15 +01:00
Robbert van der Helm
204765ec0c
Implement IUnitInfo::getProgramName
2020-12-26 22:38:15 +01:00
Robbert van der Helm
60f6b30b84
Implement IUnitInfo::getProgramListInfo
2020-12-26 22:17:21 +01:00
Robbert van der Helm
92a7cb755a
Implement IUnitInfo::getProgramListCount
2020-12-26 22:10:46 +01:00
Robbert van der Helm
5e832a2689
Implement IUnitInfo::getUnitInfo
2020-12-26 22:03:26 +01:00
Robbert van der Helm
f3e706a39a
Implement IUnitInfo::getUnitCount
2020-12-26 21:33:19 +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
bf40e10780
Implement IUnitHandler::notifyUnitSelection
2020-12-26 14:26:29 +01:00
Robbert van der Helm
86aaf2fa3a
Implement IEditController2::openAboutBox
...
With this IEditController2 has been fully implemented.
2020-12-26 00:10:39 +01:00
Robbert van der Helm
3c5700163e
Implement IEditController2::openHelp
2020-12-26 00:06:32 +01:00
Robbert van der Helm
91a96249fc
Implement IEditController2::setKnobMode
2020-12-26 00:03:29 +01:00
Robbert van der Helm
70cb6dad89
Allow indirect IConnectionPoint connections
...
This is needed to support Ardour. These extra hops and serialization
steps will probably hurt performance, but outside of some huge hacks (to
connect the components directly anyways) there's not much else we can
do.
2020-12-25 14:21:18 +01:00
Robbert van der Helm
65694d261c
Implement IConnectionPoint::notify
2020-12-25 13:13:56 +01:00
Robbert van der Helm
e19cbca5d1
Actually create the IHostApplication smart pointer
2020-12-24 00:14:58 +01:00
Robbert van der Helm
3bc3409929
Keep track of the last created plugin view
...
For implementing `IPlugView::resizeView()`. This approach is safe
because there's only a single defined view type.
2020-12-22 14:27:56 +01:00
Robbert van der Helm
da6ddccf07
Implement IPlugView::setFrame()
2020-12-22 14:16:00 +01:00
Robbert van der Helm
9288cdcb59
Remove support for null pointers in setHostContext
...
Like the other functions, null pointers are never valid here so we
shouldn't bother passing them as it only increases complexity.
2020-12-22 14:04:42 +01:00
Robbert van der Helm
3b96ffa349
Remove null pointer supported in initialize()
2020-12-22 13:59:47 +01:00
Robbert van der Helm
51876a024c
Remove null pointer support in setComponentHandler
...
This should be an implementation fault.
2020-12-22 13:59:15 +01:00
Robbert van der Helm
51877796fa
Add dedicated IAudioProcessor/IComponent sockets
...
This way every relevant object instance will get its own thread for
handling these calls. The alternative would be creating a full fat
Vst3MessageHandler pair for all object instances, but that would be a
huge waste.
2020-12-21 17:26:30 +01:00
Robbert van der Helm
b7047a5281
Implement IEditController::createView()
...
Even though `Vst3PlugViewProxyImpl` is still only stubs,
`IEditController` is now fully implemented.
2020-12-19 21:07:36 +01:00
Robbert van der Helm
b422f6fd42
Don't cache IComponent::getControllerClassId()
...
For the same reasons as the last commit. Now we don't have any of these
cached methods anymore.
2020-12-19 18:56:47 +01:00
Robbert van der Helm
63ae5f330c
Don't cache IHostApplication::getName()
...
As it turns out there are only two or three functions where we can do
this. It also breaks logging, and this function will probably only be
called once anyways. More consistency is always better.
2020-12-19 18:28:16 +01:00
Robbert van der Helm
cb815ebb56
Work around null pointers in Ardour
2020-12-19 17:40:55 +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
c94089b832
Fix creating component handler proxy
2020-12-19 17:00:57 +01:00
Robbert van der Helm
bf3d802f36
Implement IEditController::setComponentHandler()
2020-12-19 15:04:27 +01:00
Robbert van der Helm
7e3568e333
Rename YaEditController2 to YaEditController
...
Adding versions to our implementations doesn't work when the versions
and extensions start becoming non-numerical. This is what happened with
`IComponentHandler`.
2020-12-19 13:49:00 +01:00
Robbert van der Helm
71493299ec
Implement IConnectionPoint::disconnect
2020-12-19 13:07:58 +01:00
Robbert van der Helm
8251249959
Remove fixme about out of order messages
...
This appears to 100% be a bug in ValhallaSuperMassive.
2020-12-18 23:10:07 +01:00
Robbert van der Helm
70e01e17c1
Add note wrong parameter value strings in Bitwig
2020-12-18 23:02:49 +01:00