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;