Robbert van der Helm
d58c204178
Update to CLAP 1.1.7
...
Factories got moved to a new `factory` directory.
2023-01-27 21:04:34 +01:00
Robbert van der Helm
1e66654c2e
Update copyright headers for 2023
...
Happy new year!
2023-01-01 18:51:35 +01:00
Robbert van der Helm
d1ef29aa3e
Implement the CLAP timer-support extension
...
This is entirely implemented on the Wine side. I'll assume most Windows
plugins will use their own timers instead, but this could be useful for
plugins that try to use the same interface on all platforms.
2022-10-26 23:35:54 +02:00
Robbert van der Helm
aa586d40ee
Fully implement CLAP note name extension
2022-10-21 17:17:50 +02:00
Robbert van der Helm
abaaaeed3c
Implement CLAP audio-ports-config extension
2022-10-21 16:44:02 +02:00
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
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
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
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
06dfd66d93
Add a TODO about mutual recursion
2022-10-03 03:38:03 +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
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
9e62d9a447
Add editor_disable_host_scaling support for CLAP
2022-10-01 00:38:17 +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
7305178654
Fully implement the state extension
2022-09-27 15:20:15 +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
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
e26025f7c6
Allocate shared memory audio buffers for CLAP
2022-09-15 19:12:29 +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
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
5d31191806
Implement CLAP callback requests
2022-09-11 19:18:03 +02:00
Robbert van der Helm
feae63b091
Implement start_processing, stop_processing, reset
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c676dfb651
Add CLAP plugin activation and deactivation
...
Shared memory audio buffers are not yet set up.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6865cbd937
Implement CLAP plugin initialization
2022-09-11 19:18:03 +02:00
Robbert van der Helm
d2fb84e529
Add CLAP plugin destroying
...
Everything else is still a stub, but at least the lifecycle now works
correctly.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
a9bb60772d
Add functions for registering CLAP plugin proxies
2022-09-11 19:18:03 +02:00
Robbert van der Helm
a1f73692cc
Start CLAP audio thread socket
...
This doesn't do anything yet, but otherwise creating the plugin instance
stalls. And it's safer to add a dummy listener here for the time being
than to remove the latch and risk forgetting to add it back later.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
423534f373
Implement Wine side for creating plugin instances
2022-09-11 19:18:03 +02:00
Robbert van der Helm
49e3f7ff1e
Capitalize CLAP plugin descriptor class name
...
To stay consistent with the rest of the naming.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
1339c20fc1
Implement the Wine side of listing plugins
2022-09-11 19:18:03 +02:00
Robbert van der Helm
d7266a1bc3
Bail when initializing CLAP entry point fails
2022-09-11 19:18:03 +02:00
Robbert van der Helm
1274edf649
Bail when loading incompatible CLAP plugins
...
Based on the version.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
e531334bde
Initialize the CLAP entry point
2022-09-11 19:18:03 +02:00
Robbert van der Helm
ec8028f78c
Allow serializing CLAP plugin factory list message
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bfe3cab8d2
Add boilerplate for a CLAP bridge
2022-09-11 19:18:03 +02:00