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
10b8ef7870
Use unique_ptr for managing the Vst3PluginBridge
...
Not quite sure why we were doing raw pointers before.
2021-01-11 17:09:43 +01:00
Robbert van der Helm
3ca7061659
Switch to SCHED_OTHER while handling events
...
GUI drawing should not be able to interrupt the cores that are handling
DSP, but it seems like that was happening for some people with
suboptimal kernel configurations. This will require some more extensive
testing to see if these changes don't actually increase DSP load.
2021-01-11 14:20:03 +01:00
Robbert van der Helm
e3ea1dd2fe
Allow an option set_realtime_priority() to revert
2021-01-11 14:04:54 +01:00
Robbert van der Helm
5855ffbe85
Fully implement IUnitHandler2
2021-01-10 23:54:43 +01:00
Robbert van der Helm
73f3db88e0
Add logging for IUnitHandler2
2021-01-10 23:51:54 +01:00
Robbert van der Helm
727956f476
Add message structs for IUnitHandler2
2021-01-10 23:50:59 +01:00
Robbert van der Helm
89111d2f5f
Add stubs for IUnitHandler2
2021-01-10 23:49:58 +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
a2d1a97309
Fully implement IAutomationState
2021-01-10 23:38:40 +01:00
Robbert van der Helm
609360537c
Add logging for IAutomationState
2021-01-10 23:36:11 +01:00
Robbert van der Helm
c62c67a96c
Add a message structs for IAutomationState
2021-01-10 23:34:23 +01:00
Robbert van der Helm
cfa1aff1bf
Add stubs for IAutomationState
2021-01-10 23:32:55 +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
c938068cf5
Update VST3 implementation level
...
We're now at VST 3.6.0.
2021-01-10 17:46:56 +01:00
Robbert van der Helm
e28a73e88a
Remove old todo regarding IStreamAttributes
2021-01-10 17:45:58 +01:00
Robbert van der Helm
d632d5643d
Relax IBStream reading even further
...
And reset the seek position after reading. This new approach where we
also read from empty IBStreams to provide a perfect proxy would
otherwise cause plugins to crash in Bitwig when either loading or saving
state.
2021-01-10 17:41:55 +01:00
Robbert van der Helm
4fdd50d1a3
Relax assertions in stream reading
...
Reading 0 bytes in Bitwig will return kResultFalse.
2021-01-10 17:34:42 +01:00
Robbert van der Helm
c514233922
Write back preset meta data set by the plugin
...
The docs don't mention that this is a thing you should support, but
`IStreamAttributes` doesn't make much sense without this.
2021-01-10 17:26:26 +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
9b603a964c
Implement IStreamAttributes when reading from host
...
This allows presets to contain meta data about file names and the type
of preset.
Even though the docs don't mention that this is also relevant for
`getState()`, we should also implement it there so plugins can write
their own meta data.
2021-01-10 16:23:45 +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
ec1149e5ce
Add logging for IXmlRepresentationController
2021-01-08 17:53:30 +01:00
Robbert van der Helm
b3406189e7
Add messages for IXmlRepresentationController
2021-01-08 17:47:10 +01:00
Robbert van der Helm
2072310b2b
Add stubs for IXmlRepresentationController
2021-01-08 17:43:43 +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
30bb6d3b97
Fully implement IKeyswitchController
2021-01-08 17:12:17 +01:00
Robbert van der Helm
bdfd235ea0
Add logging for IKeyswitchController
2021-01-08 17:05:23 +01:00
Robbert van der Helm
e21568a38e
Add message structs for IKeyswitchController
2021-01-08 16:59:53 +01:00
Robbert van der Helm
7969ec20fd
Add stubs for IKeyswitchController
2021-01-08 16:53:43 +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
5d5ec63fee
Fully implement IEditControllerHostEditing
2021-01-08 16:33:27 +01:00
Robbert van der Helm
70b667f3b0
Add logging for IEditControllerHostEditing
2021-01-08 16:27:12 +01:00
Robbert van der Helm
78243c265f
Add message structs for IEditControllerHostEditing
2021-01-08 16:25:00 +01:00
Robbert van der Helm
eed068b9f7
Add stubs for IEditControllerHostEditing
2021-01-08 16:18:45 +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
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
3d690a370b
Change the todo about IComponentHandler3
...
This is actually supported by hosts. It's just that plugins don't seem
to use it.
2021-01-07 17:34:44 +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
83d45eef27
Implement the plugin side of IContextMenu
2021-01-07 16:19:41 +01:00
Robbert van der Helm
0617bfb565
Add logging for IContextMenu
2021-01-07 14:47:00 +01:00
Robbert van der Helm
9e159d278d
Add message structs for IContextMenu
2021-01-07 14:30:52 +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
48787b5e60
Add logging for IContextMenuTarget
2021-01-06 23:49:41 +01:00