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
8d79bcfa02
Print a warning when using Ardour
2020-12-30 23:01:17 +01:00
Robbert van der Helm
b6a2752882
Log bus types and flags
2020-12-30 17:12:06 +01:00
Robbert van der Helm
42b9cf902c
Swap read_object arguments to match write_object
2020-12-30 16:38:19 +01:00
Robbert van der Helm
ecd9d6c2df
Change YaAudioBusBuffers parameter order
...
So it matches the other constructor.
2020-12-30 15:55:58 +01:00
Robbert van der Helm
1ecdc5f270
Add a better list with unimplemented interfaces
2020-12-30 14:43:29 +01:00
Robbert van der Helm
651ebd4db3
Update the ViewRect in checkSizeConstraint()
2020-12-30 14:35:18 +01:00
Robbert van der Helm
8458ea041f
Add a TODO for a missing return value
2020-12-30 14:18:42 +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
f85912fd25
Add logging for IUnitData structs
2020-12-29 21:51:53 +01:00
Robbert van der Helm
53c5e46b4c
Add the request and response structs for IUnitData
2020-12-29 21:48:38 +01:00
Robbert van der Helm
104cdef919
Add a proxy class for IUnitData
2020-12-29 21:48:29 +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
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
3704ca8cb0
Add logging for the YaProgramListData structs
2020-12-29 18:37:28 +01:00
Robbert van der Helm
1c7a5e08a0
Check for null pointers in input parameter changes
...
This is not allowed to be a null pointer, but the SDK's plugin validator
will pass a null pointer anyways.
2020-12-29 17:32:33 +01:00
Robbert van der Helm
ccba1ce36c
Add IProgramListData request and response objects
2020-12-29 16:11:25 +01:00
Robbert van der Helm
22269570d0
Add stubs for IProgramListData
2020-12-29 15:53:01 +01:00
Robbert van der Helm
c2f1722f14
Add a proxy class for IProgramListData
2020-12-29 15:47:25 +01:00
Robbert van der Helm
c1118af21c
Update the readmes for merging into master
2020-12-29 15:39:41 +01:00
Robbert van der Helm
7946a1d874
Set the global bridge instance to null on deinit
...
Hosts like Qtractor will deinitialize the module only to then
immediately initialize it again, so without this we would get an
assertion failure in `InitModule()`.
2020-12-29 14:57:45 +01:00
Robbert van der Helm
1e1eaee69c
Log the entire speaker arrangement bitsets
...
This makes it very clear why lots of plugins don't work in Ardour right
now.
2020-12-29 13:13:15 +01:00
Robbert van der Helm
c42c05a795
Make BusInfo logging more verbose
2020-12-29 01:26:25 +01:00
Robbert van der Helm
49745d23f1
Fix IEditController::createView log message
2020-12-29 00:50:27 +01:00
Robbert van der Helm
0a05558a8c
Make the persistent buffer thread local
...
Now that we allow ad hoc socket spawning for the audio sockets.
2020-12-29 00:39:23 +01:00
Robbert van der Helm
33806139e9
Revert "Allow disabling ad-hoc socket spawning"
...
It turns out we can't safely disable this, because in some situations we
still have these mutually recursive function calls. We could optimize
this a bit to have those calls be handled by the general sockets, but
this is much more manageable.
This reverts commit 415c1b5683 .
2020-12-29 00:25:44 +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
047c7691e2
Flip the logging prefixes
...
This makes it easier to visually distinguish the direction of the
request.
2020-12-27 23:24:42 +01:00
Robbert van der Helm
9c3b3a0ca9
Fix typo in plugin factory logging
2020-12-27 18:37:07 +01:00
Robbert van der Helm
d6a33b422d
Fix Vst3Bridge stderr logger
...
This was trying to free `std::cerr`, which of course won't work.
2020-12-27 18:33:09 +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
163c936286
Add logging for the new IUnitInfo structs
2020-12-27 17:55:22 +01:00
Robbert van der Helm
1229518fb5
Add request and response structs for IUnitInfo
2020-12-27 17:20:53 +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
Robbert van der Helm
07d57771c1
Fix IPluginFactory implementation level detection
...
These were not getting initialized, and could thus evaluate to true if
you're unlucky.
2020-12-27 13:03:49 +01:00
Robbert van der Helm
095716d248
Fix retrieving old-style class infos
...
Most plugins implement IPluginFactory3 so this slipped through. Melodyne
5 apparently does not.
2020-12-27 13:00:20 +01:00
Robbert van der Helm
14c47c1c09
Change plugin factory logging format
2020-12-27 13:00:20 +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