Detect and log support for audio-ports

This commit is contained in:
Robbert van der Helm
2022-09-12 16:53:59 +02:00
parent 0854deeae2
commit 3ebccdb65b
5 changed files with 43 additions and 33 deletions
+30 -24
View File
@@ -18,6 +18,8 @@
#include <bitset>
#include <clap/ext/audio-ports.h>
#include "../serialization/clap.h"
ClapLogger::ClapLogger(Logger& generic_logger) : logger_(generic_logger) {}
@@ -56,21 +58,23 @@ bool ClapLogger::log_request(bool is_host_plugin,
message << request.instance_id
<< ": clap_plugin::init(), supported host extensions: ";
// TODO: Log supported extensions
bool first = true;
// for (const auto& [supported, extension_name] : {}) {
// if (!supported) {
// continue;
// }
const auto& supported_extensions = request.supported_host_extensions;
for (const auto& [supported, extension_name] :
{std::pair(supported_extensions.supports_audio_ports,
CLAP_EXT_AUDIO_PORTS)}) {
if (!supported) {
continue;
}
// if (first) {
// message << extension_name;
// } else {
// message << ", " << extension_name;
// }
if (first) {
message << '"' << extension_name << '"';
} else {
message << ", \"" << extension_name << '"';
}
// first = false;
// }
first = false;
}
if (first) {
message << "<none>";
@@ -182,21 +186,23 @@ void ClapLogger::log_response(bool is_host_plugin,
message << (response.result ? "true" : "false")
<< ", supported plugin extensions: ";
// TODO: Log supported extensions
bool first = true;
// for (const auto& [supported, extension_name] : {}) {
// if (!supported) {
// continue;
// }
const auto& supported_extensions = response.supported_plugin_extensions;
for (const auto& [supported, extension_name] :
{std::pair(supported_extensions.supports_audio_ports,
CLAP_EXT_AUDIO_PORTS)}) {
if (!supported) {
continue;
}
// if (first) {
// message << extension_name;
// } else {
// message << ", " << extension_name;
// }
if (first) {
message << '"' << extension_name << '"';
} else {
message << ", \"" << extension_name << '"';
}
// first = false;
// }
first = false;
}
if (first) {
message << "<none>";
+4 -2
View File
@@ -16,6 +16,8 @@
#include "host.h"
#include <clap/ext/audio-ports.h>
namespace clap {
namespace host {
@@ -26,8 +28,8 @@ Host::Host(const clap_host_t& original)
url(original.url ? std::optional(original.url) : std::nullopt),
version((assert(original.version), original.version)) {}
// TODO: Add extensions
SupportedHostExtensions::SupportedHostExtensions(const clap_host& host) {}
SupportedHostExtensions::SupportedHostExtensions(const clap_host& host)
: supports_audio_ports(host.get_extension(&host, CLAP_EXT_AUDIO_PORTS)) {}
} // namespace host
} // namespace clap
+2 -2
View File
@@ -87,11 +87,11 @@ struct SupportedHostExtensions {
SupportedHostExtensions() noexcept {}
// Don't forget to add new extensions to the log output
// TODO: Support extensions
bool supports_audio_ports = false;
template <typename S>
void serialize(S& s) {
// s.value1b(extension_name);
s.value1b(supports_audio_ports);
}
};
+5 -3
View File
@@ -16,6 +16,8 @@
#include "plugin.h"
#include <clap/ext/audio-ports.h>
#include "version.h"
namespace clap {
@@ -74,9 +76,9 @@ const clap_plugin_descriptor_t* Descriptor::get() const {
return &clap_descriptor;
}
// TODO: Add extensions
SupportedPluginExtensions::SupportedPluginExtensions(
const clap_plugin& plugin) {}
SupportedPluginExtensions::SupportedPluginExtensions(const clap_plugin& plugin)
: supports_audio_ports(
plugin.get_extension(&plugin, CLAP_EXT_AUDIO_PORTS)) {}
} // namespace plugin
} // namespace clap
+2 -2
View File
@@ -120,11 +120,11 @@ struct SupportedPluginExtensions {
SupportedPluginExtensions() noexcept {}
// Don't forget to add new extensions to the log output
// TODO: Support extensions
bool supports_audio_ports = false;
template <typename S>
void serialize(S& s) {
// s.value1b(extension_name);
s.value1b(supports_audio_ports);
}
};