Commit Graph

50 Commits

Author SHA1 Message Date
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