Robbert van der Helm
db6ecdbbd4
Also define the shobjidl.h define globally
...
This was needed for Wine 6.2.
2021-05-11 02:27:43 +02:00
Robbert van der Helm
af299f3c66
Always define NOMINMAX and friends globally
...
Repeating this every time is worse than defining them in the compiler
command line.
2021-05-11 02:27:43 +02:00
Robbert van der Helm
5577c4bfd8
Fix build on Wine 6.8 #103
...
Wine dropped `WINE_NOWINSOCK`, so now we sadly have to define this
globally instead.
2021-05-11 02:27:38 +02:00
Robbert van der Helm
ffdab23d46
Bump the version to 3.2.0
2021-05-03 13:09:18 +02:00
Robbert van der Helm
459e7ac56b
Fix syntax error in meson.build
...
As a result of 9daddb777b .
2021-05-01 19:31:44 +02:00
Robbert van der Helm
9daddb777b
Fix unity builds
...
The version header was not being included in the correct unit,
sometimes.
2021-05-01 19:28:00 +02:00
Robbert van der Helm
5b28d44797
Define a static library for the Wine hosts
...
This means we only have to compile everything two times, instead of four
times. We sadly still need to compile lots of files at least three
times. (once for native, once for 64-bit Wine, and once for 32-bit Wine)
2021-05-01 01:09:58 +02:00
Robbert van der Helm
588a8fd590
Better structure the meson.build file
...
It's been growing a bit over the last year.
2021-04-30 16:16:35 +02:00
Robbert van der Helm
5680ed5035
Enable additional assertions in debug builds
2021-04-30 16:06:50 +02:00
Robbert van der Helm
93f089eca7
Always set FTZ instead of gating it behind a flag
...
After a quick round of testing it seems like REAPER doesn't always
enable this on the audio thread, but Bitwig, Ardour, Carla and Renoise
do. So it should be safe to just get rid of the option and to leave this
enabled all the time.
2021-04-28 12:07:14 +02:00
Robbert van der Helm
a12e0dcc27
Enable SSE2 instructions
...
We need this to enable FTZ in 3aac8e3483 .
SSSE2 is a default on x86_64, but we need to explicitly enable it when
compiling the 32-bit bitbridge.
2021-04-27 23:50:28 +02:00
Robbert van der Helm
dd552dc8d7
Print the Wine version at Meson configure time
2021-04-18 14:06:33 +02:00
Robbert van der Helm
ba6b87c790
Bump to version 3.1.0
2021-04-15 12:38:11 +02:00
Robbert van der Helm
b1eaaa0638
Fix ABI compatibility with 32-bit VST3 plugins #80
...
This would cause 32-bit VST3 plugins to crash in mysterious ways. What
ended up being the issue is that the plugins expected doubles to be
8-byte aligned in structs, while GCC doesn't do that by default in x86
code for legacy ABI compatibility reasons. Figuring out what exactly was
the issue took months, but luckily the fix was to just add an
`-malign-double`!
2021-04-12 22:35:09 +02:00
Robbert van der Helm
05f739d9db
Update to version 3.7.2 of the VST3 SDK
2021-04-03 18:02:23 +02:00
Robbert van der Helm
36e64d89dc
Use dependency() with subproject fallback for deps
...
None of these libraries are packaged anywhere right now since they do
not have Meson build definitions, but in case they ever do it should be
possible to use them from a system package manager.
2021-03-12 14:50:42 +01:00
Robbert van der Helm
0d7b9bd178
Bump to version 3.0.2
2021-03-07 16:08:54 +01:00
Robbert van der Helm
d91c8eeb07
Bump to version 3.0.1
2021-02-26 16:21:16 +01:00
Robbert van der Helm
8c2594f902
Bump to version 3.0.0
2021-02-14 14:36:01 +01:00
Robbert van der Helm
4f8eaaaa75
Refactor plugin factories into Vst3*Proxy format
...
Now every proxy object that's directly created by the host or plugin
shares the same structure.
2021-02-13 15:42:05 +01:00
Robbert van der Helm
bb5471f2d9
Run certain GUI tasks from the host's run loop
...
This was a bit of a tricky one because it requires simulating mutual
recursion, but it's needed for REAPER as otherwide calls to
`IPlugFrame::resizeView()` and `IContextMenu::popup()` might cause
REAPER to segfault because its GUI is not thread safe.
2021-01-18 14:19:31 +01:00
Robbert van der Helm
06f6e6acfc
Add a proxy class for IParameterFunctionName
...
This is the last official VST3 interface we have to implement!
2021-01-17 13:09:29 +01:00
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
be7fccc920
Add a proxy class for INoteExpressionPhysicalUIMapping
2021-01-15 18:09:51 +01:00
Robbert van der Helm
dd271a8c7f
Add a serialization wrapper for PhysicalUIMap
...
Which we'll need for INoteExpressionPhysicalUIMapping.
2021-01-14 23:32:04 +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
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
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
d620117f6d
Mention option for disabling VST3 support in error
2021-01-09 23:35:46 +01:00
Robbert van der Helm
7801313566
Prevent building VST3 support on old Wine versions
...
Those builds will segfault because of an interaction between those
version of Wine's winelib support and the `CoCreateGuid` function.
2021-01-09 22:38:15 +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
ead1008597
Add stubs for IContextMenuTarget
2021-01-06 19:02:52 +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
0cbcf44e3e
Add stubs for an IContextMenu implementation
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
5b70e0eea6
Fix source file ordering
2021-01-06 15:17:15 +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