Commit Graph

432 Commits

Author SHA1 Message Date
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 07a994089b Add missing null pointer checks
I did double check, and I don't think any of these are supposed to be
nullable.
2021-01-08 18:33:14 +01:00
Robbert van der Helm 2fc7621aee Fully implement XmlRepresentationController 2021-01-08 18:02:43 +01:00
Robbert van der Helm 30bb6d3b97 Fully implement IKeyswitchController 2021-01-08 17:12:17 +01:00
Robbert van der Helm 5d5ec63fee Fully implement IEditControllerHostEditing 2021-01-08 16:33:27 +01:00
Robbert van der Helm eed068b9f7 Add stubs for IEditControllerHostEditing 2021-01-08 16:18:45 +01:00
Robbert van der Helm c375441971 Handle all IPlugView functions from the GUI thread
Melda plugins will freeze if GetSize wasn't called from the GUI thread
before.
2021-01-07 22:42:31 +01:00
Robbert van der Helm 25af73c86e Update the context menu status 2021-01-07 20:22:32 +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 5d0df7febe Fully implement IContextMenuTarget 2021-01-07 00:17:55 +01:00
Robbert van der Helm 26eb8ac1f3 Store the actual context menu proxy impls 2021-01-07 00:07:48 +01:00
Robbert van der Helm 75284cea0b Track registered context menus
So we can refer to them when the host executes a menu item later.
2021-01-06 23:09:55 +01:00
Robbert van der Helm 5dffba4584 Implement Vst3ContextMenuProxyImpl destructor 2021-01-06 22:52:35 +01:00
Robbert van der Helm b9d4bd6042 Implement the Wine host side of IComponentHandler3 2021-01-06 22:41:45 +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 abe7085ab5 Add stubs for IComponentHandler3 2021-01-06 20:55:27 +01:00
Robbert van der Helm 0cbcf44e3e Add stubs for an IContextMenu implementation 2021-01-06 19:02:52 +01:00
Robbert van der Helm 2f5d22ca17 Handle effMainsChanged on the main UI thread #75
This fixes EZdrummer not producing any sound, as the plugin presumably
schedules some task on the Win32 message loop to load its resources,
which won't happen if this is run from any other thread.
2021-01-05 23:04:18 +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 9983f81875 Fully implement IComponentHandler2 2021-01-04 21:56:14 +01:00
Robbert van der Helm a997a7cd20 Add stubs for IComponentHandler2 2021-01-04 21:36:25 +01:00
Robbert van der Helm 5311c9ca6e Add logging for IHostApplication::createInstance 2021-01-04 16:50:19 +01:00
Robbert van der Helm 74c5728100 Get rid of old todos 2021-01-04 16:48:15 +01:00
Robbert van der Helm 4ec8b01bcc Completely run effEditIdle from a timer
Although it hasn't shown up, this will get rid of the possibility of
off-thread effEditIdle calls causing issues. And since we need some way
to run call this function while the event loop is running anyways, doing
it entirely from a timer similar to how hosts on Windows would do it
seems like the best solution.
2021-01-04 15:50:17 +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 52d4fe2f08 Add a wrapper struct around IPlugView for casts 2021-01-03 23:43:51 +01:00
Robbert van der Helm fb6e5ab33f Fully implement IMidiMapping 2021-01-02 23:54:01 +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 fa0753f520 Use atomic fetch-and-add for unique window classes 2020-12-31 14:12:14 +01:00
Robbert van der Helm 9d24d422d1 Log successful FUnknown::queryInterface calls 2020-12-31 13:13:39 +01:00
Robbert van der Helm 651ebd4db3 Update the ViewRect in checkSizeConstraint() 2020-12-30 14:35:18 +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 96fe8b16a5 Add more explicit moves in VST3 message handling
The compiler might be smart enough to do this for us, but doing it
manually doesn't hurt.
2020-12-29 18:54:57 +01:00
Robbert van der Helm 38211d0fb3 Implement IProgramListData on the Wine side 2020-12-29 18:50:17 +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 dd74e54854 Add FIXME for a crazy design issue in VocalSynth 2
They're exchanging pointers between the processor and the controller
using messages. And not only that, they're storing the message objects
instead of storing the pointers.
2020-12-28 00:38:35 +01:00
Robbert van der Helm 9cacf03765 Add missing lambda return type annotations 2020-12-27 23:34:40 +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 47177ed889 Implement IUnitHandler::notifyProgramListChange
With this IUnitHandler has been fully implemented.
2020-12-26 14:30:28 +01:00