Add LV2 Bool variant support

This commit is contained in:
Robin Gareus 2025-10-01 22:11:28 +02:00
parent 3d05dea965
commit 73268c9fe7
3 changed files with 7 additions and 1 deletions

View file

@ -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;

View file

@ -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

View file

@ -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");