Commit Graph

3066 Commits

Author SHA1 Message Date
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
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 54dd4c583f Fix use after move causing null pointer deref
C++ is a joy to work with.
2022-09-11 19:18:03 +02:00
Robbert van der Helm 82e552098a Store host pointer in the plugin proxy 2022-09-11 19:18:03 +02:00
Robbert van der Helm c98ca66838 Allow creating plugins instances 2022-09-11 19:18:03 +02:00
Robbert van der Helm a9bb60772d Add functions for registering CLAP plugin proxies 2022-09-11 19:18:03 +02:00
Robbert van der Helm bacda47671 Add stubs for a CLAP plugin proxy 2022-09-11 19:18:03 +02:00
Robbert van der Helm a1f73692cc Start CLAP audio thread socket
This doesn't do anything yet, but otherwise creating the plugin instance
stalls. And it's safer to add a dummy listener here for the time being
than to remove the latch and risk forgetting to add it back later.
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 7575fb7af3 Ensure CLAP_ABI is set
This will avoid some potential issues when people try to build this
against old CLAP headers.
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 8c5fb448de Add stubs for a CLAP host proxy implementation 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 64bc31d819 Work around spurious GCC warning w/ string concat 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 bdf0c10605 Add explicit move when creating factory 2022-09-11 19:18:03 +02:00
Robbert van der Helm 6137fe32ce Load the CLAP plugin factory
Creating the plugin still fails.
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 1339c20fc1 Implement the Wine side of listing plugins 2022-09-11 19:18:03 +02:00
Robbert van der Helm 9cea175f2a Globally ignore attribute warnings on Wine side
These started happening after Wine 5.12, and it doesn't look like it's
going to change.
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
Robbert van der Helm 15efbd462f Fix alignment in version out of sync warning 2022-09-11 19:18:03 +02:00
Robbert van der Helm e1efe52cfd Silence new ignored attributes warning 2022-09-11 19:18:03 +02:00
Robbert van der Helm d7266a1bc3 Bail when initializing CLAP entry point fails 2022-09-11 19:18:03 +02:00
Robbert van der Helm 7be78a16a3 Switch to a CLAP fork to fix Winelib usage
This adds missing calling conventions so calling Windows CLAP functions
doesn't result in undefined behavior and memory errors:
https://github.com/free-audio/clap/issues/153
2022-09-11 19:18:03 +02:00
Robbert van der Helm 1274edf649 Bail when loading incompatible CLAP plugins
Based on the version.
2022-09-11 19:18:03 +02:00
Robbert van der Helm e531334bde Initialize the CLAP entry point 2022-09-11 19:18:03 +02:00
Robbert van der Helm d289f6f8cf Free converted file paths in Xdnd proxy 2022-09-11 19:18:03 +02:00
Robbert van der Helm f671c28edb Mark the CLAP includes as system includes 2022-09-11 19:18:03 +02:00
Robbert van der Helm ec8028f78c Allow serializing CLAP plugin factory list message 2022-09-11 19:18:03 +02:00
Robbert van der Helm edc0cbbe38 Add serialization for enumerating CLAP factories 2022-09-11 19:18:03 +02:00
Robbert van der Helm 653a3a88cb Add serialization for CLAP plugin descriptors 2022-09-11 19:18:03 +02:00
Robbert van der Helm 38187241d4 Add a document outlining CLAP support status 2022-09-11 19:18:03 +02:00