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
c554b9b4ab
Use SW_MINIMIZE instead of SW_HIDE
...
Before deferring closing the editor. This still gets rid of that issue
in Wine's X11drv that would result in a double destroy, and it also gets
rid of a delay that would still occur in Carla.
2021-01-04 13:54:01 +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
71eadff1ed
Fix rare X11 error on editor closing
...
With the new deferred closing behaviour, closing the editor of Vital's
VST2 version would trigger an X11 error in Wine's X11drv. This doesn't
seem to happen with other plugins (or the VST3 version of Vital) and the
fact that this workaround even works is strange to say the least, but at
least it does work.
2021-01-03 16:49:23 +01:00
Robbert van der Helm
fb6e5ab33f
Fully implement IMidiMapping
2021-01-02 23:54:01 +01:00
Robbert van der Helm
176e7fd1ae
Add a comment on why we don't set a background
2021-01-02 19:42:37 +01:00
Robbert van der Helm
4a7b560972
Revert "Add a background brush to the window"
...
While this does get rid of artifacts, it can also add a brief moment
where the gray background becomes visible when the window reconfigures
which can look jarring.
This reverts commit 35c7138333 .
2021-01-02 19:32:28 +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
5f8926f8ae
Defer Win32 window closing
...
This gets rid of all potential delays when closing windows.
2020-12-31 14:18:26 +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
c3c0f96585
Get rid of CS_HREDRAW and CS_VREDRAW
...
This causes the window to black out to fully redraw even when the
plugin's editor window can just draw over the new parts.
2020-12-31 13:31:44 +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
2c3312b452
Merge branch 'master' into feature/vst3
2020-12-28 11:51:28 +01:00
Robbert van der Helm
ae71536639
Add back __cdecl on older Wine versions
2020-12-28 11:50:08 +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
fbef37b924
Disable blitting on window position changes
...
This slightly reduces flickering because redraws are now a bit faster.
2020-12-27 15:08:39 +01:00
Robbert van der Helm
35c7138333
Add a background brush to the window
...
So the background always gets cleared out when the window resizes.
2020-12-27 14:37:43 +01:00