From 73268c9fe71a35b58fa15cd4ffdf7b0dbfe33d99 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 1 Oct 2025 22:11:28 +0200 Subject: [PATCH] Add LV2 Bool variant support --- libs/ardour/ardour/uri_map.h | 1 + libs/ardour/lv2_plugin.cc | 6 +++++- libs/ardour/uri_map.cc | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/ardour/ardour/uri_map.h b/libs/ardour/ardour/uri_map.h index f48a09e879..f2918f63e3 100644 --- a/libs/ardour/ardour/uri_map.h +++ b/libs/ardour/ardour/uri_map.h @@ -73,6 +73,7 @@ public: uint32_t atom_Float; uint32_t atom_Long; uint32_t atom_Int; + uint32_t atom_Bool; uint32_t log_Error; uint32_t log_Note; uint32_t log_Trace; diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index a3790f6d45..f488a708a8 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -3259,10 +3259,14 @@ LV2Plugin::connect_and_run(BufferSet& bufs, const char* path = (const char*)LV2_ATOM_BODY_CONST(value); _property_values[prop_id] = Variant(Variant::PATH, path); } - if (value->type == _uri_map.urids.atom_Float) { + else if (value->type == _uri_map.urids.atom_Float) { const float* val = (const float*)LV2_ATOM_BODY_CONST(value); _property_values[prop_id] = Variant(Variant::FLOAT, *val); } + else if (value->type == _uri_map.urids.atom_Bool) { + const float* val = (const float*)LV2_ATOM_BODY_CONST(value); + _property_values[prop_id] = Variant(Variant::BOOL, *val); + } // TODO add support for other props (Int, Bool, ..) // TODO: This should emit the control's Changed signal diff --git a/libs/ardour/uri_map.cc b/libs/ardour/uri_map.cc index 38111c8ddf..9e3abe35b2 100644 --- a/libs/ardour/uri_map.cc +++ b/libs/ardour/uri_map.cc @@ -49,6 +49,7 @@ URIMap::URIDs::init(URIMap& uri_map) atom_Float = uri_map.uri_to_id("http://lv2plug.in/ns/ext/atom#Float"); atom_Long = uri_map.uri_to_id("http://lv2plug.in/ns/ext/atom#Long"); atom_Int = uri_map.uri_to_id("http://lv2plug.in/ns/ext/atom#Int"); + atom_Bool = uri_map.uri_to_id("http://lv2plug.in/ns/ext/atom#Bool"); log_Error = uri_map.uri_to_id("http://lv2plug.in/ns/ext/log#Error"); log_Note = uri_map.uri_to_id("http://lv2plug.in/ns/ext/log#Note"); log_Trace = uri_map.uri_to_id("http://lv2plug.in/ns/ext/log#Trace");