From 482ef47fd8155f921e15d6e41a2442397ebb3414 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Mon, 10 Oct 2022 15:39:56 +0200 Subject: [PATCH] Add serialization structs for the render extension --- src/common/serialization/clap.h | 1 + src/common/serialization/clap/ext/render.h | 66 ++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/common/serialization/clap/ext/render.h diff --git a/src/common/serialization/clap.h b/src/common/serialization/clap.h index 290afd65..981a988b 100644 --- a/src/common/serialization/clap.h +++ b/src/common/serialization/clap.h @@ -29,6 +29,7 @@ #include "clap/ext/log.h" #include "clap/ext/note-ports.h" #include "clap/ext/params.h" +#include "clap/ext/render.h" #include "clap/ext/state.h" #include "clap/ext/tail.h" #include "clap/ext/voice-info.h" diff --git a/src/common/serialization/clap/ext/render.h b/src/common/serialization/clap/ext/render.h new file mode 100644 index 00000000..46ccdf15 --- /dev/null +++ b/src/common/serialization/clap/ext/render.h @@ -0,0 +1,66 @@ +// yabridge: a Wine plugin bridge +// Copyright (C) 2020-2022 Robbert van der Helm +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#pragma once + +#include + +#include "../../common.h" + +// Serialization messages for `clap/ext/render.h` + +namespace clap { +namespace ext { +namespace render { + +namespace plugin { + +/** + * Message struct for `clap_plugin_render::has_hard_realtime_requirement()`. + */ +struct HasHardRealtimeRequirement { + using Response = PrimitiveResponse; + + native_size_t instance_id; + + template + void serialize(S& s) { + s.value8b(instance_id); + } +}; + +/** + * Message struct for `clap_plugin_render::set()`. + */ +struct Set { + using Response = PrimitiveResponse; + + native_size_t instance_id; + + clap_plugin_render_mode mode; + + template + void serialize(S& s) { + s.value8b(instance_id); + s.value4b(mode); + } +}; + +} // namespace plugin + +} // namespace render +} // namespace ext +} // namespace clap