Commit Graph

1857 Commits

Author SHA1 Message Date
Robbert van der Helm 3e0cd725a3 Document CLAP and VST3 logger method sections 2022-09-26 18:15:10 +02:00
Robbert van der Helm 2e851c4569 Reorder params::flush in logger
Since this has moved to the audio thread socket.
2022-09-26 18:15:10 +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 436efeae56 Fix thread local audio thread buffers
For CLAP and VST3, as mentioned in the last commit's changelog update.
2022-09-26 17:13:45 +02:00
Robbert van der Helm ca218cb596 Increase default serialization buffer size 2022-09-26 17:05:28 +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 da97885062 Add logging for the CLAP tail extension 2022-09-25 19:38:17 +02:00
Robbert van der Helm da3386494f Rename CLAP audio thread sockets
So they're specifically for host->plugin control messages. We'll need
separate sockets for callbacks.
2022-09-25 17:15:50 +02:00
Robbert van der Helm bd40379cf0 Add serialization structs for CLAP tail extension 2022-09-25 17:15:50 +02:00
Robbert van der Helm ca2e869ce2 Add a TODO for optimizing VST2 bridging 2022-09-25 15:05:59 +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 5732b45769 Add a regular strlcpy implementation
That also works for buffers without a compile time known size.
2022-09-23 20:51:29 +02:00
Robbert van der Helm e0c260ba23 Rename the host extensions_ field 2022-09-23 20:34:51 +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 f5fc2be377 Add logging for the params extension 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 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 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 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