From 31fdf9c3d88d32137b6fea3f4b12269bdfee22fb Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Mon, 12 Sep 2022 20:11:19 +0200 Subject: [PATCH] Add a way to reconstruct audio port info --- src/common/serialization/clap/ext/audio-ports.cpp | 12 ++++++++++++ src/common/serialization/clap/ext/audio-ports.h | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/src/common/serialization/clap/ext/audio-ports.cpp b/src/common/serialization/clap/ext/audio-ports.cpp index 23ffc452..aead424a 100644 --- a/src/common/serialization/clap/ext/audio-ports.cpp +++ b/src/common/serialization/clap/ext/audio-ports.cpp @@ -16,6 +16,8 @@ #include "audio-ports.h" +#include "../../../utils.h" + namespace clap { namespace ext { namespace audio_ports { @@ -56,6 +58,16 @@ AudioPortInfo::AudioPortInfo(const clap_audio_port_info_t& original) port_type(parse_port_type(original.port_type)), in_place_pair(original.in_place_pair) {} +void AudioPortInfo::reconstruct(clap_audio_port_info_t& port_info) const { + port_info = clap_audio_port_info_t{}; + port_info.id = id; + strlcpy_buffer(port_info.name, name); + port_info.flags = flags; + port_info.channel_count = channel_count; + port_info.port_type = audio_port_type_to_string(port_type); + port_info.in_place_pair = in_place_pair; +} + } // namespace audio_ports } // namespace ext } // namespace clap diff --git a/src/common/serialization/clap/ext/audio-ports.h b/src/common/serialization/clap/ext/audio-ports.h index 78e6ab6f..f6f0ea27 100644 --- a/src/common/serialization/clap/ext/audio-ports.h +++ b/src/common/serialization/clap/ext/audio-ports.h @@ -76,6 +76,11 @@ struct AudioPortInfo { */ AudioPortInfo() {} + /** + * Write the stored information to a host provided info struct. + */ + void reconstruct(clap_audio_port_info_t& port_info) const; + clap_id id; std::string name; uint32_t flags;