Commit Graph

2828 Commits

Author SHA1 Message Date
Robbert van der Helm 06dfd66d93 Add a TODO about mutual recursion 2022-10-03 03:38:03 +02:00
Robbert van der Helm a44b071264 Don't use the thread local buffer for callbacks 2022-10-03 03:24:04 +02:00
Robbert van der Helm 18b27d3fc4 Don't log callbacks on the Wine side 2022-10-03 03:01:43 +02:00
Robbert van der Helm 7ccf54a77c Fully implement CLAP audio processing 2022-10-03 02:24:32 +02:00
Robbert van der Helm 80b224fcbd Implement the Wine side of clap_plugin::process() 2022-10-03 02:24:32 +02:00
Robbert van der Helm 984952fc4a Add logging for the process function messages 2022-10-03 02:24:32 +02:00
Robbert van der Helm 4023309f79 Finally add the clap_plugin::process() messages 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 3d832159b3 Change wording 2022-10-03 02:24:32 +02:00
Robbert van der Helm e8f8efd639 Default initialize more things in YaProcessData
Just to be safe.
2022-10-03 02:24:32 +02:00
Robbert van der Helm beabcda66f Make YaProcessData safe against moves
Won't be an issue, but this won't cost any noticeable amount of
performance so it seems like the right thing to do.
2022-10-03 02:24:32 +02:00
Robbert van der Helm f90dcc1442 Add serialization for CLAP audio buffers 2022-10-03 02:24:32 +02:00
Robbert van der Helm 822273f28e Define direct serialization for most CLAP events
We'll also need the transport serialization for the process function.
2022-10-03 02:24:32 +02:00
Robbert van der Helm bcb39c995e Add a CLAP TODO for offline rendering 2022-10-02 16:41:16 +02:00
Robbert van der Helm dbb9dc8773 Add missing header comment to clap/events.h 2022-10-02 16:36:23 +02:00
Robbert van der Helm 58de205171 Change grep -P to grep -E
Lookaround is no longer needed here, so we don't need PCRE anymore.
2022-10-02 16:28:37 +02:00
Robbert van der Helm 5b29ac386e Mark events as being fully implemented 2022-10-01 17:41:35 +02:00
Robbert van der Helm 187db7562f Remove unused lambda capture 2022-10-01 17:41:10 +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 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