Commit Graph

2809 Commits

Author SHA1 Message Date
Robbert van der Helm cd5d79ccf3 Add even list fields to the flush message 2022-10-01 17:03:42 +02:00
Robbert van der Helm f782aa4787 Implement the clap_{input,output}_events_t vtables
Now we can use `EventList` to pass events between the host and the
plugin.
2022-10-01 16:57:06 +02:00
Robbert van der Helm 5d3590c8a8 Fix private member naming convention in streams 2022-10-01 16:57:06 +02:00
Robbert van der Helm ede80eab66 Add a CLAP EventList serialization wrapper
This can read events from the host and write back events to the host.
2022-10-01 16:57:06 +02:00
Robbert van der Helm 7e5bc6b07b Add a way to retrieve clap_event_header_t*s
This sets the correct pointer in the SysEx events just before returning
them.
2022-10-01 16:57:06 +02:00
Robbert van der Helm 72e2a9c9f7 Store the entire clap_event_*_t structs
This removes both time and computational overhead. Otherwise we'd have
to create a second event list in the proper format to avoid lifetime
issues.
2022-10-01 16:57:06 +02:00
Robbert van der Helm 28be1dc0c9 Add a bitsery extension for serializing void*
Using the `native_size_t` representation. This is needed to be able to
directly serialize CLAP events.
2022-10-01 16:57:06 +02:00
Robbert van der Helm 176a2684d4 Disallow CLAP support with 32-bit yabridge
The cookies won't be able to be stored correctly here, so it's best to
just outright prevent this.
2022-10-01 15:02:58 +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 5c714a87d2 Add serialization structs for CLAP events 2022-10-01 01:34:34 +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 82840ab6df Properly resize the CLAP editor window 2022-09-29 20:11:41 +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 d062e59ca2 Fix x11_window field type in set_parent struct
This needs to have the same size on all platforms, I didn't realize that
`clap_xwnd` used longs.
2022-09-29 20:04:19 +02:00
Robbert van der Helm b5aaa02645 Add missing default cases 2022-09-29 20:01:05 +02:00
Robbert van der Helm cd609fa90f Implement the plugin side of the GUI functions 2022-09-29 20:01:05 +02:00
Robbert van der Helm 48a3c76fe6 Remove debug prints when opening VST2 editors 2022-09-29 19:57:31 +02:00
Robbert van der Helm 87a9ac75b9 Fully implement the host side GUI extension 2022-09-29 19:57:31 +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 d5909728da Remove unnecessary void value return 2022-09-29 19:57:31 +02:00
Robbert van der Helm b4c8ba8ffb Add logging for the CLAP GUI extension 2022-09-29 19:57:31 +02:00
Robbert van der Helm 6d50d0b22b Add serialization structs for the GUI extension 2022-09-29 19:57:31 +02:00
Robbert van der Helm f285805c57 Mention that event registry is not needed
With the current set of supported extensions
2022-09-28 16:01:39 +02:00
Robbert van der Helm 7305178654 Fully implement the state extension 2022-09-27 15:20:15 +02:00
Robbert van der Helm 225b5d7ef6 Add logging for the CLAP stream extension 2022-09-27 15:08:48 +02:00
Robbert van der Helm 9fa8aa034a Add a size function to the stream wrapper 2022-09-27 15:08:48 +02:00
Robbert van der Helm 67c6fa1563 Add serialization structs for the state extension 2022-09-27 15:08:48 +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 0f711eed2a Remove unnecessary includes 2022-09-26 19:42:23 +02:00
Robbert van der Helm 6ea6b0ed33 Remove old comment 2022-09-26 19:42:23 +02:00
Robbert van der Helm 4ac0b60ca7 Fix typo 2022-09-26 19:42:23 +02:00
Robbert van der Helm c7ea37309d Implement the CLAP latency extension 2022-09-26 19:42:23 +02:00
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 f3e41d19ef Add a very minimal architecture entry for CLAP 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