// yabridge: a Wine plugin bridge // Copyright (C) 2020-2024 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 . #include "audio-ports.h" #include "../../../utils.h" namespace clap { namespace ext { namespace audio_ports { AudioPortType parse_audio_port_type(const char* port_type) { if (!port_type) { return AudioPortType::Unknown; } if (strcmp(port_type, CLAP_PORT_MONO) == 0) { return AudioPortType::Mono; } else if (strcmp(port_type, CLAP_PORT_STEREO) == 0) { return AudioPortType::Stereo; } else { return AudioPortType::Unknown; } } const char* audio_port_type_to_string(AudioPortType port_type) { switch (port_type) { case AudioPortType::Mono: return CLAP_PORT_MONO; break; case AudioPortType::Stereo: return CLAP_PORT_STEREO; break; default: return nullptr; break; } } AudioPortInfo::AudioPortInfo(const clap_audio_port_info_t& original) : id(original.id), name(original.name), flags(original.flags), channel_count(original.channel_count), port_type(parse_audio_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