diff --git a/src/common/logging/vst3.cpp b/src/common/logging/vst3.cpp index cd900fd9..d8cf49a5 100644 --- a/src/common/logging/vst3.cpp +++ b/src/common/logging/vst3.cpp @@ -382,10 +382,19 @@ bool Vst3Logger::log_request( bool is_host_vst, const YaInfoListener::SetChannelContextInfos& request) { return log_request_base(is_host_vst, [&](auto& message) { - // TODO: Log the keys for the values provided by the host message << request.instance_id << ": IInfoListener::setChannelContextInfos(list = " - ")"; + ")"; }); } diff --git a/src/common/serialization/vst3/attribute-list.cpp b/src/common/serialization/vst3/attribute-list.cpp index 48e49779..1fbd0489 100644 --- a/src/common/serialization/vst3/attribute-list.cpp +++ b/src/common/serialization/vst3/attribute-list.cpp @@ -89,6 +89,24 @@ IMPLEMENT_FUNKNOWN_METHODS(YaAttributeList, Steinberg::Vst::IAttributeList::iid) #pragma GCC diagnostic pop +std::vector YaAttributeList::keys_and_types() const { + std::vector result{}; + for (const auto& [key, value] : attrs_int) { + result.push_back("\"" + key + "\" (int)"); + } + for (const auto& [key, value] : attrs_float) { + result.push_back("\"" + key + "\" (float)"); + } + for (const auto& [key, value] : attrs_string) { + result.push_back("\"" + key + "\" (string)"); + } + for (const auto& [key, value] : attrs_binary) { + result.push_back("\"" + key + "\" (binary)"); + } + + return result; +} + tresult YaAttributeList::write_back( Steinberg::Vst::IAttributeList* stream) const { if (!stream) { diff --git a/src/common/serialization/vst3/attribute-list.h b/src/common/serialization/vst3/attribute-list.h index 0a527cbd..109a6a97 100644 --- a/src/common/serialization/vst3/attribute-list.h +++ b/src/common/serialization/vst3/attribute-list.h @@ -42,6 +42,12 @@ class YaAttributeList : public Steinberg::Vst::IAttributeList { DECLARE_FUNKNOWN_METHODS + /** + * Get all of the keys stored in this attribute list along with their type + * in the ` ()` format, used in the log messages. + */ + std::vector keys_and_types() const; + /** * Write the attribute list a host provided `IAttributeList`. This is used * in `YaBStream::write_back` to write any preset meta data back to the host