Robbert van der Helm
bf3a4e7296
Allow changing the event loop tick rate
...
This also changes the refresh rate for most plugins. You can now lower
this setting if your computer is struggling to keep up with rendering a
certain heavy plugin.
2021-01-11 23:38:21 +01:00
Robbert van der Helm
b86df213fb
Change to SCHED_OTHER on IPlugView init/destruct
...
Instead of only on `IPlugView::attached`/`IPlugView::removed` like in
the previous commit. I forgot to also do this when creating and
destroying IPlugViews (since I can assume lots of plugins will then
already start loading resources).
2021-01-11 19:04:46 +01:00
Robbert van der Helm
8f15578d8c
Also disable realtime priority during effEditGetRect
...
Since on some hosts this is called before effEditOpen.
2021-01-11 18:53:36 +01:00
Robbert van der Helm
f015739942
Open and close editors without realtime priority
2021-01-11 18:50:53 +01:00
Robbert van der Helm
5855ffbe85
Fully implement IUnitHandler2
2021-01-10 23:54:43 +01:00
Robbert van der Helm
89111d2f5f
Add stubs for IUnitHandler2
2021-01-10 23:49:58 +01:00
Robbert van der Helm
a2d1a97309
Fully implement IAutomationState
2021-01-10 23:38:40 +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
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