Robbert van der Helm
ead4ca97c5
Fix race condition in CLAP request callback impl
...
This would deadlock if the host simultaneously tries to create a plugin
instance.
2023-04-20 15:38:28 +02:00
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
90a41287be
Remove old todos
2022-10-29 16:13:23 +02: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
987ce8f204
Rename asio-fix.h to use-linux-asio.h
...
Bit of an ugly verbose name but it probably makes it much clearer why
the include is needed.
2022-10-26 17:10:18 +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
e2ec0e286f
Implement host side of the note-name extension
2022-10-21 17:11:28 +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
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
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
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
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
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
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