Robbert van der Helm
14e3ed2cd3
Add shared audio buffers config to IAudioProcessor::setupProcessing()
2021-06-10 21:37:42 +02:00
Robbert van der Helm
5f4ffed90b
Prevent allocations in Vst3Logger::log_query_interface
...
String constants will be converted to `std::string` because it's not
constexpr yet, and that will allocate for longer strings. Since this
function only prints something when `YABRIDGE_DEBUG_LEVEL` is set to 2
or higher that seems like a waste.
2021-05-31 18:07:19 +02:00
Robbert van der Helm
2bf1c4c5eb
Use C++20 [[unlikely]] instead of BOOST_UNLIKELY
2021-05-31 17:50:02 +02:00
Robbert van der Helm
df93944f3b
Prevent allocations caused by Logger::log_trace
...
C++ would always construct an `std::string` from the string constant
every iteration. Since this also happened when `YABRIDGE_DEBUG_LEVEL` is
not set to 2, this ended up causing unnecessary allocations.
2021-05-23 00:21:21 +02:00
Robbert van der Helm
fcaac219a6
💥 Reduce allocations in VST3 audio sockets
...
We do this by using this new `MessageReference<T>` type to avoid copying
our `YaAudioProcessor::Process` struct and the contained `YaProcessData`
object. This is only part of the work, but this redesign lets us keep
the these objects alive on both the plugin and the host side. On the
plugin side, we'll simply serialize the data from the referred to object
without copying it. On the Wine side, we'll write the data to a
persistent thread local object, and then reassign the
`MessageReference<T>` to point to that object. This lets us serialize
'references', thus avoiding potentially expensive allocations. With
these last few changes alone VST3 plugins are already at the same
performance level as our optimized VST2 plugin groups.
2021-05-07 16:32:08 +02:00
Robbert van der Helm
9424c36993
Temporarily memoize IPlugView::canResize()
...
This makes VST3 plugin resizing more responsive, because this function
would otherwise be constantly running in lockstep from the GUI thread.
2021-05-05 19:44:44 +02:00
Robbert van der Helm
75006a537b
Split up VST3 logging for UniversalTResult
...
I was wondering why I couldn't find the overload for `UniversalTResult`,
and as it turns out we would always use this variant (which
unsurprisingly was the very first overload added). We should of course
have separate overloads for this.
2021-05-05 19:38:46 +02: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
b5dd806b2d
Cache VST3 parameter information
...
This is in some cases needed to get decent performance in REAPER, as
REAPER seems to query this information (which cannot change without the
plugin requesting a restart) four times per second.
2021-01-30 22:24:05 +01:00
Robbert van der Helm
1043776e52
Differentiate between cached values in logs
...
If it turns out we forgot to flush this cache in some place.
2021-01-30 13:56:58 +01:00
Robbert van der Helm
6b992e7c9a
Add logging for IParameterFunctionName
2021-01-17 14:10:01 +01:00
Robbert van der Helm
1dc900aff9
Add logging for IProgress
2021-01-17 00:19:01 +01:00
Robbert van der Helm
1ab9056a82
Add logging for IProcessContextRequirements
2021-01-16 16:17:34 +01:00
Robbert van der Helm
701271c273
Add logging for IPlugInterfaceSupport
2021-01-16 14:49:24 +01:00
Robbert van der Helm
26c78df37c
Add logging for IMidiLearn
2021-01-16 13:57:43 +01:00
Robbert van der Helm
cc35e89252
Add logging for INoteExpressionPhysicalUIMapping
2021-01-15 19:17:42 +01:00
Robbert van der Helm
d9d508a47e
Add logging for IComponentHandlerBusActivation
2021-01-14 16:24:46 +01:00
Robbert van der Helm
0d674d6185
Add logging for IPlugViewContentScaleSupport
2021-01-14 14:46:29 +01:00
Robbert van der Helm
2e57631d39
Add logging for IInfoListener
2021-01-12 17:00:58 +01:00
Robbert van der Helm
892aaab65a
Add logging for IPrefetchableSupport
2021-01-12 15:33:14 +01:00
Robbert van der Helm
73f3db88e0
Add logging for IUnitHandler2
2021-01-10 23:51:54 +01:00
Robbert van der Helm
609360537c
Add logging for IAutomationState
2021-01-10 23:36:11 +01:00
Robbert van der Helm
ec1149e5ce
Add logging for IXmlRepresentationController
2021-01-08 17:53:30 +01:00
Robbert van der Helm
bdfd235ea0
Add logging for IKeyswitchController
2021-01-08 17:05:23 +01:00
Robbert van der Helm
70b667f3b0
Add logging for IEditControllerHostEditing
2021-01-08 16:27:12 +01:00
Robbert van der Helm
0617bfb565
Add logging for IContextMenu
2021-01-07 14:47:00 +01:00
Robbert van der Helm
48787b5e60
Add logging for IContextMenuTarget
2021-01-06 23:49:41 +01:00
Robbert van der Helm
5dffba4584
Implement Vst3ContextMenuProxyImpl destructor
2021-01-06 22:52:35 +01:00
Robbert van der Helm
79319413f5
Add logging for IComponentHandler3
2021-01-06 21:48:02 +01:00
Robbert van der Helm
fe8211180f
Add logging for IAudioPresentationLatency
2021-01-04 22:25:09 +01:00
Robbert van der Helm
0ed9438ffb
AAdd logging for the IComponentHandler2 messages
2021-01-04 21:49:22 +01:00
Robbert van der Helm
ace0d789d3
Add logging for the IParameterFinder messages
2021-01-03 23:27:57 +01:00
Robbert van der Helm
792e6ed233
Add logging for the IMidiMapping messages
2021-01-02 23:43:41 +01:00
Robbert van der Helm
a3770387cc
Add logging for INoteExpressionController messages
2021-01-02 15:42:58 +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
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
f85912fd25
Add logging for IUnitData structs
2020-12-29 21:51:53 +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
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
163c936286
Add logging for the new IUnitInfo structs
2020-12-27 17:55:22 +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