Commit Graph

747 Commits

Author SHA1 Message Date
Robbert van der Helm 3f573cde31 Remove redundant semicolon 2022-11-14 23:06:24 +01:00
Robbert van der Helm e6574a2966 Make CLAP activate and load mutually recursive
The latter is needed to get DPF plugins to load.
2022-10-30 16:48:49 +01:00
Robbert van der Helm ab3d61cc91 Allow mutual recursion on all CLAP callbacks 2022-10-30 16:47:37 +01:00
Robbert van der Helm 9dbaec4071 Bring back CLAP plugin-side mutual recursion
This partially reverts commit 90a41287be.

We do actually need this as DPF does a parameter value rescan inside of
the state load, for some reason.
2022-10-30 13:30:11 +01:00
Robbert van der Helm 90a41287be Remove old todos 2022-10-29 16:13:23 +02:00
Robbert van der Helm d1b3de5fc0 Connect to the session message bus using libdbus-1
This is the first step of migrating the desktop notifications over to
pure DBus.
2022-10-28 16:46:53 +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 39b0f75fad Add structs for the CLAP note name extension 2022-10-21 17:02: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 21c1ca117d Add structs and utils for audio-ports-config 2022-10-21 15:38:10 +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 6cb12aad73 Implement the CLAP log extension 2022-10-09 00:22:34 +02:00
Robbert van der Helm 7ccf54a77c Fully implement CLAP audio processing 2022-10-03 02:24:32 +02:00
Robbert van der Helm b14d4cd49b Add serialization wrapper for process data
This isn't used yet, but in theory we can just hook this up now and
audio processing will work.
2022-10-03 02:24:32 +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 866b7660de Add a function to parse a CLAP event 2022-10-01 02:00:05 +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 4836546d08 Fully implement the CLAP GUI extension 2022-09-29 20:11:30 +02:00
Robbert van der Helm dddcb84fd5 Implement the host side of the GUI functions 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 5621e8bf08 Add a serialization wrapper for streams 2022-09-27 15:08:48 +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 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 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 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 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 e0c260ba23 Rename the host extensions_ field 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 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 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 bb3bc49c60 Fully implement the audio ports extension 2022-09-12 20:11:34 +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 e39a43c38c Add stubs for plugin side audio ports extension 2022-09-12 17:03:12 +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 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 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 6865cbd937 Implement CLAP plugin initialization 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