Allow serializing CLAP plugin factory list message

This commit is contained in:
Robbert van der Helm
2022-08-31 16:28:36 +02:00
parent edc0cbbe38
commit ec8028f78c
5 changed files with 59 additions and 38 deletions
+10 -9
View File
@@ -36,8 +36,10 @@
* request of type `ClapControlRequest(T)` should send back a `T::Response`.
* These messages are for main thread functions.
*/
// TODO: Remove placeholder, add actual types
using ClapMainThreadControlRequest = std::variant<WantsConfiguration>;
// FIXME: Remove the `WantsConfiguration`. For some reason bitsery just won't
// serialize this without it.
using ClapMainThreadControlRequest =
std::variant<WantsConfiguration, clap::plugin_factory::List>;
template <typename S>
void serialize(S& s, ClapMainThreadControlRequest& payload) {
@@ -117,13 +119,12 @@ struct ClapAudioThreadControlRequest {
// TODO: Placeholder
using ClapMainThreadCallbackRequest = std::variant<WantsConfiguration>;
// TODO: Uncomment after changing `ClapMainThreadCallbackRequest`
// template <typename S>
// void serialize(S& s, ClapMainThreadCallbackRequest& payload) {
// // All of the objects in `ClapMainThreadCallbackRequest` should have their own
// // serialization function.
// s.ext(payload, bitsery::ext::InPlaceVariant{});
// }
template <typename S>
void serialize(S& s, ClapMainThreadCallbackRequest& payload) {
// All of the objects in `ClapMainThreadCallbackRequest` should have their
// own serialization function.
s.ext(payload, bitsery::ext::InPlaceVariant{});
}
/**
* Fetch the `std::variant<>` from an audio thread request object. This will