Robbert van der Helm
19ee32039b
Allow set_size() before set_parent()
...
REAPER does this.
2022-10-10 17:39:12 +02:00
Robbert van der Helm
0143d43c7e
Implement the CLAP render extension
2022-10-10 16:08:26 +02:00
Robbert van der Helm
a4d5748c05
Implement the voice-info CLAP extension
2022-10-09 23:19:53 +02:00
Robbert van der Helm
9a92a0c914
Print a message when ignoring resize requests
2022-10-09 14:25:03 +02:00
Robbert van der Helm
24e50a3afc
Rename get_win32_handle() to win32_handle()
2022-10-09 14:23:29 +02:00
Robbert van der Helm
04e03840e0
Rename maybe_resize_editor() to resize_editor()
2022-10-09 14:22:49 +02:00
Robbert van der Helm
4df2b389a0
Work around resizing bug in Surge XT/CJE
2022-10-09 14:22:02 +02:00
Robbert van der Helm
6cb12aad73
Implement the CLAP log extension
2022-10-09 00:22:34 +02:00
Robbert van der Helm
f8399f26b5
Enable mutual recursion for all CLAP callbacks
...
This fixes Surge XT. It would otherwise deadlock when it tried to do a
parameter rescan on first load.
2022-10-08 23:50:05 +02:00
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