Commit Graph

958 Commits

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