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
4f514a82ff
Add logging for CLAP note ports extension structs
2022-09-13 18:07:14 +02:00
Robbert van der Helm
1e6ff797a5
Add serialization structs for note ports extension
2022-09-13 16:58:38 +02:00
Robbert van der Helm
4dbd57d47c
Add logging for CLAP extension queries
2022-09-13 14:54:40 +02:00
Robbert van der Helm
a6fc745491
Remove unnecessary conditional from VST3 query log
2022-09-13 14:46:42 +02:00
Robbert van der Helm
c061f7b475
Mark audio ports extension as done
2022-09-13 14:34:48 +02:00
Robbert van der Helm
47a0fe984c
Fix prefixes in VST3/CLAP log requests
2022-09-12 20:42:45 +02:00
Robbert van der Helm
2a2831af96
Properly format is_input boolean in logs
2022-09-12 20:39:22 +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
31fdf9c3d8
Add a way to reconstruct audio port info
2022-09-12 20:11:19 +02:00
Robbert van der Helm
b2b01b5447
Add a strlcpy-like function for buffers
2022-09-12 20:11:06 +02:00
Robbert van der Helm
ec5b02815d
Use an enum for the audio port type
...
Otherwise we can't provide a static lifetime string pointer in the info
struct.
2022-09-12 20:11:06 +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
d2cbc2f2ab
Add logging for audio ports messages
2022-09-12 19:14:39 +02:00
Robbert van der Helm
65658d3df4
Add serialization structs for audio ports
2022-09-12 19:14:35 +02:00
Robbert van der Helm
fc43a0f012
Rename PrimitiveWrapper to PrimitiveResponse
2022-09-12 17:31:02 +02:00
Robbert van der Helm
22e0fee244
Move CLAP version serialization to version.h
2022-09-12 17:26:14 +02:00
Robbert van der Helm
fa47274dd4
Add stubs for host side audio ports extension
2022-09-12 17:09:01 +02:00
Robbert van der Helm
e39a43c38c
Add stubs for plugin side audio ports extension
2022-09-12 17:03:12 +02:00
Robbert van der Helm
66350b7ec8
Update CLAP API support document
2022-09-12 16:56:32 +02:00
Robbert van der Helm
a9e71becc9
Remove CLAP from the roadmap
...
Since we're working on it right now.
2022-09-12 16:55:54 +02:00
Robbert van der Helm
3ebccdb65b
Detect and log support for audio-ports
2022-09-12 16:53:59 +02:00
Robbert van der Helm
0854deeae2
Silence spurious GCC warning in std::variant
2022-09-12 16:50:04 +02:00
Robbert van der Helm
833df917a7
Work around another spurious GCC warning
2022-09-12 16:22:28 +02:00
Robbert van der Helm
ee3763fe49
Log instance ID in CLAP callback request logging
2022-09-12 16:19:40 +02:00
Robbert van der Helm
6d07cd5036
Update the readme for CLAP support
...
It's not even close to usable at the moment, but might as well.
2022-09-11 19:37:42 +02:00
Robbert van der Helm
73119be27b
Add a TODO for a CLAP HiDPI override setting
2022-09-11 19:30:44 +02:00
Robbert van der Helm
e7fe5426c8
Support the hide_daw option for CLAP.
2022-09-11 19:29:18 +02:00
Robbert van der Helm
f64e5c4353
Add logging for CLAP callback requests
2022-09-11 19:18:03 +02:00
Robbert van der Helm
5d31191806
Implement CLAP callback requests
2022-09-11 19:18:03 +02:00
Robbert van der Helm
7151544f99
Add restart and process request callbacks
2022-09-11 19:18:03 +02:00
Robbert van der Helm
f3d5dd78c4
Add a way to run functions on host main thread
...
From the plugin side.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
f460971165
Mark the include directories as is_system
...
This avoids warnings in third party code.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
e804fe3ce3
Add an MPMC queue
2022-09-11 19:18:03 +02:00
Robbert van der Helm
200bf1a84e
Rename ClapHost::send_message()
...
To clarify that this is intended for main thread callbacks. Not that
outside of the thread pool extension there are any latency sensitive
audio thread callbacks.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
218b919f32
Add message types for restart and process 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
d655320f7f
Add logging for plugin (de)activation
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c7f9b12ca6
Add clap_plugin msgs for everything except process
2022-09-11 19:18:03 +02:00
Robbert van der Helm
8f8e7bac46
Add PrimitiveWrapper logging for CLAP
2022-09-11 19:18:03 +02:00
Robbert van der Helm
a9a6e68fc0
Add dedicated PrimitiveWrapper logging for bools
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c0c2a61f03
Move PrimitiveWrapper to serialization common
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
bc2bad3e94
Add constructors for reading extension support
2022-09-11 19:18:03 +02:00
Robbert van der Helm
7ea29cdfed
Add message structs for initializing plugins
2022-09-11 19:18:03 +02:00