Robbert van der Helm
6979805773
Allow mutual recursion for all CLAP main thread callbacks
...
This is needed because otherwise it's very easy for the combined
request_callback+on_main_thread mechanic on both sides to deadlock.
2022-10-08 23:43:54 +02:00
Robbert van der Helm
fb3914e3d4
Implement the thread check extension
2022-10-08 23:36:43 +02:00
Robbert van der Helm
431dbdca02
Enable mutually recursive GUI callbacks in CLAP
...
This fixes resizing under Qtractor.
2022-10-08 20:32:01 +02:00
Robbert van der Helm
bd272ffc5f
Rename CLAP mutual recursive send function
...
To adhere to the CLAP message sending naming convention.
2022-10-08 20:25:03 +02:00
Robbert van der Helm
b9a2f89089
Remove commented out process setup field
2022-10-08 17:57:43 +02:00
Robbert van der Helm
f559bed13e
Remove audio thread mutual recursion for CLAP
...
We can always add this back in later if we do need it.
2022-10-08 17:57:26 +02:00
Robbert van der Helm
06dfd66d93
Add a TODO about mutual recursion
2022-10-03 03:38:03 +02:00
Robbert van der Helm
18b27d3fc4
Don't log callbacks on the Wine side
2022-10-03 03:01:43 +02:00
Robbert van der Helm
80b224fcbd
Implement the Wine side of clap_plugin::process()
2022-10-03 02:24:32 +02:00
Robbert van der Helm
b14d4cd49b
Add serialization wrapper for process data
...
This isn't used yet, but in theory we can just hook this up now and
audio processing will work.
2022-10-03 02:24:32 +02:00
Robbert van der Helm
3d832159b3
Change wording
2022-10-03 02:24:32 +02:00
Robbert van der Helm
bcb39c995e
Add a CLAP TODO for offline rendering
2022-10-02 16:41:16 +02:00
Robbert van der Helm
187db7562f
Remove unused lambda capture
2022-10-01 17:41:10 +02:00
Robbert van der Helm
1473f7f126
Fully implement the params flush function
...
Now the params extension is finally fully implemented, and a lot of the
unused variable compiler warnings are gone.
2022-10-01 17:08:55 +02:00
Robbert van der Helm
866b7660de
Add a function to parse a CLAP event
2022-10-01 02:00:05 +02:00
Robbert van der Helm
9e62d9a447
Add editor_disable_host_scaling support for CLAP
2022-10-01 00:38:17 +02:00
Robbert van der Helm
1b875ad286
Rename vst3_no_scaling to editor_disable_host_scaling
...
This will also affect CLAP plugins.
2022-10-01 00:37:58 +02:00
Robbert van der Helm
82840ab6df
Properly resize the CLAP editor window
2022-09-29 20:11:41 +02:00
Robbert van der Helm
b5aaa02645
Add missing default cases
2022-09-29 20:01:05 +02:00
Robbert van der Helm
cd609fa90f
Implement the plugin side of the GUI functions
2022-09-29 20:01:05 +02:00
Robbert van der Helm
48a3c76fe6
Remove debug prints when opening VST2 editors
2022-09-29 19:57:31 +02:00
Robbert van der Helm
87a9ac75b9
Fully implement the host side GUI extension
2022-09-29 19:57:31 +02:00
Robbert van der Helm
7305178654
Fully implement the state extension
2022-09-27 15:20:15 +02:00
Robbert van der Helm
5621e8bf08
Add a serialization wrapper for streams
2022-09-27 15:08:48 +02:00
Robbert van der Helm
95c10952a2
Mark CLAP vtable methods as protected
...
Since they only make sense when called from the vtable.
2022-09-27 13:38:34 +02:00
Robbert van der Helm
4ac0b60ca7
Fix typo
2022-09-26 19:42:23 +02:00
Robbert van der Helm
c7ea37309d
Implement the CLAP latency extension
2022-09-26 19:42:23 +02:00
Robbert van der Helm
de028faf70
Fully implement the CLAP tail extension
...
Trivial extension, but this required us to be able to send audio thread
callbacks first.
2022-09-26 18:15:10 +02:00
Robbert van der Helm
53c9fbb376
Move supported extensions lists out of logger
...
Keeping this next to the supported extensions objects makes it easier to
maintain.
2022-09-26 17:43:55 +02:00
Robbert van der Helm
8bc61837c9
Move the flush request to the audio thread
2022-09-26 16:47:46 +02:00
Robbert van der Helm
214ba51010
Add audio thread callbacks
2022-09-26 16:47:46 +02:00
Robbert van der Helm
0d472dcd58
Add CLAP audio thread callback sockets
...
The initialization here is a bit funky and happens in lockstep to ensure
both sides are synchronized.
2022-09-26 16:28:30 +02:00
Robbert van der Helm
0f58f3409b
Fully implement the CLAP params extension
2022-09-25 14:55:16 +02:00
Robbert van der Helm
95be79adfe
Add missing host side note-ports extension query
2022-09-23 20:34:51 +02:00
Robbert van der Helm
4818bef537
Add serialization structs for parameters
2022-09-23 20:34:25 +02:00
Robbert van der Helm
e26025f7c6
Allocate shared memory audio buffers for CLAP
2022-09-15 19:12:29 +02:00
Robbert van der Helm
7f07d5f29f
Change audio SHM buffer offsets to be in bytes
...
CLAP allows mixed precision ports. For instance, the main IO ports can
be 32-bit only, while some CV ports allow 64-bit audio. The plugin only
knows the sample format it receives when the process call happens, so
we'll always need to allocate enough space for that to work.
2022-09-15 18:07:56 +02:00
Robbert van der Helm
cead56c9aa
Skip main thread requirement in array lookups
...
This should be fine, right? We'll do it everywhere else, but especially
for parameters this is going to be very costly and may thus increase
plugin startup time by a noticeable amount if we spool every individual
call to the main thread.
2022-09-13 18:28:30 +02:00
Robbert van der Helm
168837c8ac
Always honor CLAP main thread requirement
...
If this ever becomes a bottleneck we can always decide to not do it
right there and then.
2022-09-13 18:20:33 +02:00
Robbert van der Helm
d5f4d563d4
Implement CLAP note ports extension
2022-09-13 18:20:33 +02:00
Robbert van der Helm
1e6ff797a5
Add serialization structs for note ports extension
2022-09-13 16:58:38 +02:00
Robbert van der Helm
4dbd57d47c
Add logging for CLAP extension queries
2022-09-13 14:54:40 +02:00
Robbert van der Helm
bb3bc49c60
Fully implement the audio ports extension
2022-09-12 20:11:34 +02:00
Robbert van der Helm
51edef4427
Deduplicate CLAP extension support queries
...
They're only queried once now and the booleans are derived from the
stored pointers.
2022-09-12 19:14:39 +02:00
Robbert van der Helm
b31bee24b6
Store plugin and host extension struct pointers
2022-09-12 19:14:39 +02:00
Robbert van der Helm
65658d3df4
Add serialization structs for audio ports
2022-09-12 19:14:35 +02:00
Robbert van der Helm
fa47274dd4
Add stubs for host side audio ports extension
2022-09-12 17:09:01 +02:00
Robbert van der Helm
e7fe5426c8
Support the hide_daw option for CLAP.
2022-09-11 19:29:18 +02:00
Robbert van der Helm
f64e5c4353
Add logging for CLAP callback requests
2022-09-11 19:18:03 +02:00
Robbert van der Helm
5d31191806
Implement CLAP callback requests
2022-09-11 19:18:03 +02:00