From 7fb7648c22ac4047610fa0d5659cec9c31ec4263 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Sat, 8 Oct 2022 23:55:12 +0200 Subject: [PATCH] Add a serialization message for logging --- src/common/serialization/clap.h | 1 + src/common/serialization/clap/ext/log.h | 56 +++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/common/serialization/clap/ext/log.h diff --git a/src/common/serialization/clap.h b/src/common/serialization/clap.h index fa78f850..4a01d97d 100644 --- a/src/common/serialization/clap.h +++ b/src/common/serialization/clap.h @@ -26,6 +26,7 @@ #include "clap/ext/audio-ports.h" #include "clap/ext/gui.h" #include "clap/ext/latency.h" +#include "clap/ext/log.h" #include "clap/ext/note-ports.h" #include "clap/ext/params.h" #include "clap/ext/state.h" diff --git a/src/common/serialization/clap/ext/log.h b/src/common/serialization/clap/ext/log.h new file mode 100644 index 00000000..a35e0579 --- /dev/null +++ b/src/common/serialization/clap/ext/log.h @@ -0,0 +1,56 @@ +// 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 delogs. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#pragma once + +#include + +#include + +#include "../../common.h" + +// Serialization messages for `clap/ext/log.h` + +namespace clap { +namespace ext { +namespace log { + +namespace host { + +/** + * Message struct for `clap_host_log::log()`. + */ +struct Log { + using Response = Ack; + + native_size_t owner_instance_id; + + clap_log_severity severity; + std::string msg; + + template + void serialize(S& s) { + s.value8b(owner_instance_id); + s.value4b(severity); + s.text(msg, 1 << 16); + } +}; + +} // namespace host + +} // namespace log +} // namespace ext +} // namespace clap