Commit Graph

982 Commits

Author SHA1 Message Date
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 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 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 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 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 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 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 f64e5c4353 Add logging for 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 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
Robbert van der Helm d1a38aec8e Rename vst to plugin in log message prefix 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 bca6588965 Fix clap_plugin_factory logging meesage 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 e74c25445d Add messages for creating plugin instances 2022-09-11 19:18:03 +02:00
Robbert van der Helm bba5d34d41 Add a serialization struct for clap_host data 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 d0aeeaba2a Move CLAP version clamping to a function 2022-09-11 19:18:03 +02:00
Robbert van der Helm 41b2c2ea72 Fix bridged CLAP plugin names 2022-09-11 19:18:03 +02:00
Robbert van der Helm c36590abf5 Add a basic CLAP plugin factory implementation
Which can only list plugins without creating them.
2022-09-11 19:18:03 +02:00
Robbert van der Helm 6098ebc778 Add a TODO for speeding up VST3 compilation 2022-09-11 19:18:03 +02:00