Commit Graph

1036 Commits

Author SHA1 Message Date
Robbert van der Helm fb3914e3d4 Implement the thread check extension 2022-10-08 23:36:43 +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 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 dbb9dc8773 Add missing header comment to clap/events.h 2022-10-02 16:36:23 +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 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 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 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 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 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 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 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